Agganci delle risorse ArgoCD.
Aiutato nella configurazione E2E
Alcuni casi d'uso per gli hook sono:
R- Prima di distribuire una nuova versione dell'app, utilizzare un hook PreSync per eseguire una migrazione dello schema del database.
B- Utilizzo di un hook di sincronizzazione per orchestrare una distribuzione complessa che richiede una maggiore sofisticazione rispetto alla strategia di aggiornamento in sequenza di Kubernetes.
C- Dopo una distribuzione, utilizzare un hook PostSync per eseguire l'integrazione e i controlli di integrità.
D- Se un'operazione di sincronizzazione ha esito negativo, utilizzare un hook SyncFail per eseguire la pulizia o la logica del finalizzatore. Gli hook per SyncFail sono disponibili solo nella versione 1.2
Nel mio caso d'uso —
Ho bisogno di creare una configurazione End-2-End, il che significa che dopo aver distribuito un servizio tramite ArgoCD e aver verificato che i pod siano operativi, devo eseguire immediatamente lo unit test per completare il mio processo CI/CD.
Di conseguenza, l'hook PostSync è appropriato per il mio caso d'uso.
Quindi, in questo blog, parleremo della configurazione dell'hook PostSync.
Basta esaminare il file sottostante una volta.
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
Riga 2 — tipo: Job
Lo eseguo come un tipo:lavoro perché è necessario solo dopo ogni distribuzione riuscita del servizio e, una volta attivato, l'attività del lavoro è completata, quindi tipo :lavoro è il tipo giusto nel mio caso.
Riga 6: argocd.argoproj.io/hook: PostSync [Annotazione hook]
Riga 7: argocd.argoproj.io/hook-delete-policy: HookSucceeded
[Una volta che l'hook è stato attivato e il lavoro è stato completato, verrà eliminato.]
Riga 19: comando curl
Modifica i comandi Curl in base alle tue esigenze. Nella mia situazione, utilizzo lo strumento buildkite per avviare il test unitario.
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\"
File Docker-
FROM alpine:3.15
RUN apk add --no-cache bash curl jq
ENTRYPOINT ["/bin/bash"]
Suggerimento: - Evita di installare software o strumenti che non ti servono; questo ti aiuterà a mantenere la sicurezza.
Puoi visualizzare lo stato della tua pipeline di unit test come segue:
Cliccami-
Guida all'installazione di ArgoCD All-in-One.
ArgoCD High Availability (HA) [Pronto per la produzione].
Configurazione dell'ingresso ArgoCD
Configurazione delle notifiche di rallentamento ArgoCD
Spero che questo post sia informativo e utile per te :)
Da me un caffè ← — — — Se ti piace il blog, per favore dammi un applauso :) e seguimi per altri contenuti simili .
Il tuo applauso mi motiva a continuare a scrivere blog del genere.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































