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
Für die Wiederverwendung von Anmeldeinformationen in mehreren Repositorys können Sie Vorlagen für Repository-Anmeldeinformationen (repocreds) verwenden. Weitere Informationen finden Sie unter Private Repositories
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-Helm-Diagramme |
Direkte Integration mit AWS ECR für OCI Helm-Charts. Keine Repository-Konfiguration erforderlich. |
|
|
Repository-Konfiguration mit Anmeldeinformationen |
||
|
AWS Secrets Manager (Benutzername/Token) |
Speichern Sie persönliche Zugriffstoken oder Passwörter |
|
|
AWS Secrets Manager (SSH-Schlüssel) |
Verwenden Sie die SSH-Schlüsselauthentifizierung |
|
|
AWS Secrets Manager (GitHub App) |
GitHub App-Authentifizierung mit privatem Schlüssel |
|
|
Kubernetes Secret |
Standard-Argo-CD-Methode unter Verwendung von Cluster-internen Geheimnissen |
Keine (nur Vertrauensrichtlinie) |
Direkter Zugriff auf AWS Dienste
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
Verweisen Sie direkt in Anwendungen auf CodeCommit Repositorys:
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:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }
AWS Secrets Manager verwenden
Speichern Sie die Repository-Anmeldeinformationen in Secrets Manager und referenzieren Sie sie in den Argo CD Repository-Konfigurationen.
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 GitHub App-Anmeldeinformationen:
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
Wichtig
Stellen Sie sicher, dass Ihre IAM-Capability-Rolle über secretsmanager:GetSecretValue Berechtigungen für die von Ihnen erstellten Geheimnisse verfügt. Informationen Überlegungen zu Argo CD zur Konfiguration der IAM-Richtlinien 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-----
Öffentliche Repositorien
Für öffentliche Repositorien ist keine zusätzliche Konfiguration erforderlich:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: public-app namespace: argocd spec: source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook # ... rest of configuration
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