Files
infra-scripts/gitea-runner/AGENT_PROMPT.md

2.9 KiB

Agent Prompt — gitea-runner install.sh update

Objectif

Modifier gitea-runner/install.sh pour ajouter :

  1. Les tags LXC infra-script et cicd à la création du conteneur
  2. La configuration automatique des métriques Prometheus de act_runner
  3. La rotation des logs via logrotate

Fichier à modifier

gitea-runner/install.sh sur la branche feat/gitea-runner-metrics-logrotate

Lis d'abord le fichier actuel avant toute modification.


Changements attendus

1. Tags LXC (dans create_lxc())

Dans la commande pct create, ajouter l'argument --tags :

pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" \
  --hostname "$HOSTNAME" \
  --cores "$CORES" \
  --memory "$RAM" \
  --rootfs "${STORAGE}:${DISK}" \
  --net0 "name=eth0,bridge=${BRIDGE},ip=dhcp" \
  --unprivileged 1 \
  --features nesting=1,keyctl=1 \
  --tags "infra-script,cicd" \   # ← AJOUTER CETTE LIGNE
  --start 0

2. Métriques Prometheus (dans install_runner())

Après le bloc de création de l'utilisateur gitea-runner et du répertoire /var/lib/gitea-runner, ajouter la génération et configuration du fichier config.yaml :

log_info "Generating act_runner config with Prometheus metrics enabled..."
act_runner generate-config > /var/lib/gitea-runner/config.yaml
# Enable Prometheus metrics on port 9101
sed -i '/^metrics:/,/enabled:/{s/enabled: false/enabled: true/}' /var/lib/gitea-runner/config.yaml
chown gitea-runner:docker /var/lib/gitea-runner/config.yaml
chmod 640 /var/lib/gitea-runner/config.yaml

Dans le service OpenRC généré, modifier command_args pour passer le fichier de config :

# AVANT :
command_args="daemon"

# APRÈS :
command_args="daemon --config /var/lib/gitea-runner/config.yaml"

3. Logrotate (dans install_runner())

Après la création du service OpenRC, ajouter l'installation et la configuration de logrotate :

log_info "Configuring logrotate for gitea-runner..."
apk add --no-cache logrotate > /dev/null

cat > /etc/logrotate.d/gitea-runner << 'LOGROTATE'
/var/log/gitea-runner.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}
LOGROTATE

# S'assurer que logrotate est bien exécuté daily via le cron Alpine
ln -sf /usr/sbin/logrotate /etc/periodic/daily/logrotate 2>/dev/null || true

Contraintes

  • Ne pas modifier la logique de détection de contexte (main())
  • Ne pas modifier update_runner()
  • Conserver tous les log_info existants et leur style
  • Le script doit rester compatible avec une réinstallation propre
  • Utiliser le même style de code que le fichier existant (bash, set -euo pipefail, heredoc <<'EOF')

Livrable

Un seul commit sur feat/gitea-runner-metrics-logrotate modifiant gitea-runner/install.sh, puis ouvrir une PR vers main avec le titre :

feat(gitea-runner): add prometheus metrics, logrotate and LXC tags