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.

Important

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).

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

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

cfg = Config{
        log:           logf.Log.WithName("prune"),
        DryRun:        false,
        Clientset:     client,
        LabelSelector: "app=<operator_name>",
        Resources: []schema.GroupVersionKind{
                {Group: "", Version: "", Kind: PodKind},
        },
        Namespaces: []string{"<operator_namespace>"},
        Strategy: StrategyConfig{
                Mode:            MaxCountStrategy,
                MaxCountSetting: 1,
        },
        PreDeleteHook: myhook,
}
Copy to Clipboard Toggle word wrap

Le fichier de configuration de l’utilitaire d’élagage définit les actions d’élagage en utilisant les champs suivants:

Expand
Champ de configurationDescription

journal de bord

Enregistreur utilisé pour gérer les messages de journal de la bibliothèque.

Dryrun

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.

Ensemble de clients

Kubernetes ClientSet utilisé pour les appels d’API Kubernetes.

LabelSelector

Expression de sélecteur d’étiquettes Kubernetes utilisée pour trouver des ressources à tailler.

Ressources

Les types de ressources Kubernetes. Actuellement, PodKind et JobKind sont pris en charge.

Espaces de noms

Liste des espaces de noms Kubernetes pour rechercher des ressources.

La stratégie

La stratégie d’élagage à exécuter.

La stratégie.Mode

Actuellement, MaxCountStrategy, MaxAgeStrategy ou CustomStrategy sont pris en charge.

La stratégie.MaxCountSetting

La valeur entière de MaxCountStrategy spécifie combien de ressources devraient rester après l’exécution de l’utilitaire de taille.

La stratégie.MaxAgeSetting

Go time.Duration string valeur, telle que 48h, qui spécifie l’âge des ressources à tailler.

Jeu Stratégie.CustomSettings

Go carte des valeurs qui peuvent être transmises dans une fonction de stratégie personnalisée.

Ajouter au panier PreDeleteHook

Facultatif: Go fonction à appeler avant de tailler une ressource.

CustomStrategy

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)
Copy to Clipboard Toggle word wrap

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.

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat