deployment/stacks/vieter.yml

73 lines
1.6 KiB
YAML

version: '3.4'
services:
app:
image: 'chewingbever/vieter:dev'
deploy:
mode: 'replicated'
replicas: 1
placement:
constraints:
- 'node.labels.class.vieter==true'
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.vieter.rule=Host(`arch.r8r.be`)'
- 'traefik.http.routers.vieter.tls=true'
- 'traefik.http.routers.vieter.tls.certresolver=letsEncrypt'
- 'traefik.http.services.vieter.loadbalancer.server.port=8000'
environment:
- 'VIETER_API_KEY_FILE=/run/secrets/vieter_api_key'
- 'VIETER_LOG_LEVEL=DEBUG'
- 'VIETER_DEFAULT_ARCH=x86_64'
- 'VIETER_BASE_IMAGE=ghcr.io/menci/archlinuxarm:base-devel'
# 1AM UTC+2
- 'VIETER_GLOBAL_SCHEDULE=0 23'
- 'VIETER_MAX_LOG_AGE=120'
- 'VIETER_COLLECT_METRICS=1'
networks:
- 'public'
- 'monitoring'
secrets:
- vieter_api_key
volumes:
- 'data:/data'
agent:
image: 'chewingbever/vieter:dev'
command: vieter agent
user: root
healthcheck:
disable: true
deploy:
mode: 'global'
environment:
- 'VIETER_API_KEY_FILE=/run/secrets/vieter_api_key'
- 'VIETER_LOG_LEVEL=INFO'
- 'VIETER_ADDRESS=https://arch.r8r.be'
- 'VIETER_MAX_CONCURRENT_BUILDS=2'
- 'VIETER_ARCH=x86_64'
# Poll for builds every two minutes
- 'VIETER_POLLING_FREQUENCY=120'
secrets:
- vieter_api_key
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
public:
external: true
monitoring:
external: true
secrets:
vieter_api_key:
external: true
volumes:
data: