Config

pydantic settings controller.config.Config

Nublado controller configuration.

Parameters:
Fields:
Validators:
  • _validate_fileserver_volume_mounts » all fields

field baseUrl: str = '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: DisabledFileserverConfig | EnabledFileserverConfig = DisabledFileserverConfig(enabled=False, path_prefix='/files')
Validated by:
  • _validate_fileserver_volume_mounts

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

Validated by:
  • _validate_fileserver_volume_mounts

field lab: LabConfig [Required]
Validated by:
  • _validate_fileserver_volume_mounts

field logLevel: LogLevel = LogLevel.INFO (name 'log_level')

Python logging level

Validated by:
  • _validate_fileserver_volume_mounts

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.

Validated by:
  • _validate_fileserver_volume_mounts

field name: str = 'Nublado'

Used when reporting problems to Slack

Validated by:
  • _validate_fileserver_volume_mounts

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.

Validated by:
  • _validate_fileserver_volume_mounts

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.

Validated by:
  • _validate_fileserver_volume_mounts

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

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