Skip to content

production/cassandra_checks: Activate journal client

Except raw_extrinsic_metadata (ongoing analysis).

helm diff
[swh] Comparing changes between branches production and cassandra-checks-activate-journal-client-in-production (per environment)...
Your branch is up to date with 'origin/production'.
[swh] Generate config in production branch for environment staging, namespace swh...
[swh] Generate config in production branch for environment staging, namespace swh-cassandra...
[swh] Generate config in production branch for environment staging, namespace swh-cassandra-next-version...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment staging...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment staging...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment staging...
Your branch is up to date with 'origin/production'.
[swh] Generate config in production branch for environment production, namespace swh...
[swh] Generate config in production branch for environment production, namespace swh-cassandra...
[swh] Generate config in production branch for environment production, namespace swh-cassandra-next-version...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment production...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment production...
[swh] Generate config in cassandra-checks-activate-journal-client-in-production branch for environment production...


------------- diff for environment staging namespace swh -------------

No differences


------------- diff for environment staging namespace swh-cassandra -------------

No differences


------------- diff for environment staging namespace swh-cassandra-next-version -------------

No differences


------------- diff for environment production namespace swh -------------

No differences


------------- diff for environment production namespace swh-cassandra -------------

--- /tmp/swh-chart.swh.SwL3uJcO/production-swh-cassandra.before 2024-03-13 15:56:19.305510895 +0100
+++ /tmp/swh-chart.swh.SwL3uJcO/production-swh-cassandra.after  2024-03-13 15:56:19.957509837 +0100
@@ -129,20 +129,481 @@
 kind: Secret
 metadata:
   name: keda-storage-replayer-kafka-secrets
   namespace: swh-cassandra
 type: Opaque
 stringData:
   sasl: "scram_sha512"
   username: swh-cassandra-prod
   tls: "enable"
 ---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-content-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 1000
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - content
+      - skipped_content
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-directory-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 50
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - directory
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-extid-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 100
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - extid
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-metadata-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 1000
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - raw_extrinsic_metadata
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-origin-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 1000
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - origin
+      - origin_visit
+      - origin_visit_status
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-release-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 1000
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - release
+      prefix: swh.journal.objects
+      privileged: true
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-revision-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 1000
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - revision
+      prefix: swh.journal.objects
+      privileged: true
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-snapshot-template
+  namespace: swh-cassandra
+data:
+  config.yml.template: |
+    top_level_path: /volume/production-cassandra-checks
+    postgresql:
+      db: host=postgresql-storage-rw.internal.softwareheritage.org port=5432 dbname=softwareheritage user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - kafka1.internal.softwareheritage.org:9094
+        - kafka2.internal.softwareheritage.org:9094
+        - kafka3.internal.softwareheritage.org:9094
+        - kafka4.internal.softwareheritage.org:9094
+      batch_size: 50
+      cls: kafka
+      group_id: swh-archive-prod-checks
+      message.max.bytes: 524288000
+      object_types:
+      - snapshot
+      prefix: swh.journal.objects
+      sasl.mechanism: SCRAM-SHA-512
+      sasl.password: ${BROKER_USER_PASSWORD}
+      sasl.username: ${BROKER_USER}
+      security.protocol: SASL_SSL
+    cassandra:
+      hosts:
+
+      - cassandra01.internal.softwareheritage.org
+      - cassandra02.internal.softwareheritage.org
+      - cassandra03.internal.softwareheritage.org
+      - cassandra04.internal.softwareheritage.org
+      - cassandra05.internal.softwareheritage.org
+      - cassandra06.internal.softwareheritage.org
+      - cassandra07.internal.softwareheritage.org
+      - cassandra08.internal.softwareheritage.org
+      - cassandra09.internal.softwareheritage.org
+      - cassandra10.internal.softwareheritage.org
+      keyspace: swh
+      consistency_level: LOCAL_QUORUM
+
+      auth_provider:
+
+        cls: cassandra.auth.PlainTextAuthProvider
+        password: ${CASSANDRA_PASSWORD}
+        username: swh-ro
+
+      directory_entries_insert_algo: batch
+      objstorage:
+        cls: noop
+---
 # Source: swh/templates/graphql/configmap.yaml
 apiVersion: v1
 kind: ConfigMap
 metadata:
   namespace: swh-cassandra
   name: graphql-cassandra-configuration-template
 data:
   # TODO: rename to not have a dot in the name to allow testing
   config.yml: |
     storage:
@@ -11764,20 +12225,1100 @@
               memory: 10Mi
       volumes:
       - name: certificates
         secret:
           defaultMode: 420
           secretName: kedaorg-certs
       hostNetwork: false
       nodeSelector:
         kubernetes.io/os: linux
 ---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-content
+  name: cassandra-checks-content
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-content
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-content
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: b48fdaa431a9a9ffa4ca32b768f0441a1d89807b7726ad80fc0bd06bb513b8af
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-content
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-content-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-directory
+  name: cassandra-checks-directory
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-directory
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-directory
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: 2619299c3aa12c43df26f36b8cd024430c018ed577748a14396ee8e02ea64df2
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-directory
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-directory-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-extid
+  name: cassandra-checks-extid
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-extid
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-extid
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: 359c493dd7ff34ff3c5fb0e02ccb58a8ac7da73e42d86345a07098a9719c11d8
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-extid
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-extid-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-metadata
+  name: cassandra-checks-metadata
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-metadata
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-metadata
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: 21b51a6adb8623505d3d652db62bff8cd08f663b61ea2cab50a1d9ab415f0fe5
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-metadata
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-metadata-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-origin
+  name: cassandra-checks-origin
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-origin
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-origin
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: 685ff855c81a1035d2136cac680a9a124ba9295c16c8a75af138df4794b45f29
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-origin
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-origin-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-release
+  name: cassandra-checks-release
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-release
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-release
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: a2285078f5c3d19a87848b11d807e2f5edf0ec69418deb0c218192a873494596
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-release
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-release-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-revision
+  name: cassandra-checks-revision
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-revision
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-revision
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: 563c9a4baeae035b85e0f167233f11f357bc8c931fba0f45013320915a7bd7fc
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-revision
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-revision-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-snapshot
+  name: cassandra-checks-snapshot
+  namespace: swh-cassandra
+spec:
+  replicas: 2
+  selector:
+    matchLabels:
+      app: cassandra-checks-snapshot
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: cassandra-checks-snapshot
+      annotations:
+        # Force a rollout upgrade if the configuration changes
+        checksum/config: c5195206d29cd455093c6455d928a04efe5a424dc0ba650e49e1ad78b31ab75f
+    spec:
+      securityContext:
+        fsGroup: 1000
+      nodeSelector:
+        kubernetes.io/hostname: rancher-node-metal01
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          env:
+
+
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: CASSANDRA_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: common-secrets
+                key: cassandra-swh-ro-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+
+
+          - name: BROKER_USER
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-archive-broker-secret
+                key: BROKER_USER_PASSWORD
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          command:
+            - /entrypoints/prepare-configuration.sh
+          volumeMounts:
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: cassandra-checks-snapshot
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+
+          command:
+            - /opt/swh/entrypoint.sh
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/cassandra_checks:20240312.1
+          imagePullPolicy: IfNotPresent
+          env:
+          - name: LOG_LEVEL
+            value: INFO
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+
+          - name: cassandra-checks-volume
+            mountPath: /volume
+            readOnly: false
+
+      volumes:
+        - name: configuration
+          emptyDir: {}
+        - name: configuration-template
+          configMap:
+            name: cassandra-checks-snapshot-template
+            defaultMode: 0777
+            items:
+            - key: "config.yml.template"
+              path: "config.yml.template"
+        - name: config-utils
+          configMap:
+            name: config-utils
+            defaultMode: 0555
+
+        - name: cassandra-checks-volume
+          hostPath:
+            path: /volume
+            type: Directory
+---
 # Source: swh/templates/graphql/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: graphql-cassandra
   namespace: swh-cassandra
   labels:
     app: graphql-cassandra
 spec:
   revisionHistoryLimit: 2

Refs. swh/infra/sysadm-environment#4707

Merge request reports