5.14. Utilitaire d’élagage d’objets pour les opérateurs Go-based
L’utilitaire d’élagage opérateur-lib permet aux opérateurs Go-based de nettoyer ou tailler 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.
La version prise en charge par Red Hat de l’outil Operator SDK CLI, y compris les outils d’échafaudage et de test connexes pour les projets Opérateur, est dépréciée et devrait être supprimée dans une future version de Red Hat OpenShift Service sur AWS. Le Red Hat fournira des corrections de bogues et une prise en charge de cette fonctionnalité pendant le cycle de vie de la version actuelle, mais cette fonctionnalité ne recevra plus d’améliorations et sera supprimée du futur service Red Hat OpenShift sur les versions AWS.
La version prise en charge par Red Hat du SDK de l’opérateur n’est pas recommandée pour la création de nouveaux projets d’opérateur. Les auteurs d’opérateurs avec des projets d’opérateur existants peuvent utiliser la version de l’outil Operator SDK CLI publié avec Red Hat OpenShift Service sur AWS 4 pour maintenir leurs projets et créer des versions d’opérateur ciblant de nouvelles versions de Red Hat OpenShift Service sur AWS.
Les images de base suivantes pour les projets d’opérateur ne sont pas dépréciées. Les fonctionnalités d’exécution et les API de configuration de ces images de base sont toujours prises en charge pour les corrections de bogues et pour l’adressage des CVE.
- L’image de base pour les projets d’opérateurs basés sur Ansible
- L’image de base pour les projets d’opérateur basé sur Helm
Afin d’obtenir de l’information sur la version non prise en charge et gérée par la communauté du SDK de l’opérateur, voir Operator SDK (Operator Framework).
5.14.1. À propos de l’utilitaire d’élagage de l’opérateur-lib Copier lienLien copié sur presse-papiers!
Les objets, tels que les emplois ou les pods, sont créés en tant que partie normale du cycle de vie de l’opérateur. Lorsqu’un administrateur ayant le rôle d’administrateur dédié ou l’opérateur ne supprime pas cet objet, il peut rester dans le cluster et consommer des ressources.
Auparavant, les options suivantes étaient disponibles pour l’élagage d’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 eux-mêmes les objets.
L’utilitaire d’élagage de l’opérateur-lib supprime les objets d’un cluster Kubernetes pour un espace de noms donné. La bibliothèque a été ajoutée dans la version 0.9.0 de la bibliothèque opérateur-lib dans le cadre de l’opérateur.
5.14.2. Configuration de l’utilitaire d’élagage Copier lienLien copié sur presse-papiers!
L’utilitaire d’élagage opérateur-lib est écrit dans Go et comprend des stratégies d’élagage communes pour les opérateurs basés sur Go.
Configuration d’exemple
Le fichier de configuration de l’utilitaire d’élagage définit les actions d’élagage en utilisant les champs suivants:
Champ de configuration | Description |
---|---|
| Enregistreur utilisé pour gérer les messages de journal de la bibliothèque. |
| Booléen qui détermine si les ressources doivent être supprimées. Lorsqu’il est défini à true, l’utilitaire s’exécute mais ne supprime pas les ressources. |
| Kubernetes ClientSet utilisé pour les appels d’API Kubernetes. |
| Expression de sélecteur d’étiquettes Kubernetes utilisée pour trouver des ressources à tailler. |
| Les types de ressources Kubernetes. Actuellement, PodKind et JobKind sont pris en charge. |
| Liste des espaces de noms Kubernetes pour rechercher des ressources. |
| La stratégie d’élagage à exécuter. |
| Actuellement, MaxCountStrategy, MaxAgeStrategy ou CustomStrategy sont pris en charge. |
| La valeur entière de MaxCountStrategy spécifie combien de ressources devraient rester après l’exécution de l’utilitaire de taille. |
| Go time.Duration string valeur, telle que 48h, qui spécifie l’âge des ressources à tailler. |
| Go carte des valeurs qui peuvent être transmises dans une fonction de stratégie personnalisée. |
| Facultatif: Go fonction à appeler avant de tailler une ressource. |
| Facultatif: Go fonction qui implémente une stratégie d’élagage personnalisée. |
Exécution de l’élagage
Il est possible d’appeler l’action d’élagage en exécutant la fonction d’exécution sur la configuration de l’élagage.
err := cfg.Execute(ctx)
err := cfg.Execute(ctx)
Il est également possible d’appeler une action d’élagage en utilisant un paquet cron ou en appelant l’utilitaire d’élagage avec un événement déclencheur.