From a03cdeff0494ab538b36fb016857a0dd3aae96a8 Mon Sep 17 00:00:00 2001 From: Timofei Larkin Date: Mon, 5 May 2025 14:58:31 +0300 Subject: [PATCH] Enable user-added params in tenant cluster Cilium Users requested the possibility of passing custom values to the Cilium HelmRelease in tenant k8s clusters to enable its latest features, such as support for the Gateway API. This customization is now available via the `valuesOverride` field under `addons.cilium` in the kubernetes' app values. Additionally add dummy schema for S3 bucket, as it breaks the pre-commit checks. Signed-off-by: Timofei Larkin --- packages/apps/bucket/README.md | 3 +++ packages/apps/bucket/values.schema.json | 5 +++++ packages/apps/bucket/values.yaml | 1 + packages/apps/kubernetes/Chart.yaml | 2 +- packages/apps/kubernetes/README.md | 1 + .../templates/helmreleases/cilium.yaml | 16 ++++++++++------ packages/apps/kubernetes/values.schema.json | 10 ++++++++++ packages/apps/kubernetes/values.yaml | 6 ++++++ packages/apps/versions_map | 3 ++- 9 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 packages/apps/bucket/README.md create mode 100644 packages/apps/bucket/values.schema.json create mode 100644 packages/apps/bucket/values.yaml diff --git a/packages/apps/bucket/README.md b/packages/apps/bucket/README.md new file mode 100644 index 00000000..89749b1d --- /dev/null +++ b/packages/apps/bucket/README.md @@ -0,0 +1,3 @@ +# S3 bucket + +## Parameters diff --git a/packages/apps/bucket/values.schema.json b/packages/apps/bucket/values.schema.json new file mode 100644 index 00000000..decc79aa --- /dev/null +++ b/packages/apps/bucket/values.schema.json @@ -0,0 +1,5 @@ +{ + "title": "Chart Values", + "type": "object", + "properties": {} +} \ No newline at end of file diff --git a/packages/apps/bucket/values.yaml b/packages/apps/bucket/values.yaml new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/packages/apps/bucket/values.yaml @@ -0,0 +1 @@ +{} diff --git a/packages/apps/kubernetes/Chart.yaml b/packages/apps/kubernetes/Chart.yaml index 05076167..7daa8598 100644 --- a/packages/apps/kubernetes/Chart.yaml +++ b/packages/apps/kubernetes/Chart.yaml @@ -16,7 +16,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.19.0 +version: 0.20.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/packages/apps/kubernetes/README.md b/packages/apps/kubernetes/README.md index 94a4ff6e..79c01191 100644 --- a/packages/apps/kubernetes/README.md +++ b/packages/apps/kubernetes/README.md @@ -44,6 +44,7 @@ kubectl get secret -n kubernetes--admin-kubeconfig -o g | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | `addons.certManager.enabled` | Enables the cert-manager | `false` | | `addons.certManager.valuesOverride` | Custom values to override | `{}` | +| `addons.cilium.valuesOverride` | Custom values to override | `{}` | | `addons.ingressNginx.enabled` | Enable Ingress-NGINX controller (expect nodes with 'ingress-nginx' role) | `false` | | `addons.ingressNginx.valuesOverride` | Custom values to override | `{}` | | `addons.ingressNginx.hosts` | List of domain names that should be passed through to the cluster by upper cluster | `[]` | diff --git a/packages/apps/kubernetes/templates/helmreleases/cilium.yaml b/packages/apps/kubernetes/templates/helmreleases/cilium.yaml index 6b03bdb3..448e5976 100644 --- a/packages/apps/kubernetes/templates/helmreleases/cilium.yaml +++ b/packages/apps/kubernetes/templates/helmreleases/cilium.yaml @@ -1,3 +1,12 @@ +{{- define "cozystack.defaultCiliumValues" -}} +cilium: + k8sServiceHost: {{ .Release.Name }}.{{ .Release.Namespace }}.svc + k8sServicePort: 6443 + routingMode: tunnel + enableIPv4Masquerade: true + ipv4NativeRoutingCIDR: "" +{{- end }} + apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: @@ -31,12 +40,7 @@ spec: remediation: retries: -1 values: - cilium: - k8sServiceHost: {{ .Release.Name }}.{{ .Release.Namespace }}.svc - k8sServicePort: 6443 - routingMode: tunnel - enableIPv4Masquerade: true - ipv4NativeRoutingCIDR: "" + {{- toYaml (deepCopy .Values.addons.cilium.valuesOverride | mergeOverwrite (fromYaml (include "cozystack.defaultCiliumValues" .))) | nindent 4 }} dependsOn: {{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" .Release.Namespace .Release.Name }} - name: {{ .Release.Name }} diff --git a/packages/apps/kubernetes/values.schema.json b/packages/apps/kubernetes/values.schema.json index c69a30aa..7a2ac3d1 100644 --- a/packages/apps/kubernetes/values.schema.json +++ b/packages/apps/kubernetes/values.schema.json @@ -145,6 +145,16 @@ } } }, + "cilium": { + "type": "object", + "properties": { + "valuesOverride": { + "type": "object", + "description": "Custom values to override", + "default": {} + } + } + }, "ingressNginx": { "type": "object", "properties": { diff --git a/packages/apps/kubernetes/values.yaml b/packages/apps/kubernetes/values.yaml index 388c465b..805d5bec 100644 --- a/packages/apps/kubernetes/values.yaml +++ b/packages/apps/kubernetes/values.yaml @@ -42,6 +42,12 @@ addons: enabled: false valuesOverride: {} + ## Cilium CNI plugin + ## + cilium: + ## @param addons.cilium.valuesOverride Custom values to override + valuesOverride: {} + ## Ingress-NGINX Controller ## ingressNginx: diff --git a/packages/apps/versions_map b/packages/apps/versions_map index 749d92e0..b7c09ab7 100644 --- a/packages/apps/versions_map +++ b/packages/apps/versions_map @@ -59,7 +59,8 @@ kubernetes 0.16.0 077045b0 kubernetes 0.17.0 1fbbfcd0 kubernetes 0.17.1 fd240701 kubernetes 0.18.0 721c12a7 -kubernetes 0.19.0 HEAD +kubernetes 0.19.0 93bdf411 +kubernetes 0.20.0 HEAD mysql 0.1.0 263e47be mysql 0.2.0 c24a103f mysql 0.3.0 53f2365e