From d7fcd61de0d774124b190085b075570c7e7368ad Mon Sep 17 00:00:00 2001 From: Martin McCaffery Date: Fri, 19 Dec 2025 17:07:08 +0100 Subject: [PATCH 1/4] base64 encode edge provider config toml --- charts/garm/edge-connect-provider-config.toml | 10 ++++++++++ charts/garm/templates/secrets.yaml | 12 +----------- 2 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 charts/garm/edge-connect-provider-config.toml diff --git a/charts/garm/edge-connect-provider-config.toml b/charts/garm/edge-connect-provider-config.toml new file mode 100644 index 0000000..6dabe4a --- /dev/null +++ b/charts/garm/edge-connect-provider-config.toml @@ -0,0 +1,10 @@ + organization = {{ .Values.providerConfig.edgeConnect.organization | quote }} + region = {{ .Values.providerConfig.edgeConnect.region | quote }} + edge_connect_url = {{ .Values.providerConfig.edgeConnect.edgeConnectUrl | quote }} + log_file = "/garm/provider.log" + credentials_file = "/etc/garm-creds/creds.toml" + default_flavor = "EU.small" + + [cloudlet] + name = {{ .Values.providerConfig.edgeConnect.cloudlet.name | quote }} + organization = {{ .Values.providerConfig.edgeConnect.cloudlet.organization | quote }} diff --git a/charts/garm/templates/secrets.yaml b/charts/garm/templates/secrets.yaml index 9848454..5784191 100644 --- a/charts/garm/templates/secrets.yaml +++ b/charts/garm/templates/secrets.yaml @@ -76,17 +76,7 @@ stringData: flavors: {{- toYaml .Values.providerConfig.k8s.flavors | nindent 6 }} - edge-connect-provider-config.toml: | - organization = {{ .Values.providerConfig.edgeConnect.organization | quote }} - region = {{ .Values.providerConfig.edgeConnect.region | quote }} - edge_connect_url = {{ .Values.providerConfig.edgeConnect.edgeConnectUrl | quote }} - log_file = "/garm/provider.log" - credentials_file = "/etc/garm-creds/creds.toml" - default_flavor = "EU.small" - - [cloudlet] - name = {{ .Values.providerConfig.edgeConnect.cloudlet.name | quote }} - organization = {{ .Values.providerConfig.edgeConnect.cloudlet.organization | quote }} + edge-connect-provider-config.toml: {{ tpl (.Files.Get "../edge-connect-provider-config.toml") . | b64enc }} {{- if not .Values.credentials.edgeConnect.existingSecretName }} --- apiVersion: v1 From d63917dfc7521d53c921d7f2419529f70154cd24 Mon Sep 17 00:00:00 2001 From: Martin McCaffery Date: Mon, 22 Dec 2025 10:01:54 +0100 Subject: [PATCH 2/4] Update config toml to new format, parameterise defaultFlavor --- charts/garm/edge-connect-provider-config.toml | 10 ---------- charts/garm/templates/secrets.yaml | 14 +++++++++++++- charts/garm/values.yaml | 1 + 3 files changed, 14 insertions(+), 11 deletions(-) delete mode 100644 charts/garm/edge-connect-provider-config.toml diff --git a/charts/garm/edge-connect-provider-config.toml b/charts/garm/edge-connect-provider-config.toml deleted file mode 100644 index 6dabe4a..0000000 --- a/charts/garm/edge-connect-provider-config.toml +++ /dev/null @@ -1,10 +0,0 @@ - organization = {{ .Values.providerConfig.edgeConnect.organization | quote }} - region = {{ .Values.providerConfig.edgeConnect.region | quote }} - edge_connect_url = {{ .Values.providerConfig.edgeConnect.edgeConnectUrl | quote }} - log_file = "/garm/provider.log" - credentials_file = "/etc/garm-creds/creds.toml" - default_flavor = "EU.small" - - [cloudlet] - name = {{ .Values.providerConfig.edgeConnect.cloudlet.name | quote }} - organization = {{ .Values.providerConfig.edgeConnect.cloudlet.organization | quote }} diff --git a/charts/garm/templates/secrets.yaml b/charts/garm/templates/secrets.yaml index 5784191..16fb40f 100644 --- a/charts/garm/templates/secrets.yaml +++ b/charts/garm/templates/secrets.yaml @@ -76,7 +76,19 @@ stringData: flavors: {{- toYaml .Values.providerConfig.k8s.flavors | nindent 6 }} - edge-connect-provider-config.toml: {{ tpl (.Files.Get "../edge-connect-provider-config.toml") . | b64enc }} + edge-connect-provider-config.toml: | + log_file = "/garm/provider.log" + credentials_file = "/etc/garm-creds/creds.toml" + + [edge_connect] + organization = {{ .Values.providerConfig.edgeConnect.organization | quote }} + region = {{ .Values.providerConfig.edgeConnect.region | quote }} + url = {{ .Values.providerConfig.edgeConnect.edgeConnectUrl | quote }} + default_flavor = {{ .Values.providerConfig.edgeConnect.defaultFlavor | quote }} + + [edge_connect.cloudlet] + name = {{ .Values.providerConfig.edgeConnect.cloudlet.name | quote }} + organization = {{ .Values.providerConfig.edgeConnect.cloudlet.organization | quote }} {{- if not .Values.credentials.edgeConnect.existingSecretName }} --- apiVersion: v1 diff --git a/charts/garm/values.yaml b/charts/garm/values.yaml index 2e3629f..6d0f162 100644 --- a/charts/garm/values.yaml +++ b/charts/garm/values.yaml @@ -103,6 +103,7 @@ providerConfig: organization: "edp-developer-framework" region: "EU" edgeConnectUrl: "https://hub.apps.edge.platform.mg3.mdb.osc.live" + defaultFlavor: "EU.small" cloudlet: name: "Munich" organization: "TelekomOP" From 8e6647a86fe225037abacbb8271fefe45e038d51 Mon Sep 17 00:00:00 2001 From: "martin.mccaffery" Date: Mon, 22 Dec 2025 09:11:35 +0000 Subject: [PATCH 3/4] Update garm image version to provider-ec-43 --- charts/garm/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/garm/values.yaml b/charts/garm/values.yaml index 6d0f162..561c2a5 100644 --- a/charts/garm/values.yaml +++ b/charts/garm/values.yaml @@ -4,7 +4,7 @@ fullnameOverride: "" image: repository: edp.buildth.ing/devfw-cicd/garm - tag: provider-ec-40 + tag: provider-ec-43 pullPolicy: Always replicaCount: 1 From b46e1d03b5ab58558d5677e2df0c20b970e9ac3d Mon Sep 17 00:00:00 2001 From: Martin McCaffery Date: Mon, 22 Dec 2025 10:29:24 +0100 Subject: [PATCH 4/4] Prevent garm db passphrase regeneration on redeployment --- charts/garm/templates/_credentials.tpl | 7 +++---- charts/garm/templates/secrets.yaml | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/charts/garm/templates/_credentials.tpl b/charts/garm/templates/_credentials.tpl index e93bd03..c899cfc 100644 --- a/charts/garm/templates/_credentials.tpl +++ b/charts/garm/templates/_credentials.tpl @@ -44,10 +44,9 @@ Get Gitea token - either user-provided or generated {{- end -}} {{- define "garm.dbPassphrase" -}} -{{- $secret := lookup "v1" "Secret" .Release.Namespace (printf "%s-config" ( include "garm.fullname" . )) -}} -{{- if and $secret ((fromToml (index $secret.data "config.toml" | b64dec)).database.passphrase) -}} -{{- $another := fromToml (index $secret.data "config.toml" | b64dec) -}} -{{ $another.database.passphrase }} +{{- $secret := lookup "v1" "Secret" .Release.Namespace (printf "%s-db-credentials" ( include "garm.fullname" . )) -}} +{{- if and $secret (index $secret.data "passphrase" | b64dec) -}} +{{- (index $secret.data "passphrase" | b64dec) -}} {{- else -}} {{- include "garm.randomString" . -}} {{- end -}} diff --git a/charts/garm/templates/secrets.yaml b/charts/garm/templates/secrets.yaml index 16fb40f..044a1ef 100644 --- a/charts/garm/templates/secrets.yaml +++ b/charts/garm/templates/secrets.yaml @@ -14,6 +14,22 @@ stringData: GARM_URL: {{ printf "https://%s" (index .Values.ingress.hosts 0).host | quote }} GIT_URL: {{ .Values.credentials.gitea.url | quote }} --- +{{- $secretName := printf "%s%s" (include "garm.fullname" .) "-db-credentials" -}} +{{- $secretExists := lookup "v1" "Secret" .Release.Namespace $secretName -}} + +{{- if not $secretExists -}} +apiVersion: v1 +kind: Secret +metadata: + name: {{ $secretName }} + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-5" +stringData: + passphrase: {{- include "garm.randomString" . -}} +{{- end -}} +--- apiVersion: v1 kind: Secret metadata: