Erstellen Sie eine Argo-CD-Funktion mit der CLI AWS - 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 auf, 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.

Erstellen Sie eine Argo-CD-Funktion mit der CLI AWS

In diesem Thema wird beschrieben, wie Sie mit der AWS CLI eine Argo-CD-Funktion erstellen.

Voraussetzungen

  • AWS CLI — Version 2.12.3 oder höher. Führen Sie den Befehl aus, um Ihre Version zu überprüfenaws --version. Weitere Informationen finden Sie im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle unter Installation.

  • kubectl  – Ein Befehlszeilentool für die Arbeit mit Kubernetes-Clustern. Weitere Informationen finden Sie unter kubectl und eksctl einrichten.

  • AWS Identity Center konfiguriert — Argo CD benötigt AWS Identity Center für die Authentifizierung. Lokale Benutzer werden nicht unterstützt. Wenn Sie AWS Identity Center nicht eingerichtet haben, finden Sie weitere Informationen unter Erste Schritte mit AWS Identity Center, um eine Identity Center-Instanz zu erstellen, und Benutzer hinzufügen und Gruppen hinzufügen, um Benutzer und Gruppen für den Zugriff auf Argo CD zu erstellen.

Schritt 1: Erstellen Sie eine IAM-Fähigkeitsrolle

Erstellen Sie eine Vertrauensrichtliniendatei:

cat > argocd-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

Erstellen Sie die IAM-Rolle:

aws iam create-role \ --role-name ArgoCDCapabilityRole \ --assume-role-policy-document file://argocd-trust-policy.json
Anmerkung

Wenn Sie die optionalen Integrationen mit AWS Secrets Manager oder verwenden möchten AWS CodeConnections, müssen Sie der Rolle Berechtigungen hinzufügen. Beispiele für IAM-Richtlinien und Anleitungen zur Konfiguration finden Sie unter Anwendungsgeheimnisse mit AWS Secrets Manager verwalten und. Connect zu Git-Repositorys her mit AWS CodeConnections

Schritt 2: Erstellen Sie die Argo-CD-Funktion

Erstellen Sie die Argo-CD-Capability-Ressource auf Ihrem Cluster.

Legen Sie zunächst Umgebungsvariablen für Ihre Identity Center-Konfiguration fest:

# Get your Identity Center instance ARN (replace region if your IDC instance is in a different region) export IDC_INSTANCE_ARN=$(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].InstanceArn' --output text) # Get a user ID for RBAC mapping (replace with your username and region if needed) export IDC_USER_ID=$(aws identitystore list-users \ --region [.replaceable]`region` \ --identity-store-id $(aws sso-admin list-instances --region [.replaceable]`region` --query 'Instances[0].IdentityStoreId' --output text) \ --query 'Users[?UserName==`your-username`].UserId' --output text) echo "IDC_INSTANCE_ARN=$IDC_INSTANCE_ARN" echo "IDC_USER_ID=$IDC_USER_ID"

Erstellen Sie die Funktion mit der Identity Center-Integration. region-codeErsetzen Sie durch die AWS Region, in der sich Ihr Cluster befindet, und my-cluster durch Ihren Clusternamen:

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --type ARGOCD \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ArgoCDCapabilityRole \ --delete-propagation-policy RETAIN \ --configuration '{ "argoCd": { "awsIdc": { "idcInstanceArn": "'$IDC_INSTANCE_ARN'", "idcRegion": "'[.replaceable]`region-code`'" }, "rbacRoleMappings": [{ "role": "ADMIN", "identities": [{ "id": "'$IDC_USER_ID'", "type": "SSO_USER" }] }] } }'

Der Befehl wird sofort zurückgegeben, aber es dauert einige Zeit, bis die Funktion aktiv wird, da EKS die erforderliche Funktionsinfrastruktur und die erforderlichen Komponenten erstellt. EKS installiert die benutzerdefinierten Kubernetes-Ressourcendefinitionen, die sich auf diese Funktion beziehen, in Ihrem Cluster, während dieser erstellt wird.

Anmerkung

Wenn Sie eine Fehlermeldung erhalten, dass der Cluster nicht existiert oder Sie keine Berechtigungen haben, überprüfen Sie Folgendes:

  • Der Clustername ist korrekt

  • Ihre AWS CLI ist für die richtige Region konfiguriert

  • Sie verfügen über die erforderlichen IAM-Berechtigungen

Schritt 3: Stellen Sie sicher, dass die Funktion aktiv ist

Warten Sie, bis die Funktion aktiv wird. region-codeErsetzen Sie durch die AWS Region, in der sich Ihr Cluster befindet, und my-cluster durch Ihren Clusternamen.

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd \ --query 'capability.status' \ --output text

Die Funktion ist bereit, wenn der Status angezeigt wirdACTIVE. Fahren Sie erst mit dem nächsten Schritt fort, wenn der Status lautetACTIVE.

Sie können sich auch die vollständigen Funktionsdetails ansehen:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd

Schritt 4: Stellen Sie sicher, dass benutzerdefinierte Ressourcen verfügbar sind

Nachdem die Funktion aktiviert ist, stellen Sie sicher, dass benutzerdefinierte Argo CD-Ressourcen in Ihrem Cluster verfügbar sind:

kubectl api-resources | grep argoproj.io

Sie sollten die Liste der ApplicationSet Ressourcentypen sehenApplication.

Nächste Schritte