Ganchos de recursos de ArgoCD.

Jan 12 2023
Ayudado en la configuración de E2E Algunos casos de uso para ganchos son: A- Antes de implementar una nueva versión de la aplicación, use un gancho PreSync para realizar una migración de esquema de base de datos. B- Usar un gancho de sincronización para orquestar una implementación compleja que requiere más sofisticación que la estrategia de actualización continua de Kubernetes.

Ayudó en la configuración de E2E

Argo + Ganchos

Algunos casos de uso para ganchos son:

R- Antes de implementar una nueva versión de la aplicación, use un enlace de PreSync para realizar una migración del esquema de la base de datos.

B- Usar un gancho de sincronización para orquestar una implementación compleja que requiere más sofisticación que la estrategia de actualización continua de Kubernetes.

C- Después de una implementación, use un gancho PostSync para ejecutar controles de integración y estado.

D- Si una operación de sincronización falla, use un gancho SyncFail para ejecutar la lógica de limpieza o finalización. Los ganchos para SyncFail solo están disponibles en v1.2

En mi caso de uso:

Necesito crear una configuración End-2-End, lo que significa que después de implementar un servicio a través de ArgoCD y asegurarme de que los pods estén operativos, necesito ejecutar inmediatamente la prueba unitaria para completar mi proceso de CI/CD.

Como resultado, el gancho de PostSync es apropiado para mi caso de uso.

Entonces, en este blog, discutiremos la configuración del gancho PostSync.

Simplemente revise el archivo a continuación una vez.

1 apiVersion: batch/v1
2 kind: Job
3 metadata:
4   name: ms-echoserver-Unit-test-trigger
5   annotations:
6     argocd.argoproj.io/hook: PostSync
7     argocd.argoproj.io/hook-delete-policy: HookSucceeded
8 spec:
9   template:
10     metadata:
11       labels:
12         name: unit-test
13     spec:
14       containers:
15       - name: unit-test
16         args:
17             - /bin/sh
18             - -ec
19             - "curl --location --request POST  \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\" 
20                 --data-raw '{
21                    \"commit\": \"HEAD\",
22                    \"branch\": \"main\",
23                    \"message\": \"Triggered by ArgoCD post deployment of ms-echoserver :rocket:\"
24                 }'"
25         env:
26         - name: GITHUB_TOKEN
27           valueFrom: 
28             secretKeyRef: 
29               name: ms-echoserver-secret
30               key: token
31 
32         image: curlimages/curl
33       restartPolicy: Never
34   backoffLimit: 0

Línea 2 — tipo: Trabajo

Lo estoy ejecutando como un tipo: trabajo porque solo se necesita después de cada implementación exitosa del servicio, y una vez que se activa, la tarea del trabajo se completa, por lo que tipo: trabajo es el tipo correcto en mi caso.

Línea 6: argocd.argoproj.io/hook: PostSync [anotación de gancho]

Línea 7: argocd.argoproj.io/hook-delete-policy: HookSucceeded

[Una vez que se haya activado el enlace y se haya completado el trabajo, se eliminará].

Línea 19: comando curl

Edite los comandos Curl para satisfacer sus necesidades. En mi situación, uso la herramienta buildkite para comenzar mi prueba unitaria.

curl --location --request POST  \"https://api.buildkite.com/v2/organizations/example/pipelines/unit-test-pipeline/builds\" --header \"Authorization: Bearer ${GITHUB_TOKEN}\" --header \"Content-Type: application/json\"

archivo Docker-

FROM alpine:3.15

RUN apk add --no-cache bash curl jq

ENTRYPOINT ["/bin/bash"]

Consejo:- Evite instalar cualquier software o herramienta que no necesite; esto le ayudará a mantener la seguridad.

Puede ver el estado de su canalización de pruebas unitarias de la siguiente manera:

Haz click en mi-

Guía de instalación de ArgoCD All-in-One.

Alta disponibilidad (HA) de ArgoCD [Listo para producción].

Configuración de entrada de ArgoCD

Configuración de ArgoCD Okta.

Actualizador de imágenes ArgoCD

Configuración de notificaciones de Slack de ArgoCD

Espero que este post sea informativo y útil para ti :)

Por mí un café ← — — — Si te gusta el blog, dame un aplauso :) y sígueme para ver más contenido de este tipo .

Tus aplausos me motivan a seguir escribiendo este tipo de blogs.