Demo / hello (push) Successful in 20s
`kubectl rollout status` fails immediately once a rollout has exceeded its progress deadline, even if the new pod is about to become ready. Poll the deployment until replicas, updated and available counts agree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
79 lines
2.7 KiB
YAML
79 lines
2.7 KiB
YAML
---
|
|
# Deploys an instance-wide Gitea Actions runner (act_runner + DinD).
|
|
- name: check for existing runner registration token secret
|
|
kubernetes.core.k8s_info:
|
|
kind: Secret
|
|
namespace: gitea
|
|
name: "{{ gitea_actions_runner_token_secret }}"
|
|
register: runner_token_secret
|
|
|
|
- name: generate and store a runner registration token
|
|
when: runner_token_secret.resources | length == 0
|
|
block:
|
|
# Poll instead of `kubectl rollout status`, which exits immediately once
|
|
# a slow rollout has passed the deployment's progressDeadlineSeconds.
|
|
- name: wait for the gitea deployment to finish rolling out
|
|
command: >-
|
|
kubectl -n gitea get deployment gitea
|
|
-o jsonpath={.spec.replicas},{.status.replicas},{.status.updatedReplicas},{.status.availableReplicas}
|
|
register: gitea_rollout
|
|
until: gitea_rollout.stdout.split(',') | unique | length == 1
|
|
retries: 90
|
|
delay: 10
|
|
changed_when: false
|
|
|
|
- name: generate instance-level runner registration token
|
|
command: kubectl -n gitea exec deployment/gitea -c gitea -- gitea actions generate-runner-token
|
|
register: runner_token
|
|
retries: 10
|
|
delay: 15
|
|
until: runner_token.rc == 0 and (runner_token.stdout | trim | length) > 0
|
|
changed_when: false
|
|
no_log: true
|
|
|
|
- name: store runner registration token
|
|
kubernetes.core.k8s:
|
|
state: present
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: "{{ gitea_actions_runner_token_secret }}"
|
|
namespace: gitea
|
|
type: Opaque
|
|
stringData:
|
|
token: "{{ runner_token.stdout | trim }}"
|
|
no_log: true
|
|
|
|
- name: deploy gitea actions runner
|
|
kubernetes.core.helm:
|
|
name: gitea-actions
|
|
chart_ref: gitea/actions
|
|
chart_version: "{{ gitea_actions_chart_version }}"
|
|
release_namespace: gitea
|
|
create_namespace: true
|
|
values:
|
|
enabled: true
|
|
giteaRootURL: https://gitea.eom.dev
|
|
existingSecret: "{{ gitea_actions_runner_token_secret }}"
|
|
existingSecretKey: token
|
|
statefulset:
|
|
replicas: "{{ gitea_actions_runner_replicas }}"
|
|
persistence:
|
|
size: 1Gi
|
|
runner:
|
|
config: |
|
|
log:
|
|
level: info
|
|
cache:
|
|
enabled: false
|
|
container:
|
|
require_docker: true
|
|
docker_timeout: 300s
|
|
runner:
|
|
capacity: 2
|
|
labels:
|
|
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
|
|
- "ubuntu-24.04:docker://docker.gitea.com/runner-images:ubuntu-24.04"
|
|
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
|