Files
ansible-role-act-runner/.kiro/steering/configuration-patterns.md
Markus Pesch 82250f851d
Some checks failed
Lint Markdown files / markdown-lint (push) Failing after 11s
Ansible Linter / ansible-lint (push) Successful in 18s
fix: pass token via cli arg
2026-01-08 18:21:32 +01:00

2.9 KiB

inclusion, fileMatchPattern
inclusion fileMatchPattern
fileMatch defaults/**/*.yaml

Konfigurationsmuster für Act Runner

Variablen-Struktur

Hierarchische Konfiguration

act_runner_config:
  log:
    level: info
  runner:
    capacity: 1
    labels: []
  container:
    privileged: false
    options: {}

Naming Conventions

  • Präfix: act_runner_ für alle Variablen
  • Verschachtelte Struktur für zusammengehörige Optionen
  • Klare, selbsterklärende Namen

Konfigurationsmuster

Standard-Setup (Minimal)

act_runner_gitea_url: "https://gitea.example.com"
act_runner_token: "{{ vault_act_runner_token }}"

Erweiterte Konfiguration

act_runner_config:
  runner:
    capacity: 3
    labels:
      - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
      - "node-18:docker://node:18-alpine"
      - "python-3.11:docker://python:3.11-slim"
  container:
    privileged: true
    network: "runner-network"
    valid_volumes:
      - "/tmp"
      - "/var/run/docker.sock:/var/run/docker.sock"

High-Performance Setup

act_runner_config:
  runner:
    capacity: 5
    timeout: "6h"
    fetch_interval: "1s"
  cache:
    enabled: true
    dir: "/var/cache/act_runner"
  container:
    force_pull: false  # Für bessere Performance
    docker_timeout: "30s"

Template-Patterns

Bedingte Konfiguration

# In defaults/main.yaml
act_runner_config:
  container:
    privileged: "{{ act_runner_privileged_mode | default(false) }}"
    docker_host: "{{ act_runner_docker_host | default('') }}"

Umgebungsspezifische Overrides

# Für Development
act_runner_config:
  runner:
    insecure: true  # Nur für Dev-Umgebungen
    
# Für Production
act_runner_config:
  runner:
    insecure: false
    timeout: "1h"  # Kürzere Timeouts in Prod

Validierungsmuster

Required Variables

# In tasks/verify_vars.yaml
- name: Verify required variables
  assert:
    that:
      - act_runner_gitea_url is defined
      - act_runner_gitea_url | length > 0
      - act_runner_token is defined
      - act_runner_token | length > 0

Configuration Validation

- name: Validate runner capacity
  assert:
    that:
      - act_runner_config.runner.capacity is number
      - act_runner_config.runner.capacity > 0
      - act_runner_config.runner.capacity <= 10
    fail_msg: "Runner capacity must be between 1 and 10"

Dokumentationsmuster

Variable Documentation

## @param act_runner_config.runner.capacity Execute how many tasks concurrently
## @param act_runner_config.runner.labels The labels determine which jobs can run
## @param act_runner_config.container.privileged Use privileged mode for containers

Beispiel-Konfigurationen

# Beispiele in defaults/main.yaml als Kommentare
act_runner_config:
  runner:
    envs: {}
    # Beispiel:
    # envs:
    #   NODE_ENV: production
    #   CUSTOM_VAR: value