View a markdown version of this page

Argo CD-Einstellungen konfigurieren - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Argo CD-Einstellungen konfigurieren

Die EKS-Funktion für Argo CD bietet ein vollständig verwaltetes Argo-CD-Erlebnis. Upstream Argo CD bietet viele optionale Einstellungen und Funktionen, und die Funktion unterstützt eine Teilmenge davon. Unterstützte Einstellungen konfigurieren Sie auf die gleiche Weise wie die Upstream-Argo-CD, und zwar über die argocd-cm ConfigMap in Ihrem Cluster. Die Funktion liest daraus die unterstützten Felder ConfigMap und wendet sie auf die verwaltete Argo CD-Instanz an.

In den folgenden Abschnitten wird beschrieben, wie Sie die vier argocd-cm ConfigMap unterstützten Einstellungen konfigurieren.

Voraussetzungen

Bevor Sie die Argo-CD-Einstellungen konfigurieren, benötigen Sie:

  • Ein EKS-Cluster mit der Argo-CD-Funktion wurde erstellt (siehe) Erstellen einer Argo CD-Funktion

  • Der in der Capability für Argo CD konfigurierte Namespace (standardmäßig der Namespace) argocd

  • Die kubectl CLI ist für die Kommunikation mit Ihrem Cluster konfiguriert

Konfigurieren Sie das argocd-cm ConfigMap

Um die unterstützten Argo-CD-Einstellungen zu konfigurieren, erstellen Sie einen ConfigMap Namen argocd-cm in Ihrem Cluster. Die verwaltete Funktion liest daraus die unterstützten Einstellungen ConfigMap und wendet sie auf die verwaltete Argo-CD-Instanz an. Informationen zu den Einstellungen, die die Funktion unterstützt, und wie sie angewendet werden, finden Sie unterUnterstützte Einstellungen.

Erstellen Sie das ConfigMap mit den folgenden Anforderungen:

  • Nennen Sie den ConfigMap argocd-cm.

  • Erstellen Sie es in dem für Argo CD in der Capability konfigurierten Namespace (dem Namespace, den Sie in der Argo-CD-Konfiguration festgelegt haben, als Sie die Capability erstellt haben). Standardmäßig ist dies der Namespace. argocd

  • Wenden Sie das Etikett app.kubernetes.io/part-of: argocd an. Dieses Label ist erforderlich und entspricht dem Verhalten der Upstream-Argo-CD.

  • Verwenden Sie dasselbe Feldformat und dieselben Schlüssel wie bei der Upstream-Argo-CD.

Das folgende Beispiel zeigt die ConfigMap Struktur mit einer Einstellung, die ein Banner auf der gesamten Argo CD-Benutzeroberfläche anzeigt. Fügen Sie auf die gleiche Weise weitere unterstützte Einstellungen unter data hinzu.

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

A ConfigMap ist kein sicherer Speicher. Speichern Sie keine Geheimnisse, Anmeldeinformationen oder andere vertrauliche Informationen in den argocd-cm ConfigMap.

Wie die Funktion Ihre Einstellungen anwendet

Sie konfigurieren Argo CD, indem Sie eine argocd-cm ConfigMap in Ihrem eigenen Cluster erstellen. Die Funktion wendet die unterstützten Einstellungen von Ihnen ConfigMap auf die verwaltete Argo-CD-Instanz an. Sie wendet nur unterstützte Einstellungen an und ignoriert alle anderen Felder oder Funktionen, die Sie festlegen. Jede Einstellung, die nicht unter aufgeführt ist, Unterstützte Einstellungen wird nicht unterstützt und hat keine Auswirkung.

Die Funktion validiert die von Ihnen festgelegten Werte. Wenn ein Wert ungültig oder falsch formatiert ist, ignoriert die Funktion diesen Wert und läuft mit der Standardkonfiguration für diese Einstellung weiter. Ein Fehler in Ihrem ConfigMap macht Ihre verwaltete Argo-CD-Instanz nicht kaputt.

Anmerkung

Die Funktion wendet die Konfiguration von argocd-cm ConfigMap in Ihrem Cluster an. Jeder Principal mit Schreibzugriff darauf ConfigMap kann die Konfiguration Ihrer verwalteten Argo-CD-Instanz ändern. Die rollenbasierte Zugriffskontrolle (RBAC) Ihres Clusters von Kubernetes regelt den Zugriff auf die ConfigMap, nicht die IAM-Berechtigungen, die die Funktionsressource steuern. Aus Sicherheitsgründen sollten Sie nur vertrauenswürdigen Benutzern und Dienstkonten die Berechtigung zum Ändern von Objekten im Argo-CD-Namespace gewähren. Da Kubernetes RBAC die Berechtigungen nach Ressourcentypen einteilt, können Sie trotzdem den Zugriff gewähren, den andere Benutzer benötigen. Beispielsweise können Sie Entwicklern erlauben, Anwendungen zu erstellen und zu verwalten, aber nicht zu ändern. ConfigMaps Dadurch wird verhindert, dass sie die argocd-cm Konfiguration ändern.

Weitere Informationen zum Modell der gemeinsamen Verantwortung, Kubernetes RBAC und zur Namespace-Isolierung für die Argo-CD-Funktion finden Sie unter. Sicherheitsüberlegungen für EKS-Funktionen Informationen zur Zugriffskontrolle innerhalb von Argo CD finden Sie unter. Argo-CD-Berechtigungen konfigurieren

Unterstützte Einstellungen

In den folgenden Abschnitten sind die argocd-cm Einstellungen aufgeführt, die die verwaltete Funktion unterstützt, gruppiert nach Kategorien. Jede Einstellung verwendet denselben Schlüssel und dasselbe Format wie die Upstream-Argo-CD. In der Spalte Wie Ihr Wert angewendet wird in jeder Tabelle wird angezeigt, ob Ihr Wert an die Standardkonfiguration der Funktion angehängt wird oder diese überschreibt. Eine vollständige Beschreibung der einzelnen Einstellungen finden Sie in der ConfigMap argocd-cm-Referenz auf der Argo-CD-Dokumentationswebsite.

Benutzeroberfläche

Diese Einstellungen passen die Argo-CD-Benutzeroberfläche an.

Einstellung Description Wie wird Ihr Wert angewendet

ui.bannercontent

Text für ein Banner, das auf der Benutzeroberfläche angezeigt wird, z. B. eine Umgebungs-ID oder ein Wartungshinweis.

Überschreibungen

ui.bannerurl

URL, auf die das Banner verweist, z. B. ein Runbook oder eine Wiki-Seite.

Überschreibungen

ui.bannerpermanent

Stellen Sie diese Option true auf ein, um zu verhindern, dass Benutzer das Banner verwerfen.

Überschreibungen

ui.bannerposition

Wo das Banner erscheint: topbottom, oderboth.

Überschreibungen

ui.cssurl

URL einer benutzerdefinierten CSS-Datei für Branding oder Styling. Das CSS läuft in Ihrem Browser.

Überschreibungen

Einstellungen für Ressourcen

Diese Einstellungen steuern, wie die Funktion die von Argo CD verwalteten Ressourcen überwacht, vergleicht und anzeigt.

Einstellung Description Wie wird Ihr Wert angewendet

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

Felder, die ignoriert werden sollen, wenn Argo CD Git mit dem Cluster für einen Ressourcentyp vergleicht, wie zum Beispiel die Anzahl der Replikate, die von einem Horizontal Pod Autoscaler verwaltet wird.

Hängt an

resource.customizations.ignoreDifferences.all

Felder, die beim Vergleich von Git mit dem Cluster ignoriert werden sollen, gelten für alle Ressourcentypen.

Hängt an

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

Felder, die Argo CD ignoriert, wenn entschieden wird, ob ein Aktualisierungsereignis einen Abgleich auslösen soll, wodurch die Last reduziert wird. Das Ereignis tritt immer noch auf, und Argo CD ignoriert nur Änderungen an diesen Feldern.

Hängt an

resource.customizations.ignoreResourceUpdates.all

Felder, die Argo CD bei der Verarbeitung von Aktualisierungsereignissen ignoriert, gelten für alle Ressourcentypen.

Hängt an

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

Feldtypen (Liste, Map oder Primitiv) für eine benutzerdefinierte Ressource, sodass Argo CD genaue Unterschiede berechnet, anstatt das gesamte Feld zu ersetzen.

Hängt an

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

Benutzerdefinierter Integritätstest für einen Ressourcentyp, der als Lua-Skript definiert ist. Die Funktion umfasst integrierte Zustandsprüfungen für ACK- und KRO-Ressourcen. Siehe Benutzerdefinierte Zustandsprüfungen.

Überschreibungen

resource.exclusions

Ressourcentypen, die Argo CD nicht beobachtet, wodurch die Leistung bei Typen mit hoher Abwanderung verbessert wird.

Hängt an

resource.inclusions

Ressourcentypen, die Argo CD beobachtet. Wenn diese Option gesetzt ist, beobachtet Argo CD nur die aufgelisteten Typen.

Hängt an

resource.compareoptions

Optionen, die steuern, wie Argo CD Unterschiede berechnet, wie z. B. ignoreAggregatedRoles

Überschreibungen

resource.respectRBAC

Ob der Controller nur die Ressourcen überwacht, für die er die RBAC-Leseberechtigung hat. Akzeptiert odernormal. strict

Überschreibungen

resource.customLabels

Zusätzliche Ressourcenbeschriftungen, die in der UI-Ressourcenansicht angezeigt werden sollen.

Überschreibungen

resource.includeEventLabelKeys

Labels aus Anwendungen und Projekten zum Kopieren auf die von Argo CD generierten Kubernetes-Ereignisse.

Überschreibungen

resource.excludeEventLabelKeys

Labels, die von den von Argo CD generierten Kubernetes-Ereignissen ausgeschlossen werden sollen.

Überschreibungen

resource.sensitive.mask.annotations

Anmerkungen, die maskiert werden sollen, wenn auf der Benutzeroberfläche oder CLI Secrets angezeigt werden.

Überschreibungen

Repository- und Tool-Einstellungen

Diese Einstellungen steuern die Manifest-Tools, die Argo CD zum Rendern Ihrer Manifeste verwendet.

Einstellung Description Wie wird Ihr Wert angewendet

kustomize.enable

Ob Kustomize als Manifest-Quelltyp aktiviert ist.

Überschreibungen

helm.enable

Ob Helm als Manifest-Quelltyp aktiviert ist.

Überschreibungen

jsonnet.enable

Ob Jsonnet als Manifest-Quelltyp aktiviert ist.

Überschreibungen

kustomize.buildOptions

Globale Befehlszeilen-Flags, die an alle kustomize build weitergegeben werden. Die Funktion unterstützt eine Teilmenge von Flags. Siehe Unterstützte Kustomize.BuildOptions-Flags.

Überschreibungen

Unterstützte Kustomize.BuildOptions-Flags

Denn kustomize.buildOptions die Funktion filtert Ihren Wert nach einer Reihe sicherer, unterstützter Flags. Sie unterstützt keine Flags, mit denen der Build beliebige Dateien lesen oder beliebigen Code ausführen kann. Es löscht jedes nicht unterstützte Flag oder jeden ungültigen Wert einzeln und wendet die verbleibenden unterstützten Flags an. Sie können Flags entweder in der --flag=value Form --flag value oder schreiben.

Flag Unterstützte Werte Hinweise

--reorder

legacy, none

Ändert nur die Reihenfolge der gerenderten YAML.

--enable-helm

Boolesch

Führt die verwaltete Helm-Binärdatei über den Pfad aus.

--enable-managedby-label

Boolesch

Fügt nur Beschriftungen hinzu.

Die Funktion löscht alle anderen Markierungen--load-restrictor, einschließlich--enable-exec, und--enable-alpha-plugins.

Benutzerdefinierte Zustandsprüfungen

Argo CD bewertet den Zustand der eingesetzten Ressourcen. Für Standard-Kubernetes-Ressourcen wie Bereitstellungen und Dienste verfügt Argo CD über eine integrierte Integritätslogik. Für benutzerdefinierte Ressourcen, die Argo CD nicht erkennt, hat es keine integrierte Integritätslogik und meldet keinen Integritätsstatus.

Wenn für eine benutzerdefinierte Ressource keine Integritätsprüfung durchgeführt wird, meldet Argo CD, dass kein Zustand für sie vorliegt, und schließt sie aus dem allgemeinen Zustand der Anwendung aus. Daher kann eine Anwendung Healthy auch dann einen Bericht erstatten, wenn ihre Ressourcen noch bereitgestellt werden oder ausgefallen sind. Das bedeutet auch, dass Synchronisierungswellen voranschreiten können, bevor diese Ressourcen bereit sind, da die Reihenfolge der Synchronisierungen vom gemeldeten Zustand abhängt.

Mit benutzerdefinierten Zustandsprüfungen können Sie die Integritätslogik für Ihre benutzerdefinierten Ressourcen definieren, sodass Argo CD den genauen Zustand meldet und Bereitstellungen korrekt sequenziert. Sie definieren benutzerdefinierte Integritätsprüfungen auf die gleiche Weise wie auf der Upstream-Argo-CD, wobei dieselben Konfigurationsschlüssel verwendet werden. Bestehende Upstream-Skripte und Community-Beispiele funktionieren mit der EKS-Fähigkeit für Argo-CD ohne Änderungen.

Built-in Gesundheitschecks für ACK und Kro

Die EKS-Capability for Argo-CD umfasst integrierte Integritätsprüfungen für AWS Controller für Kubernetes- (ACK) - und KRO-Ressourcen (Kube Resource Orchestrator). Diese Ressourcen melden den genauen Zustand ohne zusätzliche Konfiguration.

Um zu ändern, wie die Funktion den Zustand einer ACK- oder KRO-Ressource bewertet, können Sie eine benutzerdefinierte Zustandsprüfung für diesen Ressourcentyp definieren. Eine benutzerdefinierte Zustandsprüfung, die Sie für einen Ressourcentyp definieren, überschreibt die integrierte Zustandsprüfung für diesen Typ.

Schreiben Sie eine benutzerdefinierte Systemdiagnose

Definieren Sie eine benutzerdefinierte Integritätsprüfung, indem Sie dem argocd-cm ConfigMap ein Lua-Skript hinzufügen. Verwenden Sie dazu einen Schlüssel im folgenden Format:

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

<group>Ersetzen Sie durch die API-Gruppe der benutzerdefinierten Ressource und <kind> durch deren Art. Der Schlüssel für eine benutzerdefinierte Ressource mit der API-Gruppe example.com und der Art Database lautet beispielsweiseresource.customizations.health.example.com_Database.

Das Lua-Skript hat über die globale obj Variable Zugriff auf das Ressourcenobjekt. Das Skript muss eine Tabelle zurückgeben, deren status Feld auf einen Wert vonHealthy, ProgressingDegraded, oder Suspended gesetzt ist. Das Skript kann auch ein optionales message Feld einrichten, um eine beschreibende Statusmeldung bereitzustellen.

Das folgende Beispiel ConfigMap definiert eine Zustandsprüfung für eine Database benutzerdefinierte Ressource. Das Skript meldet die Ressource soHealthy, als ob sich ihre Statusphase befindetReady, und wie Progressing andernfalls:

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

Weitere Informationen über das Health-Check-Skriptformat, die Liste der integrierten Integritätsprüfungen und Community-Beispiele, die Sie anpassen können, finden Sie unter Resource Health auf der Argo-CD-Dokumentationswebsite.

Sicherheit und Einschränkungen

Mit der verwalteten Funktion werden Ihre benutzerdefinierten Integritätsprüfungsskripts in isolierten, vollständig verwalteten Recheneinheiten ausgeführt. Die Ausführungsumgebung ist pro Funktion isoliert und hat keinen Zugriff auf die Daten Ihres Clusters oder auf AWS APIs. Sie stellen keinen Teil der Ausführungsumgebung bereit, patchen oder betreiben keinen Teil davon.

Beachten Sie Folgendes, wenn Sie benutzerdefinierte Integritätsprüfungen für die Verwendung mit der EKS-Funktion schreiben:

  • Standard-Lua-Bibliotheken sind nicht verfügbar. Die useOpenLibs Option ist immer deaktiviert, was in der Upstream-Argo-CD die Standardeinstellung ist. Skripte können nicht auf das Betriebssystem oder Dateisystem zugreifen. Wenn Sie ein Skript von einer selbstverwalteten Argo-CD migrieren, das auf Standard-Lua-Bibliotheken basiert, wird es in der Funktion möglicherweise nicht auf die gleiche Weise ausgeführt. Wir empfehlen, dass Sie Ihre Health-Check-Skripte in einer Entwicklungsumgebung testen, bevor Sie sie in der Produktion verwenden.

Wenn die Integritätsprüfung vorübergehend nicht verfügbar ist, meldet die Funktion die betroffenen benutzerdefinierten Ressourcen als, Progressing anstatt ihren Status zu entfernen. Dadurch bleiben die betroffenen Ressourcen im Status der Anwendung sichtbar, bis die Evaluierung wiederhergestellt ist.

Überprüfen Sie eine benutzerdefinierte Systemdiagnose

Nachdem Sie den angewendet oder aktualisiert haben argocd-cm ConfigMap, stellen Sie sicher, dass die Integritätsprüfung aktiv ist:

  1. Wählen Sie auf der Argo-CD-Benutzeroberfläche eine Anwendung aus, die eine benutzerdefinierte Ressource enthält, für die Sie eine Systemdiagnose definiert haben. Vergewissern Sie sich, dass die Ressource den Integritätsstatus meldet, den Ihr Skript zurückgibt. Sie können auch die Ressource ausführen argocd app get <application-name> und den Integritätsstatus überprüfen.

  2. Wenn die Ressource nicht den erwarteten Zustand meldet, überprüfen Sie Folgendes:

    • Der ConfigMap hat einen Namen argocd-cm und befindet sich in dem Namespace, der in der Funktion für Argo CD konfiguriert ist.

    • Der ConfigMap hat das erforderliche Label. app.kubernetes.io/part-of: argocd

    • Der Integritätsprüfschlüssel verwendet den richtigen <group>_<kind> für den Ressourcentyp.