5.15. Utilitaire d'élagage d'objets pour les opérateurs basés sur Go
L'utilitaire d'élagage operator-lib
permet aux opérateurs basés sur Go de nettoyer, ou d'élaguer, les objets lorsqu'ils ne sont plus nécessaires. Les auteurs d'opérateurs peuvent également utiliser l'utilitaire pour créer des crochets et des stratégies personnalisés.
5.15.1. À propos de l'utilitaire d'élagage operator-lib
Les objets, tels que les jobs ou les pods, sont créés dans le cadre normal du cycle de vie de l'opérateur. Si l'administrateur du cluster ou l'opérateur ne supprime pas ces objets, ils peuvent rester dans le cluster et consommer des ressources.
Auparavant, les options suivantes étaient disponibles pour élaguer les objets inutiles :
- Les auteurs d'opérateurs ont dû créer une solution d'élagage unique pour leurs opérateurs.
- Les administrateurs de clusters devaient nettoyer les objets eux-mêmes.
L'utilitaire d'élagage operator-lib
supprime les objets d'un cluster Kubernetes pour un espace de noms donné. La bibliothèque a été ajoutée à la version 0.9.0
de la bibliothèqueoperator-lib
dans le cadre de l'Operator Framework.
5.15.2. Configuration de l'utilitaire d'élagage
L'utilitaire d'élagage operator-lib
est écrit en Go et comprend des stratégies d'élagage courantes pour les opérateurs basés sur Go.
Exemple de configuration
cfg = Config{ log: logf.Log.WithName("prune"), DryRun: false, Clientset: client, LabelSelector: "app=<operator_name>", Resources: []schema.GroupVersionKind{ {Group: "", Version: "", Kind: PodKind}, }, Namespaces: []string{"default"}, Strategy: StrategyConfig{ Mode: MaxCountStrategy, MaxCountSetting: 1, }, PreDeleteHook: myhook, }
Le fichier de configuration de l'utilitaire d'élagage définit les actions d'élagage à l'aide des champs suivants :
Champ de configuration | Description |
---|---|
| Logger utilisé pour gérer les messages de la bibliothèque. |
|
Booléen qui détermine si les ressources doivent être supprimées. S'il vaut |
| Client-go Kubernetes ClientSet utilisé pour les appels à l'API Kubernetes. |
| Expression du sélecteur de label Kubernetes utilisée pour trouver les ressources à élaguer. |
|
Types de ressources Kubernetes. |
| Liste des espaces de noms Kubernetes pour rechercher des ressources. |
| Stratégie d'élagage à exécuter. |
|
|
|
Valeur entière pour |
|
Go |
| Carte des valeurs qui peuvent être transmises à une fonction de stratégie personnalisée. |
| Facultatif : Fonction Go à appeler avant d'élaguer une ressource. |
| Facultatif : Fonction Go qui met en œuvre une stratégie d'élagage personnalisée |
Exécution de l'élagage
Vous pouvez appeler l'action d'élagage en exécutant la fonction execute sur la configuration d'élagage.
err := cfg.Execute(ctx)
Vous pouvez également appeler une action d'élagage en utilisant un paquet cron ou en appelant l'utilitaire d'élagage avec un événement déclencheur.