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.
Configuración de los ajustes de Argo CD
Con la capacidad de EKS para Argo CD, obtiene una experiencia de Argo CD completamente administrada. Argo CD ascendente ofrece muchas características y configuraciones opcionales, y la capacidad de EKS para Argo CD admite un subconjunto de ellos. Para la configuración compatible, configúrela de la misma manera que Argo CD ascendente, a través del ConfigMap argocd-cm del clúster. AWS lee los campos admitidos del ConfigMap y los aplica a la instancia de Argo CD administrada.
En las siguientes secciones, se describe cómo configurar el ConfigMap argocd-cm para la configuración compatible.
Requisitos previos
Antes de configurar los ajustes de Argo CD, debe tener lo siguiente:
-
Un clúster de EKS con la capacidad de Argo CD creada (consulte Creación de una capacidad de Argo CD)
-
El espacio de nombres configurado para Argo CD en esta capacidad (por defecto, el espacio de nombres
argocd) -
La CLI de
kubectlconfigurada para comunicarse con el clúster
Configuración del ConfigMap de argocd-cm
Para configurar los ajustes de Argo CD compatibles, cree un ConfigMap con el nombre argocd-cm en el clúster. La capacidad administrada lee los campos admitidos de este ConfigMap y los aplica a la instancia de Argo CD autoadministrada. La capacidad ignora los campos y características no compatibles que haya establecido. Revise la lista de campos admitidos para confirmar que la configuración surta efecto.
Cree el ConfigMap con los siguientes requisitos:
-
Asigne al ConfigMap el nombre
argocd-cm. -
Créelo en el espacio de nombres configurado para Argo CD en la capacidad (el espacio de nombres que estableció en la configuración de Argo CD al crear la capacidad). De forma predeterminada, este es el espacio de nombres
argocd. -
Aplique la etiqueta
app.kubernetes.io/part-of: argocd. Esta etiqueta es obligatoria, ya que coincide con el comportamiento de Argo CD ascendente. -
Use el mismo formato de campo y las mismas claves que Argo CD ascendente.
En el siguiente ejemplo, se muestra la estructura del ConfigMap:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: # Supported settings go here (see the following sections)
importante
Un ConfigMap no es un almacén seguro. No almacene secretos, credenciales ni otra información confidencial en el ConfigMap argocd-cm.
Configuraciones admitidas
La capacidad administrada admite el siguiente campo argocd-cm:
| Campo | Descripción |
|---|---|
|
|
Scripts de comprobación de estado personalizados para recursos personalizados. Consulte Comprobaciones de estado personalizadas. |
Comprobaciones de estado personalizadas
Argo CD evalúa el estado de los recursos que implementa. Para los recursos estándar de Kubernetes, como las implementaciones y los servicios, Argo CD cuenta con una lógica de estado integrada. Para los recursos personalizados que Argo CD no reconoce, no tiene ninguna lógica de estado integrada ni informa de ningún estado.
Cuando un recurso personalizado no tiene ninguna comprobación de estado, Argo CD indica que no tiene estado y lo excluye del estado general de la aplicación. Como resultado, una aplicación puede aparecer como Healthy incluso cuando sus recursos aún se estén aprovisionando o hayan fallado. Esto también significa que las ondas de sincronización pueden avanzar antes de que esos recursos estén listos, ya que el orden de sincronización depende del estado notificado.
Con las comprobaciones de estado personalizadas, puede definir la lógica de estado de los recursos personalizados, de forma que Argo CD registre el estado preciso y secuencie las implementaciones correctamente. Las comprobaciones de estado personalizadas se definen de la misma manera que en Argo CD ascendente con las mismas claves de configuración. Los scripts ascendentes y los ejemplos de la comunidad existentes funcionan con la capacidad de EKS para Argo CD sin modificaciones.
Comprobaciones de estado integradas para ACK y kro
La capacidad de EKS para Argo CD incluye comprobaciones de estado integradas para los recursos de Controladores de AWS para Kubernetes (ACK) y kro (Orquestador de recursos de Kube). Estos recursos informan de un estado preciso sin necesidad de configuración adicional.
Para cambiar la forma en que la capacidad evalúa el estado de un recurso de ACK o kro, puede definir una comprobación de estado personalizada para ese tipo de recurso. La comprobación de estado personalizada que defina para un tipo de recurso anula la comprobación de estado integrada para el tipo.
Escritura de una comprobación de estado personalizada
Para definir una comprobación de estado personalizada, agregue un script de Lua al ConfigMap argocd-cm con una clave con el siguiente formato:
resource.customizations.health.<group>_<kind>
Sustituya <group> por el grupo de API del recurso personalizado y <kind> por el tipo. Por ejemplo, la clave de un recurso personalizado con el grupo de API example.com y el tipo Database es resource.customizations.health.example.com_Database.
El script de Lua tiene acceso al objeto del recurso a través de la variable obj global. El script debe devolver una tabla con un campo status establecido en Healthy, Progressing, Degraded o Suspended. El script también puede establecer un campo message opcional para proporcionar un mensaje de estado descriptivo.
El siguiente ConfigMap de ejemplo define una comprobación de estado para un recurso personalizado Database. El script informa del recurso como Healthy cuando su fase de estado es Ready y como Progressing en caso contrario:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs
Para obtener más información sobre el formato del script de comprobación de estado, la lista de comprobaciones de estado integradas y ejemplos de la comunidad que puede adaptar, consulte Resource Health
Seguridad y limitaciones
Con la capacidad administrada, los scripts de comprobación de estado personalizados se ejecutan en un entorno de computación aislado y totalmente administrado. El entorno de ejecución está aislado por capacidad y no tiene acceso a los datos del clúster ni a las API de AWS. No aprovisionará, aplicará parches ni operará ninguna parte del entorno de ejecución.
Tenga en cuenta lo siguiente al escribir comprobaciones de estado personalizadas para utilizarlas con la capacidad de EKS:
-
Las bibliotecas de Lua estándar no están disponibles. La opción
useOpenLibssiempre está deshabilitada, que es la opción predeterminada en Argo CD ascendente. Los scripts no pueden acceder al sistema operativo ni al sistema de archivos. Si migra un script desde Argo CD autoadministrado que se basa en bibliotecas de Lua estándar, es posible que no se ejecute de la misma manera en la capacidad. Le recomendamos que pruebe los scripts de comprobación de estado en un entorno de desarrollo antes de usarlos en producción.
Si la evaluación del estado no está disponible temporalmente, la capacidad informa de los recursos personalizados afectados como Progressing en lugar de eliminar su estado. Esto mantiene los recursos afectados visibles en el estado de la aplicación hasta que se recupere la evaluación.
Verificación de una comprobación de estado personalizada
Después de aplicar o actualizar el ConfigMap argocd-cm, confirme que la comprobación de estado esté activa:
-
En la IU de Argo CD, elija una aplicación que incluya un recurso personalizado del tipo para el que haya definido una comprobación de estado. Confirme que el recurso informe del estado que devuelve el script. Como alternativa, ejecute
argocd app gety revise el estado del recurso.<application-name> -
Si el recurso no informa del estado esperado, verifique lo siguiente:
-
El ConfigMap se llama
argocd-cmy se encuentra en el espacio de nombres configurado para Argo CD en la capacidad. -
El ConfigMap tiene la etiqueta
app.kubernetes.io/part-of: argocdobligatoria. -
La clave de comprobación de estado utiliza el
<group>_<kind>correcto para el tipo de recurso.
-