Files
ansible-role-gitea/tasks/actions.yaml
T
ClaudeandClaude Opus 5.5 b81a2d64d0 Pin valkey/postgresql resources; harden runner token step
The live valkey and postgresql StatefulSets had memory limits raised by
hand (8Gi and 2Gi). A helm upgrade reverts those to the bitnami 192Mi
preset, and valkey then OOMs loading its ~3.3GB dataset. Move the limits
into role defaults so upgrades keep them.

Generate the runner token with kubectl exec against the deployment after
waiting for its rollout, with retries, instead of kubernetes.core.k8s_exec
(the control plane's kubernetes python client is too old for it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 13:05:10 -05:00

71 lines
2.3 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:
- name: wait for the gitea deployment to finish rolling out
command: kubectl -n gitea rollout status deployment/gitea --timeout=600s
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"