Config¶
- pydantic settings controller.config.Config¶
Nublado controller configuration.
- Parameters:
_nested_model_default_partial_update (
bool
|None
, default:None
)_env_file (
Union
[Path
,str
,Sequence
[Union
[Path
,str
]],None
], default:PosixPath('.')
)_cli_parse_args (
bool
|list
[str
] |tuple
[str
,...
] |None
, default:None
)_cli_settings_source (
Optional
[CliSettingsSource
[Any
]], default:None
)_secrets_dir (
Union
[Path
,str
,Sequence
[Union
[Path
,str
]],None
], default:None
)values (
Any
)
- Fields:
- Validators:
_validate_fileserver_volume_mounts
»all fields
- field baseUrl: Annotated[str, Field(title='Base URL for Science Platform', description='Injected into the lab pod as EXTERNAL_INSTANCE_URL', validation_alias='EXTERNAL_INSTANCE_URL')] = 'http://127.0.0.1:8080' (name 'base_url')¶
Injected into the lab pod as EXTERNAL_INSTANCE_URL
- Validated by:
_validate_fileserver_volume_mounts
- field fileserver: Annotated[DisabledFileserverConfig | EnabledFileserverConfig, Field(title='User file server configuration')] = DisabledFileserverConfig(enabled=False, path_prefix='/files')¶
- Validated by:
_validate_fileserver_volume_mounts
- field images: Annotated[PrepullerConfig, Field(title='Available lab images', description='Configuration for which images to prepull and which images to display in the spawner menu for users to choose from when spawning labs')] [Required]¶
Configuration for which images to prepull and which images to display in the spawner menu for users to choose from when spawning labs
- Validated by:
_validate_fileserver_volume_mounts
- field lab: Annotated[LabConfig, Field(title='User lab configuration')] [Required]¶
- Validated by:
_validate_fileserver_volume_mounts
- field logLevel: Annotated[LogLevel, Field(title='Log level', description='Python logging level', examples=[LogLevel.INFO])] = LogLevel.INFO (name 'log_level')¶
Python logging level
- Validated by:
_validate_fileserver_volume_mounts
-
field metadataPath: Annotated[Path, Field(title='Path to injected pod metadata', description='This directory should contain files named
name
,namespace
, anduid
, which should contain the name, namespace, and UUID of the lab controller pod, respectively. Normally this is done via the KubernetesdownwardAPI
.) These are used to set ownership information on pods spawned by the prepuller and to find secrets to inject into the lab.')] = PosixPath('/etc/podinfo') (name 'metadata_path')¶ This directory should contain files named
name
,namespace
, anduid
, which should contain the name, namespace, and UUID of the lab controller pod, respectively. Normally this is done via the KubernetesdownwardAPI
.) These are used to set ownership information on pods spawned by the prepuller and to find secrets to inject into the lab.- Validated by:
_validate_fileserver_volume_mounts
- field name: Annotated[str, Field(title='Name of application', description='Used when reporting problems to Slack')] = 'Nublado'¶
Used when reporting problems to Slack
- Validated by:
_validate_fileserver_volume_mounts
-
field pathPrefix: Annotated[str, Field(title='URL prefix for controller API', description='This prefix is used for all APIs except for the API to spawn a user file server. That is controlled by
fileserver.path_prefix
.')] = '/nublado' (name 'path_prefix')¶ This prefix is used for all APIs except for the API to spawn a user file server. That is controlled by
fileserver.path_prefix
.- Validated by:
_validate_fileserver_volume_mounts
-
field profile: Annotated[Profile, Field(title='Application logging profile', description='
production
uses JSON logging.development
uses logging that may be easier for humans to read but that cannot be easily parsed by computers or Google Log Explorer.', examples=[Profile.development])] = Profile.production¶ production
uses JSON logging.development
uses logging that may be easier for humans to read but that cannot be easily parsed by computers or Google Log Explorer.- Validated by:
_validate_fileserver_volume_mounts
- field slackWebhook: Annotated[SecretStr | None, Field(title='Slack webhook for alerts', description='If set, failures creating user labs or file servers and any uncaught exceptions in the Nublado controller will be reported to Slack via this webhook', validation_alias='NUBLADO_SLACK_WEBHOOK')] = None (name 'slack_webhook')¶
If set, failures creating user labs or file servers and any uncaught exceptions in the Nublado controller will be reported to Slack via this webhook
- Validated by:
_validate_fileserver_volume_mounts
- classmethod from_file(path)¶
Load the controller configuration from a YAML file.
- Parameters:
path (
Path
) – Path to the configuration file.- Return type:
Self