Crochets de ressources ArgoCD.
Aide à la configuration E2E
Quelques cas d'utilisation pour les crochets sont :
A- Avant de déployer une nouvelle version de l'application, utilisez un crochet PreSync pour effectuer une migration de schéma de base de données.
B- Utiliser un crochet Sync pour orchestrer un déploiement complexe nécessitant plus de sophistication que la stratégie de mise à jour progressive de Kubernetes.
C- Après un déploiement, utilisez un crochet PostSync pour exécuter l'intégration et les vérifications de l'état.
D- Si une opération de synchronisation échoue, utilisez un crochet SyncFail pour exécuter la logique de nettoyage ou de finalisation. Les crochets pour SyncFail ne sont disponibles que dans la v1.2
Dans Mon cas d'utilisation —
Je dois créer une configuration End-2-End, ce qui signifie qu'après avoir déployé un service via ArgoCD et m'être assuré que les pods sont opérationnels, je dois immédiatement exécuter le test unitaire pour terminer mon processus CI/CD.
Par conséquent, le crochet PostSync convient à mon cas d'utilisation.
Ainsi, dans ce blog, nous discuterons de la configuration du crochet PostSync.
Parcourez simplement le fichier ci-dessous une fois.
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
Ligne 2 — genre : Emploi
Je l'exécute en tant que kind:job car il n'est nécessaire qu'après chaque déploiement de service réussi, et une fois qu'il est déclenché, la tâche du travail est terminée, donc kind:job est le bon type dans mon cas.
Ligne 6 : argocd.argoproj.io/hook : PostSync [annotation de crochet]
Ligne 7 : argocd.argoproj.io/hook-delete-policy : HookSucceeded
[Une fois le crochet déclenché et la tâche terminée, elle sera supprimée.]
Ligne 19 : commande curl
Modifiez les commandes Curl en fonction de vos besoins. Dans ma situation, j'utilise l'outil buildkite pour démarrer mon test unitaire.
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\"
Fichier Docker-
FROM alpine:3.15
RUN apk add --no-cache bash curl jq
ENTRYPOINT ["/bin/bash"]
Conseil :- Évitez d'installer des logiciels ou des outils dont vous n'avez pas besoin ; cela vous aidera à maintenir la sécurité.
Vous pouvez afficher l'état de votre pipeline de tests unitaires comme suit :
Cliquez sur moi-
Guide d'installation ArgoCD tout-en-un.
ArgoCD Haute Disponibilité (HA) [Production Ready].
Configuration de la notification ArgoCD Slack
J'espère que ce post est informatif et utile pour vous :)
Par moi un café ← — — — Si vous aimez le blog, donnez-moi s'il vous plaît un Clap :) et suivez-moi pour plus de contenu de ce type .
Vos applaudissements me motivent à continuer à écrire de tels blogs.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































