Sur un conteneur déjà provisionné, relancer le script doit rafraîchir à la fois les paquets de l'OS et le binaire applicatif. Ce n'est pas homogène aujourd'hui :
openbao : ✅update_lxc() (host) fait apk update && apk upgrade avant de déléguer à exec_in_lxc --update, et update_inside_lxc() refait apk update && apk upgrade avant install_or_upgrade_bao.
gitea-runner : ❌ deux problèmes cumulés :
Pas de mise à jour OS du tout — update_runner() (inside LXC) télécharge juste la nouvelle release act_runner, sans jamais faire apk update/apk upgrade.
Pas de détection de conteneur existant côté host — contrairement à openbao (find_existing_lxc + update_lxc), gitea-runner n'a pas cette logique : dans main(), si on relance le script depuis l'hôte Proxmox, il appelle directement create_lxc à chaque fois, sans jamais vérifier si une LXC gitea-runner existe déjà. Relancer le script depuis le host ne met donc jamais à jour un conteneur existant — il tente d'en recréer un.
Règle à appliquer
Pour tout script créateur de LXC :
Le mode update (déclenché depuis l'hôte sur un conteneur existant, ou lancé directement depuis l'intérieur de la LXC) doit systématiquement :
Rafraîchir les paquets de l'OS (apk update && apk upgrade / apt-get update && apt-get upgrade).
Mettre à jour le binaire/l'application elle-même.
C'est à l'utilisateur de valider que l'outil fonctionne toujours correctement après une montée de version d'OS (pas de garantie automatique de compatibilité) — le script ne doit pas masquer ce risque, mais ne doit pas non plus l'empêcher.
Le host doit toujours être capable de détecter un conteneur existant (par tag/hostname, comme find_existing_lxc dans openbao) et basculer en update plutôt que de recréer.
Proposition
Ajouter find_existing_lxc() + update_lxc() (host-side) à gitea-runner/install.sh, sur le modèle d'openbao.
Ajouter apk update && apk upgrade dans update_runner() de gitea-runner, avant le téléchargement du binaire.
Documenter ce comportement dans les deux README (« une mise à jour rafraîchit aussi l'OS de la LXC »).
Envisager de factoriser ce flux dans le helper partagé (lib/common.sh, voir #12 et #14) puisque la logique host-side (find + refresh OS + delegate) est quasi identique entre openbao et ce que gitea-runner devrait avoir.
## Contexte
Sur un conteneur déjà provisionné, relancer le script doit rafraîchir **à la fois** les paquets de l'OS et le binaire applicatif. Ce n'est pas homogène aujourd'hui :
- `openbao` : ✅ `update_lxc()` (host) fait `apk update && apk upgrade` avant de déléguer à `exec_in_lxc --update`, et `update_inside_lxc()` refait `apk update && apk upgrade` avant `install_or_upgrade_bao`.
- `gitea-runner` : ❌ deux problèmes cumulés :
1. **Pas de mise à jour OS du tout** — `update_runner()` (inside LXC) télécharge juste la nouvelle release `act_runner`, sans jamais faire `apk update`/`apk upgrade`.
2. **Pas de détection de conteneur existant côté host** — contrairement à `openbao` (`find_existing_lxc` + `update_lxc`), `gitea-runner` n'a pas cette logique : dans `main()`, si on relance le script depuis l'hôte Proxmox, il appelle directement `create_lxc` à chaque fois, sans jamais vérifier si une LXC `gitea-runner` existe déjà. Relancer le script depuis le host ne met donc *jamais* à jour un conteneur existant — il tente d'en recréer un.
## Règle à appliquer
Pour tout script créateur de LXC :
- Le mode update (déclenché depuis l'hôte sur un conteneur existant, ou lancé directement depuis l'intérieur de la LXC) doit systématiquement :
1. Rafraîchir les paquets de l'OS (`apk update && apk upgrade` / `apt-get update && apt-get upgrade`).
2. Mettre à jour le binaire/l'application elle-même.
- C'est à l'utilisateur de valider que l'outil fonctionne toujours correctement après une montée de version d'OS (pas de garantie automatique de compatibilité) — le script ne doit pas masquer ce risque, mais ne doit pas non plus l'empêcher.
- Le host doit toujours être capable de détecter un conteneur existant (par tag/hostname, comme `find_existing_lxc` dans `openbao`) et basculer en update plutôt que de recréer.
## Proposition
1. Ajouter `find_existing_lxc()` + `update_lxc()` (host-side) à `gitea-runner/install.sh`, sur le modèle d'`openbao`.
2. Ajouter `apk update && apk upgrade` dans `update_runner()` de `gitea-runner`, avant le téléchargement du binaire.
3. Documenter ce comportement dans les deux README (« une mise à jour rafraîchit aussi l'OS de la LXC »).
4. Envisager de factoriser ce flux dans le helper partagé (`lib/common.sh`, voir #12 et #14) puisque la logique host-side (find + refresh OS + delegate) est quasi identique entre `openbao` et ce que `gitea-runner` devrait avoir.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
Sur un conteneur déjà provisionné, relancer le script doit rafraîchir à la fois les paquets de l'OS et le binaire applicatif. Ce n'est pas homogène aujourd'hui :
openbao: ✅update_lxc()(host) faitapk update && apk upgradeavant de déléguer àexec_in_lxc --update, etupdate_inside_lxc()refaitapk update && apk upgradeavantinstall_or_upgrade_bao.gitea-runner: ❌ deux problèmes cumulés :update_runner()(inside LXC) télécharge juste la nouvelle releaseact_runner, sans jamais faireapk update/apk upgrade.openbao(find_existing_lxc+update_lxc),gitea-runnern'a pas cette logique : dansmain(), si on relance le script depuis l'hôte Proxmox, il appelle directementcreate_lxcà chaque fois, sans jamais vérifier si une LXCgitea-runnerexiste déjà. Relancer le script depuis le host ne met donc jamais à jour un conteneur existant — il tente d'en recréer un.Règle à appliquer
Pour tout script créateur de LXC :
apk update && apk upgrade/apt-get update && apt-get upgrade).find_existing_lxcdansopenbao) et basculer en update plutôt que de recréer.Proposition
find_existing_lxc()+update_lxc()(host-side) àgitea-runner/install.sh, sur le modèle d'openbao.apk update && apk upgradedansupdate_runner()degitea-runner, avant le téléchargement du binaire.lib/common.sh, voir #12 et #14) puisque la logique host-side (find + refresh OS + delegate) est quasi identique entreopenbaoet ce quegitea-runnerdevrait avoir.