【发布时间】:2021-04-06 17:27:14
【问题描述】:
在构建镜像路径时,这就是我想要构建镜像路径的方式,docker注册地址所在的位置,我想从configMap中获取它。
我无法在 values.yaml 文件中对注册表地址进行硬编码,因为每个客户的注册表地址都不同,我不想让客户手动输入此输入。这些 helm 图表是通过 argoCD 部署的,因此通过 shell 获取 registryIP 然后调用 helm 命令也不是一种选择。
我尝试了下面的代码,它不起作用,因为 env 变量在图像路径存在的上下文中不可用。
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "helm-guestbook.fullname" . }}
spec:
template:
metadata:
labels:
app: {{ template "helm-guestbook.name" . }}
release: {{ .Release.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
{{- if eq .Values.isOnPrem "true" }}
image: {{ printf "%s/%s:%s" $dockerRegistryIP .Values.image.repository .Values.image.tag }}
{{- else }}
env:
- name: DOCKER_REGISTRY_IP
valueFrom:
configMapKeyRef:
name: docker-registry-config
key: DOCKER_REGISTRY_IP
关于如何使用 helm 解决这个问题的任何指示?谢谢
【问题讨论】:
-
获取配置到 Helm 模板的唯一方法是通过
.Values;但您可以通过helm install --set或helm install -f使用附加的 YAML 文件传递它们。 Helm(故意)不读取环境变量。
标签: kubernetes kubernetes-helm