我有一个问题,我正在寻找更通用的答案方法或策略。我对 HelmRelease 有一些变化,它指向 oct 容器注册表。该图表保持静态,并具有一个部署,其中图像设置为开发标签。
当我触发图表版本更改时,我的设置会拉取图像,但我不想在每个构建上更改图表版本(因为图表没有更改),而是有通量或实施策略,在以下情况下拉取新图像:图像摘要与当前部署的图像摘要不同。
每次开发分支发生更改时,我的管道都会构建一个新映像,并使用开发标签将新映像添加到 CR。
因此,我再次拥有的是一个静态使用带有开发标签的图像引用的部署,但是当图像摘要更改时,直到我更改图表版本时才会拉动它。有没有人解决过这个问题或者遇到过类似的情况?
这些是我的助焊剂规格:
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: nchart-repository
namespace: flux-system
spec:
interval: 1m0s
url: oci://gitttt.asd.com:5050/company/assets/asd/chart
type: oci
secretRef:
name: temp-credz
---
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: niccom-dev
namespace: flux-system
spec:
chart:
spec:
chart: ncom-chart
sourceRef:
kind: HelmRepository
name: nchart-repository
version: 0.1.6
valuesFiles:
- values-dev.yaml
reconcileStrategy: Revision
interval: 2m
timeout: 1m
driftDetection:
mode: enabled
我发布到 CR 的图表 oci://gitttt.asd.com:5050/company/assets/asd/chart/ncom-chart:0.1.6
其中包含带有片段
的部署containers:
- name: {{ .Values.www.name }}
image: "{{ .Values.base_repo.path }}{{ .Values.www.www_container_repository }}:{{ .Values.www.www_container_tag }}"
通过 helm 安装后生成的镜像值 gitttt.asd.com:5050/company/assets/xyz/www:develop
正如我上面提到的,当我将图表版本升级到 0.1.7 等时,一切都有效,但我想要的是保持图表静态指向开发标签并仅构建图像。
1-利用 Kubernetes ImagePullPolicy:
2- 更新 HelmRelease 中的图像摘要:
3- Flux 图像更新自动化: