# Modes Solo Defaults
# Default configuration for solo deployment mode

let base_defaults = import "../base/defaults.ncl" in

{
  solo_mode = {
    mode_name = 'solo,
    description = "Single developer local development mode",

    authentication = base_defaults.no_auth,

    services = {
      orchestrator = {
        deployment = 'local,
        auto_start = true,
        local_config = {
          data_dir = "~/.provisioning/orchestrator",
          port = 8080,
        },
      },
      control_center = {
        deployment = 'disabled,
      },
      coredns = {
        deployment = 'disabled,
      },
      gitea = {
        deployment = 'disabled,
      },
      oci_registry = {
        deployment = 'local,
        type = 'zot,
        endpoint = "localhost",
        port = 5000,
        tls_enabled = false,
        auth_required = false,
        local = {
          data_dir = "~/.provisioning/oci-registry",
          config_path = "~/.provisioning/oci-registry/config.json",
          auto_start = false,
        },
        namespaces = {
          extensions = "dev-extensions",
          kcl_packages = "dev-kcl",
          platform_images = "dev-platform",
          test_images = "dev-test",
        },
      },
    },

    extensions = base_defaults.local_extensions,

    workspaces = base_defaults.no_locking,

    security = base_defaults.minimal_security,

    resource_limits = base_defaults.dev_limits,
  },
}
