diff --git a/.gitignore b/.gitignore index 6336a4d9..beb9709d 100644 --- a/.gitignore +++ b/.gitignore @@ -63,7 +63,8 @@ applications/wg-easy/release/ applications/flipt/release/ applications/flipt/chart/Chart.lock -**/.claude/settings.local.json +.claude/ +CLAUDE.md .worktrees/ # Gas Town workspace artifacts diff --git a/applications/mlflow/charts/mlflow/templates/license-configmap.yaml b/applications/mlflow/charts/mlflow/templates/license-configmap.yaml new file mode 100644 index 00000000..22b43a30 --- /dev/null +++ b/applications/mlflow/charts/mlflow/templates/license-configmap.yaml @@ -0,0 +1,15 @@ +{{- if or .Values.license.tier .Values.license.maxUsers }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "mlflow.fullname" . }}-license + labels: + {{- include "mlflow.labels" . | nindent 4 }} +data: + {{- with .Values.license.tier }} + LICENSE_TIER: {{ . | quote }} + {{- end }} + {{- with .Values.license.maxUsers }} + LICENSE_MAX_USERS: {{ . | quote }} + {{- end }} +{{- end }} diff --git a/applications/mlflow/charts/mlflow/values.yaml b/applications/mlflow/charts/mlflow/values.yaml index 4e92a8ab..d3c67a2d 100644 --- a/applications/mlflow/charts/mlflow/values.yaml +++ b/applications/mlflow/charts/mlflow/values.yaml @@ -325,6 +325,13 @@ mlflow: # -- Specify whether to ignore TLS ignoreTls: false +# -- License entitlements passed from KOTS Config via HelmChart CR values +license: + # -- License tier (e.g. "community", "team", "enterprise") + tier: "" + # -- Maximum number of users allowed by the license + maxUsers: "" + # -- GPU node scheduling configuration for ML/AI workloads # When enabled, merges GPU-specific nodeSelector, tolerations, and resource # limits into the mlflow deployment alongside any existing scheduling config. diff --git a/applications/mlflow/release/kots-config.yaml b/applications/mlflow/release/kots-config.yaml index 1d84fa01..0b41bd04 100644 --- a/applications/mlflow/release/kots-config.yaml +++ b/applications/mlflow/release/kots-config.yaml @@ -127,6 +127,21 @@ spec: when: '{{repl ConfigOptionEquals "postgres_type" "external_postgres"}}' type: text default: postgres + # License settings (read-only, sourced from license entitlements) + - name: license_settings + title: License + description: License entitlements (read-only, set by your license) + items: + - name: license_tier + title: License Tier + type: text + value: '{{repl LicenseFieldValue "tier"}}' + readonly: true + - name: license_max_users + title: Max Users + type: text + value: '{{repl LicenseFieldValue "max_users"}}' + readonly: true # Object Store Settings - name: objectstore_settings title: Object Storage diff --git a/applications/mlflow/release/mlflow-chart.yaml b/applications/mlflow/release/mlflow-chart.yaml index e224a720..5dea8ddf 100644 --- a/applications/mlflow/release/mlflow-chart.yaml +++ b/applications/mlflow/release/mlflow-chart.yaml @@ -31,6 +31,9 @@ spec: accessKeyId: repl{{ ConfigOption "embedded_s3_access_key" }} secretAccessKey: repl{{ ConfigOption "embedded_s3_secret_key" }} podAntiAffinityTopologyKey: "kubernetes.io/hostname" + license: + tier: repl{{ ConfigOption "license_tier" }} + maxUsers: repl{{ ConfigOption "license_max_users" }} postgres: auth: password: repl{{ ConfigOption "embedded_postgres_password"}}