Ganchos de recursos de ArgoCD.
Ayudó en la configuración de E2E
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
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.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































