diff --git a/.woodpecker.yml b/.woodpecker.yml index bacadb2..d52436f 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -25,8 +25,8 @@ steps: - echo "Deploying on $HOSTNAME" - docker node ls >/dev/null 2>&1 || (echo "Runner must be on a Swarm manager" && exit 1) - docker stack deploy --with-registry-auth -c stack.yml woodpecker - - sleep 10 - - docker service ls | grep woodpecker || echo "Service not yet visible" + - sleep 30 + - docker service ls | grep woodpecker when: branch: main event: [push] \ No newline at end of file diff --git a/stack.yml b/stack.yml index 97f43a1..ae57302 100644 --- a/stack.yml +++ b/stack.yml @@ -5,16 +5,17 @@ networks: traefik: external: true services: - woodpecker-server: - image: woodpeckerci/woodpecker-server:next-4198c447fb + server: + image: woodpeckerci/woodpecker-server:v3.8.0 environment: + - WOODPECKER_PLUGINS_PRIVILEGED=woodpeckerci/plugin-docker-buildx - WOODPECKER_OPEN=true - WOODPECKER_HOST=https://woodpecker.nixc.us - WOODPECKER_BACKEND=docker - WOODPECKER_BACKEND_DOCKER_NETWORK=default - WOODPECKER_ADMIN=colin - WOODPECKER_REPO_OWNERS=colin,meta,fansdb,lilsgym,nixius,Nixius,devsecops,mechinae,Mechinae,aenow,aenow-dev,ViperWire,mrc - - WOODPECKER_LOG_LEVEL=debug + - WOODPECKER_LOG_LEVEL=error - WOODPECKER_GITEA=true - WOODPECKER_GITEA_URL=https://git.nixc.us/ - WOODPECKER_GITEA_CLIENT=56c038d7-64b5-47e4-acae-cb8a69b31731 @@ -22,12 +23,14 @@ services: - WOODPECKER_AGENT_SECRET=WdK6TEWqsfi6R6SGKYSaqsg7ZQyKxnZFyWBeegt2TCCDHmivcYaPCMmdXTN5G7U3bv3C6TFDDiyBdoKB5M5c5hikGrQzm67rcBbfKB3SZRYFeurAGwsPmtVQWnVkPCtG - WOODPECKER_DATABASE_DRIVER=mysql - WOODPECKER_DATABASE_DATASOURCE=woodpecker:woodpecker@tcp(db:3306)/woodpecker?parseTime=true + - WOODPECKER_LOG_FILE=stdout networks: - traefik - default volumes: - /mnt/tank/persist/nixc.us/woodpecker/production/data:/var/lib/woodpecker/ - /var/run/docker.sock:/var/run/docker.sock + - /etc/localtime:/etc/localtime:ro deploy: replicas: 1 placement: @@ -46,7 +49,6 @@ services: order: stop-first failure_action: rollback delay: 5s - delay: 10s parallelism: 1 restart_policy: condition: on-failure @@ -73,39 +75,85 @@ services: order: stop-first failure_action: rollback delay: 5s - delay: 10s parallelism: 1 restart_policy: condition: on-failure - woodpecker-agents: - image: woodpeckerci/woodpecker-agent:next-4198c447fb + agents-managers: + image: woodpeckerci/woodpecker-agent:v3.8.0 networks: - default environment: - - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_LOG_FILE=stdout + - WOODPECKER_SERVER=server:9000 - WOODPECKER_AGENT_SECRET=WdK6TEWqsfi6R6SGKYSaqsg7ZQyKxnZFyWBeegt2TCCDHmivcYaPCMmdXTN5G7U3bv3C6TFDDiyBdoKB5M5c5hikGrQzm67rcBbfKB3SZRYFeurAGwsPmtVQWnVkPCtG - - WOODPECKER_DEBUG=TRUE - - WOODPECKER_LOG_LEVEL=debug + - WOODPECKER_DEBUG=true + - WOODPECKER_LOG_LEVEL=error - WOODPECKER_BACKEND=docker - WOODPECKER_MAX_WORKFLOWS=1 - WOODPECKER_DEBUG_PRETTY=true - WOODPECKER_AGENT_CONFIG_FILE=/etc/woodpecker/agent-secret.conf - "WOODPECKER_HOSTNAME={{ .Node.Hostname }}" + - WOODPECKER_FILTER_LABELS=location=manager + - WOODPECKER_HEALTHCHECK=true deploy: + placement: + constraints: + - node.role == manager + - node.hostname != ingress.nixc.us mode: global labels: - "traefik.enable=false" update_config: - order: start-first failure_action: rollback - delay: 5s - delay: 10s + delay: 120s parallelism: 4 restart_policy: condition: on-failure volumes: - agent-secret:/etc/woodpecker/ - /var/run/docker.sock:/var/run/docker.sock + dns: + - 1.1.1.1 + - 8.8.8.8 + + agents-workers: + image: woodpeckerci/woodpecker-agent:v3.8.0 + networks: + - default + environment: + - WOODPECKER_LOG_FILE=stdout + - WOODPECKER_SERVER=server:9000 + - WOODPECKER_AGENT_SECRET=WdK6TEWqsfi6R6SGKYSaqsg7ZQyKxnZFyWBeegt2TCCDHmivcYaPCMmdXTN5G7U3bv3C6TFDDiyBdoKB5M5c5hikGrQzm67rcBbfKB3SZRYFeurAGwsPmtVQWnVkPCtG + - WOODPECKER_DEBUG=true + - WOODPECKER_LOG_LEVEL=error + - WOODPECKER_BACKEND=docker + - WOODPECKER_MAX_WORKFLOWS=1 + - WOODPECKER_DEBUG_PRETTY=true + - WOODPECKER_AGENT_CONFIG_FILE=/etc/woodpecker/agent-secret.conf + - "WOODPECKER_HOSTNAME={{ .Node.Hostname }}" + - WOODPECKER_FILTER_LABELS=location=agent + deploy: + placement: + constraints: + - node.role == worker + - node.hostname != ingress.nixc.us + mode: global + labels: + - "traefik.enable=false" + update_config: + order: stop-first + failure_action: rollback + delay: 120s + parallelism: 4 + restart_policy: + condition: on-failure + volumes: + - agent-secret:/etc/woodpecker/ + - /var/run/docker.sock:/var/run/docker.sock + dns: + - 1.1.1.1 + - 8.8.8.8 + volumes: agent-secret: \ No newline at end of file