

 **Ayude a mejorar esta página** 

Para contribuir a esta guía del usuario, elija el enlace **Edit this page on GitHub** que se encuentra en el panel derecho de cada página.

# Solución de problemas con capacidades de Argo CD
<a name="argocd-troubleshooting"></a>

En este tema, se proporciona una guía para la solución de problemas de la capacidad de EKS para Argo CD, lo que incluye las comprobaciones de estado de la capacidad, los problemas de sincronización de las aplicaciones, la autenticación de repositorios y las implementaciones en varios clústeres.

**nota**  
Las capacidades de EKS son completamente administradas y se ejecutan fuera del clúster. No tiene acceso a los registros del servidor de Argo CD ni al espacio de nombres `argocd`. La solución de problemas se centra en el estado de la capacidad, el estado de la aplicación y la configuración.

## La capacidad está ACTIVA, pero las aplicaciones no se sincronizan
<a name="_capability_is_active_but_applications_arent_syncing"></a>

Si la capacidad de Argo CD muestra el estado `ACTIVE`, pero las aplicaciones no se están sincronizando, compruebe el estado de la capacidad y de la aplicación.

 **Compruebe el estado de la capacidad**:

Puede ver los problemas de estado de la capacidad en la consola de EKS o mediante la AWS CLI.

 **Consola**:

1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home\$1/clusters.

1. Seleccione el nombre del clúster.

1. Seleccione la pestaña **Observabilidad**.

1. Elija **Supervisar clúster**.

1. Seleccione la pestaña **Capacidades** para ver el estado de todas las capacidades.

 ** 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 habituales**:
+  **Repositorio no configurado**: el repositorio de Git no se agregó a Argo CD.
+  **Error de autenticación**: las credenciales de la clave SSH, el token o CodeCommit no son válidas.
+  **Aplicación no creada**: no hay recursos de la aplicación en el clúster.
+  **Política de sincronización**: se requiere sincronización manual (la sincronización automática no está activada).
+  **Permisos de IAM**: faltan permisos para CodeCommit o Secrets Manager.

 **Compruebe el estado de la aplicación**:

```
# 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}'
```

 **Compruebe las condiciones de la aplicación**:

```
# 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}'
```

## Aplicaciones bloqueadas en el estado “En curso”
<a name="_applications_stuck_in_progressing_state"></a>

Si una aplicación muestra `Progressing`, pero nunca aparece `Healthy`, compruebe el estado de los recursos y los eventos de la aplicación.

 **Compruebe el estado de los recursos**:

```
# 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 habituales**:
+  **La implementación no está lista**: los pods no se inician o las sondas de preparación fallan.
+  **Dependencias de recursos**: recursos que esperan a que otros recursos estén listos.
+  **Errores al extraer imágenes**: no se puede acceder a las imágenes del contenedor.
+  **Recursos insuficientes**: el clúster carece de CPU o memoria para los pods.

 **Verifique la configuración del clúster de destino** (para configuraciones de varios clústeres):

```
# 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
```

## Errores de autenticación de repositorios
<a name="_repository_authentication_failures"></a>

Si Argo CD no puede acceder a los repositorios de Git, compruebe la configuración de autenticación.

 **Para repositorios de CodeCommit**:

Compruebe que el rol de capacidad de IAM tenga permisos de 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
```

El rol necesita el permiso `codecommit:GitPull` para los repositorios.

 **Para repositorios de Git privados**:

Compruebe que las credenciales del repositorio estén configuradas correctamente:

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

Asegúrese de que el secreto contenga las credenciales de autenticación correctas (clave SSH, token o nombre de usuario y contraseña).

 **Para los repositorios que utilizan 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 en implementaciones de varios clústeres
<a name="_multi_cluster_deployment_issues"></a>

Si las aplicaciones no se implementan en clústeres remotos, compruebe la configuración de acceso y el registro del clúster.

 **Compruebe el registro del clúster**:

```
# 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
```

Asegúrese de que el campo `server` contenga el ARN del clúster de EKS, no la URL de la API de Kubernetes.

 **Compruebe la entrada de acceso del clúster de destino**:

En el clúster de destino, compruebe que el rol de capacidad de Argo CD tenga una entrada de acceso:

```
# 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::[.replaceable]111122223333:role/my-argocd-capability-role
```

 **Compruebe los permisos de IAM para varias cuentas**:

Para las implementaciones entre cuentas, compruebe que el rol de capacidad de Argo CD tenga una entrada de acceso en el clúster de destino. La capacidad administrada utiliza las entradas de acceso de EKS para el acceso entre cuentas, no para asumir el rol de IAM.

Para obtener más información sobre la configuración de varios clústeres, consulte [Registro de clústeres de destino](argocd-register-clusters.md).

## Siguientes pasos
<a name="_next_steps"></a>
+  [Consideraciones sobre Argo CD](argocd-considerations.md): consideraciones y prácticas recomendadas de Argo CD
+  [Uso de Argo CD](working-with-argocd.md): creación y administración de aplicaciones de Argo CD
+  [Registro de clústeres de destino](argocd-register-clusters.md): configuración de implementaciones de varios clústeres
+  [Solución de problemas de capacidades de EKS](capabilities-troubleshooting.md): orientación general de solución de problemas de la capacidad