diff --git a/gitea-runner/AGENT_PROMPT.md b/gitea-runner/AGENT_PROMPT.md new file mode 100644 index 0000000..ea31264 --- /dev/null +++ b/gitea-runner/AGENT_PROMPT.md @@ -0,0 +1,101 @@ +# 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` : + +```bash +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` : + +```bash +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 : + +```bash +# 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 : + +```bash +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`