Agganci delle risorse ArgoCD.

Jan 12 2023
Aiutato nella configurazione E2E Alcuni casi d'uso per gli hook sono: A- 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.

Aiutato nella configurazione E2E

Argo + Ganci

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

Installazione di ArgoCD Okta.

ArgoCD Image updater

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.