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.
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
Settings.otomi.gitSettings.gitSettings.otomi.isPreInstalledSettings.cluster.isPreInstalledSettings.otomi.nodeSelectorSettings.cluster.nodeSelectorSettings.otomi.useORCSSettings.cluster.useORCSSettings.otomi.versionSettings.cluster.versionAdded
Settings.cluster.globalPullSecretNameRemoved
Cluster.k8sContextcluster.yaml.Settings.alertsSettings.platformBackupsSettings.objSettings.dnsSettings.kmsSettings.otomi.adminPasswordSettings.otomi.aiEnabledSettings.otomi.globalPullSecretSettings.cluster.globalPullSecretNameSettings.otomi.hasExternalDNSSettings.otomi.hasExternalIDPSettings.otomi.isMultitenantEndpoints
That will leaves us with the following API endpoints:
/v2/settings/cluster/v2/settings/git/v2/settings/oidc/v2/settings/ingressAll other /v1/settings are removed.