From c29235faabedb5860968cc9220b638a2a65eb1e4 Mon Sep 17 00:00:00 2001 From: antoniocali Date: Wed, 27 May 2026 11:52:13 +0100 Subject: [PATCH] feat(fusion): add podLabels and podAnnotations hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The other components in this chart (olake-ui, olake-worker, temporal, postgresql, nfs-server, elasticsearch) all support `podLabels` and `podAnnotations` value blocks that get merged into `spec.template.metadata`. The Fusion deployment template was missing both — its pod-template metadata was hardcoded to the `app.kubernetes.io/*` labels and the config-checksum annotation, with no extension point. This matters for deployments running under K8s admission policies that require specific labels on pod templates (Gatekeeper, Kyverno, OPA constraints, etc.). Without a `podLabels` hook, operators either have to live with the policy warnings or carry parent-chart patches. Changes mirror the same pattern olake-ui/deployment.yaml already uses: template: metadata: labels: app.kubernetes.io/name: ... ... {{- with .Values.fusion.podLabels }} {{- toYaml . | nindent 8 }} {{- end }} annotations: checksum/fusion-config: ... {{- with .Values.fusion.podAnnotations }} {{- toYaml . | nindent 8 }} {{- end }} Defaults are `{}` in values.yaml so existing deployments render byte-identically when neither value is set. Verified with `helm template`: - default (no overrides) → unchanged labels/annotations - `--set fusion.podLabels.foo=bar --set fusion.podAnnotations.alpha=beta` → both merged into the rendered deployment --- helm/olake/templates/fusion/deployment.yaml | 6 ++++++ helm/olake/values.yaml | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/helm/olake/templates/fusion/deployment.yaml b/helm/olake/templates/fusion/deployment.yaml index 0e4dbee..b7eee50 100644 --- a/helm/olake/templates/fusion/deployment.yaml +++ b/helm/olake/templates/fusion/deployment.yaml @@ -24,8 +24,14 @@ spec: app.kubernetes.io/name: {{ include "olake.name" . }}-fusion app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: fusion + {{- with .Values.fusion.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} annotations: checksum/fusion-config: {{ include (print $.Template.BasePath "/fusion/configmap.yaml") . | sha256sum }} + {{- with .Values.fusion.podAnnotations }} + {{- toYaml . | nindent 8 }} + {{- end }} spec: {{- with .Values.fusion.nodeSelector }} nodeSelector: diff --git a/helm/olake/values.yaml b/helm/olake/values.yaml index a012404..fe616ca 100644 --- a/helm/olake/values.yaml +++ b/helm/olake/values.yaml @@ -630,7 +630,13 @@ fusion: nodeSelector: {} tolerations: [] affinity: {} - + + # -- Additional pod annotations + podAnnotations: {} + + # -- Additional pod labels + podLabels: {} + # --- Amoro config shade properties shade: identifier: "default"