imglife cleanup
Synopsis
Section intitulée « Synopsis »imglife cleanup [flags]Applique la politique retention à toutes les images déclarées dans build.images et leurs miroirs correspondants. Supprime (ou archive) les tags dépassant keep_last ou max_age_days.
| Flag | Défaut | Description |
|---|---|---|
--dry-run |
false |
Simuler les suppressions sans effectuer de changement |
--list |
false |
Afficher les tags concernés et quitter |
--force |
false |
Outrepasser le garde-fou et nettoyer même si aucune image de base référencée par une application n’est trouvée |
Exemples
Section intitulée « Exemples »# Aperçu : afficher ce qui serait suppriméimglife cleanup --list
# Dry-run : simuler sans supprimerimglife cleanup --dry-run
# Appliquer la politique de rétentionimglife cleanupCritères de suppression
Section intitulée « Critères de suppression »Un tag est candidat à la suppression s’il satisfait l’une des conditions suivantes :
- Sa position dans la liste triée de sa ligne de version dépasse
keep_last. - Son horodatage de création est plus ancien que
max_age_daysjours.
Les tags listés dans retention.exclude_tags ne sont jamais supprimés.
Le classement est effectué par ligne de version, jamais sur l’ensemble du dépôt : une ligne par entrée sync visant ce dépôt (avec son propre keep_last, à défaut retention.keep_last) et une ligne par bloc build.images qui le produit. Trois blocs folder: jdk figés sur JDK 8, 11 et 25 conservent donc chacun leurs keep_last tags — la ligne la plus récente n’évince plus les anciennes. Les tags d’un dépôt miroir ne correspondant à aucune ligne restent classés ensemble sous retention.keep_last.
Garde-fou de sécurité
Section intitulée « Garde-fou de sécurité »Un tag d’image de base est également protégé lorsqu’il est référencé par un build record applicatif stocké dans le package registry. Pour éviter une suppression massive, lorsque des build.images sont configurées mais que des build records applicatifs existent sans donner aucune image de base référencée — ou que certains records ne peuvent pas être lus — le cleanup s’interrompt au lieu de considérer toutes les images de base comme non référencées.
Le garde-fou ne s’active pas lorsque le package registry indique proprement qu’il ne contient aucun build record applicatif : il s’agit alors d’un projet jeune dont les pipelines applicatifs n’ont encore rien publié, sans rien qui puisse être pris à tort pour « non référencé ». Le cleanup procède alors selon les politiques keep_last / max_age_days normales. Un registry mal configuré ou injoignable se manifeste plus tôt par une erreur explicite, et non par une liste vide.
Utilisez --force pour outrepasser le garde-fou, par exemple une fois que tous les build records applicatifs ont réellement été supprimés. Le garde-fou ne s’active jamais pour les configurations miroir uniquement (sans build.images) ni en mode --dry-run/--list.
Mode archive
Section intitulée « Mode archive »Quand retention.archive.enabled: true, les tags sont copiés vers retention.archive.registry avant suppression. Cela crée un filet de sécurité pour les images supprimées accidentellement.
Après retention.archive.keep_days jours, la copie archivée est supprimée lors du prochain cycle de cleanup.
Détection des orphelins
Section intitulée « Détection des orphelins »imglife signale les images présentes dans le registry OCI mais qui ne sont plus déclarées dans build.images. Ces images dites « type-orphan » apparaissent dans la sortie --list avec un avertissement, mais ne sont pas supprimées automatiquement. Supprimez-les manuellement après vérification.
Configuration
Section intitulée « Configuration »retention: keep_last: 5 max_age_days: 90 exclude_tags: [latest, stable] archive: enabled: true registry: registry.example.com/archive keep_days: 180Voir la configuration retention pour la référence complète.
Rapport de fin d’exécution
Section intitulée « Rapport de fin d’exécution »Après chaque exécution (pas en mode --list), imglife affiche un résumé sur stdout :
Cleanup Summary · 3.8s ─────────────────────────────────── Tags examined 24 ├─ Deleted 5 ├─ Archived 2 ├─ Kept 17 └─ Errors 0En mode --dry-run, l’en-tête est préfixé par [dry-run]. Définir NO_COLOR=1 ou TERM=dumb pour désactiver les couleurs ANSI.
Codes de sortie
Section intitulée « Codes de sortie »| Code | Signification |
|---|---|
0 |
Cleanup terminé (y compris suppressions partielles) |
1 |
Erreur fatale empêchant le cleanup |