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.
Criação de Applications
As Applications correspondem a implantações nos clusters de destino. Cada Application define uma origem (repositório do Git) e um destino (cluster e namespace). Quando aplicado, o Argo CD criará os recursos especificados pelos manifestos no repositório do Git para o namespace no cluster. As Applications frequentemente especificam implantações de workloads, mas podem gerenciar quaisquer recursos do Kubernetes disponíveis no cluster de destino.
Pré-requisitos
-
Um cluster do EKS com a funcionalidade para o Argo CD criada
-
Acesso ao repositório configurado (consulte Configuração do acesso ao repositório)
-
Cluster de destino registrado (consulte Registro de clusters de destino)
-
kubectlconfigurado para o estabelecimento de comunicação com o cluster
Criação de uma Application básica
Defina uma Application que realize implantações usando um repositório do Git:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook namespace: argocd spec: project: default source: repoURL: https://github.com/argoproj/argocd-example-apps targetRevision: HEAD path: guestbook destination: server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster namespace: default
Importante
Use o ARN do cluster do EKS no campo destination.server, e não o URL do servidor da API do Kubernetes. A funcionalidade gerenciada requer ARNs para identificar os clusters.
Aplique a Application:
kubectl apply -f application.yaml
Visualize o status da Application:
kubectl get application guestbook -n argocd
Configuração da origem
Repositório do Git:
spec: source: repoURL: https://github.com/example/my-app targetRevision: main path: kubernetes/manifests
Etiqueta ou confirmação específica do Git:
spec: source: targetRevision: v1.2.0 # or commit SHA
Chart do Helm:
spec: source: repoURL: https://github.com/example/helm-charts targetRevision: main path: charts/my-app helm: valueFiles: - values.yaml parameters: - name: image.tag value: v1.2.0
Chart do Helm do ECR:
spec: source: repoURL: oci://account-id.dkr.ecr.region.amazonaws.com/repository-nametargetRevision:chart-versionchart:chart-name
Se o perfil da funcionalidade tiver as permissões necessárias do ECR, o repositório será usado diretamente, sem necessidade da configuração de Repository adicional. Para mais detalhes, consulte Configuração do acesso ao repositório.
Repositório do Git do CodeCommit:
spec: source: repoURL: https://git-codecommit.region.amazonaws.com/v1/repos/repository-nametargetRevision: main path: kubernetes/manifests
Se o perfil da funcionalidade tiver as permissões necessárias do CodeCommit, o repositório será usado diretamente, sem necessidade da configuração de Repository adicional. Para mais detalhes, consulte Configuração do acesso ao repositório.
Repositório do Git do CodeConnections:
spec: source: repoURL: https://codeconnections.region.amazonaws.com/git-http/account-id/region/connection-id/owner/repository.git targetRevision: main path: kubernetes/manifests
O formato do URL do repositório é derivado do ARN da conexão do CodeConnections. Se o perfil da funcionalidade tiver as permissões necessárias do CodeConnections e uma conexão estiver configurada, o repositório será usado diretamente, sem necessidade da configuração de Repository adicional. Para mais detalhes, consulte Configuração do acesso ao repositório.
Kustomize:
spec: source: repoURL: https://github.com/example/kustomize-app targetRevision: main path: overlays/production kustomize: namePrefix: prod-
Políticas de sincronização
Defina como o Argo CD deve sincronizar as aplicações.
Sincronização manual (padrão):
As aplicações exigem aprovação manual para sincronizar alterações:
spec: syncPolicy: {} # No automated sync
Acionamento manual da sincronização:
kubectl patch application guestbook -n argocd \ --type merge \ --patch '{"operation": {"initiatedBy": {"username": "admin"}, "sync": {}}}'
Sincronização automática:
As aplicações são sincronizadas automaticamente quando alterações no Git são detectadas:
spec: syncPolicy: automated: {}
Autorreparação:
Reverte automaticamente alterações manuais no cluster:
spec: syncPolicy: automated: selfHeal: true
Quando esta opção está habilitada, o Argo CD reverte quaisquer alterações realizadas diretamente no cluster, garantindo que o Git permaneça como fonte da verdade.
Supressão:
Exclui automaticamente recursos removidos do Git:
spec: syncPolicy: automated: prune: true
Atenção
A supressão excluirá recursos do seu cluster. Use com cautela em ambientes de produção.
Sincronização automática combinada:
spec: syncPolicy: automated: prune: true selfHeal: true syncOptions: - CreateNamespace=true
Opções de sincronização
Configuração de sincronização adicional:
Crie um namespace, se ele não existir:
spec: syncPolicy: syncOptions: - CreateNamespace=true
Valide os recursos antes de realizar a aplicação:
spec: syncPolicy: syncOptions: - Validate=true
Realize a aplicação somente quando não estiver em sincronização:
spec: syncPolicy: syncOptions: - ApplyOutOfSyncOnly=true
Recursos avançados de sincronização
O Argo CD oferece recursos avançados de sincronização para implantações complexas:
-
Ciclos de sincronização: controlam a ordem de criação de recursos usando anotações
argocd.argoproj.io/sync-wave -
Hooks de sincronização: executam trabalhos antes ou depois da sincronização usando as anotações
argocd.argoproj.io/hook(nomeadamente, PreSync, PostSync e SyncFail) -
Avaliação da integridade dos recursos: verificações de integridade personalizadas são realizadas para recursos específicos da aplicação
Para obter detalhes, consulte Sync Waves
Desconsideração de diferenças
Evite que o Argo CD sincronize campos específicos gerenciados por outros controladores (como a HPA gerenciando réplicas):
spec: ignoreDifferences: - group: apps kind: Deployment jsonPointers: - /spec/replicas
Para obter detalhes sobre como desconsiderar padrões e realizar exclusões de campos, consulte Diffing Customization
Implantação em vários ambientes
Implante a mesma aplicação em vários ambientes:
Desenvolvimento do:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-dev namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: develop path: overlays/development destination: server: arn:aws:eks:us-west-2:111122223333:cluster/dev-cluster namespace: my-app
Produção:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app-prod namespace: argocd spec: project: default source: repoURL: https://github.com/example/my-app targetRevision: main path: overlays/production destination: server: arn:aws:eks:us-west-2:111122223333:cluster/prod-cluster namespace: my-app syncPolicy: automated: prune: true selfHeal: true
Monitoramento e gerenciamento de Applications
Visualize o status da Application:
kubectl get application my-app -n argocd
Acesse a interface do usuário do Argo CD:
Abra a interface do usuário do Argo CD pelo console do EKS para visualizar a topologia da aplicação, o status de sincronização, a integridade dos recursos e o histórico de implantações. Consulte Como trabalhar com o Argo CD para obter instruções de acesso à interface do usuário.
Reversão de Applications:
Reverta para uma revisão anterior por meio da interface do usuário do Argo CD ou alterando o targetRevision na especificação da Application para uma confirmação ou etiqueta anterior no Git.
Recursos adicionais
-
Trabalho com o Argo CD Projects: organize aplicações com Projects para ambientes multilocatários
-
Uso de ApplicationSets: realize implantações em vários clusters com modelos
-
Application Specification
: acesse a referência de API completa para a Application -
Sync Options
: acesse a configuração de sincronização avançada