我是 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 上有 2 个存储库:
_
# 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: ""