Helm Charts
Helm charts 推到 Artifacts Registry
在瀏覽前,若是忘記可以先參考以下文章呦 Helm 簡介
建立 Helm Template 的指令
helm create <helm 的名稱>
將 helm chart 推到 GCP 的 Artifact Registry 流程
# 打包 helm chart
helm package <helm chart 資料夾名稱>/
# GCP repository 授權
gcloud auth print-access-token | helm registry login -u oauth2accesstoken --password-stdin https://<artifact registry region>-docker.pkg.dev
# 將 Helm Chart .tgz 檔案推到 Artifact Registry 上
helm push <helm chart 名稱>.tgz oci://<artifact registry region>-docker.pkg.dev/<GCP_PROJECT_ID>/<artifact registry repo 名稱>
CI/CD 使用方式:
helm upgrade 相關 Command: Helm | Helm Upgrade
Command | Command Explanation |
---|---|
helm upgrade | upgrade a release |
helm upgrade --install | if a release by this name doesn't already exist, run an install |
helm upgrade --create-namespace | if --install is set, create the release namespace if not present |
helm upgrade --install --create-namespace "$DEPLOYMENT_NAME" /
oci://${REGISTRY_REGION}/${PROJECT_ID}/<artifact registry repo 名稱>/$HELM_VERSION /
--namespace ${NAMESPACE} --reuse-values -f helm_value/"$TARGET_ENV".yaml /
--set deployment.container.image=${REGISTRY_REGION}/${PROJECT_ID}/"$REGISTRY_FOLDER"/"$REGISTRY_FILE":"$TARGET_ENV"_"$TIMESTAMP" /
--atomic
helm 在 CI/CD 內指令解說
Command | Command Explanation |
---|---|
DEPLOYMENT_NAME | 填上 value 檔案內 name 的值 |
REGISTRY_REGION | Artifacts Registry 的 Region |
PROJECT_ID | GCP 專案 ID |
artifact registry repo | Artifacts Registry 存放 Helm tgz 的 repo |
HELM_VERSION | app-dev, app-devqa, app-integration, app-staging app-prod |
NAMESPACE | GKE 對應的 namespace |
TARGET_ENV | 根據分支更新對應的 helm values.yaml |
REGISTRY_FOLDER | Artifacts Registry 存放 Docker Image 的 repo |
REGISTRY_FILE | Artifacts Registry 的 Docker Image |
TARGET_ENV | 環境名稱 |
TIMESTAMP | 時間戳 |