Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare l'accesso al repository
Prima di distribuire le applicazioni, configura Argo CD per accedere ai tuoi repository Git e ai registri cartografici Helm. Argo CD supporta diversi metodi di autenticazione per GitHub, GitLab Bitbucket ed ECR. AWS CodeCommit AWS
Nota
Per le integrazioni dirette dei AWS servizi (grafici ECR Helm, CodeCommit repository e CodeConnections), è possibile farvi riferimento direttamente nelle risorse dell'applicazione senza creare configurazioni di repository. Il Capability Role deve disporre delle autorizzazioni IAM richieste. Per informazioni dettagliate, vedi Configurare le autorizzazioni di Argo CD.
Prerequisiti
-
È stato creato un cluster EKS con funzionalità Argo CD
-
Archivi Git contenenti manifesti di Kubernetes
-
kubectlconfigurato per comunicare con il tuo cluster
Nota
Per il riutilizzo delle credenziali su più repository, è possibile utilizzare modelli di credenziali di repository (repocreds). Per ulteriori informazioni, consultate Private Repositories nella documentazione di Argo CD.
Metodi di autenticazione
| Metodo | Caso d'uso | Autorizzazioni IAM richieste |
|---|---|---|
|
Integrazione diretta con i servizi AWS |
||
|
CodeCommit |
Integrazione diretta con i AWS CodeCommit repository Git. Non è necessaria alcuna configurazione del repository. |
|
|
CodeConnections |
Connect o Bitbucket con autenticazione gestita. GitHub GitLab Richiede la configurazione della connessione. |
|
|
Grafici ECR Helm |
Integrazione diretta con AWS ECR per i grafici OCI Helm. Non è necessaria alcuna configurazione del repository. |
|
|
Configurazione del repository con credenziali |
||
|
AWS Secrets Manager (nome utente/token) |
Memorizza token o password di accesso personali |
|
|
AWS Secrets Manager (chiave SSH) |
Usa l'autenticazione tramite chiave SSH |
|
|
AWS Secrets Manager (GitHub App) |
GitHub Autenticazione dell'app con chiave privata |
|
|
Kubernetes Secret |
Metodo Argo CD standard che utilizza segreti all'interno del cluster |
Nessuno (solo criteri di attendibilità) |
Accesso diretto ai AWS servizi
Per quanto riguarda AWS i servizi, è possibile farvi riferimento direttamente nelle risorse dell'applicazione senza creare configurazioni del repository. Il Capability Role deve disporre delle autorizzazioni IAM richieste.
CodeCommit repository
Fai riferimento ai CodeCommit repository direttamente nelle applicazioni:
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
Autorizzazioni necessarie per il ruolo di capacità:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections
Reference GitHub o GitLab tramite Bitbucket repository. CodeConnections Il formato dell'URL del repository è derivato dall'ARN della CodeConnections connessione.
Il formato dell'URL del repository è:
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
Autorizzazioni necessarie per il ruolo di capacità:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Grafici ECR Helm
ECR memorizza i grafici Helm come artefatti OCI. Argo CD supporta due modi per farvi riferimento:
Formato Helm (consigliato per i grafici Helm):
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
Nota: non includere il oci:// prefisso quando si utilizza il formato Helm. Usa il chart campo per specificare il nome del grafico.
Formato OCI (per artefatti OCI con manifesti Kubernetes):
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
Nota: includi il prefisso quando usi il formato OCI. oci:// Usa il path campo invece di. chart
Autorizzazioni Capability Role richieste:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" } ] }
Utilizzo di AWS Secrets Manager
Archivia le credenziali del repository in Secrets Manager e fai riferimento ad esse nelle configurazioni di Argo CD Repository.
Autenticazione con nome utente e token
Per gli archivi HTTPS con token di accesso o password personali:
Crea il segreto 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"}'
Campi opzionali del certificato client TLS (per server Git privati):
aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
Nota
I tlsClientCertKey valori tlsClientCertData and devono essere codificati in base 64.
Crea un Repository Secret facendo riferimento a Secrets Manager:
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
autenticazione con chiave SSH
Per l'accesso Git basato su SSH, memorizza la chiave privata come testo semplice (non JSON):
Crea il segreto con la chiave privata SSH:
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-----"
Crea un repository segreto per 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 Autenticazione dell'app
Per GitHub l'autenticazione dell'app con una chiave privata:
Crea il segreto con le credenziali GitHub dell'app:
aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
Nota
Il githubAppPrivateKeySecret valore deve essere codificato in base64.
Campo opzionale per 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" }'
Crea un Repository Secret per GitHub l'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
Importante
Assicurati che il tuo IAM Capability Role disponga secretsmanager:GetSecretValue delle autorizzazioni per i segreti che crei. Vedi Considerazioni su Argo CD per la configurazione delle policy IAM.
Usando AWS CodeConnections
Per CodeConnections l'integrazione, vediConnect ai repository Git con AWS CodeConnections.
CodeConnections fornisce l'autenticazione gestita per GitHub e Bitbucket senza memorizzare le credenziali. GitLab
Utilizzo di Kubernetes Secrets
Archivia le credenziali direttamente in Kubernetes utilizzando il metodo Argo CD standard.
Per HTTPS con token di accesso personale:
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
Per 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-----
Archivi pubblici
Non è necessaria alcuna configurazione aggiuntiva per gli archivi pubblici:
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 archivi
Per AWS CodeCommit, concedi le CodeCommit autorizzazioni a IAM Capability Role ()codecommit:GitPull.
Configura il 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
Per una configurazione dettagliata delle policy IAM, consultaConsiderazioni su Argo CD.
Verifica la connessione al repository
Controlla lo stato della connessione tramite l'interfaccia utente di Argo CD in Impostazioni → Repository. L'interfaccia utente mostra lo stato della connessione e gli eventuali errori di autenticazione.
I Repository Secrets non includono informazioni sullo stato.
Risorse aggiuntive
-
Registra i cluster di destinazione- Registra i cluster di destinazione per le distribuzioni
-
Creazione di applicazioni- Crea la tua prima applicazione
-
Considerazioni su Argo CD- Autorizzazioni IAM e configurazione di sicurezza
-
Archivi privati: riferimento alla configurazione del repository
upstream