Skip to content

cassandra_checks: Add chart to deploy journal client per object type

Antoine R. Dumont requested to merge check-cassandra-chart into production

This deploys instances of the cassandra-checks journal client in staging. For now, only 2 instances:

  • content (batch of 1000)
  • directory (batch of 50)
helm diff
[swh] Comparing changes between branches production and check-cassandra-chart (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 check-cassandra-chart branch for environment staging...
[swh] Generate config in check-cassandra-chart branch for environment staging...
[swh] Generate config in check-cassandra-chart 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 check-cassandra-chart branch for environment production...
[swh] Generate config in check-cassandra-chart branch for environment production...
[swh] Generate config in check-cassandra-chart branch for environment production...


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

No differences


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

--- /tmp/swh-chart.swh.KfPxGFZA/staging-swh-cassandra.before    2024-03-12 17:30:00.625417508 +0100
+++ /tmp/swh-chart.swh.KfPxGFZA/staging-swh-cassandra.after     2024-03-12 17:30:01.477416124 +0100
@@ -163,20 +163,112 @@
 kind: Secret
 metadata:
   name: keda-storage-replayer-kafka-secrets
   namespace: swh-cassandra
 type: Opaque
 stringData:
   sasl: "scram_sha512"
   username: swh-cassandra-stg
   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/staging-cassandra-checks
+    postgresql:
+      db: host=db1.internal.staging.swh.network port=5432 dbname=swh user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - journal2.internal.staging.swh.network:9094
+      batch_size: 1000
+      group_id: swh-gsa-test
+      message.max.bytes: 524288000
+      object_types:
+      - 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:
+
+      - cassandra1.internal.staging.swh.network
+      - cassandra2.internal.staging.swh.network
+      - cassandra3.internal.staging.swh.network
+      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/staging-cassandra-checks
+    postgresql:
+      db: host=db1.internal.staging.swh.network port=5432 dbname=swh user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - journal2.internal.staging.swh.network:9094
+      batch_size: 50
+      group_id: swh-gsa-test
+      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:
+
+      - cassandra1.internal.staging.swh.network
+      - cassandra2.internal.staging.swh.network
+      - cassandra3.internal.staging.swh.network
+      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/checker-deposit/configmap-utils.yaml
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: checker-deposit-utils
   namespace: swh-cassandra
 data:
   pre-stop-idempotent.sh: |
     #!/bin/bash

@@ -5662,20 +5754,35 @@
         auth_token: ${SVIX_AUTH_TOKEN}
         server_url: https://svix.internal.staging.swh.network
     journal:
       brokers:
         - journal2.internal.staging.swh.network
       auto_offset_reset: latest
       group_id: swh-archive-stg-webhooks
       object_types:
       - origin_visit_status
 ---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: cassandra-checks-pvc
+  namespace: swh-cassandra
+spec:
+  storageClassName: cephfs
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  resources:
+    requests:
+      storage: 20Gi
+---
 # Source: swh/charts/keda/templates/crds/crd-clustertriggerauthentications.yaml
 apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.12.0
   labels:
     app.kubernetes.io/name: keda-operator
     helm.sh/chart: keda-2.11.0
     app.kubernetes.io/component: operator
@@ -15969,20 +16076,270 @@
               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: 0b042b9696e12dfc8137e47eb1ecff1d8f85a91d66a245d73d0c6851c0982d8b
+    spec:
+      securityContext:
+        fsGroup: 1000
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      containers:
+        - 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-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: cassandra-checks-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: cassandra-checks-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
+        # Main container
+        - 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:20240311.2
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: cassandra-checks-volume
+            mountPath: /volume
+          env:
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+      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
+          persistentVolumeClaim:
+            claimName: cassandra-checks-pvc---
+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: 5ed4349f46275b0b197b9339f751770bf045d4b732a55c31afd4893cdc4f1474
+    spec:
+      securityContext:
+        fsGroup: 1000
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      containers:
+        - 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-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: cassandra-checks-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: cassandra-checks-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
+        # Main container
+        - 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:20240311.2
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: cassandra-checks-volume
+            mountPath: /volume
+          env:
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+      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
+          persistentVolumeClaim:
+            claimName: cassandra-checks-pvc
+---
 # Source: swh/templates/checker-deposit/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: checker-deposit
   namespace: swh-cassandra
   labels:
     app: checker-deposit
 spec:
   revisionHistoryLimit: 2


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

--- /tmp/swh-chart.swh.KfPxGFZA/staging-swh-cassandra-next-version.before       2024-03-12 17:30:00.881417092 +0100
+++ /tmp/swh-chart.swh.KfPxGFZA/staging-swh-cassandra-next-version.after        2024-03-12 17:30:01.713415742 +0100
@@ -141,20 +141,112 @@
 kind: Secret
 metadata:
   name: keda-storage-replayer-kafka-secrets
   namespace: swh-cassandra-next-version
 type: Opaque
 stringData:
   sasl: "scram_sha512"
   username: swh-cassandra-stg
   tls: "enable"
 ---
+# Source: swh/templates/cassandra-checks/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: cassandra-checks-content-template
+  namespace: swh-cassandra-next-version
+data:
+  config.yml.template: |
+    top_level_path: /volume/staging-cassandra-checks
+    postgresql:
+      db: host=db1.internal.staging.swh.network port=5432 dbname=swh user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - journal2.internal.staging.swh.network:9094
+      batch_size: 1000
+      group_id: swh-gsa-test
+      message.max.bytes: 524288000
+      object_types:
+      - 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:
+
+      - cassandra1.internal.staging.swh.network
+      - cassandra2.internal.staging.swh.network
+      - cassandra3.internal.staging.swh.network
+      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-next-version
+data:
+  config.yml.template: |
+    top_level_path: /volume/staging-cassandra-checks
+    postgresql:
+      db: host=db1.internal.staging.swh.network port=5432 dbname=swh user=guest password=${POSTGRESQL_PASSWORD}
+      objstorage:
+        cls: noop
+
+    journal_client:
+      brokers:
+        - journal2.internal.staging.swh.network:9094
+      batch_size: 50
+      group_id: swh-gsa-test
+      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:
+
+      - cassandra1.internal.staging.swh.network
+      - cassandra2.internal.staging.swh.network
+      - cassandra3.internal.staging.swh.network
+      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/cookers/configmap-utils.yaml
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: cookers-utils
   namespace: swh-cassandra-next-version
 data:
   pre-stop-idempotent.sh: |
     #!/bin/bash

@@ -1869,20 +1961,35 @@
     - swh.web.banners
     - swh.web.deposit
     - swh.web.inbound_email
     - swh.web.jslicenses
     - swh.web.mailmap
     - swh.web.metrics
     - swh.web.save_code_now
     - swh.web.save_origin_webhooks
     - swh.web.vault
 ---
+# Source: swh/templates/cassandra-checks/deployment.yaml
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: cassandra-checks-pvc
+  namespace: swh-cassandra
+spec:
+  storageClassName: cephfs
+  accessModes:
+    - ReadWriteMany
+  volumeMode: Filesystem
+  resources:
+    requests:
+      storage: 20Gi
+---
 # Source: swh/charts/keda/templates/crds/crd-clustertriggerauthentications.yaml
 apiVersion: apiextensions.k8s.io/v1
 kind: CustomResourceDefinition
 metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.12.0
   labels:
     app.kubernetes.io/name: keda-operator
     helm.sh/chart: keda-2.11.0
     app.kubernetes.io/component: operator
@@ -12019,20 +12126,270 @@
               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-next-version
+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: 4b3e51c4f7bb20e9ba1fdca0e0a05f761a071369c3bcc4babdb4b438d73add83
+    spec:
+      securityContext:
+        fsGroup: 1000
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      containers:
+        - 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-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: cassandra-checks-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: cassandra-checks-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
+        # Main container
+        - 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:20240311.2
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: cassandra-checks-volume
+            mountPath: /volume
+          env:
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+      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
+          persistentVolumeClaim:
+            claimName: cassandra-checks-pvc---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  labels:
+    app: cassandra-checks-directory
+  name: cassandra-checks-directory
+  namespace: swh-cassandra-next-version
+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: fa4a43629d6ec3433a17b2e5aad981043c10921604bae2bf1081c64537762c55
+    spec:
+      securityContext:
+        fsGroup: 1000
+
+      affinity:
+
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+
+      priorityClassName: swh-background-workload
+      containers:
+        - 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-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: cassandra-checks-broker-secret
+                key: BROKER_USER
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: BROKER_USER_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: cassandra-checks-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
+        # Main container
+        - 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:20240311.2
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: cassandra-checks-volume
+            mountPath: /volume
+          env:
+          - name: SWH_CONFIG_FILENAME
+            value: /etc/swh/config.yml
+      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
+          persistentVolumeClaim:
+            claimName: cassandra-checks-pvc
+---
 # Source: swh/templates/cookers/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: cooker-batch
   namespace: swh-cassandra-next-version
   labels:
     app: cooker-batch
 spec:
   revisionHistoryLimit: 2


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

No differences


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

No differences

Refs. swh/infra/sysadm-environment#4707

Edited by Antoine R. Dumont

Merge request reports