Changeset View
Changeset View
Standalone View
Standalone View
mirror.yml
version: "3.8" | version: "3.8" | ||||
services: | services: | ||||
memcache: | memcache: | ||||
# used by the web app | # used by the web app | ||||
image: memcached | image: memcached | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
storage-db: | storage-db: | ||||
# the main storage database | # the main storage database | ||||
image: postgres:13 | image: postgres:13 | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
# possible workaround to prevent dropped idle cnx (making pg pool fail to work after a while) | # possible workaround to prevent dropped idle cnx (making pg pool fail to work after a while) | ||||
endpoint_mode: dnsrr | endpoint_mode: dnsrr | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.storage-db == true | - node.labels.org.softwareheritage.mirror.volumes.storage-db == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | ||||
environment: | environment: | ||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | ||||
POSTGRES_USER: swh | POSTGRES_USER: swh | ||||
POSTGRES_DB: | POSTGRES_DB: | ||||
# unset POSTGRES_DB: we're handling db creation ourselves in the backend | # unset POSTGRES_DB: we're handling db creation ourselves in the backend | ||||
volumes: | volumes: | ||||
- "storage-db:/var/lib/postgresql/data:rw,Z" | - "storage-db:/var/lib/postgresql/data:rw,Z" | ||||
Show All 10 Lines | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
endpoint_mode: dnsrr | endpoint_mode: dnsrr | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.web-db == true | - node.labels.org.softwareheritage.mirror.volumes.web-db == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | ||||
environment: | environment: | ||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | ||||
POSTGRES_USER: swh | POSTGRES_USER: swh | ||||
POSTGRES_DB: swh-web | POSTGRES_DB: swh-web | ||||
volumes: | volumes: | ||||
- "web-db:/var/lib/postgresql/data:rw,Z" | - "web-db:/var/lib/postgresql/data:rw,Z" | ||||
secrets: | secrets: | ||||
- source: swh-mirror-web-db-password | - source: swh-mirror-web-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
web: | web: | ||||
# the web app; serves both the web navigation interface and the public web API | # the web app; serves both the web navigation interface and the public web API | ||||
image: softwareheritage/web:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/web:${SWH_IMAGE_TAG:-latest} | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: web | - source: web | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
command: serve | command: serve | ||||
environment: | environment: | ||||
PORT: "5004" | PORT: "5004" | ||||
PGHOST: web-db | PGHOST: web-db | ||||
PGUSER: swh | PGUSER: swh | ||||
Show All 19 Lines | deploy: | ||||
placement: | placement: | ||||
# note: if using a local volume, you need to pin the objstorage | # note: if using a local volume, you need to pin the objstorage | ||||
# instances on the node hosting the volume, eg. the manager, otherwise, | # instances on the node hosting the volume, eg. the manager, otherwise, | ||||
# if using a remote/distributed objstorage backend (seaweedfs, cloud, | # if using a remote/distributed objstorage backend (seaweedfs, cloud, | ||||
# etc.) you want to remove this placement constraint | # etc.) you want to remove this placement constraint | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.objstorage == true | - node.labels.org.softwareheritage.mirror.volumes.objstorage == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
volumes: | volumes: | ||||
- "objstorage:/srv/softwareheritage/objects:rw,Z" | - "objstorage:/srv/softwareheritage/objects:rw,Z" | ||||
configs: | configs: | ||||
- source: objstorage | - source: objstorage | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
PORT: "5003" | PORT: "5003" | ||||
command: ["rpc-server", "objstorage"] | command: ["rpc-server", "objstorage"] | ||||
storage: | storage: | ||||
# the swh-storage backend service; using postgresql (storage-db) as backend | # the swh-storage backend service; using postgresql (storage-db) as backend | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
# needed to allow actual and dynammic load balancing | # needed to allow actual and dynammic load balancing | ||||
endpoint_mode: dnsrr | endpoint_mode: dnsrr | ||||
# a real life replicas value better be in the 16 to 64 range | # a real life replicas value better be in the 16 to 64 range | ||||
# however we recommend keeping 1 in this stack deploy file so that | # however we recommend keeping 1 in this stack deploy file so that | ||||
# an upgrade of the base image that comes with a database migration script | # an upgrade of the base image that comes with a database migration script | ||||
# is upgraded in a consistent way | # is upgraded in a consistent way | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: storage | - source: storage | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
environment: | environment: | ||||
PGHOST: storage-db | PGHOST: storage-db | ||||
PGUSER: swh | PGUSER: swh | ||||
POSTGRES_DB: swh-storage | POSTGRES_DB: swh-storage | ||||
FLAVOR: mirror | FLAVOR: mirror | ||||
PORT: "5002" | PORT: "5002" | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
secrets: | secrets: | ||||
- source: swh-mirror-storage-db-password | - source: swh-mirror-storage-db-password | ||||
target: postgres-password | target: postgres-password | ||||
mode: 0400 | mode: 0400 | ||||
command: ["rpc-server", "storage"] | command: ["rpc-server", "storage"] | ||||
depends_on: | depends_on: | ||||
- storage-db | - storage-db | ||||
nginx: | nginx: | ||||
image: nginx | image: nginx | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: nginx | - source: nginx | ||||
target: /etc/nginx/nginx.conf | target: /etc/nginx/nginx.conf | ||||
ports: | ports: | ||||
- "5081:5081/tcp" | - "5081:5081/tcp" | ||||
deploy: | deploy: | ||||
mode: global | mode: global | ||||
prometheus: | prometheus: | ||||
image: prom/prometheus | image: prom/prometheus | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
depends_on: | depends_on: | ||||
- prometheus-statsd-exporter | - prometheus-statsd-exporter | ||||
command: | command: | ||||
# Needed for the reverse-proxy | # Needed for the reverse-proxy | ||||
- "--web.external-url=/prometheus" | - "--web.external-url=/prometheus" | ||||
- "--config.file=/etc/prometheus/prometheus.yml" | - "--config.file=/etc/prometheus/prometheus.yml" | ||||
configs: | configs: | ||||
- source: prometheus | - source: prometheus | ||||
target: /etc/prometheus/prometheus.yml | target: /etc/prometheus/prometheus.yml | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.monitoring == true | - node.labels.org.softwareheritage.mirror.monitoring == true | ||||
prometheus-statsd-exporter: | prometheus-statsd-exporter: | ||||
image: prom/statsd-exporter | image: prom/statsd-exporter | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: | command: | ||||
- "--statsd.mapping-config=/etc/prometheus/statsd-mapping.yml" | - "--statsd.mapping-config=/etc/prometheus/statsd-mapping.yml" | ||||
configs: | configs: | ||||
- source: prometheus-statsd-exporter | - source: prometheus-statsd-exporter | ||||
target: /etc/prometheus/statsd-mapping.yml | target: /etc/prometheus/statsd-mapping.yml | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.monitoring == true | - node.labels.org.softwareheritage.mirror.monitoring == true | ||||
grafana: | grafana: | ||||
image: grafana/grafana | image: grafana/grafana | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
depends_on: | depends_on: | ||||
- prometheus | - prometheus | ||||
environment: | environment: | ||||
GF_SERVER_ROOT_URL: http://localhost:5081/grafana | GF_SERVER_ROOT_URL: http://localhost:5081/grafana | ||||
configs: | configs: | ||||
- source: grafana-provisioning-datasources-prometheus | - source: grafana-provisioning-datasources-prometheus | ||||
target: /etc/grafana/provisioning/datasources/prometheus.yaml | target: /etc/grafana/provisioning/datasources/prometheus.yaml | ||||
- source: grafana-provisioning-dashboards-all | - source: grafana-provisioning-dashboards-all | ||||
Show All 19 Lines | redis: | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.redis == true | - node.labels.org.softwareheritage.mirror.volumes.redis == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: | command: | ||||
- redis-server | - redis-server | ||||
- --save 60 1 | - --save 60 1 | ||||
- --loglevel warning | - --loglevel warning | ||||
volumes: | volumes: | ||||
- redis:/data | - redis:/data | ||||
graph-replayer: | graph-replayer: | ||||
image: softwareheritage/replayer:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/replayer:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
# do not start replayers by default once the remaining of the stack is | # do not start replayers by default once the remaining of the stack is | ||||
# running as expected, bump this value; expected real-life values should | # running as expected, bump this value; expected real-life values should | ||||
# be something in the range [16, 64] (staging) or [16, 256] (production) | # be something in the range [16, 64] (staging) or [16, 256] (production) | ||||
# depending on your hardware capabilities; note that there is no need of | # depending on your hardware capabilities; note that there is no need of | ||||
# going above the number of partitions on the kafka cluster (so the 64 | # going above the number of partitions on the kafka cluster (so the 64 | ||||
# and 254 upper limits depending on the execution environment). | # and 254 upper limits depending on the execution environment). | ||||
replicas: 0 | replicas: 0 | ||||
restart_policy: | restart_policy: | ||||
condition: "none" | condition: "none" | ||||
douardda: do you know why you had to remove this restart_policy here? (I don't really remember why I had… | |||||
Done Inline ActionsI had explained the message of the commit modifying exactly this bit:
lunar: I had explained the message of the commit modifying exactly this bit:
> **Restart graph… | |||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
STATSD_TAGS: 'role:graph-replayer,hostname:${HOSTNAME}' | STATSD_TAGS: 'role:graph-replayer,hostname:${HOSTNAME}' | ||||
configs: | configs: | ||||
- source: graph-replayer | - source: graph-replayer | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
command: | command: | ||||
- graph-replayer | - graph-replayer | ||||
depends_on: | depends_on: | ||||
- storage | - storage | ||||
- redis | - redis | ||||
content-replayer: | content-replayer: | ||||
image: softwareheritage/replayer:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/replayer:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
# do not start replayers by default; see above | # do not start replayers by default; see above | ||||
replicas: 0 | replicas: 0 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
STATSD_TAGS: 'role:content-replayer,hostname:${HOSTNAME}' | STATSD_TAGS: 'role:content-replayer,hostname:${HOSTNAME}' | ||||
configs: | configs: | ||||
- source: content-replayer | - source: content-replayer | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
command: | command: | ||||
- content-replayer | - content-replayer | ||||
depends_on: | depends_on: | ||||
- objstorage | - objstorage | ||||
- redis | - redis | ||||
## secondary services | ## secondary services | ||||
amqp: | amqp: | ||||
image: rabbitmq:3.6-management | image: rabbitmq:3.6-management | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
ports: | ports: | ||||
- 5072:5672 | - 5072:5672 | ||||
### vault services | ### vault services | ||||
vault-db: | vault-db: | ||||
# the database for the vault rpc server | # the database for the vault rpc server | ||||
image: postgres:13 | image: postgres:13 | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
endpoint_mode: dnsrr | endpoint_mode: dnsrr | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.web-db == true | - node.labels.org.softwareheritage.mirror.volumes.web-db == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | ||||
environment: | environment: | ||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | ||||
POSTGRES_USER: swh | POSTGRES_USER: swh | ||||
POSTGRES_DB: swh-vault | POSTGRES_DB: swh-vault | ||||
volumes: | volumes: | ||||
- "vault-db:/var/lib/postgresql/data:rw,Z" | - "vault-db:/var/lib/postgresql/data:rw,Z" | ||||
secrets: | secrets: | ||||
- source: swh-mirror-vault-db-password | - source: swh-mirror-vault-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
vault: | vault: | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
configs: | configs: | ||||
- source: vault | - source: vault | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
environment: | environment: | ||||
PGHOST: vault-db | PGHOST: vault-db | ||||
PGUSER: swh | PGUSER: swh | ||||
POSTGRES_DB: swh-vault | POSTGRES_DB: swh-vault | ||||
PORT: "5005" | PORT: "5005" | ||||
LOG_LEVEL: DEBUG | LOG_LEVEL: DEBUG | ||||
command: ["rpc-server", "vault"] | command: ["rpc-server", "vault"] | ||||
secrets: | secrets: | ||||
- source: swh-mirror-vault-db-password | - source: swh-mirror-vault-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
vault-worker: | vault-worker: | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
- ./env/celery-worker.env | - ./env/celery-worker.env | ||||
environment: | environment: | ||||
SWH_WORKER_INSTANCE: vault | SWH_WORKER_INSTANCE: vault | ||||
LOG_LEVEL: DEBUG | LOG_LEVEL: DEBUG | ||||
configs: | configs: | ||||
- source: vault-worker | - source: vault-worker | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
command: | command: | ||||
- celery-worker | - celery-worker | ||||
# vault do really need someone to talk to via SMTP | # vault do really need someone to talk to via SMTP | ||||
mailhog: | mailhog: | ||||
image: mailhog/mailhog | image: mailhog/mailhog | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
### scheduler services | ### scheduler services | ||||
scheduler-db: | scheduler-db: | ||||
# the database for the vault rpc server | # the database for the vault rpc server | ||||
image: postgres:13 | image: postgres:13 | ||||
deploy: | deploy: | ||||
# we want only one replica of this service in the whole cluster | # we want only one replica of this service in the whole cluster | ||||
replicas: 1 | replicas: 1 | ||||
endpoint_mode: dnsrr | endpoint_mode: dnsrr | ||||
placement: | placement: | ||||
max_replicas_per_node: 1 | max_replicas_per_node: 1 | ||||
constraints: | constraints: | ||||
- node.labels.org.softwareheritage.mirror.volumes.web-db == true | - node.labels.org.softwareheritage.mirror.volumes.web-db == true | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | command: ['-c', 'shared_buffers=4GB', '-c', 'effective_cache_size=4GB', '-c', 'random_page_cost=1.5', '-c', 'max_wal_size=4GB'] | ||||
environment: | environment: | ||||
POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | POSTGRES_PASSWORD_FILE: /run/secrets/postgres-password | ||||
POSTGRES_USER: swh | POSTGRES_USER: swh | ||||
POSTGRES_DB: swh-scheduler | POSTGRES_DB: swh-scheduler | ||||
volumes: | volumes: | ||||
- "scheduler-db:/var/lib/postgresql/data:rw,Z" | - "scheduler-db:/var/lib/postgresql/data:rw,Z" | ||||
secrets: | secrets: | ||||
- source: swh-mirror-scheduler-db-password | - source: swh-mirror-scheduler-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
scheduler: | scheduler: | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: scheduler | - source: scheduler | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
PGHOST: scheduler-db | PGHOST: scheduler-db | ||||
PGUSER: swh | PGUSER: swh | ||||
POSTGRES_DB: swh-scheduler | POSTGRES_DB: swh-scheduler | ||||
PORT: "5008" | PORT: "5008" | ||||
command: ["rpc-server", "scheduler"] | command: ["rpc-server", "scheduler"] | ||||
secrets: | secrets: | ||||
- source: swh-mirror-scheduler-db-password | - source: swh-mirror-scheduler-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
scheduler-listener: | scheduler-listener: | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: scheduler | - source: scheduler | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
SWH_WORKER_INSTANCE: scheduler | SWH_WORKER_INSTANCE: scheduler | ||||
PGHOST: scheduler-db | PGHOST: scheduler-db | ||||
PGUSER: swh | PGUSER: swh | ||||
POSTGRES_DB: swh-scheduler | POSTGRES_DB: swh-scheduler | ||||
command: ["scheduler", "start-listener"] | command: ["scheduler", "start-listener"] | ||||
secrets: | secrets: | ||||
- source: swh-mirror-scheduler-db-password | - source: swh-mirror-scheduler-db-password | ||||
target: postgres-password | target: postgres-password | ||||
uid: '999' | uid: '999' | ||||
mode: 0400 | mode: 0400 | ||||
scheduler-runner: | scheduler-runner: | ||||
image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | image: softwareheritage/base:${SWH_IMAGE_TAG:-latest} | ||||
deploy: | deploy: | ||||
replicas: 1 | replicas: 1 | ||||
networks: | networks: | ||||
- swhtest-mirror | - swh-mirror | ||||
configs: | configs: | ||||
- source: scheduler | - source: scheduler | ||||
target: /etc/softwareheritage/config.yml | target: /etc/softwareheritage/config.yml | ||||
env_file: | env_file: | ||||
- ./env/common-python.env | - ./env/common-python.env | ||||
environment: | environment: | ||||
SWH_WORKER_INSTANCE: scheduler | SWH_WORKER_INSTANCE: scheduler | ||||
PGHOST: scheduler-db | PGHOST: scheduler-db | ||||
▲ Show 20 Lines • Show All 57 Lines • ▼ Show 20 Lines | grafana-dashboards-graph-replayer: | ||||
file: conf/grafana/dashboards/graph-replayer.json | file: conf/grafana/dashboards/graph-replayer.json | ||||
grafana-dashboards-content-replayer: | grafana-dashboards-content-replayer: | ||||
file: conf/grafana/dashboards/content-replayer.json | file: conf/grafana/dashboards/content-replayer.json | ||||
grafana-dashboards-backend-stats: | grafana-dashboards-backend-stats: | ||||
file: conf/grafana/dashboards/backend-stats.json | file: conf/grafana/dashboards/backend-stats.json | ||||
networks: | networks: | ||||
swhtest-mirror: | swh-mirror: | ||||
driver: overlay | driver: overlay | ||||
attachable: true | attachable: true |
do you know why you had to remove this restart_policy here? (I don't really remember why I had to put it there, but I vaguely remember that was a bit painful to figure this solution... anyway, should have added a comment back then)