ArgoCD 리소스 후크.

Jan 12 2023
E2E 설정에 도움이 되는 후크의 몇 가지 사용 사례는 다음과 같습니다. A- 앱의 새 버전을 배포하기 전에 PreSync 후크를 사용하여 데이터베이스 스키마 마이그레이션을 수행합니다. B- 동기화 후크를 사용하여 Kubernetes 롤링 업데이트 전략보다 더 정교해야 하는 복잡한 배포를 오케스트레이션합니다.

E2E 설정에 도움이 됨

아르고 + 후크

후크의 몇 가지 사용 사례는 다음과 같습니다.

A- 새 버전의 앱을 배포하기 전에 PreSync 후크를 사용하여 데이터베이스 스키마 마이그레이션을 수행하십시오.

B- 동기화 후크를 사용하여 Kubernetes 롤링 업데이트 전략보다 더 정교해야 하는 복잡한 배포를 오케스트레이션합니다.

C- 배포 후 PostSync 후크를 사용하여 통합 및 상태 확인을 실행합니다.

D- 동기화 작업이 실패하면 SyncFail 후크를 사용하여 정리 또는 종료자 논리를 실행합니다. SyncFail용 후크는 v1.2에서만 사용할 수 있습니다.

내 사용 사례에서 —

End-2-End 설정을 만들어야 합니다. 즉, ArgoCD를 통해 서비스를 배포하고 포드가 작동하는지 확인한 후 즉시 단위 테스트를 실행하여 CI/CD 프로세스를 완료해야 합니다.

결과적으로 PostSync 후크는 제 사용 사례에 적합합니다.

따라서 이 블로그에서는 PostSync 후크 구성에 대해 설명합니다.

아래 파일을 한 번만 살펴보십시오.

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

2행 — 종류: 직업

성공적인 서비스 배포 후에만 필요하기 때문에 kind:job 으로 실행하고 있으며 일단 트리거되면 작업의 작업이 완료되므로 제 경우에는 kind:job이 올바른 종류입니다.

6행: argocd.argoproj.io/hook: PostSync [후크 주석]

7행: argocd.argoproj.io/hook-delete-policy: HookSucceeded

[훅이 발동되고 작업이 완료되면 삭제됩니다.]

19행: curl 명령

필요에 맞게 Curl 명령을 편집합니다. 내 상황에서는 buildkite 도구를 사용하여 단위 테스트를 시작합니다.

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\"

도커 파일-

FROM alpine:3.15

RUN apk add --no-cache bash curl jq

ENTRYPOINT ["/bin/bash"]

팁:- 필요하지 않은 소프트웨어나 도구를 설치하지 마십시오. 이렇게 하면 보안을 유지하는 데 도움이 됩니다.

다음과 같이 단위 테스트 파이프라인의 상태를 볼 수 있습니다.

클릭 해주세요-

ArgoCD 올인원 설정 안내서.

ArgoCD 고가용성(HA) [생산 준비 완료].

ArgoCD 인그레스 설정

ArgoCD Okta 설정.

ArgoCD 이미지 업데이터

ArgoCD Slack 알림 설정

이 포스팅이 유익하고 유익한 정보가 되었으면 합니다 :)

By me a Coffee ← — — — 블로그가 마음에 드셨다면 박수 한 번 부탁드립니다. :) 더 많은 콘텐츠를 보려면 저를 팔로우하세요 .

귀하의 박수는 제가 이러한 블로그를 계속 작성하도록 동기를 부여합니다.