View a markdown version of this page

Configuration des paramètres d'Argo CD - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des paramètres d'Argo CD

La fonctionnalité EKS pour Argo CD fournit une expérience Argo CD entièrement gérée. Upstream Argo CD propose de nombreux paramètres et fonctionnalités optionnels, et cette fonctionnalité prend en charge un sous-ensemble d'entre eux. Pour les paramètres pris en charge, vous les configurez de la même manière qu'Argo CD en amont, via l'interface argocd-cm ConfigMap de votre cluster. La fonctionnalité lit les champs pris en charge à partir de celui-ci ConfigMap et les applique à l'instance Argo CD gérée.

Les sections suivantes décrivent comment configurer les argocd-cm ConfigMap paramètres pris en charge.

Conditions préalables

Avant de configurer les paramètres d'Argo CD, vous devez disposer des éléments suivants :

  • Un cluster EKS avec la fonctionnalité Argo CD a été créé (voirCréation d’une fonctionnalité Argo CD)

  • L'espace de noms configuré pour Argo CD dans la fonctionnalité (par défaut, l'argocdespace de noms)

  • La kubectl CLI configurée pour communiquer avec votre cluster

Configurez l'argocd-cm ConfigMap

Pour configurer les paramètres Argo CD pris en charge, créez un ConfigMap nom argocd-cm dans votre cluster. La fonctionnalité gérée lit les paramètres pris en charge à partir de celui-ci ConfigMap et les applique à l'instance Argo CD gérée. Pour connaître les paramètres pris en charge par cette fonctionnalité et la manière dont elle les applique, consultezParamètres pris en charge.

Créez le ConfigMap avec les exigences suivantes :

  • Nommez le ConfigMap argocd-cm.

  • Créez-le dans l'espace de noms configuré pour Argo CD dans la fonctionnalité (l'espace de noms que vous avez défini dans la configuration Argo CD lorsque vous avez créé la fonctionnalité). Par défaut, il s'agit de l'espace de argocd noms.

  • Appliquez l'étiquetteapp.kubernetes.io/part-of: argocd. Cette étiquette est obligatoire et correspond au comportement en amont d'Argo CD.

  • Utilisez le même format de champ et les mêmes clés que le CD Argo en amont.

L'exemple suivant montre la ConfigMap structure, avec un paramètre qui affiche une bannière sur l'interface utilisateur d'Argo CD. Ajoutez d'autres paramètres pris data en charge ci-dessous de la même manière.

apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: ui.bannercontent: "Production cluster"
Important

A n' ConfigMap est pas un magasin sécurisé. Ne mettez pas de secrets, d'informations d'identification ou d'autres informations sensibles dans le argocd-cm ConfigMap.

Comment la fonctionnalité applique vos paramètres

Vous configurez Argo CD en créant un argocd-cm ConfigMap dans votre propre cluster. Cette fonctionnalité applique les paramètres pris en charge de votre instance Argo CD ConfigMap à l'instance gérée. Il applique uniquement les paramètres pris en charge et ignore tout autre champ ou fonctionnalité que vous définissez. Tout paramètre qui n'est pas répertorié dans n'Paramètres pris en chargeest pas pris en charge et n'a aucun effet.

Cette fonctionnalité valide les valeurs que vous définissez. Si une valeur n'est pas valide ou mal formée, la fonctionnalité ignore cette valeur et continue de fonctionner avec sa configuration par défaut pour ce paramètre. Une erreur dans votre instance Argo CD gérée ConfigMap n'est pas interrompue.

Note

La fonctionnalité applique la configuration depuis votre cluster. argocd-cm ConfigMap Tout administrateur disposant d'un accès en écriture ConfigMap peut modifier la configuration de votre instance Argo CD gérée. Le contrôle d'accès basé sur les rôles (RBAC) Kubernetes de votre cluster régit l'accès à la ressource de capacité ConfigMap, et non les autorisations IAM qui contrôlent cette ressource. Pour des raisons de sécurité, accordez l'autorisation de modifier les objets de l'espace de noms Argo CD uniquement aux utilisateurs de confiance et aux comptes de service. Comme Kubernetes RBAC étend les autorisations par type de ressource, vous pouvez toujours accorder l'accès dont les autres utilisateurs ont besoin. Par exemple, vous pouvez autoriser les développeurs à créer et à gérer des applications sans les modifier ConfigMaps. Cela les empêche de modifier la argocd-cm configuration.

Pour plus d'informations sur le modèle de responsabilité partagée, Kubernetes RBAC et l'isolation des espaces de noms pour la fonctionnalité Argo CD, consultez. Considérations relatives à la sécurité pour les fonctionnalités EKS Pour contrôler l'accès dans Argo CD, consultezConfigurer les autorisations d'Argo CD.

Paramètres pris en charge

Les sections suivantes répertorient les argocd-cm paramètres pris en charge par la fonctionnalité gérée, regroupés par catégorie. Chaque réglage utilise la même clé et le même format que l'Argo CD en amont. La colonne Comment votre valeur est appliquée de chaque tableau indique si votre valeur ajoute ou remplace la configuration par défaut de la fonctionnalité. Pour une description complète de chaque paramètre, consultez la ConfigMap référence argocd-cm sur le site Web de documentation d'Argo CD.

Interface utilisateur

Ces paramètres personnalisent l'interface utilisateur d'Argo CD.

Paramètre Description Comment votre valeur est appliquée

ui.bannercontent

Texte d'une bannière affichée dans l'interface utilisateur, comme un identifiant d'environnement ou un avis de maintenance.

Remplacements

ui.bannerurl

URL vers laquelle la bannière renvoie, telle qu'un runbook ou une page wiki.

Remplacements

ui.bannerpermanent

Définissez cette option true pour empêcher les utilisateurs de fermer la bannière.

Remplacements

ui.bannerposition

Où apparaît la bannière : topbottom, ouboth.

Remplacements

ui.cssurl

URL d'un fichier CSS personnalisé pour l'image de marque ou le style. Le CSS s'exécute dans votre navigateur.

Remplacements

Paramètres des ressources

Ces paramètres contrôlent la manière dont la fonctionnalité surveille, compare et affiche les ressources gérées par Argo CD.

Paramètre Description Comment votre valeur est appliquée

resource.customizations.ignoreDifferences.<group>_<kind>

Champs à ignorer lorsqu'Argo CD compare Git au cluster pour un type de ressource, tels que le nombre de répliques géré par un Autoscaler Horizontal Pod.

Ajoute

resource.customizations.ignoreDifferences.all

Champs à ignorer lors de la comparaison de Git avec le cluster, appliqués à tous les types de ressources.

Ajoute

resource.customizations.ignoreResourceUpdates.<group>_<kind>

Champs ignorés par Argo CD lorsqu'il décide si un événement de mise à jour doit déclencher une réconciliation, ce qui réduit la charge. L'événement se produit toujours et Argo CD ignore uniquement les modifications apportées à ces champs.

Ajoute

resource.customizations.ignoreResourceUpdates.all

Champs ignorés par Argo CD lors du traitement des événements de mise à jour, appliqués à tous les types de ressources.

Ajoute

resource.customizations.knownTypeFields.<group>_<kind>

Types de champs (liste, carte ou primitive) pour une ressource personnalisée, afin qu'Argo CD calcule des différences précises au lieu d'afficher le remplacement complet du champ.

Ajoute

resource.customizations.health.<group>_<kind>

Contrôle de santé personnalisé pour un type de ressource, défini comme un script Lua. Cette fonctionnalité inclut des contrôles de santé intégrés pour les ressources ACK et KRO. Consultez Surveillances d'état personnalisées.

Remplacements

resource.exclusions

Types de ressources qu'Argo CD ne surveille pas, ce qui améliore les performances des types à taux de désabonnement élevé.

Ajoute

resource.inclusions

Types de ressources surveillés par Argo CD. Une fois réglé, Argo CD ne regarde que les types répertoriés.

Ajoute

resource.compareoptions

Les options qui contrôlent la façon dont Argo CD calcule les différences, telles que. ignoreAggregatedRoles

Remplacements

resource.respectRBAC

Si le contrôleur surveille uniquement les ressources qu'il est autorisé à lire par le RBAC. Accepte normal oustrict.

Remplacements

resource.customLabels

Étiquettes de ressources supplémentaires à afficher dans la vue des ressources de l'interface utilisateur.

Remplacements

resource.includeEventLabelKeys

Étiquettes d'applications et de projets à copier sur les événements Kubernetes générés par Argo CD.

Remplacements

resource.excludeEventLabelKeys

Étiquettes à exclure des événements Kubernetes générés par Argo CD.

Remplacements

resource.sensitive.mask.annotations

Annotations à masquer lorsque l'interface utilisateur ou la CLI affiche des secrets.

Remplacements

Paramètres du référentiel et des outils

Ces paramètres contrôlent les outils de manifeste qu'Argo CD utilise pour afficher vos manifestes.

Paramètre Description Comment votre valeur est appliquée

kustomize.enable

Si Kustomize est activé en tant que type de source manifeste.

Remplacements

helm.enable

Si Helm est activé en tant que type de source manifeste.

Remplacements

jsonnet.enable

Indique si Jsonnet est activé en tant que type de source de manifeste.

Remplacements

kustomize.buildOptions

Des indicateurs de ligne de commande globaux sont transmis à chaquekustomize build. La fonctionnalité prend en charge un sous-ensemble de drapeaux. Consultez Drapeaux Kustomize.buildOptions pris en charge.

Remplacements

Drapeaux Kustomize.buildOptions pris en charge

Pourkustomize.buildOptions, la fonctionnalité filtre votre valeur selon un ensemble d'indicateurs sûrs et pris en charge. Il ne prend pas en charge les indicateurs qui permettent à la compilation de lire des fichiers arbitraires ou d'exécuter du code arbitraire. Il supprime individuellement tout indicateur non pris en charge ou toute valeur non valide et applique les autres indicateurs pris en charge. Vous pouvez écrire des drapeaux au --flag=value format --flag value ou.

Indicateur Valeurs prises en charge Remarques

--reorder

legacy, none

Modifie l'ordre du YAML rendu uniquement.

--enable-helm

Booléen

Exécute le binaire Helm géré à partir du chemin.

--enable-managedby-label

Booléen

Ajoute uniquement des étiquettes.

La fonctionnalité supprime tout autre indicateur, y compris --load-restrictor--enable-exec, et--enable-alpha-plugins.

Surveillances d'état personnalisées

Argo CD évalue l'état des ressources qu'il déploie. Pour les ressources Kubernetes standard telles que les déploiements et les services, Argo CD intègre une logique de santé. Pour les ressources personnalisées qu'Argo CD ne reconnaît pas, il n'a pas de logique de santé intégrée et ne signale aucun état de santé.

Lorsqu'une ressource personnalisée ne fait l'objet d'aucun bilan de santé, Argo CD ne signale aucun état de santé pour elle et l'exclut de l'état général de l'application. Par conséquent, une application peut signaler Healthy même si ses ressources sont toujours en cours d'approvisionnement ou en panne. Cela signifie également que les vagues de synchronisation peuvent avancer avant que ces ressources ne soient prêtes, car l'ordre de synchronisation dépend de l'état de santé déclaré.

Grâce à des bilans de santé personnalisés, vous pouvez définir une logique d'intégrité pour vos ressources personnalisées, afin qu'Argo CD affiche un état de santé précis et séquence correctement les déploiements. Vous définissez des bilans de santé personnalisés de la même manière que dans Argo CD en amont, à l'aide des mêmes clés de configuration. Les scripts en amont et les exemples communautaires existants fonctionnent avec la fonctionnalité EKS pour Argo CD sans modification.

Built-in bilans de santé pour ACK et kro

La fonctionnalité EKS pour Argo CD inclut des contrôles de santé intégrés pour les ressources AWS Controllers for Kubernetes (ACK) et kro (Kube Resource Orchestrator). Ces ressources indiquent un état de santé précis sans configuration supplémentaire.

Pour modifier la façon dont la fonctionnalité évalue l'état d'une ressource ACK ou KRO, vous pouvez définir un bilan de santé personnalisé pour ce type de ressource. Un bilan de santé personnalisé que vous définissez pour un type de ressource remplace le bilan de santé intégré pour ce type.

Rédiger un bilan de santé personnalisé

Définissez un bilan de santé personnalisé en ajoutant un script Lua au argocd-cm ConfigMap, à l'aide d'une clé au format suivant :

resource.customizations.health.<group>_<kind>

<group>Remplacez-le par le groupe d'API de la ressource personnalisée et <kind> par son type. Par exemple, la clé d'une ressource personnalisée avec le groupe d'API example.com et le type Database estresource.customizations.health.example.com_Database.

Le script Lua a accès à l'objet ressource via la obj variable globale. Le script doit renvoyer une table dont status le champ est défini sur l'une des Healthy valeurs Progressing suivantes :Degraded, ouSuspended. Le script peut également définir un message champ facultatif pour fournir un message d'état descriptif.

L'exemple suivant ConfigMap définit un bilan de santé pour une ressource Database personnalisée. Le script indique la ressource au Healthy moment où se trouve sa phase d'étatReady, et dans le Progressing cas contraire :

apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs

Pour plus d'informations sur le format de script de contrôle de santé, la liste des bilans de santé intégrés et des exemples communautaires que vous pouvez adapter, consultez Resource Health sur le site Web de documentation d'Argo CD.

Sécurité et limites

Grâce à la fonctionnalité gérée, vos scripts de contrôle de santé personnalisés s'exécutent dans un environnement informatique isolé et entièrement géré. L'environnement d'exécution est isolé par fonctionnalité et n'a pas accès aux données de votre cluster ni aux AWS API. Vous ne provisionnez, ne corrigez ni n'exploitez aucune partie de l'environnement d'exécution.

Lorsque vous rédigez des bilans de santé personnalisés à utiliser avec la fonctionnalité EKS, tenez compte des points suivants :

  • Les bibliothèques Lua standard ne sont pas disponibles. L'useOpenLibsoption est toujours désactivée, ce qui est la valeur par défaut dans Argo CD en amont. Les scripts ne peuvent pas accéder au système d'exploitation ou au système de fichiers. Si vous migrez un script depuis un CD Argo autogéré qui repose sur des bibliothèques Lua standard, il se peut qu'il ne s'exécute pas de la même manière dans cette fonctionnalité. Nous vous recommandons de tester vos scripts de contrôle de santé dans un environnement de développement avant de les utiliser en production.

Si l'évaluation de l'état de santé est temporairement indisponible, les rapports de capacité ont affecté les ressources personnalisées Progressing au lieu de supprimer leur état de santé. Cela permet de garder les ressources affectées visibles dans l'état de santé de l'application jusqu'à la reprise de l'évaluation.

Vérifier un bilan de santé personnalisé

Après avoir appliqué ou mis à jour le argocd-cm ConfigMap, confirmez que le bilan de santé est actif :

  1. Dans l'interface utilisateur d'Argo CD, choisissez une application qui inclut une ressource personnalisée du type pour lequel vous avez défini un bilan de santé. Vérifiez que la ressource indique l'état de santé renvoyé par votre script. Vous pouvez également exécuter argocd app get <application-name> et revoir l'état de santé de la ressource.

  2. Si la ressource n'indique pas l'état de santé attendu, vérifiez les points suivants :

    • Le ConfigMap est nommé argocd-cm et se trouve dans l'espace de noms configuré pour Argo CD dans la fonctionnalité.

    • ConfigMap Possède l'app.kubernetes.io/part-of: argocdétiquette requise.

    • La touche de contrôle de santé utilise la valeur correcte <group>_<kind> pour le type de ressource.