From c83de8fccc457de4e63e040757fb9d34f206f85c Mon Sep 17 00:00:00 2001
From: "Antoine R. Dumont (@ardumont)" <ardumont@softwareheritage.org>
Date: Fri, 31 Mar 2023 16:27:53 +0200
Subject: [PATCH] Install new dsn configuration pattern for listers

Refs. swh/meta#4949
---
 swh/templates/listers/configmap.yaml  | 22 +++++++++++++++++++---
 swh/templates/listers/deployment.yaml | 16 +++++++---------
 2 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/swh/templates/listers/configmap.yaml b/swh/templates/listers/configmap.yaml
index e103fa290..8a3d85579 100644
--- a/swh/templates/listers/configmap.yaml
+++ b/swh/templates/listers/configmap.yaml
@@ -57,22 +57,38 @@ data:
       task_queues:
     {{- range $queue := get $deployment_config "queues" }}
       - {{ $queue }}
+      sentry_settings_for_celery_tasks:
+        __sentry-settings-for-celery-tasks__
+
     {{- end }}
     credentials:
+      __lister-credentials__
   init-container-entrypoint.sh: |
     #!/bin/bash
 
     set -e
 
     CONFIG_FILE=/etc/swh/config.yml
+    CONFIG_FILE_WIP=/tmp/wip-config.yml
 
     # substitute environment variables when creating the default config.yml
     eval echo \""$(</etc/swh/configuration-template/config.yml.template)"\" \
       > $CONFIG_FILE
 
-    CREDS_LISTER_PATH=/etc/credentials/listers/credentials
-    [ -f $CREDS_LISTER_PATH ] && \
-      sed 's/^/  /g' $CREDS_LISTER_PATH >> $CONFIG_FILE
+    SENTRY_SETTINGS_PATH=/etc/credentials/sentry-settings/sentry_settings_for_celery_tasks
+    if [ -f $SENTRY_SETTINGS_PATH ]; then
+      awk "/__sentry-settings-for-celery-tasks__/{system(\"sed 's/^/    /g' $SENTRY_SETTINGS_PATH\");next}1" $CONFIG_FILE > $CONFIG_FILE_WIP
+      mv $CONFIG_FILE_WIP $CONFIG_FILE
+    else
+      sed -i '/__sentry-settings-for-celery-tasks__//g' $CONFIG_FILE
+    fi
+
+    if [ -f $CREDS_LISTER_PATH ]; then
+      awk "/__lister-credentials__/{system(\"sed 's/^/  /g' $CREDS_LISTER_PATH\");next}1" $CONFIG_FILE > $CONFIG_FILE_WIP
+      mv $CONFIG_FILE_WIP $CONFIG_FILE
+    else
+      sed -i '/__lister-credentials__//g' $CONFIG_FILE
+    fi
 
     exit 0
 {{ end }}
diff --git a/swh/templates/listers/deployment.yaml b/swh/templates/listers/deployment.yaml
index d54d541e0..23bc6cbd8 100644
--- a/swh/templates/listers/deployment.yaml
+++ b/swh/templates/listers/deployment.yaml
@@ -64,6 +64,9 @@ spec:
           - name: lister-credentials-secrets
             mountPath: /etc/credentials/listers
             readOnly: true
+          - name: sentry-settings-for-celery-tasks
+            mountPath: /etc/credentials/sentry-settings
+            readOnly: true
       containers:
       - name: listers
         resources:
@@ -94,15 +97,6 @@ spec:
           value: /etc/swh/config.yml
         - name: SWH_SENTRY_ENVIRONMENT
           value: {{ $.Values.sentry.environment }}
-        - name: SWH_MAIN_PACKAGE
-          value: {{ $.Values.listers.sentrySwhPackage }}
-        - name: SWH_SENTRY_DSN
-          valueFrom:
-            secretKeyRef:
-              name: common-secrets
-              key: lister-sentry-dsn
-              # 'name' secret must exist & include key "host"
-              optional: false
         volumeMounts:
           - name: lister-utils
             mountPath: /pre-stop.sh
@@ -132,5 +126,9 @@ spec:
         secret:
           secretName: lister-credentials-secrets
           optional: true
+      - name: sentry-settings-for-celery-tasks
+        secret:
+          secretName: sentry-settings-for-celery-tasks
+          optional: true
 {{ end }}
 {{- end -}}
-- 
GitLab