S19: adopt shared mini-pc runner and landscape workflows

This commit is contained in:
2026-11-10 08:53:20 +01:00
parent c6a495a93c
commit 77b7159f0a
43 changed files with 265 additions and 548 deletions

View File

@@ -36,7 +36,7 @@ Gitea 1.25.4 en de registry staan op de bestaande Synology,
Linux x86_64 mini-pc. Er is geen extra hardware nodig. De mini-pc moet aanstaan en
wakker blijven; Docker en de runner moeten draaien. Anders blijven jobs wachten.
Een host-runner voert repositorycode uit als de ontwikkelgebruiker: gebruik deze
runner alleen voor deze vertrouwde repository.
runner alleen voor de vertrouwde repositories van deze eigenaar.
De runner heeft Git, Bash, JDK 25, Maven 3.9+, Node 22.22.3+/24.15.0+/26+, npm
en een werkende Docker-daemon
@@ -87,7 +87,7 @@ Docker-clients die images van deze interne HTTP-registry moeten ophalen.
Gebruik de Docker Desktop-context of zet `DOCKER_HOST` expliciet. De installer
neemt de geselecteerde socket over in de gebruikersservice. Als de socket later
wijzigt, pas dan `~/.config/agiledancers-runner/environment` aan en herstart de
wijzigt, pas dan `~/.config/mini-pc-runner/environment` aan en herstart de
runner. Bij Docker Desktop blijft de Desktop-VM eveneens nodig voor builds.
Runner en containers moeten de Synology en internetdownloads kunnen bereiken.
@@ -109,12 +109,13 @@ Stel bij repository **Settings → Actions** in:
| Secret | `REGISTRY_TOKEN` | PAT met `write:package` en `read:repository` voor imagepublicatie en controle van de huidige hoofdbranch |
Het gewone jobtoken van Gitea 1.25 biedt geen packagepublicatie; gebruik een PAT.
Gebruik een repository-runnerregistratietoken, geen instancebrede registratie.
Gebruik de gedeelde user-scoped runner `mini-pc` voor `wanjakrah`; een nieuwe
repository heeft geen eigen runnerregistratie nodig.
Sla tokenwaarden buiten Git op en plaats ze niet in opdrachten, screenshots of logs.
Voor reproduceerbare configuratie bestaat `java generated/ci/Ci.java configure-gitea`. Maak twee
bestanden buiten de repository met mode `600`: één voor een PAT met voldoende
repositorybeheerrechten (repository Actions, secrets, variabelen en runnerregistratie),
repositorybeheerrechten (repository Actions, secrets en variabelen),
en één voor de publicatie-PAT. De beheer-PAT hoeft niet als workflowsecret te worden
bewaard. Vul die bestanden via een lokale editor of verborgen terminalinvoer.
Voer daarna uit met de werkelijke platformwaarde:
@@ -127,11 +128,9 @@ export TARGET_PLATFORM=linux/amd64 # alleen als dit op de Synology is vastgeste
java generated/ci/Ci.java configure-gitea
```
Het script stelt de repository-instellingen in via de API en schrijft het
runnerregistratietoken naar
`~/.config/agiledancers-runner/registration-token` met mode `600`. Het toont geen
tokenwaarden. Voor handmatige inrichting kun je dat registratietoken uit de
repository-instellingen halen en in hetzelfde bestand plaatsen.
Het script stelt alleen de applicatie-instellingen, registrysecrets en platformwaarde
in. De gedeelde runnerregistratie wordt eenmalig beheerd vanuit engineering.
Applicatiespecifieke deploymentcredentials blijven onder ~/.config/agiledancers-runner/.
De bevestigde Gitea 1.25.4-configuratie heeft geen `[actions]`-sectie: de defaults
zijn negentig dagen voor artifacts en 365 dagen voor logs. Een workflow vraagt veertien dagen
@@ -139,43 +138,30 @@ via `retention-days: 14`. Een kortere serverlimiet of het vroegtijdig verwijdere
van workflowruns mag die periode niet inkorten. Artifactretentie geldt voor
testdiagnostiek; gepubliceerde containerimages worden niet automatisch verwijderd.
## Runner installeren en starten
## Gedeelde runner gebruiken
De fysieke mini-pc draait `mini-pc-runner.service` met label `mini-pc:host`,
geregistreerd op gebruikersniveau voor `wanjakrah`. Daardoor kunnen bestaande en
nieuwe repositories van deze eigenaar dezelfde runner gebruiken. De gedeelde
capaciteit is één job tegelijk. De workflowbestanden gebruiken `runs-on: mini-pc`.
Voor eenmalige registratie, installatie en migratie volg je de
[engineering-instructies](http://192.168.2.28:3000/wanjakrah/engineering/src/tag/v2.0.0/README.md).
Controleer dit project met `java generated/ci/Ci.java check-runner`; gebruik daarbij
het in engineering beschreven owner-only tokenbestand voor de gedeelde setup.
```sh
export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
java generated/ci/Ci.java install-runner --prepare-only
# Na Dockerconfiguratie en het opslaan van het registratietoken:
java generated/ci/Ci.java install-runner
systemctl --user status agiledancers-runner
journalctl --user -u agiledancers-runner -f
systemctl --user status mini-pc-runner
journalctl --user -u mini-pc-runner -f
systemctl --user restart mini-pc-runner
```
De installer controleert tools, installeert checksum-gecontroleerde runner
`v0.2.13`, neemt label `agiledancers-mini-pc:host` over en registreert de runner.
Configuratie en `.runner`-credentials staan in
`~/.local/share/agiledancers-runner`, de service in
`~/.config/systemd/user/agiledancers-runner.service` en de expliciete Java-, PATH-
en Docker-socketinstellingen in `~/.config/agiledancers-runner/environment`.
Een bestaande registratie wordt hergebruikt. Er worden geen secrets in de
repository geschreven. Bewaar het tokenbestand alleen zolang registratie/herstel
dat nodig heeft en behandel `.runner` als credential.
Op de mini-pc starten Docker Desktop en de runner automatisch na grafisch
aanmelden. Bij een Docker Desktop-socket installeert de installer hiervoor
`~/.config/systemd/user/agiledancers-runner.service.d/10-agiledancers-docker-desktop.conf`
en schakelt beide services in voor `graphical-session.target`. De runner wacht
via `~/.local/share/agiledancers-runner/WaitForDocker.java` maximaal 120 seconden
tot de ingestelde Docker-engine bereikbaar is. Bij een mislukte start probeert
systemd het na tien seconden opnieuw. De runner volgt stoppen en herstarten van
Docker Desktop en stopt bij afmelden.
User lingering staat op deze pc uit: vóór aanmelden starten deze services niet.
S4 belooft geen beschikbaarheid wanneer de mini-pc uitstaat. Herstarten/stoppen:
```sh
systemctl --user restart agiledancers-runner
systemctl --user stop agiledancers-runner
```
Runnerstate staat onder ~/.local/share/mini-pc-runner/ en serviceconfiguratie onder
~/.config/mini-pc-runner/. De runner start samen met Docker Desktop na grafisch
aanmelden, wacht maximaal 120 seconden op Docker en probeert een mislukte start
opnieuw. User lingering staat uit: vóór aanmelden of bij een uitgeschakelde mini-pc
is de runner niet beschikbaar. De oude agiledancers-runnerstate blijft voor herstel
bewaard; applicatiespecifieke deploymenttokens en SSH-sleutels blijven op hun eigen paden.
## Images en publicatie