

 **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.

# Solução de problemas em funcionalidades do Argo CD
<a name="argocd-troubleshooting"></a>

**nota**  
As funcionalidades do EKS são totalmente gerenciadas e executadas de forma externa ao cluster. Você não tem acesso aos logs do controlador ou aos namespaces do controlador. A solução de problemas se concentra na integridade da funcionalidade, no status das aplicações e na configuração.

## Funcionalidade com o status ACTIVE, mas as aplicações não estão sendo sincronizadas
<a name="_capability_is_active_but_applications_are_not_syncing"></a>

Se a funcionalidade do Argo CD apresentar o status `ACTIVE`, mas as aplicações não estiverem sendo sincronizadas, verifique a integridade da funcionalidade e o status das aplicações.

 **Verifique a integridade da funcionalidade**:

É possível visualizar problemas de integridade e de status da funcionalidade no console do EKS ou usando a AWS CLI.

 **Console do**:

1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home\#/clusters.

1. Selecione o nome do seu cluster.

1. Escolha a guia **Observabilidade**.

1. Escolha **Monitorar cluster**.

1. Escolha a guia **Funcionalidades** para visualizar a integridade e o status de todas as funcionalidades.

 ** AWS CLI**:

```
# View capability status and health
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name {{my-argocd}}

# Look for issues in the health section
```

 **Causas comuns**:
+  **Repositório não configurado**: o repositório do Git não foi adicionado ao Argo CD
+  **Falha na autenticação**: a chave SSH, o token ou as credenciais do CodeCommit estão inválidos
+  **Aplicação não criada**: não existem recursos de Application no cluster
+  **Política de sincronização**: a sincronização manual é necessária (sincronização automática não habilitada)
+  **Permissões do IAM**: as permissões estão ausentes para o CodeCommit ou o Secrets Manager

 **Verifique o status da aplicação**:

```
# List applications
kubectl get application -n argocd

# View sync status
kubectl get application {{my-app}} -n argocd -o jsonpath='{.status.sync.status}'

# View application health
kubectl get application {{my-app}} -n argocd -o jsonpath='{.status.health}'
```

 **Verifique as condições da aplicação**:

```
# Describe application to see detailed status
kubectl describe application {{my-app}} -n argocd

# View application health
kubectl get application {{my-app}} -n argocd -o jsonpath='{.status.health}'
```

## Aplicações travadas no estado “Progressing”
<a name="_applications_stuck_in_progressing_state"></a>

Se uma aplicação estiver em `Progressing` mas nunca atingir `Healthy`, verifique o status dos recursos da aplicação e os eventos.

 **Verifique a integridade do recurso**:

```
# View application resources
kubectl get application {{my-app}} -n argocd -o jsonpath='{.status.resources}'

# Check for unhealthy resources
kubectl describe application {{my-app}} -n argocd | grep -A 10 "Health Status"
```

 **Causas comuns**:
+  **Implantação não está pronta**: os pods não conseguem iniciar ou as sondagens de prontidão apresentam falhas
+  **Dependências entre recursos**: existem recursos esperando que outros recursos fiquem prontos
+  **Erros ao obter imagens**: as imagens de contêiner não estão acessíveis
+  **Recursos insuficientes**: o cluster não tem CPU ou memória suficiente para os pods

 **Verifique a configuração do cluster de destino** (para configurações com vários clusters):

```
# List registered clusters
kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster

# View cluster secret details
kubectl get secret {{cluster-secret-name}} -n argocd -o yaml
```

## Falhas na autenticação do repositório
<a name="_repository_authentication_failures"></a>

Se o Argo CD não conseguir acessar seus repositórios do Git, verifique a configuração de autenticação.

 **Para repositórios do CodeCommit**:

Verifique se o perfil de funcionalidade do IAM tem as permissões necessárias para o CodeCommit:

```
# View IAM policies
aws iam list-attached-role-policies --role-name {{my-argocd-capability-role}}
aws iam list-role-policies --role-name {{my-argocd-capability-role}}

# Get specific policy details
aws iam get-role-policy --role-name {{my-argocd-capability-role}} --policy-name {{policy-name}}
```

É necessário que o perfil conte com a permissão `codecommit:GitPull` para os repositórios.

 **Para repositórios do Git privados**:

Verifique se as credenciais do repositório estão configuradas corretamente:

```
# Check repository secret exists
kubectl get secret -n argocd {{repo-secret-name}} -o yaml
```

Certifique-se de que o segredo contenha as credenciais de autenticação adequadas (por exemplo, chave SSH, token ou usuário/senha).

 **Para repositórios que usam o Secrets Manager**:

```
# Verify IAM Capability Role has Secrets Manager permissions
aws iam list-attached-role-policies --role-name {{my-argocd-capability-role}}

# Test secret retrieval
aws secretsmanager get-secret-value --secret-id {{arn:aws:secretsmanager:region-code:111122223333:secret:my-secret}}
```

## Problemas relacionados à implantação em vários clusters
<a name="_multi_cluster_deployment_issues"></a>

Se as aplicações não estiverem sendo implantadas em clusters remotos, verifique o registro do cluster e a configuração de acesso.

 **Verifique o registro do cluster**:

```
# List registered clusters
kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster

# Verify cluster secret format
kubectl get secret {{CLUSTER_SECRET_NAME}} -n argocd -o yaml
```

Certifique-se de que o campo `server` contenha o ARN do cluster EKS, e não o URL da API do Kubernetes.

 **Verifique a entrada de acesso do cluster de destino**:

No cluster de destino, confirme que o perfil da funcionalidade do IAM destinado ao Argo CD conta com uma entrada de acesso:

```
# List access entries (run on target cluster or use AWS CLI)
aws eks list-access-entries --cluster-name {{target-cluster}}

# Describe specific access entry
aws eks describe-access-entry \
  --cluster-name {{target-cluster}} \
  --principal-arn {{arn:aws:iam::111122223333:role/my-argocd-capability-role}}
```

 **Verifique as permissões do IAM para várias contas**:

Para implantações entre contas, confirme que o perfil da funcionalidade do IAM destinado ao Argo CD conta com uma entrada de acesso no cluster de destino. A funcionalidade gerenciada emprega entradas de acesso do EKS para o acesso entre contas, e não a suposição do perfil do IAM.

Para obter mais informações sobre configuração de vários clusters, consulte [Registro de clusters de destino](argocd-register-clusters.md).

## Próximas etapas
<a name="_next_steps"></a>
+  [Considerações sobre o Argo CD](argocd-considerations.md): acesse considerações e práticas recomendadas do Argo CD
+  [Como trabalhar com o Argo CD](working-with-argocd.md): crie e gerencie Applications do Argo CD
+  [Registro de clusters de destino](argocd-register-clusters.md): configure implantações em vários clusters
+  [Solução de problemas das funcionalidades do EKS](capabilities-troubleshooting.md): acesse orientações gerais para solução de problemas de funcionalidades