Skip to content

/v2/settings #1070

Description

@j-zimnowoda

Platform settings by definition should impact configuration of the whole platform (e.g.: useORCS, nodeSelector, version, globalPullSecret.

Currently many platform settings are wrappers for just few applications. Such a settings should be available at application level.
Moreover some feature flags are immutable changing them could cause service disruption and require further manual steps.
These flags are used to decide how to bootstrap core application, thus should not be visible are configurable settings.

The proposed API changes enforce new bootstrap process where certain configurations provided on helm install are stored as user defined app settings. Those are usually credentials for 3rd system integrations (e.g. per app object storage settings, dns tokens for cert-manager, external-dns, alert manager config).

It is worth noting that users will still be able to install apl with the old legacy values.yaml. The proposed change impacts how those settings are manage in the post install stage.

Data model changes

Changed or Moved

Previous property New property Change
Settings.otomi.git Settings.git Git configuration moved to the top level.
Settings.otomi.isPreInstalled Settings.cluster.isPreInstalled Consolidate under cluster endpoint
Settings.otomi.nodeSelector Settings.cluster.nodeSelector Consolidate under cluster endpoint
Settings.otomi.useORCS Settings.cluster.useORCS Consolidate under cluster endpoint
Settings.otomi.version Settings.cluster.version Consolidate under cluster endpoint

Added

New property Rationale
Settings.cluster.globalPullSecretName reference to secret in the apl-secrets ns

Removed

Removed property Notes Rationale
Cluster.k8sContext Removed from cluster.yaml. not used
Settings.alerts Entire alert configuration removed. only used during bootstrap, later managed in alert manager app settings
Settings.platformBackups Split per app add new endpoint to manage database configuration /v2/apps/databases
Settings.obj Object Storage wizard and Linode credentials/buckets removed. only used during bootstrap per app
Settings.dns DNS configuration removed. only used during bootstrap per app (external-dns and cert-manager
Settings.kms KMS/SOPS configuration removed. not used
Settings.otomi.adminPassword Removed. only used during bootstrap later managed via /users API
Settings.otomi.aiEnabled Removed. not used
Settings.otomi.globalPullSecret only used during bootstrap, later managed as Settings.cluster.globalPullSecretName
Settings.otomi.hasExternalDNS Removed. only used during bootstrap, later managed per app (external-dns and cert-manager
Settings.otomi.hasExternalIDP Removed. only used during bootstrap, later managed per app (external-dns and cert-manager
Settings.otomi.isMultitenant Removed. always set to true

Endpoints

That will leaves us with the following API endpoints:

  • /v2/settings/cluster
  • /v2/settings/git
  • /v2/settings/oidc
  • /v2/settings/ingress
  • /v2/apps/databases

All other /v1/settings are removed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions