charles
Charles
Helm Charts

Helm charts 推到 Artifacts Registry

Helm charts 推到 Artifacts Registry
0 views
2 min read
#Helm Charts

在瀏覽前,若是忘記可以先參考以下文章呦 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

CommandCommand Explanation
helm upgradeupgrade a release
helm upgrade --installif a release by this name doesn't already exist, run an install
helm upgrade --create-namespaceif --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 內指令解說

CommandCommand Explanation
DEPLOYMENT_NAME填上 value 檔案內 name 的值
REGISTRY_REGIONArtifacts Registry 的 Region
PROJECT_IDGCP 專案 ID
artifact registry repoArtifacts Registry 存放 Helm tgz 的 repo
HELM_VERSIONapp-dev, app-devqa, app-integration, app-staging app-prod
NAMESPACEGKE 對應的 namespace
TARGET_ENV根據分支更新對應的 helm values.yaml
REGISTRY_FOLDERArtifacts Registry 存放 Docker Image 的 repo
REGISTRY_FILEArtifacts Registry 的 Docker Image
TARGET_ENV環境名稱
TIMESTAMP時間戳