Files
ansible-role-gitea/tasks/actions.yaml
T
ClaudeandClaude Opus 5.5 f56eab28af
Demo / hello (push) Successful in 20s
Poll for gitea rollout instead of using rollout status
`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>
2026-11-06 13:31:04 -05:00

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"