Caching abschalten
Von Anfang an wurde das Caching des GitLab CI Systems zum Cachen der Ubuntu Ausgangsisos genutzt. Dies hat ja auch Sinn ergeben, das sich das ISO nur alle paar Monate mal aktualisiert wird. Jedoch wurde dies im Zuge der 5.8 Kernelproblematik in a2ff071f auf ein täglich aktualisiertes ISO geändert. Dies hatte jedoch das Problem, dass sobald das ISO einmal gecacht wurde, es nicht mehr aktualisiert wurde, welches zuerst in 18588cc7 durch manuelles Umbenennen der heruntergeladenen Datei angegangen wurde, was später durch eine automatische Benennung in caa9e76c ersetzt wurde.
Jedoch wurden bei den ganzen Änderungen nicht die Implikationen auf den eigentlichen Cache betrachtet. Dieser cacht alle Dateien im cache
-Ordner für kommende Builds. Angenommen, dass jeden Tag mind. ein Build angestoßen wird, so wird jeden Tag eine neue ISO-Datei zum Cache-Ordner hinzugefügt. Jedoch wird der Cache nie gelöscht (soweit ich das sehen kann), wodurch dann irgendwann der Platz ausgeht (bsp. https://gitli.stratum0.org/heyalter/heyalter-ubuntu-iso/-/jobs/2583).
Man könnte natürlich jetzt ne Strategie bauen, um alte Images aus dem Cache zu löschen, bevor man ein neues runterlädt. Jedoch plädiere ich für die komplette Abschaltung des Cachings:
- Wir haben wirklich wenig Builds pro Tag
- zusätzlicher Traffic ist vernachlässigbar
- Der erste Build des Tags wird durch das Caching verlängert (da zuerst das alte Image aus dem Cache geholt werden muss und später das neue Image wieder in den Cache geladen werden muss. Zweiteres ist im Falle von nur einem Build am Tag auch verschwendete Zeit)
- Sollte die Zahl der Pipelines pro Tag drastisch zunehmen, kann man sich dann Gedanken über Caching zur Reduktion des Traffics machen.
- Wir cachen auch den Rest nicht (Snaps, APT-Pakete, die installiert werden). Wenn Caching weiterhin aktiv bleiben soll, dann sollten solche Dinge auch konsequent gecacht werden!
- Wir sparen uns Cache-Problematiken (kaputte Dateien im Cache, obige Cache-Überfüllung, gegenseitige Beeinflussung von Jobs)