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.
Repository-Zugriff konfigurieren
Bevor Sie Anwendungen bereitstellen, konfigurieren Sie Argo CD für den Zugriff auf Ihre Git-Repositorys und Helm-Chart-Registries. Argo CD unterstützt mehrere Authentifizierungsmethoden für GitHub, GitLab, Bitbucket und ECR. AWS CodeCommit AWS
Anmerkung
Bei direkten AWS Serviceintegrationen (ECR-Helm-Diagramme, CodeCommit Repositorys und CodeConnections) können Sie direkt in den Anwendungsressourcen darauf verweisen, ohne Repository-Konfigurationen erstellen zu müssen. Die Capability-Rolle muss über die erforderlichen IAM-Berechtigungen verfügen. Details dazu finden Sie unter Argo-CD-Berechtigungen konfigurieren.
Voraussetzungen
-
Es wurde ein EKS-Cluster mit der Argo-CD-Funktion erstellt
-
Git-Repositorys, die Kubernetes-Manifeste enthalten
-
kubectlkonfiguriert für die Kommunikation mit Ihrem Cluster
Anmerkung
AWS CodeConnections kann eine Verbindung zu Git-Servern herstellen, die sich in der AWS Cloud oder vor Ort befinden. Weitere Informationen finden Sie unter AWS CodeConnections.
Authentifizierungsmethoden
| Methode | Anwendungsfall | Erforderliche IAM-Berechtigungen |
|---|---|---|
|
Direkte Integration mit Diensten AWS |
||
|
CodeCommit |
Direkte Integration mit AWS CodeCommit Git-Repositorys. Keine Repository-Konfiguration erforderlich. |
|
|
CodeConnections |
Stellen Sie mit verwalteter Authentifizierung eine Connect zu GitHub GitLab, oder Bitbucket her. Erfordert eine Verbindungseinrichtung. |
|
|
ECR OCI-Artefakte |
Direkte Integration mit AWS ECR für OCI Helm-Diagramme und Manifestbilder. Keine Repository-Konfiguration erforderlich. |
|
|
Repository-Konfiguration mit Anmeldeinformationen |
||
|
AWS Secrets Manager (Benutzername/Token) |
Speichern Sie persönliche Zugriffstoken oder Passwörter. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff. |
|
|
AWS Secrets Manager (SSH-Schlüssel) |
Verwenden Sie die SSH-Schlüsselauthentifizierung. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff. |
|
|
AWS Secrets Manager (GitHub App) |
GitHub App-Authentifizierung mit privatem Schlüssel. Ermöglicht die Rotation von Anmeldeinformationen ohne Kubernetes-Zugriff. |
|
|
Kubernetes-Geheimnis |
Standard-Argo-CD-Methode mit Cluster-internen Geheimnissen |
Keine (Berechtigungen werden von EKS Access Entry mit Kubernetes RBAC verwaltet) |
Direkter Zugriff auf Dienste AWS
AWS Dienste können Sie direkt in den Anwendungsressourcen referenzieren, ohne Repository-Konfigurationen erstellen zu müssen. Die Capability-Rolle muss über die erforderlichen IAM-Berechtigungen verfügen.
CodeCommit Repositorien
CodeCommit Referenz-Repositorien direkt in Anwendungen:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-nametargetRevision: main path: kubernetes/manifests
Erforderliche Berechtigungen für Capability Role:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections
Referenz GitHub - GitLab oder Bitbucket-Repositorys durch. CodeConnections Das Repository-URL-Format wird vom CodeConnections Verbindungs-ARN abgeleitet.
Das Repository-URL-Format ist:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests
Erforderliche Berechtigungen für Capability Role:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
ECR-Helm-Diagramme
ECR speichert Helm-Diagramme als OCI-Artefakte. Argo CD unterstützt zwei Möglichkeiten, auf sie zu verweisen:
Helm-Format (empfohlen für Helm-Charts):
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-helm namespace: argocd spec: source: repoURL:account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:chart-versionchart:chart-namehelm: valueFiles: - values.yaml
Hinweis: Geben Sie das oci:// Präfix nicht an, wenn Sie das Helm-Format verwenden. Verwenden Sie das chart Feld, um den Namen des Diagramms anzugeben.
OCI-Format (für OCI-Artefakte mit Kubernetes-Manifesten):
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-oci namespace: argocd spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:artifact-versionpath:path-to-manifests
Hinweis: Geben Sie das oci:// Präfix an, wenn Sie das OCI-Format verwenden. Verwenden Sie das path Feld anstelle von. chart
Erforderliche Berechtigungen für Capability Role — fügen Sie die verwaltete Richtlinie an:
arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Diese Richtlinie umfasst die erforderlichen ECR-Berechtigungen: ecr:GetAuthorizationTokenecr:BatchGetImage, undecr:GetDownloadUrlForLayer.
AWS Secrets Manager verwenden
Speichern Sie die Repository-Anmeldeinformationen in Secrets Manager und referenzieren Sie sie in den Argo CD Repository-Konfigurationen. Die Verwendung von Secrets Manager ermöglicht die automatische Rotation von Anmeldeinformationen, ohne dass Kubernetes RBAC-Zugriff erforderlich ist. Anmeldeinformationen können mithilfe von IAM-Berechtigungen an Secrets Manager rotiert werden, und Argo CD liest die aktualisierten Werte automatisch.
Anmerkung
Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys (z. B. für alle Repositorys innerhalb einer Organisation) verwenden Sie Vorlagen für Repository-Anmeldeinformationen mit. GitHub argocd.argoproj.io/secret-type: repo-creds Dies bietet eine bessere Benutzererfahrung als die Erstellung einzelner Repository-Geheimnisse. Weitere Informationen finden Sie unter Repository-Anmeldeinformationen
Authentifizierung mit Benutzername und Token
Für HTTPS-Repositorys mit persönlichen Zugriffstoken oder Passwörtern:
Erstellen Sie das Geheimnis in Secrets Manager:
aws secretsmanager create-secret \ --name argocd/my-repo \ --description "GitHub credentials for Argo CD" \ --secret-string '{"username":"your-username","token":"your-personal-access-token"}'
Optionale Felder für TLS-Client-Zertifikate (für private Git-Server):
aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
Anmerkung
Die tlsClientCertKey Werte tlsClientCertData und müssen base64-codiert sein.
Erstellen Sie ein Repository-Geheimnis, das auf Secrets Manager verweist:
apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-AbCdEf project: default
SSH-Schlüsselauthentifizierung
Für SSH-basierten Git-Zugriff speichern Sie den privaten Schlüssel als Klartext (nicht JSON):
Erstelle das Geheimnis mit dem privaten SSH-Schlüssel:
aws secretsmanager create-secret \ --name argocd/my-repo-ssh \ --description "SSH key for Argo CD" \ --secret-string "-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn ... -----END OPENSSH PRIVATE KEY-----"
Erstellen Sie ein Repository-Geheimnis für SSH:
apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/my-repo-ssh-AbCdEf project: default
GitHub App-Authentifizierung
Für die GitHub App-Authentifizierung mit einem privaten Schlüssel:
Erstellen Sie das Geheimnis mit den Anmeldeinformationen für die GitHub App:
aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
Anmerkung
Der githubAppPrivateKeySecret Wert muss Base64-codiert sein.
Optionales Feld für Enterprise GitHub :
aws secretsmanager create-secret \ --name argocd/github-enterprise-app \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678", "githubAppEnterpriseBaseUrl":"https://github.example.com/api/v3" }'
Erstellen Sie einen geheimen Repository-Schlüssel für die GitHub App:
apiVersion: v1 kind: Secret metadata: name: my-repo-github-app namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-app-AbCdEf project: default
Vorlagen für Repository-Anmeldeinformationen
Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys (z. B. für alle Repositorys einer GitHub Organisation oder eines Benutzers) verwenden Sie Vorlagen für Repository-Anmeldeinformationen mit. argocd.argoproj.io/secret-type: repo-creds Dies bietet eine bessere Benutzererfahrung als die Erstellung von individuellen Repository-Geheimnissen für jedes Repository.
Erstellen Sie eine Vorlage für Repository-Anmeldeinformationen:
apiVersion: v1 kind: Secret metadata: name: github-org-creds namespace: argocd labels: argocd.argoproj.io/secret-type: repo-creds stringData: type: git url: https://github.com/your-org secretArn: arn:aws:secretsmanager:us-west-2:111122223333:secret:argocd/github-org-AbCdEf
Diese Vorlage für Anmeldeinformationen gilt für alle Repositorys, die dem URL-Präfix entsprechen. https://github.com/your-org Sie können dann in Anwendungen auf jedes Repository dieser Organisation verweisen, ohne zusätzliche Geheimnisse zu erstellen.
Weitere Informationen finden Sie unter Repository-Anmeldeinformationen
Wichtig
Stellen Sie sicher, dass Ihrer IAM-Capability-Rolle die verwaltete Richtlinie oder gleichwertige Berechtigungen, einschließlich secretsmanager:GetSecretValue KMS-Entschlüsselungsberechtigungen, arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess zugewiesen sind. Informationen Überlegungen zu Argo CD zur Konfiguration der IAM-Richtlinie finden Sie unter.
Verwenden AWS CodeConnections
Informationen zur CodeConnections Integration finden Sie unterConnect zu Git-Repositorys her mit AWS CodeConnections.
CodeConnections bietet verwaltete Authentifizierung für GitHub GitLab, und Bitbucket, ohne Anmeldeinformationen zu speichern.
Verwendung von Kubernetes Secrets
Speichern Sie Anmeldeinformationen mithilfe der Standard-Argo-CD-Methode direkt in Kubernetes.
Für HTTPS mit persönlichem Zugriffstoken:
apiVersion: v1 kind: Secret metadata: name: my-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://github.com/your-org/your-repo username: your-username password: your-personal-access-token
Für SSH:
apiVersion: v1 kind: Secret metadata: name: my-repo-ssh namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: git@github.com:your-org/your-repo.git sshPrivateKey: | -----BEGIN OPENSSH PRIVATE KEY----- ... your private key ... -----END OPENSSH PRIVATE KEY-----
CodeCommit Repositorien
Erteilen Sie für AWS CodeCommit Ihre CodeCommit IAM-Capability-Rollenberechtigungen ()codecommit:GitPull.
Konfigurieren Sie das Repository:
apiVersion: v1 kind: Secret metadata: name: codecommit-repo namespace: argocd labels: argocd.argoproj.io/secret-type: repository stringData: type: git url: https://git-codecommit.us-west-2.amazonaws.com/v1/repos/my-repo project: default
Eine detaillierte Konfiguration der IAM-Richtlinien finden Sie unterÜberlegungen zu Argo CD.
Überprüfen Sie die Verbindung zum Repository
Überprüfen Sie den Verbindungsstatus über die Benutzeroberfläche von Argo CD unter Einstellungen → Repositories. Die Benutzeroberfläche zeigt den Verbindungsstatus und alle Authentifizierungsfehler an.
Repository Secrets enthalten keine Statusinformationen.
Weitere Ressourcen
-
Zielcluster registrieren— Registrieren Sie Zielcluster für Bereitstellungen
-
Anwendungen erstellen- Erstellen Sie Ihre erste Anwendung
-
Überlegungen zu Argo CD- IAM-Berechtigungen und Sicherheitskonfiguration
-
Private Repositorys
— Referenz zur Konfiguration des Upstream-Repositorys