Skip to content

production: Deploy search & (storage + azure) storage rpc service in dynamic infra

Antoine R. Dumont requested to merge migrate-rpc-services-to-prod into production

It's simpler to review commit per commit (each helm-diff is related to the commit change):

  • swh.search [1]
  • swh.storage [2]
  • Make services using the read-only storage instance [3]

Note:

  • "[x]" means merged

[1]

make swh-helm-diff (search rpc)
[swh] Comparing changes between branches production and migrate-rpc-services-to-prod (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 migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod 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 migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod 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 -------------

--- /tmp/swh-chart.swh.mNLqGSHj/production-swh.before   2023-12-13 11:04:02.317550528 +0100
+++ /tmp/swh-chart.swh.mNLqGSHj/production-swh.after    2023-12-13 11:04:02.749550563 +0100
@@ -251,21 +251,21 @@
   config.yml: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
         url: http://saam.internal.softwareheritage.org:5002

     search:
       cls: remote
-      url: http://moma.internal.softwareheritage.org:5010
+      url: http://search-rpc-ingress

     debug: false

     introspection: true

     max_raw_content_size: 10000

     max_query_cost:
       anonymous: 50
       user: 500
@@ -5317,20 +5317,97 @@
 data:
   config.yml.template: |
     scrubber:
       cls: postgresql
       db: host=db.internal.softwareheritage.org port=5432 user=swh-scrubber dbname=swh-scrubber password=${SCRUBBER_POSTGRESQL_PASSWORD}
     storage:

         cls: postgresql
         db: host=massmoca.internal.softwareheritage.org port=5432 user=guest dbname=softwareheritage password=${POSTGRESQL_PASSWORD}
 ---
+# Source: swh/templates/search/journal-client-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: search-journal-client-indexed-configuration-template
+  namespace: swh
+data:
+  config.yml.template: |
+    search:
+      cls: remote
+      url: http://search-rpc-ingress
+    storage:
+      cls: remote
+      url: http://saam.internal.softwareheritage.org:5002
+    journal:
+      brokers:
+        - kafka1.internal.softwareheritage.org
+        - kafka2.internal.softwareheritage.org
+        - kafka3.internal.softwareheritage.org
+        - kafka4.internal.softwareheritage.org
+      group_id: swh.search.journal_client.indexed-v0.11
+      object_types:
+      - origin_intrinsic_metadata
+      - origin_extrinsic_metadata
+      prefix: swh.journal.indexed
+---
+# Source: swh/templates/search/journal-client-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: search-journal-client-objects-configuration-template
+  namespace: swh
+data:
+  config.yml.template: |
+    search:
+      cls: remote
+      url: http://search-rpc-ingress
+    storage:
+      cls: remote
+      url: http://saam.internal.softwareheritage.org:5002
+    journal:
+      brokers:
+        - kafka1.internal.softwareheritage.org
+        - kafka2.internal.softwareheritage.org
+        - kafka3.internal.softwareheritage.org
+        - kafka4.internal.softwareheritage.org
+      group_id: swh.search.journal_client-v0.11
+      object_types:
+      - origin
+      - origin_visit_status
+      prefix: swh.journal.objects
+---
+# Source: swh/templates/search/rpc-configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  namespace: swh
+  name: search-rpc-configuration-template
+data:
+  config.yml.template: |
+    search:
+
+      cls: elasticsearch
+      indexes:
+        origin:
+          index: origin-v0.11
+          read_alias: origin-read
+          write_alias: origin-write
+      hosts:
+
+        - host: search-esnode4.internal.softwareheritage.org
+          port: 9200
+        - host: search-esnode5.internal.softwareheritage.org
+          port: 9200
+        - host: search-esnode6.internal.softwareheritage.org
+          port: 9200
+---
 # Source: swh/templates/statsd-exporter/configmap.yaml
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: prometheus-statsd-exporter
   namespace: swh
 data:
   config.yml: |
     defaults:
       timer_type: histogram
@@ -15400,20 +15477,30 @@
   namespace: default
 spec:
   ports:
   - name: http
     port: 443
     protocol: TCP
     targetPort: 9443
   selector:
     app: keda-admission-webhooks
 ---
+# Source: swh/templates/external-services/cname.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: search-rpc-ingress
+  namespace: swh
+spec:
+  type: ExternalName
+  externalName: archive-production-rke2-ingress-nginx-controller.ingress-nginx.svc.cluster.local
+---
 # Source: swh/templates/graphql/service.yaml
 apiVersion: v1
 kind: Service
 metadata:
   name: graphql
   namespace: swh
 spec:
   type: ClusterIP
   selector:
     app: graphql
@@ -15451,20 +15538,35 @@
   namespace: swh
 spec:
   type: ClusterIP
   selector:
     app: scheduler-rpc
   ports:
     - port: 5008
       targetPort: 5008
       name: rpc
 ---
+# Source: swh/templates/search/rpc-service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: search-rpc
+  namespace: swh
+spec:
+  type: ClusterIP
+  selector:
+    app: search-rpc
+  ports:
+    - port: 5010
+      targetPort: 5010
+      name: rpc
+---
 # Source: swh/templates/statsd-exporter/service.yaml
 apiVersion: v1
 kind: Service
 metadata:
   name: prometheus-statsd-exporter
   namespace: swh
   labels:
     app: prometheus-statsd-exporter
 spec:
   type: ClusterIP
@@ -15992,21 +16094,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: graphql
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 547d1108924c26e9a377908838b7fdb97999d41d7aeb5c52efa8fc3b0d10a2a1
+        checksum/config: 4638e4ad458c5c9204149648fd843cc423171e8e3250edcb98bc8f36562ae9f9
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/rpc
                 operator: In
                 values:
                 - "true"
@@ -26819,20 +26921,343 @@
           name: scrubber-storagechecker-secondary-snapshot-references-template
           defaultMode: 0777
           items:
           - key: "config.yml.template"
             path: "config.yml.template"
       - name: database-utils
         configMap:
           name: database-utils
           defaultMode: 0555
 ---
+# Source: swh/templates/search/journal-client-deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: swh
+  name: search-journal-client-indexed
+  labels:
+    app: search-journal-client-indexed
+spec:
+  revisionHistoryLimit: 2
+  selector:
+    matchLabels:
+      app: search-journal-client-indexed
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: search-journal-client-indexed
+      annotations:
+        checksum/config: 4e3fed7fa56755e9a4ec6e5e8029227976a474753ef79e43c39693443bfccca5
+    spec:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+      priorityClassName: swh-normal-workload
+
+      initContainers:
+        - name: prepare-configuration
+          image: debian:bullseye
+          imagePullPolicy: IfNotPresent
+          command:
+          - /bin/bash
+          args:
+          - -c
+          - eval echo "\"$(</etc/swh/configuration-template/config.yml.template)\"" > /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: search-journal-client-indexed
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/search:20231205.2
+          command:
+          - /opt/swh/entrypoint.sh
+          args:
+          - swh
+          - --log-level
+          - INFO
+          - search
+          - --config-file
+          - /etc/swh/config.yml
+          - journal-client
+          - objects
+          env:
+            - name: STATSD_HOST
+              value: prometheus-statsd-exporter
+            - name: STATSD_PORT
+              value: "9125"
+            - name: SWH_CONFIG_FILENAME
+              value: /etc/swh/config.yml
+            - name: LOG_LEVEL
+              value: INFO
+            - name: SWH_SENTRY_ENVIRONMENT
+              value: production
+            - name: SWH_MAIN_PACKAGE
+              value: swh.search
+            - name: SWH_SENTRY_DSN
+              valueFrom:
+                secretKeyRef:
+                  name: swh-search-sentry-secret
+                  key: sentry-dsn
+                  # if the setting doesn't exist, sentry issue pushes will be disabled
+                  optional: false
+            - name: SWH_SENTRY_DISABLE_LOGGING_EVENTS
+              value: "true"
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+      volumes:
+      - name: configuration
+        emptyDir: {}
+      - name: configuration-template
+        configMap:
+          name: search-journal-client-indexed-configuration-template
+          items:
+          - key: "config.yml.template"
+            path: "config.yml.template"
+---
+# Source: swh/templates/search/journal-client-deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: swh
+  name: search-journal-client-objects
+  labels:
+    app: search-journal-client-objects
+spec:
+  revisionHistoryLimit: 2
+  selector:
+    matchLabels:
+      app: search-journal-client-objects
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: search-journal-client-objects
+      annotations:
+        checksum/config: ff78968853b36a07f33030c3cc75fde0193b517154918320d3060b555c4cab13
+    spec:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/journal_client
+                operator: In
+                values:
+                - "true"
+      priorityClassName: swh-normal-workload
+
+      initContainers:
+        - name: prepare-configuration
+          image: debian:bullseye
+          imagePullPolicy: IfNotPresent
+          command:
+          - /bin/bash
+          args:
+          - -c
+          - eval echo "\"$(</etc/swh/configuration-template/config.yml.template)\"" > /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: search-journal-client-objects
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/search:20231205.2
+          command:
+          - /opt/swh/entrypoint.sh
+          args:
+          - swh
+          - --log-level
+          - INFO
+          - search
+          - --config-file
+          - /etc/swh/config.yml
+          - journal-client
+          - objects
+          env:
+            - name: STATSD_HOST
+              value: prometheus-statsd-exporter
+            - name: STATSD_PORT
+              value: "9125"
+            - name: SWH_CONFIG_FILENAME
+              value: /etc/swh/config.yml
+            - name: LOG_LEVEL
+              value: INFO
+            - name: SWH_SENTRY_ENVIRONMENT
+              value: production
+            - name: SWH_MAIN_PACKAGE
+              value: swh.search
+            - name: SWH_SENTRY_DSN
+              valueFrom:
+                secretKeyRef:
+                  name: swh-search-sentry-secret
+                  key: sentry-dsn
+                  # if the setting doesn't exist, sentry issue pushes will be disabled
+                  optional: false
+            - name: SWH_SENTRY_DISABLE_LOGGING_EVENTS
+              value: "true"
+          imagePullPolicy: IfNotPresent
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+      volumes:
+      - name: configuration
+        emptyDir: {}
+      - name: configuration-template
+        configMap:
+          name: search-journal-client-objects-configuration-template
+          items:
+          - key: "config.yml.template"
+            path: "config.yml.template"
+---
+# Source: swh/templates/search/rpc-deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: swh
+  name: search-rpc
+  labels:
+    app: search-rpc
+spec:
+  revisionHistoryLimit: 2
+  selector:
+    matchLabels:
+      app: search-rpc
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: search-rpc
+      annotations:
+        checksum/config: 2a3fca8a6669b82773189a047b34e1cd9ab7b55f49dbd00deae66214a3c4bc30
+    spec:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/rpc
+                operator: In
+                values:
+                - "true"
+      priorityClassName: swh-frontend-rpc
+
+      initContainers:
+        - name: prepare-configuration
+          image: debian:bullseye
+          imagePullPolicy: IfNotPresent
+          command:
+          - /bin/bash
+          args:
+          - -c
+          - eval echo "\"$(</etc/swh/configuration-template/config.yml.template)\"" > /etc/swh/config.yml
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+      containers:
+        - name: search-rpc
+          resources:
+            requests:
+              memory: 512Mi
+              cpu: 500m
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/search:20231205.2
+          imagePullPolicy: IfNotPresent
+          ports:
+            - containerPort: 5010
+              name: rpc
+          readinessProbe:
+            httpGet:
+              path: /
+              port: rpc
+            initialDelaySeconds: 15
+            failureThreshold: 30
+            periodSeconds: 5
+          livenessProbe:
+            httpGet:
+              path: /
+              port: rpc
+            initialDelaySeconds: 10
+            periodSeconds: 5
+          command:
+            - /bin/bash
+          args:
+            - -c
+            - /opt/swh/entrypoint.sh
+          env:
+            - name: THREADS
+              value: "5"
+            - name: WORKERS
+              value: "4"
+            - name: TIMEOUT
+              value: "3600"
+            - name: STATSD_HOST
+              value: prometheus-statsd-exporter
+            - name: STATSD_PORT
+              value: "9125"
+            - name: LOG_LEVEL
+              value: INFO
+            - name: SWH_SENTRY_ENVIRONMENT
+              value: production
+            - name: SWH_MAIN_PACKAGE
+              value: swh.search
+            - name: SWH_SENTRY_DSN
+              valueFrom:
+                secretKeyRef:
+                  name: swh-search-sentry-secret
+                  key: sentry-dsn
+                  # if the setting doesn't exist, sentry issue pushes will be disabled
+                  optional: false
+            - name: SWH_SENTRY_DISABLE_LOGGING_EVENTS
+              value: "true"
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+      volumes:
+      - name: configuration
+        emptyDir: {}
+      - name: configuration-template
+        configMap:
+          name: search-rpc-configuration-template
+          items:
+          - key: "config.yml.template"
+            path: "config.yml.template"
+---
 # Source: swh/templates/statsd-exporter/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: prometheus-statsd-exporter
   namespace: swh
   labels:
     app: prometheus-statsd-exporter
 spec:
   replicas: 1
@@ -27198,20 +27623,43 @@
           defaultMode: 0777
           items:
           - key: "config.yml.template"
             path: "config.yml.template"

       - name: toolbox-script-utils
         configMap:
           name: toolbox-script-utils
           defaultMode: 0555
 ---
+# Source: swh/templates/search/rpc-autoscale.yaml
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  namespace: swh
+  name: search-rpc
+  labels:
+    app: search-rpc
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: search-rpc
+  minReplicas: 2
+  maxReplicas: 4
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 100
+---
 # Source: swh/templates/scheduler/update-metrics-cronjob.yaml
 apiVersion: batch/v1
 kind: CronJob
 metadata:
   name: scheduler-update-metrics-cronjob
 spec:
   # By default, every 4h at midnight
   schedule: "27 3-23/4 * * *"
   concurrencyPolicy: Forbid
   jobTemplate:
@@ -27380,20 +27828,46 @@
     http:
       paths:
       - path: /scheduler_metrics/get
         pathType: Prefix
         backend:
           service:
             name: scheduler-rpc
             port:
               number: 5008
 ---
+# Source: swh/templates/search/rpc-ingress.yaml
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  namespace: swh
+  name: search-rpc-ingress-default
+  annotations:
+    nginx.ingress.kubernetes.io/proxy-body-size: 4G
+    nginx.ingress.kubernetes.io/proxy-connect-timeout: "90"
+    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
+    nginx.ingress.kubernetes.io/proxy-request-buffering: "on"
+    nginx.ingress.kubernetes.io/proxy-send-timeout: "90"
+
+spec:
+  rules:
+  - host: search-rpc-ingress
+    http:
+      paths:
+      - path: /
+        pathType: Prefix
+        backend:
+          service:
+            name: search-rpc
+            port:
+              number: 5010
+---
 # Source: swh/charts/keda/templates/metrics-server/apiservice.yaml
 apiVersion: apiregistration.k8s.io/v1
 kind: APIService
 metadata:
   annotations:
   labels:
     app.kubernetes.io/name: v1beta1.external.metrics.k8s.io
     helm.sh/chart: keda-2.11.0
     app.kubernetes.io/component: operator
     app.kubernetes.io/managed-by: Helm


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

--- /tmp/swh-chart.swh.mNLqGSHj/production-swh-cassandra.before 2023-12-13 11:04:02.485550542 +0100
+++ /tmp/swh-chart.swh.mNLqGSHj/production-swh-cassandra.after  2023-12-13 11:04:02.917550576 +0100
@@ -144,21 +144,21 @@
   namespace: swh-cassandra
 data:
   # TODO: rename to not have a dot in the name to allow testing
   config.yml: |
     storage:
       cls: remote
       url: http://storage-cassandra:5002

     search:
       cls: remote
-      url: http://moma.internal.softwareheritage.org:5010
+      url: http://search-rpc-ingress

     debug: false

     introspection: true

     max_raw_content_size: 10000

     max_query_cost:
       anonymous: 50
       user: 500
@@ -1419,21 +1419,21 @@
 data:
   config.yml.template: |
     instance_name: webapp-cassandra.internal.softwareheritage.org
     allowed_hosts:
       - webapp-cassandra.internal.softwareheritage.org
     storage:
       cls: remote
       url: http://storage-cassandra:5002
     search:
       cls: remote
-      url: http://moma.internal.softwareheritage.org:5010
+      url: http://search-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     vault:
       cls: remote
       url: http://vangogh.euwest.azure.internal.softwareheritage.org:5005/
     indexer_storage:
       cls: remote
       url: http://saam.internal.softwareheritage.org:5007/
     counters_backend: swh-counters
@@ -11091,20 +11091,30 @@
   namespace: default
 spec:
   ports:
   - name: http
     port: 443
     protocol: TCP
     targetPort: 9443
   selector:
     app: keda-admission-webhooks
 ---
+# Source: swh/templates/external-services/cname.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: search-rpc-ingress
+  namespace: swh-cassandra
+spec:
+  type: ExternalName
+  externalName: archive-production-rke2-ingress-nginx-controller.ingress-nginx.svc.cluster.local
+---
 # Source: swh/templates/graphql/service.yaml
 apiVersion: v1
 kind: Service
 metadata:
   name: graphql
   namespace: swh-cassandra
 spec:
   type: ClusterIP
   selector:
     app: graphql
@@ -11542,21 +11552,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: graphql
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 22f3c0100d41d5a3d481482a82fd31d746b97913a76c9eec1be6dd4136e8a186
+        checksum/config: 14ee4acbee58c8d3e90ceedec2cf10311ca69987dbf960f268111d7c8e8bee29
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/rpc
                 operator: In
                 values:
                 - "true"
@@ -14195,21 +14205,21 @@
       app: web
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: web
       annotations:
-        checksum/config: 9a91046a3e85f7a73ca977a8fe2010dc763fd86b2c1ee070aa6987fa10032376
+        checksum/config: ba9fdc25c5428f5b90f51e52a464e398b9ec2752dabf40e6e0a937957ba456a1
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/web
                 operator: In
                 values:
                 - "true"

[2]

make swh-helm-diff (storage rpc)
[swh] Comparing changes between branches production and migrate-rpc-services-to-prod (per environment)...
Your branch is ahead of 'origin/production' by 1 commit.
  (use "git push" to publish your local commits)
[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 migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment staging...
Your branch is ahead of 'origin/production' by 1 commit.
  (use "git push" to publish your local commits)
[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 migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod 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 -------------

--- /tmp/swh-chart.swh.Lc0i0BC6/production-swh.before   2023-12-13 11:29:41.213454477 +0100
+++ /tmp/swh-chart.swh.Lc0i0BC6/production-swh.after    2023-12-13 11:29:41.677454411 +0100
@@ -5458,20 +5458,114 @@
             - 0.6
             - 0.65
             - 0.7
             - 0.75
             - 0.8
             - 0.85
             - 0.9
             - 0.95
             - 1.
 ---
+# Source: swh/templates/storage/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  namespace: swh
+  name: storage-postgresql-azure-readonly-configuration-template
+data:
+  config.yml.template: |
+    storage:
+      cls: pipeline
+      steps:
+      - cls: retry
+      - cls: postgresql
+        db: host=db.internal.softwareheritage.org port=5432 user=guest dbname=softwareheritage password=${POSTGRESQL_PASSWORD}
+        objstorage:
+          cls: multiplexer
+          objstorages:
+          - cls: filtered
+            filters_conf:
+            - type: readonly
+            storage_conf:
+              accounts:
+                "0":
+                  account_name: ${ACCOUNT_NAME_0}
+                  api_secret_key: ${API_SECRET_KEY_0}
+                  container_name: contents
+                "1":
+                  account_name: ${ACCOUNT_NAME_1}
+                  api_secret_key: ${API_SECRET_KEY_1}
+                  container_name: contents
+                "2":
+                  account_name: ${ACCOUNT_NAME_2}
+                  api_secret_key: ${API_SECRET_KEY_2}
+                  container_name: contents
+                "3":
+                  account_name: ${ACCOUNT_NAME_3}
+                  api_secret_key: ${API_SECRET_KEY_3}
+                  container_name: contents
+                "4":
+                  account_name: ${ACCOUNT_NAME_4}
+                  api_secret_key: ${API_SECRET_KEY_4}
+                  container_name: contents
+                "5":
+                  account_name: ${ACCOUNT_NAME_5}
+                  api_secret_key: ${API_SECRET_KEY_5}
+                  container_name: contents
+                "6":
+                  account_name: ${ACCOUNT_NAME_6}
+                  api_secret_key: ${API_SECRET_KEY_6}
+                  container_name: contents
+                "7":
+                  account_name: ${ACCOUNT_NAME_7}
+                  api_secret_key: ${API_SECRET_KEY_7}
+                  container_name: contents
+                "8":
+                  account_name: ${ACCOUNT_NAME_8}
+                  api_secret_key: ${API_SECRET_KEY_8}
+                  container_name: contents
+                "9":
+                  account_name: ${ACCOUNT_NAME_9}
+                  api_secret_key: ${API_SECRET_KEY_9}
+                  container_name: contents
+                a:
+                  account_name: ${ACCOUNT_NAME_10}
+                  api_secret_key: ${API_SECRET_KEY_10}
+                  container_name: contents
+                b:
+                  account_name: ${ACCOUNT_NAME_11}
+                  api_secret_key: ${API_SECRET_KEY_11}
+                  container_name: contents
+                c:
+                  account_name: ${ACCOUNT_NAME_12}
+                  api_secret_key: ${API_SECRET_KEY_12}
+                  container_name: contents
+                d:
+                  account_name: ${ACCOUNT_NAME_13}
+                  api_secret_key: ${API_SECRET_KEY_13}
+                  container_name: contents
+                e:
+                  account_name: ${ACCOUNT_NAME_14}
+                  api_secret_key: ${API_SECRET_KEY_14}
+                  container_name: contents
+                f:
+                  account_name: ${ACCOUNT_NAME_15}
+                  api_secret_key: ${API_SECRET_KEY_15}
+                  container_name: contents
+              cls: azure-prefixed
+          - cls: filtered
+            filters_conf:
+            - type: readonly
+            storage_conf:
+              cls: remote
+              url: http://objstorage.internal.softwareheritage.org:5003/
+---
 # Source: swh/templates/toolbox/configmap.yaml
 apiVersion: v1
 kind: ConfigMap
 metadata:
   name: toolbox-indexer-storage-template
   namespace: swh
 data:
   config.yml.template: |
     indexer_storage:
       cls: postgresql
@@ -15574,20 +15668,35 @@
     app: prometheus-statsd-exporter
   ports:
     - name: statsd
       port: 9125
       targetPort: 9125
       protocol: UDP
     - name: http
       port: 9102
       targetPort: 9102
 ---
+# Source: swh/templates/storage/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+  name: storage-postgresql-azure-readonly
+  namespace: swh
+spec:
+  type: ClusterIP
+  selector:
+    app: storage-postgresql-azure-readonly
+  ports:
+    - port: 5002
+      targetPort: 5002
+      name: rpc
+---
 # Source: swh/charts/keda/templates/manager/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: keda-operator
   namespace: default
   annotations:
     {}
   labels:
     app: keda-operator
@@ -27282,20 +27391,383 @@
         volumeMounts:
           - name: config
             mountPath: /etc/prometheus/statsd-mapping.yml
             subPath: config.yml
             readOnly: true
       volumes:
         - name: config
           configMap:
             name: prometheus-statsd-exporter
 ---
+# Source: swh/templates/storage/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  namespace: swh
+  name: storage-postgresql-azure-readonly
+  labels:
+    app: storage-postgresql-azure-readonly
+spec:
+  revisionHistoryLimit: 2
+  selector:
+    matchLabels:
+      app: storage-postgresql-azure-readonly
+  strategy:
+    type: RollingUpdate
+    rollingUpdate:
+      maxSurge: 1
+  template:
+    metadata:
+      labels:
+        app: storage-postgresql-azure-readonly
+      annotations:
+        checksum/config: 58e997573c84ea09fbcea0586f32d39c5f75001523a94486ded7227b98f2419d
+        checksum/database-utils: 95e3ec2d5d9a9195227631abff0736a8d94bcbcc795abf56981a586844da0c79
+        checksum/config-utils: 0cce256531366ac8ea2a0bde2a8f10937284a0f599f45fabe6babbbc096e179d
+    spec:
+      affinity:
+        nodeAffinity:
+          requiredDuringSchedulingIgnoredDuringExecution:
+            nodeSelectorTerms:
+            - matchExpressions:
+              - key: swh/storage
+                operator: In
+                values:
+                - "true"
+      priorityClassName: swh-frontend-rpc
+      initContainers:
+        - name: prepare-configuration
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
+          imagePullPolicy: IfNotPresent
+          command:
+          - /entrypoints/prepare-configuration.sh
+          env:
+
+
+          - name: ACCOUNT_NAME_0
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 0_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_1
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 1_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_10
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 10_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_11
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 11_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_12
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 12_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_13
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 13_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_14
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 14_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_15
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 15_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_2
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 2_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_3
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 3_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_4
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 4_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_5
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 5_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_6
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 6_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_7
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 7_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_8
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 8_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: ACCOUNT_NAME_9
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 9_account_name
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_0
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 0_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_1
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 1_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_10
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 10_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_11
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 11_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_12
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 12_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_13
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 13_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_14
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 14_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_15
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 15_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_2
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 2_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_3
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 3_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_4
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 4_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_5
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 5_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_6
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 6_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_7
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 7_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_8
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 8_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: API_SECRET_KEY_9
+            valueFrom:
+              secretKeyRef:
+                name: swh-objstorage-config
+                key: 9_api_secret_key
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          - name: POSTGRESQL_PASSWORD
+            valueFrom:
+              secretKeyRef:
+                name: swh-storage-postgresql-common-secret
+                key: postgres-guest-password
+                # 'name' secret must exist & include that ^ key
+                optional: false
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+          - name: configuration-template
+            mountPath: /etc/swh/configuration-template
+          - name: config-utils
+            mountPath: /entrypoints
+            readOnly: true
+
+
+      containers:
+        - name: storage-postgresql-azure-readonly
+          resources:
+            requests:
+              memory: 1500Mi
+              cpu: 500m
+          image: container-registry.softwareheritage.org/swh/infra/swh-apps/storage:20231205.1
+          imagePullPolicy: IfNotPresent
+          ports:
+            - containerPort: 5002
+              name: rpc
+          readinessProbe:
+            httpGet:
+              path: /
+              port: rpc
+            initialDelaySeconds: 15
+            failureThreshold: 30
+            periodSeconds: 5
+          livenessProbe:
+            httpGet:
+              path: /
+              port: rpc
+            initialDelaySeconds: 10
+            periodSeconds: 5
+          command:
+          - /bin/bash
+          args:
+          - -c
+          - /opt/swh/entrypoint.sh
+          env:
+            - name: THREADS
+              value: "4"
+            - name: WORKERS
+              value: "8"
+            - name: TIMEOUT
+              value: "60"
+            - name: STATSD_HOST
+              value: prometheus-statsd-exporter
+            - name: STATSD_PORT
+              value: "9125"
+            - name: LOG_LEVEL
+              value: "INFO"
+            - name: SWH_SENTRY_ENVIRONMENT
+              value: production
+            - name: SWH_MAIN_PACKAGE
+              value: swh.storage
+            - name: SWH_SENTRY_DSN
+              valueFrom:
+                secretKeyRef:
+                  name: common-secrets
+                  key: storage-sentry-dsn
+                  # 'name' secret should exist & include key
+                  # if the setting doesn't exist, sentry pushes will be disabled
+                  optional: true
+            - name: SWH_SENTRY_DISABLE_LOGGING_EVENTS
+              value: "true"
+          volumeMounts:
+          - name: configuration
+            mountPath: /etc/swh
+      volumes:
+      - name: configuration
+        emptyDir: {}
+      - name: configuration-template
+        configMap:
+          name: storage-postgresql-azure-readonly-configuration-template
+          items:
+          - key: "config.yml.template"
+            path: "config.yml.template"
+      - name: database-utils
+        configMap:
+          name: database-utils
+          defaultMode: 0555
+      - name: config-utils
+        configMap:
+          name: config-utils
+          defaultMode: 0555
+---
 # Source: swh/templates/toolbox/deployment.yaml
 apiVersion: apps/v1
 kind: Deployment
 metadata:
   name: swh-toolbox
   namespace: swh
   labels:
     app: swh-toolbox
 spec:
   revisionHistoryLimit: 2
@@ -27646,20 +28118,43 @@
   minReplicas: 2
   maxReplicas: 4
   metrics:
   - type: Resource
     resource:
       name: cpu
       target:
         type: Utilization
         averageUtilization: 100
 ---
+# Source: swh/templates/storage/autoscaling.yaml
+apiVersion: autoscaling/v2
+kind: HorizontalPodAutoscaler
+metadata:
+  namespace: swh
+  name: storage-postgresql-azure-readonly
+  labels:
+    app: storage-postgresql-azure-readonly
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: storage-postgresql-azure-readonly
+  minReplicas: 2
+  maxReplicas: 10
+  metrics:
+  - type: Resource
+    resource:
+      name: cpu
+      target:
+        type: Utilization
+        averageUtilization: 150
+---
 # Source: swh/templates/scheduler/update-metrics-cronjob.yaml
 apiVersion: batch/v1
 kind: CronJob
 metadata:
   name: scheduler-update-metrics-cronjob
 spec:
   # By default, every 4h at midnight
   schedule: "27 3-23/4 * * *"
   concurrencyPolicy: Forbid
   jobTemplate:
@@ -27854,20 +28349,44 @@
     http:
       paths:
       - path: /
         pathType: Prefix
         backend:
           service:
             name: search-rpc
             port:
               number: 5010
 ---
+# Source: swh/templates/storage/ingress.yaml
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  namespace: swh
+  name: storage-postgresql-azure-readonly-ingress-default
+  annotations:
+    nginx.ingress.kubernetes.io/whitelist-source-range: 192.168.101.0/24
+    nginx.ingress.kubernetes.io/proxy-body-size: 4G
+    nginx.ingress.kubernetes.io/proxy-buffering: "on"
+
+spec:
+  rules:
+  - host: storage-postgresql-read-only-rpc-ingress
+    http:
+      paths:
+      - path: /
+        pathType: Prefix
+        backend:
+          service:
+            name: storage-postgresql-azure-readonly
+            port:
+              number: 5002
+---
 # Source: swh/charts/keda/templates/metrics-server/apiservice.yaml
 apiVersion: apiregistration.k8s.io/v1
 kind: APIService
 metadata:
   annotations:
   labels:
     app.kubernetes.io/name: v1beta1.external.metrics.k8s.io
     helm.sh/chart: keda-2.11.0
     app.kubernetes.io/component: operator
     app.kubernetes.io/managed-by: Helm


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

--- /tmp/swh-chart.swh.Lc0i0BC6/production-swh-cassandra.before 2023-12-13 11:29:41.401454450 +0100
+++ /tmp/swh-chart.swh.Lc0i0BC6/production-swh-cassandra.after  2023-12-13 11:29:41.849454386 +0100
@@ -13764,238 +13764,238 @@
           image: container-registry.softwareheritage.org/swh/infra/swh-apps/utils:20231211.1
           imagePullPolicy: IfNotPresent
           command:
           - /entrypoints/prepare-configuration.sh
           env:


           - name: ACCOUNT_NAME_0
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 0_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_1
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 1_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_10
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 10_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_11
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 11_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_12
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 12_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_13
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 13_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_14
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 14_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_15
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 15_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_2
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 2_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_3
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 3_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_4
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 4_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_5
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 5_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_6
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 6_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_7
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 7_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_8
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 8_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: ACCOUNT_NAME_9
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 9_account_name
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_0
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 0_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_1
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 1_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_10
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 10_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_11
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 11_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_12
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 12_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_13
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 13_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_14
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 14_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_15
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 15_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_2
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 2_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_3
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 3_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_4
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 4_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_5
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 5_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_6
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 6_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_7
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 7_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_8
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 8_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: API_SECRET_KEY_9
             valueFrom:
               secretKeyRef:
-                name: swh-cassandra-objstorage-config
+                name: swh-objstorage-config
                 key: 9_api_secret_key
                 # 'name' secret must exist & include that ^ key
                 optional: false
           - name: CASSANDRA_PASSWORD
             valueFrom:
               secretKeyRef:
                 name: common-secrets
                 key: cassandra-swh-rw-password
                 # 'name' secret must exist & include that ^ key
                 optional: false

[3]

make swh-helm-diff (migrate services to use storage rpc)
[swh] Comparing changes between branches production and migrate-rpc-services-to-prod (per environment)...
Your branch is ahead of 'origin/production' by 2 commits.
  (use "git push" to publish your local commits)
[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 migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment staging...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment staging...
Your branch is ahead of 'origin/production' by 2 commits.
  (use "git push" to publish your local commits)
[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 migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod branch for environment production...
[swh] Generate config in migrate-rpc-services-to-prod 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 -------------

--- /tmp/swh-chart.swh.sOuiUH0l/production-swh.before   2023-12-13 12:22:54.696905114 +0100
+++ /tmp/swh-chart.swh.sOuiUH0l/production-swh.after    2023-12-13 12:22:55.152904990 +0100
@@ -172,21 +172,21 @@
   name: checker-deposit-template
   namespace: swh
 data:
   config.yml.template: |
     extraction_dir: "/tmp/swh.checker.deposit/"
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_modules:
       - swh.deposit.loader.tasks
       task_queues:
       - swh.deposit.loader.tasks.ChecksDepositTsk
     deposit:
       url: https://deposit.softwareheritage.org/1/private/
       auth:
@@ -247,21 +247,21 @@
   name: graphql
   namespace: swh
 data:
   # TODO: rename to not have a dot in the name to allow testing
   config.yml: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress

     search:
       cls: remote
       url: http://search-rpc-ingress

     debug: false

     introspection: true

     max_raw_content_size: 10000
@@ -312,21 +312,21 @@
 metadata:
   name: lister-bitbucket-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.bitbucket.tasks.IncrementalBitBucketLister
       - swh.lister.bitbucket.tasks.FullBitBucketRelister

@@ -406,21 +406,21 @@
 metadata:
   name: lister-bower-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.bower.tasks.BowerListerTask

       sentry_settings_for_celery_tasks:
@@ -499,21 +499,21 @@
 metadata:
   name: lister-cgit-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.cgit.tasks.CGitListerTask

       sentry_settings_for_celery_tasks:
@@ -592,21 +592,21 @@
 metadata:
   name: lister-cran-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.cran.tasks.CRANListerTask

       sentry_settings_for_celery_tasks:
@@ -685,21 +685,21 @@
 metadata:
   name: lister-debian-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.debian.tasks.DebianListerTask

       sentry_settings_for_celery_tasks:
@@ -778,21 +778,21 @@
 metadata:
   name: lister-gitea-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gitea.tasks.IncrementalGiteaLister
       - swh.lister.gitea.tasks.RangeGiteaLister
       - swh.lister.gitea.tasks.FullGiteaRelister
@@ -873,21 +873,21 @@
 metadata:
   name: lister-github-full-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.github.tasks.FullGitHubRelister
       - swh.lister.github.tasks.RangeGitHubLister

@@ -967,21 +967,21 @@
 metadata:
   name: lister-github-incremental-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.github.tasks.IncrementalGitHubLister

       sentry_settings_for_celery_tasks:
@@ -1060,21 +1060,21 @@
 metadata:
   name: lister-gitiles-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gitiles.tasks.GitilesListerTask

       sentry_settings_for_celery_tasks:
@@ -1153,21 +1153,21 @@
 metadata:
   name: lister-gitlab-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gitlab.tasks.IncrementalGitLabLister
       - swh.lister.gitlab.tasks.FullGitLabRelister

@@ -1247,21 +1247,21 @@
 metadata:
   name: lister-gitweb-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gitweb.tasks.GitwebListerTask

       sentry_settings_for_celery_tasks:
@@ -1340,21 +1340,21 @@
 metadata:
   name: lister-gnu-full-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gnu.tasks.GNUListerTask

       sentry_settings_for_celery_tasks:
@@ -1433,21 +1433,21 @@
 metadata:
   name: lister-gogs-full-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.gogs.tasks.FullGogsRelister

       sentry_settings_for_celery_tasks:
@@ -1526,21 +1526,21 @@
 metadata:
   name: lister-golang-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.golang.tasks.FullGolangLister
       - swh.lister.golang.tasks.IncrementalGolangLister

@@ -1620,21 +1620,21 @@
 metadata:
   name: lister-launchpad-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.launchpad.tasks.FullLaunchpadLister
       - swh.lister.launchpad.tasks.IncrementalLaunchpadLister

@@ -1714,21 +1714,21 @@
 metadata:
   name: lister-maven-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.maven.tasks.FullMavenLister
       - swh.lister.maven.tasks.IncrementalMavenLister

@@ -1808,21 +1808,21 @@
 metadata:
   name: lister-npm-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.npm.tasks.NpmListerTask

       sentry_settings_for_celery_tasks:
@@ -1901,21 +1901,21 @@
 metadata:
   name: lister-opam-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.opam.tasks.OpamListerTask

       sentry_settings_for_celery_tasks:
@@ -1994,21 +1994,21 @@
 metadata:
   name: lister-packagist-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.packagist.tasks.PackagistListerTask

       sentry_settings_for_celery_tasks:
@@ -2087,21 +2087,21 @@
 metadata:
   name: lister-pagure-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.pagure.tasks.PagureListerTask

       sentry_settings_for_celery_tasks:
@@ -2180,21 +2180,21 @@
 metadata:
   name: lister-phabricator-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.phabricator.tasks.FullPhabricatorLister

       sentry_settings_for_celery_tasks:
@@ -2273,21 +2273,21 @@
 metadata:
   name: lister-pubdev-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.pubdev.tasks.PubDevListerTask

       sentry_settings_for_celery_tasks:
@@ -2366,21 +2366,21 @@
 metadata:
   name: lister-pypi-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.pypi.tasks.PyPIListerTask

       sentry_settings_for_celery_tasks:
@@ -2459,21 +2459,21 @@
 metadata:
   name: lister-rpm-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.rpm.tasks.FullRPMLister
       - swh.lister.rpm.tasks.IncrementalRPMLister

@@ -2553,21 +2553,21 @@
 metadata:
   name: lister-sourceforge-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.sourceforge.tasks.FullSourceForgeLister
       - swh.lister.sourceforge.tasks.IncrementalSourceForgeLister

@@ -2647,21 +2647,21 @@
 metadata:
   name: lister-stagit-template
   namespace: swh
 data:
   config.yml.template: |
     storage:
       cls: pipeline
       steps:
       - cls: retry
       - cls: remote
-        url: http://saam.internal.softwareheritage.org:5002
+        url: http://storage-rpc-ingress
     scheduler:
       cls: remote
       url: http://scheduler.internal.softwareheritage.org
     celery:
       task_broker: amqp://swhconsumer:${AMQP_PASSWORD}@rabbitmq.internal.softwareheritage.org:5672/%2f
       task_acks_late: true
       task_queues:
       - swh.lister.stagit.tasks.StagitListerTask

       sentry_settings_for_celery_tasks:
@@ -5330,21 +5330,21 @@
 metadata:
   name: search-journal-client-indexed-configuration-template
   namespace: swh
 data:
   config.yml.template: |
     search:
       cls: remote
       url: http://search-rpc-ingress
     storage:
       cls: remote
-      url: http://saam.internal.softwareheritage.org:5002
+      url: http://storage-rpc-ingress
     journal:
       brokers:
         - kafka1.internal.softwareheritage.org
         - kafka2.internal.softwareheritage.org
         - kafka3.internal.softwareheritage.org
         - kafka4.internal.softwareheritage.org
       group_id: swh.search.journal_client.indexed-v0.11
       object_types:
       - origin_intrinsic_metadata
       - origin_extrinsic_metadata
@@ -5356,21 +5356,21 @@
 metadata:
   name: search-journal-client-objects-configuration-template
   namespace: swh
 data:
   config.yml.template: |
     search:
       cls: remote
       url: http://search-rpc-ingress
     storage:
       cls: remote
-      url: http://saam.internal.softwareheritage.org:5002
+      url: http://storage-rpc-ingress
     journal:
       brokers:
         - kafka1.internal.softwareheritage.org
         - kafka2.internal.softwareheritage.org
         - kafka3.internal.softwareheritage.org
         - kafka4.internal.softwareheritage.org
       group_id: swh.search.journal_client-v0.11
       object_types:
       - origin
       - origin_visit_status
@@ -16042,21 +16042,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: checker-deposit
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: e0060dd8509216fa8803ef4a5bab4e42579a0f80e4f05300e24ba31bd1efd01a
+        checksum/config: 778b0a18637a8c791d0b5c31f1707f12c39491434bdabf130125ce1166fc0068
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/deposit
                 operator: In
                 values:
@@ -16203,21 +16203,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: graphql
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 4638e4ad458c5c9204149648fd843cc423171e8e3250edcb98bc8f36562ae9f9
+        checksum/config: 74a0f62bb8f87c315c3857ee134d13881a8c6ce5654376e36c7e9a01f12329c9
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/rpc
                 operator: In
                 values:
                 - "true"
@@ -16300,21 +16300,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-bitbucket
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 0a7c395f3042dc0d6361f688fee44f0d6feffd0996517fb635f9e8a33d1d820f
+        checksum/config: fe710ea835fab0d9ce78e771c64487022f436fcc520d00e6c591200dec138ec3
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -16463,21 +16463,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-bower
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 41d0d894cf9de0a20bfc27df89d260a01c95cd321f546f68d2f53e95717c7c49
+        checksum/config: 8649a9b3ba30854e2a7617144b47839f1bfcf4f848f47b79b1ecbdbdb48d4a20
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -16626,21 +16626,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-cgit
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: bc2311148ded6c4b7a20d36bb75c67a20c71491cf7e9b22bfb10a97ed1c29c9d
+        checksum/config: 1ac33f5bde82e51b7cec35666cd410b82376c8458d3a3ba5ccd361ef04a9ffa3
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -16789,21 +16789,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-cran
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: cf31683079952117130c7d227a10ebd24e28ffdbda16b0e2e9c3bdc0879e19e4
+        checksum/config: da1a6fcea4380b3fad5141f9571b7139fbf276a8e642846b94062da9308387b0
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -16952,21 +16952,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-debian
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 682e78058f8274d0a2bf9b950806db65172f6818a5a44a8c9c86ed509416aa60
+        checksum/config: ed3f21ec81d484106ba74b66b76e87f7e6c19e2c6d7714f8248df7043f2c2400
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17115,21 +17115,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gitea
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: f9258ea4422da26d85bd0853b63aac7e76ec61882209f66c19eb11f807e5d75d
+        checksum/config: c4e7ce72a436e2667591defef365dc93c85c048c2640ee5e924960ae5421113a
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17278,21 +17278,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-github-full
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 066f0b68c489a5ee9be4d7373df0514c2300e1303495090353764f6cd6b11c20
+        checksum/config: d894d70629e47e3816a363d975bc6990c022c273a98b9724021581ca9128fb73
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17441,21 +17441,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-github-incremental
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 664a263214923954ed7ee3d8e8a345704d7fc18f88fe03af550d2cef9d2ddc28
+        checksum/config: 0ff189520ab7564b2c08049c7e908f2246db7ae18ebed5892da82e8a2d3fe5c5
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17604,21 +17604,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gitiles
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: ec6183f4a4486a4bf28240abe5be019dfb7a12f150d9a7a55eeefb8da4b0dd7c
+        checksum/config: 58ae52efb80b12e4762e81ac65c486034c6e2e26a9497fac28414823313b29ee
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17767,21 +17767,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gitlab
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 634ad254af9f3f0d7d2ce72d6918196c32db7969290f758a40812b92d1cba67d
+        checksum/config: 3738c22fd48b16415a4b52b473d5c83adec149a9d922718eb53e9ab6cd1255cc
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -17930,21 +17930,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gitweb
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 396b42d71fb293efa6c489e240628a787bb1f20165051c5f02894e8643edca7a
+        checksum/config: a83d34dc3acee752f230fb0fa71fca9e4d19ff226e2a060a1b59c47655487448
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18093,21 +18093,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gnu-full
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: ef9b6fae9f2250c3a318020543cdec47af9b54add9a05b68752a29bb2f295669
+        checksum/config: 64c8544d16aee507efe79ecae0c82df6c977068ada7f6e371e73b4d79ec6f028
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18256,21 +18256,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-gogs-full
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: a3ac7764cc996568b639c981c49c9b0fa56c271cdde12d2d72561a13cdb53045
+        checksum/config: aa9db64f339658e8113c4d87fed468b7858ab7d5ebddecaab7454a093166c2f3
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18419,21 +18419,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-golang
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: bb6e6de43a1bfa41277d2a104bdc0c6c3f9e5095b60d8827eca62b5c6adedeb4
+        checksum/config: f213aa8cd53a92a30502ee51e6b948b1c75e5369e2bb444895d5f6ed7a40ff2b
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18582,21 +18582,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-launchpad
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: abbbbb6b13db48d9b007f9c2a85f4fe4e68eb7f5a6bdb20ef51687dbdbebad50
+        checksum/config: 443876d3f5c1b9782d95be0114fe98cf78b0d3e48aac40603301b2f8ab884614
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18745,21 +18745,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-maven
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 74dbd11938ab05c0b2261ee2f4bf9881b173128ddfa060e480c3b45f4ef9b66c
+        checksum/config: 31961c172379a03013a01f02afe47eebc93a068b759d8dc1a7f371961f8afc52
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -18908,21 +18908,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-npm
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 4c0ba846143ca91eafaa50d6e1917f72a4e18b9c0da9dcef3c4a13a680457709
+        checksum/config: a5ee51e36be477c4ce3edae68f1a03f3aefd3652ed468ba0597ff7c0b26e11f9
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19071,21 +19071,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-opam
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 443e76d244ba2728c9c75b708d3a265881916465df82cb8e69aa431995f366ea
+        checksum/config: fa63e710601d67b7da1adf2b9cc9dd06eb870c09b7de74d24d1c8eb24e72eb9d
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19234,21 +19234,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-packagist
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 43a1761978dbeac2375715385a46a26e0609ef27639fa748ebc9eb760e699c03
+        checksum/config: b038dd5fb06ac62e78b5263f77e3207e83e4036f78d32c3e7f903edf7893c4bf
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19397,21 +19397,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-pagure
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: de90cfbafd19269de52f400ebd3b42488b757014c31892efb354dca77476e2a5
+        checksum/config: 844dc195ad6304795e55b13805b3c29b8edc5bc104e44c3c9c0e1225e4cf4713
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19560,21 +19560,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-phabricator
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 84a800057528b68ab64cf70afdba4bc6645f8edaae16b51751641fea4f1098a4
+        checksum/config: 206817168fcf08a1ba7e1162416a16c0dce48c5c577fbef11d3975b90af3bbd2
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19723,21 +19723,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-pubdev
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 74090200a405c203cedea629b76864e65c64cdfee7ecf9864a48b4b141e9e710
+        checksum/config: 0e55ea61937c9f6ef9ee708ed124ae14c054749437a7d817fc1e3cc03af8d371
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -19886,21 +19886,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-pypi
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 0db96254565b1c24cf560ad15f811971db9465230c921401127919aebe5d3493
+        checksum/config: c04c295024d0c2339a11f84ab3db4edb1be2a160ad398e7a415083fbeecfe917
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -20049,21 +20049,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-rpm
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 80cf656fb657e67491cff7b61050abfef3ab2b1ac9cd54ae7801b6cdad3eab60
+        checksum/config: 58990678eead3b7fe093c5a613fc356d53b5fed2777bb270118f1e3db3208f33
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -20212,21 +20212,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-sourceforge
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 65c3b5c8e062cdd953318b4ab11f945337cf8da0a184968c9f81869821cc710e
+        checksum/config: 32cd89b4e8c9f3c9ac867e13e86e3dab643a80a1a6498c9d9b56a97df2b2da27
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -20375,21 +20375,21 @@
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: lister-stagit
       annotations:
         # Force a rollout upgrade if the configuration changes
-        checksum/config: 37655dbcef96066ca584eb4eda75c11670a48b64110918b38dce61db8ddf2e69
+        checksum/config: c528081243f7415db1a04a22121e91282d382426cb464b4b3f107ab72c81264b
     spec:
       affinity:

         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/lister
                 operator: In
                 values:
@@ -27052,21 +27052,21 @@
       app: search-journal-client-indexed
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: search-journal-client-indexed
       annotations:
-        checksum/config: 4e3fed7fa56755e9a4ec6e5e8029227976a474753ef79e43c39693443bfccca5
+        checksum/config: f49df0a73f90dac54030f3e2e17bcac052318351e43317ffa028273048bd3727
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/journal_client
                 operator: In
                 values:
                 - "true"
@@ -27155,21 +27155,21 @@
       app: search-journal-client-objects
   strategy:
     type: RollingUpdate
     rollingUpdate:
       maxSurge: 1
   template:
     metadata:
       labels:
         app: search-journal-client-objects
       annotations:
-        checksum/config: ff78968853b36a07f33030c3cc75fde0193b517154918320d3060b555c4cab13
+        checksum/config: d632006f9f6c7614389412583593d9109a9e87a7042275e6a8b8d455073ab2d2
     spec:
       affinity:
         nodeAffinity:
           requiredDuringSchedulingIgnoredDuringExecution:
             nodeSelectorTerms:
             - matchExpressions:
               - key: swh/journal_client
                 operator: In
                 values:
                 - "true"


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

No differences

Refs. swh/infra/sysadm-environment#5183 (closed)

Edited by Antoine R. Dumont

Merge request reports