Haki zasobów ArgoCD.
Pomógł w konfiguracji E2E
Oto kilka przypadków użycia haków:
A- Przed wdrożeniem nowej wersji aplikacji użyj haka PreSync , aby przeprowadzić migrację schematu bazy danych.
B- Używanie haka synchronizacji do orkiestracji złożonego wdrożenia wymagającego większego wyrafinowania niż strategia aktualizacji stopniowych Kubernetes.
C- Po wdrożeniu użyj haka PostSync , aby uruchomić integrację i kontrolę kondycji.
D- Jeśli operacja synchronizacji nie powiedzie się, użyj haka SyncFail , aby uruchomić logikę czyszczenia lub finalizatora. Haki dla SyncFail są dostępne tylko w wersji 1.2
W moim przypadku użycia —
Muszę utworzyć konfigurację End-2-End, co oznacza, że po wdrożeniu usługi za pośrednictwem ArgoCD i upewnieniu się, że pody działają, muszę natychmiast uruchomić test jednostkowy, aby zakończyć proces CI/CD.
W rezultacie hak PostSync jest odpowiedni dla mojego przypadku użycia.
Tak więc na tym blogu omówimy konfigurację haka PostSync.
Wystarczy raz przejść przez poniższy plik.
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
Linia 2 — rodzaj: Praca
Uruchamiam go jako kind:job , ponieważ jest potrzebny tylko po każdym pomyślnym wdrożeniu usługi, a po uruchomieniu zadanie zadania jest zakończone, więc kind:job jest w moim przypadku właściwym rodzajem.
Linia 6: argocd.argoproj.io/hook: PostSync [Adnotacja haka]
Linia 7: argocd.argoproj.io/hook-delete-policy: HookSucceeded
[Po uruchomieniu haka i zakończeniu zadania zostanie ono usunięte.]
Linia 19: polecenie zwijania
Edytuj polecenia Curl, aby dostosować je do swoich potrzeb. W mojej sytuacji używam narzędzia buildkite, aby rozpocząć test jednostkowy.
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\"
plik Docker-
FROM alpine:3.15
RUN apk add --no-cache bash curl jq
ENTRYPOINT ["/bin/bash"]
Wskazówka: – Unikaj instalowania oprogramowania lub narzędzi, których nie potrzebujesz; pomoże to zachować bezpieczeństwo.
Stan potoku testów jednostkowych można wyświetlić w następujący sposób:
Kliknij-
Podręcznik konfiguracji urządzenia wielofunkcyjnego ArgoCD.
ArgoCD High Availability (HA) [gotowy do produkcji].
Konfiguracja powiadomień ArgoCD Slack
Mam nadzieję, że ten post będzie dla Ciebie przydatny i pouczający :)
By me a Coffee ← — — — Jeśli blog ci się podoba, poklasknij :) i śledź mnie po więcej takich treści .
Wasze brawa motywują mnie do dalszego pisania takich blogów.

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































