Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration de l'accès au référentiel
Avant de déployer des applications, configurez Argo CD pour accéder à vos référentiels Git et à vos registres de diagrammes Helm. Argo CD prend en charge plusieurs méthodes d'authentification pour GitHub GitLab, Bitbucket et AWS CodeCommit AWS ECR.
Note
Pour les intégrations de AWS services directes (graphiques ECR Helm, CodeCommit référentiels, etc. CodeConnections), vous pouvez les référencer directement dans les ressources de l'application sans créer de configurations de référentiel. Le rôle de capacité doit disposer des autorisations IAM requises. Consultez Configurer les autorisations d'Argo CD pour plus de détails.
Conditions préalables
-
Création d'un cluster EKS doté de la fonctionnalité Argo CD
-
Référentiels Git contenant des manifestes Kubernetes
-
kubectlconfiguré pour communiquer avec votre cluster
Note
AWS CodeConnections peut se connecter à des serveurs Git situés dans AWS le cloud ou sur site. Pour de plus amples informations, veuillez consulter AWS CodeConnections.
Méthodes d’authentification
| Method | Cas d’utilisation | Autorisations IAM nécessaires |
|---|---|---|
|
Intégration directe aux AWS services |
||
|
CodeCommit |
Intégration directe avec les référentiels AWS CodeCommit Git. Aucune configuration du référentiel n'est nécessaire. |
|
|
CodeConnections |
Connectez-vous à GitHub Bitbucket ou connectez-vous à Bitbucket grâce à l'authentification gérée. GitLab Nécessite la configuration de la connexion. |
|
|
Artefacts OCI ECR |
Intégration directe avec AWS ECR pour les graphiques OCI Helm et les images de manifeste. Aucune configuration du référentiel n'est nécessaire. |
|
|
Configuration du référentiel avec informations d'identification |
||
|
AWS Secrets Manager (nom d'utilisateur/jeton) |
Stockez des jetons d'accès ou des mots de passe personnels. Permet la rotation des informations d'identification sans accès à Kubernetes. |
|
|
AWS Gestionnaire de Secrets (clé SSH) |
Utilisez l'authentification par clé SSH. Permet la rotation des informations d'identification sans accès à Kubernetes. |
|
|
AWS Secrets Manager (GitHub App) |
GitHub Authentification de l'application avec clé privée. Permet la rotation des informations d'identification sans accès à Kubernetes. |
|
|
Le secret de Kubernetes |
Méthode Argo CD standard utilisant des secrets intégrés au cluster |
Aucune (autorisations gérées par EKS Access Entry avec Kubernetes RBAC) |
Accès direct aux AWS services
Pour les AWS services, vous pouvez les référencer directement dans les ressources de l'application sans créer de configurations de référentiel. Le rôle de capacité doit disposer des autorisations IAM requises.
CodeCommit référentiels
CodeCommit Référencez les référentiels directement dans les applications :
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
Autorisations de rôle de capacité requises :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections
Reference GitHub GitLab, ou référentiels Bitbucket via. CodeConnections Le format de l'URL du référentiel est dérivé de l'ARN de CodeConnections connexion.
Le format de l'URL du référentiel est le suivant :
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
Autorisations de rôle de capacité requises :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Graphiques ECR Helm
L'ECR stocke les diagrammes Helm sous forme d'artefacts OCI. Argo CD permet de les référencer de deux manières :
Format Helm (recommandé pour les diagrammes 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
Remarque : N'incluez pas le oci:// préfixe lorsque vous utilisez le format Helm. Utilisez le chart champ pour spécifier le nom du graphique.
Format OCI (pour les artefacts OCI avec des manifestes 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
Remarque : Incluez le oci:// préfixe lorsque vous utilisez le format OCI. Utilisez le path champ au lieu dechart.
Autorisations de rôle de capacité requises : attachez la politique gérée :
arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Cette politique inclut les autorisations ECR nécessaires : ecr:GetAuthorizationTokenecr:BatchGetImage, etecr:GetDownloadUrlForLayer.
Utilisation de AWS Secrets Manager
Stockez les informations d'identification du référentiel dans Secrets Manager et référencez-les dans les configurations du référentiel Argo CD. L'utilisation de Secrets Manager permet une rotation automatique des informations d'identification sans nécessiter l'accès à Kubernetes RBAC. Les informations d'identification peuvent être modifiées à l'aide des autorisations IAM vers Secrets Manager, et Argo CD lit automatiquement les valeurs mises à jour.
Note
Pour la réutilisation des informations d'identification dans plusieurs référentiels (par exemple, tous les référentiels d'une GitHub organisation), utilisez des modèles d'informations d'identification de référentiel avec. argocd.argoproj.io/secret-type: repo-creds Cela fournit une meilleure expérience utilisateur que la création de secrets de dépôt individuels. Pour plus d'informations, consultez la section Informations d'identification du référentiel
Authentification par nom d'utilisateur et token
Pour les référentiels HTTPS dotés de jetons d'accès ou de mots de passe personnels :
Créez le secret dans 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"}'
Champs de certificat client TLS facultatifs (pour les serveurs Git privés) :
aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
Note
Les tlsClientCertKey valeurs tlsClientCertData et doivent être codées en base64.
Créez un secret de dépôt faisant référence à 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
Authentification par clé SSH
Pour un accès Git basé sur SSH, stockez la clé privée en texte brut (et non en JSON) :
Créez le secret avec la clé privée 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-----"
Créez un secret de dépôt pour 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 Authentification par application
Pour GitHub l'authentification des applications à l'aide d'une clé privée :
Créez le secret à l'aide des informations d'identification de GitHub l'application :
aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
Note
La githubAppPrivateKeySecret valeur doit être codée en base64.
Champ facultatif pour GitHub Enterprise :
aws secretsmanager create-secret \ --name argocd/github-enterprise-app \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678", "githubAppEnterpriseBaseUrl":"https://github.example.com/api/v3" }'
Créez un secret de dépôt pour GitHub l'application :
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
Modèles d'informations d'identification du référentiel
Pour la réutilisation des informations d'identification dans plusieurs référentiels (par exemple, tous les référentiels d'une GitHub organisation ou d'un utilisateur), utilisez des modèles d'informations d'identification de référentiel avec. argocd.argoproj.io/secret-type: repo-creds Cela fournit une meilleure expérience utilisateur que la création de secrets de dépôt individuels pour chaque référentiel.
Créez un modèle d'identification de référentiel :
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
Ce modèle d'identification s'applique à tous les référentiels correspondant au préfixe d'URL. https://github.com/your-org Vous pouvez ensuite référencer n'importe quel référentiel relevant de cette organisation dans Applications sans créer de secrets supplémentaires.
Pour plus d'informations, consultez la section Informations d'identification du référentiel
Important
Assurez-vous que votre rôle de capacité IAM est arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess associé à la politique gérée ou à des autorisations équivalentes, y compris secretsmanager:GetSecretValue des autorisations de déchiffrement KMS. Voir Considérations relatives à Argo CD pour la configuration de la politique IAM.
En utilisant AWS CodeConnections
Pour CodeConnections l'intégration, voirConnectez-vous aux référentiels Git avec AWS CodeConnections.
CodeConnections fournit une authentification gérée pour GitHub GitLab, et Bitbucket sans stocker les informations d'identification.
Utilisation des secrets de Kubernetes
Stockez les informations d'identification directement dans Kubernetes à l'aide de la méthode Argo CD standard.
Pour le protocole HTTPS avec jeton d'accès personnel :
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
Pour 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 référentiels
Pour AWS CodeCommit, accordez les CodeCommit autorisations de votre rôle de capacité IAM (codecommit:GitPull).
Configurez le référentiel :
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
Pour une configuration détaillée de la politique IAM, consultezConsidérations relatives à Argo CD.
Vérifier la connexion au référentiel
Vérifiez l'état de la connexion via l'interface utilisateur d'Argo CD sous Paramètres → Référentiels. L'interface utilisateur indique l'état de la connexion et les éventuelles erreurs d'authentification.
Les secrets du référentiel n'incluent pas d'informations sur le statut.
Ressources supplémentaires
-
Enregistrer les clusters cibles- Enregistrez les clusters cibles pour les déploiements
-
Création d'applications- Créez votre première application
-
Considérations relatives à Argo CD- Autorisations IAM et configuration de sécurité
-
Référentiels privés - Référence
de configuration des référentiels en amont