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>
71 lines
2.3 KiB
YAML
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"
|