有新提交时如何更新我的 helm 图表?

问题描述 投票:0回答:1

我是 helm 和 gitlab 的新手.. 我正在尝试创建一个简单的管道,一旦我提交代码 - >存储库中的舵图更新(并采用新的图像标签,即提交)

目前我的 gitlab 存储库如下所示:

Project
  src/ (source code)
  chart/ (my helm chart)

一旦我提交了我的源代码,就会创建一个新的构建,其标签是提交 SHA,但是我如何更新我的 helm 图表(可能通过 gitlab ci)以获取最新标签?

我的值文件看起来像这样

replicas: 1
registry: XX
image: YY
image_tag: ZZ (this one should be changes every new build)
port: 8000

另外,我不确定将图表和源代码保存在同一个存储库中是否是最佳实践(但我现在只是在学习)

我认为我可能需要通过 gitlab ci 来完成此操作,但我认为这只会创建“垃圾邮件”提交(每个新构建,我都会拉取存储库,更新文件并提交。但我认为这有点垃圾邮件,也许有更好的方法)

gitlab-ci devops kubernetes-helm
1个回答
0
投票

您需要在 Gitlab 上有 2 个存储库:

  1. Helm Chart:当你的 Chart 准备好后,你需要创建一个标签并在标签上创建一个版本
  2. 源代码:在您的 gitlab-ci 上,在部署工作中,您需要将 1. 添加到 helm 存储库:

_

# Add your package repository
helm repo add --username gitlab-ci-token --password $CI_JOB_TOKEN target_repo "your.url.of.gitlab.com/$CI_API_V4_URL/projects/projectNumber/packages/path/to/your/package
helm repo update

# Use helm with your package
helm upgrade --install "nameOfYourChart" \
  "target_repo/nameOfYourChart" \
  --version "numberOfTag" \
  --values "path/to/custom/values.yaml/in/repository/of/source/code" \
  --set key.to.image.digest=$DIGEST_IMAGE

key.to.image.digest 代表摘要将在您的

values.yaml
中替换,例如:

key:
  to:
    image:
      imageName: your.url.of.gitlab.com/project/source/code/image
      digest: ""
© www.soinside.com 2019 - 2024. All rights reserved.