首页 > 解决方案 > 舵。执行 bash 脚本以选择正确的图像

问题描述

头盔文件:

spec:
      containers:
        - name: {{ .Values.app.name }}
          image: {{ .Values.image.name }} --> execute shell script here
          imagePullPolicy: Always
          ports:
            - containerPort: 8081
          env:
            - name: BACKEND_HOST
              value: {{ .Values.backend.host }}

我想执行 bash 脚本来检查这个图像是否存在。如果没有,则将拍摄其他图像。helm如何做到这一点?或者有什么解决办法吗?

标签: kubernetes-helmhelm3

解决方案


Helm 无法调用其他进程、建立网络连接或执行任何其他类型的外部查找(有一个特定例外,它可以从集群中读取 Kubernetes 对象)。当您运行helm install命令时,您必须传递此值:

helm install release-name ./chart-directory \
  --set image.name=$(the command you want to run)

如果这是从某个较大进程的一部分运行的,您可能会发现编写可以传递给helm install -f选项的 JSON 或 YAML 文件比动态调用脚本更容易;该helm install --set选项有一些不寻常的语法和行为。您甚至可以更进一步,将每个安装的 YAML 文件检查到源代码控制中,并在部署管道中的另一个步骤通知提交并实际执行安装(“GitOps”样式)。


推荐阅读