diff --git a/kubernetes/23-scheduler-journal-client.yml b/kubernetes/23-scheduler-journal-client.yml new file mode 100644 index 0000000..fe2dd31 --- /dev/null +++ b/kubernetes/23-scheduler-journal-client.yml @@ -0,0 +1,74 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: scheduler-journal-client +data: + config.yml: | + scheduler: + cls: remote + url: http://scheduler:5008/ + journal: + brokers: + - kafka + group_id: swh.scheduler.journal_client + entrypoint.sh: | + #!/bin/bash + + set -e + + wait-for-it kafka:9092 -s --timeout=0 + wait-for-it scheduler:5008 -s --timeout=0 + + swh --log-level INFO scheduler \ + --config-file /etc/softwareheritage/config.yml \ + journal-client +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: scheduler-journal-client + labels: + app: scheduler-journal-client +spec: + replicas: 1 + selector: + matchLabels: + app: scheduler-journal-client + strategy: + type: Recreate + template: + metadata: + labels: + app: scheduler-journal-client + spec: + containers: + - name: scheduler-journal-client + image: swh/scheduler:latest + imagePullPolicy: Always + command: + - /entrypoint.sh + env: + - name: SWH_CONFIG_FILENAME + value: /etc/softwareheritage/config.yml + volumeMounts: + - name: config + mountPath: /etc/softwareheritage/config.yml + subPath: config.yml + readOnly: true + - name: config + mountPath: /entrypoint.sh + subPath: entrypoint.sh + readOnly: true + resources: + requests: + memory: "50Mi" + cpu: "10m" + limits: + memory: "100Mi" + cpu: "50m" + volumes: + - name: config + configMap: + name: scheduler-journal-client + defaultMode: 0777 diff --git a/skaffold.yaml b/skaffold.yaml index 4ad9e8f..1513a4d 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -1,74 +1,75 @@ apiVersion: skaffold/v2beta13 kind: Config metadata: name: swh-environment build: artifacts: - image: swh/stack-base docker: dockerfile: Dockerfile - image: swh/objstorage docker: dockerfile: Dockerfile.objstorage requires: - image: swh/stack-base alias: BASE - image: swh/storage docker: dockerfile: Dockerfile.storage requires: - image: swh/stack-base alias: BASE - image: swh/scheduler docker: dockerfile: Dockerfile.scheduler requires: - image: swh/stack-base alias: BASE - image: swh/webapp docker: dockerfile: Dockerfile.webapp requires: - image: swh/stack-base alias: BASE - image: swh/loaders docker: dockerfile: Dockerfile.loaders requires: - image: swh/stack-base alias: BASE - image: swh/listers docker: dockerfile: Dockerfile.listers requires: - image: swh/stack-base alias: BASE - image: swh/grafana docker: dockerfile: Dockerfile.grafana - image: swh/search docker: dockerfile: Dockerfile.search requires: - image: swh/stack-base alias: BASE deploy: kubectl: manifests: - kubernetes/01-journal.yml - kubernetes/02-monitoring.yml - kubernetes/05-storage-db.yml - kubernetes/10-objstorage.yml - kubernetes/11-storage.yml - kubernetes/15-scheduler-db.yml - kubernetes/16-rabbitmq.yml - kubernetes/20-scheduler.yml - kubernetes/21-scheduler-runner.yml - kubernetes/22-scheduler-listener.yml + - kubernetes/23-scheduler-journal-client.yml - kubernetes/29-web-db.yml - kubernetes/30-webapp.yml - kubernetes/40-loaders.yml - kubernetes/45-listers.yml - kubernetes/50-elasticsearch.yml - kubernetes/55-search.yml - kubernetes/56-search-journal-client.yml