Config#

pydantic settings controller.config.Config#

Nublado controller configuration.

Parameters:
Fields:
field baseUrl: str = 'http://127.0.0.1:8080' (name 'base_url')#

Injected into the lab pod as EXTERNAL_INSTANCE_URL

field fileserver: DisabledFileserverConfig | EnabledFileserverConfig = DisabledFileserverConfig(enabled=False, path_prefix='/files')#
field images: PrepullerConfig [Required]#

Configuration for which images to prepull and which images to display in the spawner menu for users to choose from when spawning labs

field lab: LabConfig [Required]#
field logLevel: LogLevel = LogLevel.INFO (name 'log_level')#

Python logging level

field metadataPath: Path = PosixPath('/etc/podinfo') (name 'metadata_path')#

This directory should contain files named name, namespace, and uid, which should contain the name, namespace, and UUID of the lab controller pod, respectively. Normally this is done via the Kubernetes downwardAPI.) These are used to set ownership information on pods spawned by the prepuller and to find secrets to inject into the lab.

field name: str = 'Nublado'#

Used when reporting problems to Slack

field pathPrefix: str = '/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.

field profile: Profile = 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.

field slackWebhook: str | None = 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

classmethod from_file(path)#

Load the controller configuration from a YAML file.

Parameters:

path (Path) –

Return type:

Self