Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Configuração do acesso ao repositório
Antes de implantar aplicações, configure o Argo CD para acessar os repositórios do Git e os registros do chart do Helm. O Argo CD oferece suporte a diversos métodos de autenticação para GitHub, GitLab, Bitbucket, AWS CodeCommit e AWS ECR.
nota
No caso de integrações diretas com serviços da AWS (como charts do Helm do ECR, repositórios do CodeCommit e CodeConnections), é possível referenciá-los diretamente nos recursos da Application sem a necessidade de criar configurações de Repository. O perfil da funcionalidade deve ter as permissões do IAM necessárias. Para mais detalhes, consulte Configuração das permissões do Argo CD.
Pré-requisitos
-
Um cluster de EKS com a funcionalidade para o Argo CD criada
-
Repositórios do Git que contêm manifestos do Kubernetes
-
kubectlconfigurado para o estabelecimento de comunicação com o cluster
nota
OAWS CodeConnections pode se conectar a servidores Git localizados na nuvem AWS ou on-premises. Para obter mais informações, consulte AWS CodeConnections.
Métodos de autenticação
| Método | Caso de uso | Permissões do IAM necessárias |
|---|---|---|
|
Integração direta com serviços da AWS |
||
|
CodeCommit |
Integração direta com repositórios do Git do AWS CodeCommit. Nenhuma configuração de Repository é necessária. |
|
|
CodeConnections |
Estabeleça conexão com o GitHub, o GitLab ou o Bitbucket usando autenticação gerenciada. Requer configuração da conexão. |
|
|
Artefatos da OCI do ECR |
Integração direta com o AWS ECR para charts do Helm baseados em OCI e imagens de manifestos. Nenhuma configuração de Repository é necessária. |
|
|
Configuração do repositório com credenciais |
||
|
AWS Secrets Manager (nome do usuário/token) |
Armazene tokens de acesso pessoal ou senhas Permite a alternância de credenciais sem acesso ao Kubernetes. |
|
|
AWS Secrets Manager (chave SSH) |
Use a autenticação por chave SSH. Permite a alternância de credenciais sem acesso ao Kubernetes. |
|
|
AWS Secrets Manager (aplicativo do GitHub) |
Autenticação pela aplicação do GitHub com chave privada Permite a alternância de credenciais sem acesso ao Kubernetes. |
|
|
Kubernetes Secret |
Método padrão do Argo CD usando segredos “in-cluster” |
Nenhuma (permissões gerenciadas pelo EKS Access Entry com Kubernetes RBAC) |
Acesso direto aos serviços da AWS
No caso de serviços da AWS, é possível referenciá-los diretamente nos recursos da Application sem precisar criar configurações de Repository. O perfil da funcionalidade deve ter as permissões do IAM necessárias.
Repositórios do CodeCommit
Referencie repositórios do CodeCommit diretamente nas 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
Permissões obrigatórias do perfil da funcionalidade:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:GitPull", "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections
Referencie repositórios do GitHub, do GitLab ou do Bitbucket por meio do CodeConnections. O formato do URL do repositório é derivado do ARN da conexão do CodeConnections.
O formato do URL do repositório é:
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
Permissões obrigatórias do perfil da funcionalidade:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codeconnections:UseConnection", "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Charts do Helm do ECR
O ECR armazena charts do Helm como artefatos OCI. O Argo CD oferece duas maneiras de referenciá-los:
Formato Helm (recomendado para charts do 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
Observação: não inclua o prefixo oci:// ao usar o formato Helm. Use o campo chart para especificar o nome do chart.
Formato OCI (para artefatos OCI que contêm manifestos do 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
Observação: inclua o prefixo oci:// ao usar o formato OCI. Utilize o campo path em vez de chart.
Permissões de perfil de funcionalidade necessárias - anexe a política gerenciada:
arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
Essa política inclui as permissões ECR necessárias: ecr:GetAuthorizationToken, ecr:BatchGetImage e ecr:GetDownloadUrlForLayer.
Uso do AWS Secrets Manager
Armazene credenciais de repositório no Secrets Manager e faça referência a elas nas configurações de Repository do Argo CD. O uso do Secrets Manager permite a alternância automática de credenciais sem exigir acesso ao Kubernetes RBAC. As credenciais podem ser alternadas usando as permissões do IAM para o Secrets Manager, e o Argo CD lê automaticamente os valores atualizados.
nota
Para reutilização de credenciais em vários repositórios (por exemplo, todos os repositórios em uma organização do GitHub), use modelos de credenciais de repositório com argocd.argoproj.io/secret-type: repo-creds. Isso fornece uma melhor experiência de usuário do que criar segredos de repositórios individuais. Para obter mais informações, consulte Credenciais de repositórios
Autenticação por nome de usuário e token
Para repositórios HTTPS com tokens de acesso pessoal ou senhas:
Criar o segredo no 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"}'
Campos opcionais para certificado TLS de cliente (para servidores do Git privados):
aws secretsmanager create-secret \ --name argocd/my-private-repo \ --secret-string '{ "username":"your-username", "token":"your-token", "tlsClientCertData":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi4uLgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "tlsClientCertKey":"LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi4uLgotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t" }'
nota
Os valores tlsClientCertData e tlsClientCertKey devem estar codificados em base64.
Criar um segredo de repositório referenciando o 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
Autenticação por chave SSH
Para obter acesso ao Git baseado em SSH, armazene a chave privada em texto não formatado (não em JSON):
Criar o segredo com a chave privada 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-----"
Criar um segredo de repositório para 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
Autenticação por aplicativo do GitHub
Para a autenticação pelo aplicativo do GitHub com uma chave privada:
Criar o segredo com as credenciais do aplicativo do GitHub:
aws secretsmanager create-secret \ --name argocd/github-app \ --description "GitHub App credentials for Argo CD" \ --secret-string '{ "githubAppPrivateKeySecret":"LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQouLi4KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0=", "githubAppID":"123456", "githubAppInstallationID":"12345678" }'
nota
O valor githubAppPrivateKeySecret deve estar codificado em base64.
Campo opcional para o 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" }'
Criar um segredo de repositório para o aplicativo do GitHub:
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
Modelos de credencial de repositório
Para reutilização de credenciais em vários repositórios (por exemplo, todos os repositórios em uma organização ou usuário do GitHub), use modelos de credenciais de repositório com argocd.argoproj.io/secret-type: repo-creds. Isso fornece uma melhor experiência de usuário do que criar segredos de repositórios individuais para cada respositório.
Crie um modelo de credencial de repositório:
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
Esse modelo de credencial se aplica a todos os repositórios que correspondam ao prefixo https://github.com/your-org da URL. Em seguida, é possível referenciar qualquer repositório dessa organização em Applications sem criar segredos adicionais.
Para obter mais informações, consulte Credenciais de repositórios
Importante
Certifique-se de que seu perfil de funcionalidade do IAM tenha a política gerenciada arn:aws:iam::aws:policy/AWSSecretsManagerClientReadOnlyAccess anexada ou permissões equivalentes, incluindo secretsmanager:GetSecretValue e permissões de descriptografia do KMS. Consulte Considerações sobre o Argo CD para obter a configuração da política do IAM.
Uso do AWS CodeConnections
Para a integração com o CodeConnections, consulte Estabelecimento de conexão com repositórios do Git usando o AWS CodeConnections.
O CodeConnections fornece autenticação gerenciada para GitHub, GitLab e Bitbucket sem armazenar credenciais.
Uso do Kubernetes Secrets
Armazene credenciais diretamente no Kubernetes usando o método padrão do Argo CD.
Para HTTPS com token de acesso pessoal:
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
Para o 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-----
Repositórios do CodeCommit
Para o AWS CodeCommit, conceda ao perfil da funcionalidade do IAM permissões do CodeCommit (codecommit:GitPull).
Configurar o repositório:
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
Para obter a configuração detalhada da política do IAM, consulte Considerações sobre o Argo CD.
Verificação da conexão do repositório
Verifique o status da conexão pela interface do usuário do Argo CD em “Settings → Repositories”. A interface do usuário apresenta o status da conexão e quaisquer erros de autenticação.
Os segredos do repositório não incluem informações de status.
Recursos adicionais
-
Registro de clusters de destino: registre os clusters de destino para implantações
-
Criação de Applications: crie sua primeira Application
-
Considerações sobre o Argo CD: acesse as permissões do IAM e as configuração de segurança
-
Private Repositories
: acesse a referência de configuração de repositórios da versão original