diff --git a/swh/templates/storage-replayer/deployment.yaml b/swh/templates/storage-replayer/deployment.yaml index 9104b72..9738a43 100644 --- a/swh/templates/storage-replayer/deployment.yaml +++ b/swh/templates/storage-replayer/deployment.yaml @@ -1,86 +1,86 @@ {{ if .Values.storage_replayer.enabled -}} {{- $configurationChecksum := include (print $.Template.BasePath "/storage-replayer/configmap.yaml") . -}} {{- range $deployment, $deployment_config := .Values.storage_replayer.deployments -}} --- apiVersion: apps/v1 kind: Deployment metadata: namespace: {{ $.Values.namespace }} name: storage-replayer-{{ $deployment }} labels: app: storage-replayer-{{ $deployment }} spec: revisionHistoryLimit: 2 selector: matchLabels: app: storage-replayer-{{ $deployment }} template: metadata: labels: app: storage-replayer-{{ $deployment }} annotations: checksum/config: {{ $configurationChecksum | sha256sum }} spec: {{- if $.Values.storage_replayer.affinity }} affinity: - {{ toYaml $.Values.storage_replayer.affinity | nindent 8 }} + {{- toYaml $.Values.storage_replayer.affinity | nindent 8 }} {{- end }} initContainers: - name: prepare-configuration image: debian:bullseye imagePullPolicy: Always envFrom: - secretRef: name: {{ $.Values.storage_replayer.journalBrokers.secretName }} command: - /bin/bash args: - -c - eval echo "\"$( /etc/swh/config.yml volumeMounts: - name: configuration mountPath: /etc/swh - name: configuration-template mountPath: /etc/swh/configuration-template {{- if $.Values.storage_replayer.cassandra.initKeyspace }} - name: init-database image: {{ $.Values.swh_storage_replayer_image }}:{{ $.Values.swh_storage_replayer_image_version }} imagePullPolicy: Always command: - /bin/bash args: - -c - eval "echo \"from swh.storage.cassandra import create_keyspace; create_keyspace(['{{ first $.Values.storage_replayer.cassandra.seeds }}'], 'swh')\" | python3" {{- end }} containers: - name: storage-replayer resources: requests: memory: {{ get $deployment_config "requestedMemory" | default "512Mi" }} cpu: {{ get $deployment_config "requestedCpu" | default "500m" }} image: {{ $.Values.swh_storage_replayer_image }}:{{ $.Values.swh_storage_replayer_image_version }} command: - /bin/bash args: - -c - /opt/swh/entrypoint.sh env: - name: STATSD_HOST value: {{ $.Values.statsdExternalHost | default "prometheus-statsd-exporter" }} - name: STATSD_PORT value: {{ $.Values.statsdPort | default "9125" | quote }} imagePullPolicy: Always volumeMounts: - name: configuration mountPath: /etc/swh volumes: - name: configuration emptyDir: {} - name: configuration-template configMap: name: storage-replayer-configuration-{{ $deployment }}-template items: - key: "config.yml.template" path: "config.yml.template" {{ end }} {{- end -}} diff --git a/swh/values/cassandra-replay.yaml b/swh/values/cassandra-replay.yaml index 462c8e6..d233ff3 100644 --- a/swh/values/cassandra-replay.yaml +++ b/swh/values/cassandra-replay.yaml @@ -1,137 +1,147 @@ namespace: cassandra-replay sentry: environment: production storage_replayer: enabled: true + + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: "swh/replayer" + operator: In + values: + - "true" journalBrokers: hosts: - kafka1.internal.softwareheritage.org:9094 - kafka2.internal.softwareheritage.org:9094 - kafka3.internal.softwareheritage.org:9094 - kafka4.internal.softwareheritage.org:9094 user: swh-cassandra-replayer-prod cassandra: initKeyspace: true # only to bootstrap a new cassandra database seeds: - cassandra01.internal.softwareheritage.org - cassandra02.internal.softwareheritage.org - cassandra03.internal.softwareheritage.org - cassandra04.internal.softwareheritage.org - cassandra05.internal.softwareheritage.org - cassandra06.internal.softwareheritage.org deployments: # content: # objects: # - content # requestedCpu: 425m # requestedMemory: 200Mi # autoScaling: # maxReplicaCount: 0 # minReplicaCount: 0 # directory: # objects: # - directory # batchSize: 250 # requestedCpu: 350m # requestedMemory: 250Mi # autoScaling: # maxReplicaCount: 20 extid: objects: - extid batchSize: 1000 # Full replay #requestedCpu: 400m requestedMemory: 200Mi #Follow up consumption requestedCpu: 50m autoScaling: maxReplicaCount: 5 metadata: objects: - metadata_authority - metadata_fetcher # follow up consumption requestedCpu: 50m requestedMemory: 100Mi autoScaling: maxReplicaCount: 5 raw-extrinsic-metadata: objects: - raw_extrinsic_metadata batchSize: 250 # Full replay #requestedCpu: 400m requestedMemory: 200Mi # follow up consumption requestedCpu: 50m autoScaling: maxReplicaCount: 5 origin: objects: - origin batchSize: 1000 # Full replay #requestedCpu: 400m requestedMemory: 200Mi #Follow up consumption requestedCpu: 50m autoScaling: maxReplicaCount: 5 origin-visit: objects: - origin_visit batchSize: 1000 requestedCpu: 400m requestedMemory: 400Mi autoScaling: maxReplicaCount: 20 origin-visit-status: objects: - origin_visit_status batchSize: 1000 requestedCpu: 500m requestedMemory: 300Mi autoScaling: maxReplicaCount: 20 release: objects: - release batchSize: 1000 privileged: true # Full replay #requestedCpu: 600m requestedMemory: 300Mi # follow up consumption requestedCpu: 50m autoScaling: maxReplicaCount: 5 revision: objects: - revision batchSize: 1000 privileged: true requestedCpu: 1000m requestedMemory: 300Mi autoScaling: maxReplicaCount: 10 skipped-content: objects: - skipped_content batchSize: 100 # Full replay #requestedCpu: 300m requestedMemory: 400Mi # follow up consumption requestedCpu: 50m autoScaling: maxReplicaCount: 5 snapshot: objects: - snapshot batchSize: 250 requestedCpu: 400m requestedMemory: 250Mi autoScaling: maxReplicaCount: 20