앞선 게시물에서 등장한 Helm chart manifest의 예시를 보면서 helm install로 배포할 수 있는 상태로 만드는 과정을 살펴보자. 최종적으는 다음 게시물에서 helm 명령어가 아니라 ArgoCD를 통해 sync를 통해 배포할 예정이다.
완성한 소스코드는 https://github.com/HoneyJung/helm-gcp-example에 있다.
exterenalSecret.yaml, externalSecretServiceAccount.yaml, secretStore는 아래에서 더 자세히 설명합니다.
├── Chart.yaml
├── templates
│ ├── backendConfig.yaml - timeout을 위한 것. 필수 아님
│ ├── deployment.yaml
│ ├── exterenalSecret.yaml
│ ├── externalSecretServiceAccount.yaml
│ ├── frontendConfig.yaml - http => https로 redirect하기 위함. 이것도 필수 아님.
│ ├── ingress.yaml
│ ├── managedCertificate.yaml => ssl 인증서를 다루기 위한 파일. 아래에서 더 자세히 설명
│ ├── secretStore.yaml
│ └── service.yaml -
├── values-dev.yaml - 환경 별로 사용되는 변수는 분리해서 다룬다.
└── values.yaml - 변수는 따로 저장한다.
gcloud container clusters update opuslab-be-dev \
--update-addons ConfigConnector=ENABLED --zone us-central1-c
helm install external-secrets \
external-secrets/external-secrets \
-n external-secrets \
--create-namespace
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.workloadIdentityUser \
--member "serviceAccount:lgair-aihub.svc.id.goog[opuslab-be-main/opuslab-be-main]" \
external-secret@lgair-aihub.iam.gserviceaccount.com
gcloud iam service-accounts add-iam-policy-binding \
--role roles/iam.serviceAccountTokenCreator \
--member "serviceAccount:lgair-aihub.svc.id.goog[opuslab-be-main/opuslab-be-main]" \
external-secret@lgair-aihub.iam.gserviceaccount.com