From bd7dc0bddfb444708dc6cb0437d49452b7a96428 Mon Sep 17 00:00:00 2001 From: Pedro Date: Fri, 9 Dec 2022 07:07:45 -0600 Subject: [PATCH] fix(argo-events): avoid label exceeding maximum length (#1693) --- charts/argo-events/Chart.yaml | 6 ++-- charts/argo-events/templates/_helpers.tpl | 28 +++++++++++++++++++ .../argo-events-controller/deployment.yaml | 4 +-- .../argo-events-webhook/deployment.yaml | 6 ++-- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/charts/argo-events/Chart.yaml b/charts/argo-events/Chart.yaml index 46c4c6f6..55cd3a95 100644 --- a/charts/argo-events/Chart.yaml +++ b/charts/argo-events/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: v1.7.3 description: A Helm chart for Argo Events, the event-driven workflow automation framework name: argo-events -version: 2.0.6 +version: 2.0.7 home: https://github.com/argoproj/argo-helm icon: https://argoproj.github.io/argo-events/assets/logo.png keywords: @@ -15,4 +15,6 @@ maintainers: url: https://argoproj.github.io/ annotations: artifacthub.io/changes: | - - "[Changed]: Upgrade Argo events controller to v1.7.3" + - "[Fixed]: avoid app.kubernetes.io/version kubernetes label from exceeding maximum length (63) + - "[Fixed]: generated value for app.kubernetes.io/version label is now valid even when defining a controller/webhook .image.tag with a SHA digest" + - "[Fixed]: webhook.image.tag value now overrides the tag in the webhook deployment" diff --git a/charts/argo-events/templates/_helpers.tpl b/charts/argo-events/templates/_helpers.tpl index efbdc669..c3110b3f 100644 --- a/charts/argo-events/templates/_helpers.tpl +++ b/charts/argo-events/templates/_helpers.tpl @@ -68,6 +68,34 @@ Create chart name and version as used by the chart label. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{/* +Create kubernetes friendly chart version label for the controller. + +Examples: +image.tag = v1.7.3 +output = v1.7.3 + +image.tag = v1.7.3@sha256:a40f4f3ea20d354f00ab469a9f73102668fa545c4d632e1a8e11a206ad3093f3 +output = v1.7.3 +*/}} +{{- define "argo-events.controller_chart_version_label" -}} +{{- regexReplaceAll "[^a-zA-Z0-9-_.]+" (regexReplaceAll "@sha256:[a-f0-9]+" (default (include "argo-events.defaultTag" .) .Values.controller.image.tag) "") "" | trunc 63 | quote -}} +{{- end -}} + +{{/* +Create kubernetes friendly chart version label for the events webhook. + +Examples: +image.tag = v1.7.3 +output = v1.7.3 + +image.tag = v1.7.3@sha256:a40f4f3ea20d354f00ab469a9f73102668fa545c4d632e1a8e11a206ad3093f3 +output = v1.7.3 +*/}} +{{- define "argo-events.webhook_chart_version_label" -}} +{{- regexReplaceAll "[^a-zA-Z0-9-_.]+" (regexReplaceAll "@sha256:[a-f0-9]+" (default (include "argo-events.defaultTag" .) .Values.webhook.image.tag) "") "" | trunc 63 | quote -}} +{{- end -}} + {{/* Common labels */}} diff --git a/charts/argo-events/templates/argo-events-controller/deployment.yaml b/charts/argo-events/templates/argo-events-controller/deployment.yaml index 88ecf66f..ab41c26b 100644 --- a/charts/argo-events/templates/argo-events-controller/deployment.yaml +++ b/charts/argo-events/templates/argo-events-controller/deployment.yaml @@ -4,7 +4,7 @@ metadata: name: {{ include "argo-events.controller.fullname" . }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }} - app.kubernetes.io/version: {{ default (include "argo-events.defaultTag" .) .Values.controller.image.tag | quote }} + app.kubernetes.io/version: {{ include "argo-events.controller_chart_version_label" . }} spec: selector: matchLabels: @@ -22,7 +22,7 @@ spec: {{- end }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }} - app.kubernetes.io/version: {{ default (include "argo-events.defaultTag" .) .Values.controller.image.tag | quote }} + app.kubernetes.io/version: {{ include "argo-events.controller_chart_version_label" . }} {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }} {{- toYaml . | nindent 8 }} {{- end }} diff --git a/charts/argo-events/templates/argo-events-webhook/deployment.yaml b/charts/argo-events/templates/argo-events-webhook/deployment.yaml index 8def5183..b030bc7c 100644 --- a/charts/argo-events/templates/argo-events-webhook/deployment.yaml +++ b/charts/argo-events/templates/argo-events-webhook/deployment.yaml @@ -5,7 +5,7 @@ metadata: name: events-webhook labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.webhook.name "name" .Values.webhook.name) | nindent 4 }} - app.kubernetes.io/version: {{ default (include "argo-events.defaultTag" .) .Values.webhook.image.tag | quote }} + app.kubernetes.io/version: {{ include "argo-events.webhook_chart_version_label" . }} spec: selector: matchLabels: @@ -22,7 +22,7 @@ spec: {{- end }} labels: {{- include "argo-events.labels" (dict "context" . "component" .Values.webhook.name "name" .Values.webhook.name) | nindent 8 }} - app.kubernetes.io/version: {{ default (include "argo-events.defaultTag" .) .Values.webhook.image.tag | quote }} + app.kubernetes.io/version: {{ include "argo-events.webhook_chart_version_label" . }} {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.webhook.podLabels) }} {{- toYaml . | nindent 8 }} {{- end }} @@ -37,7 +37,7 @@ spec: {{- end }} containers: - name: {{ .Values.webhook.name }} - image: {{ default .Values.global.image.repository .Values.webhook.image.repository }}:{{ default (include "argo-events.defaultTag" .) .Values.controller.image.tag }} + image: {{ default .Values.global.image.repository .Values.webhook.image.repository }}:{{ default (include "argo-events.defaultTag" .) .Values.webhook.image.tag }} imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.webhook.image.imagePullPolicy }} args: - webhook-service