摘要 我在头盔的Values.yaml文件中有自定义变量,我需要在构建发布阶段分配此变量的值。 ... 客户名称:XYZ ...
重现行为的步骤 我试图使用eskaffold通过setEnv发送vaule
apiVersion: skaffold/v1beta2
kind: Config
build:
artifacts:
- image: 'myimagename'
context: .
docker: {}
tagPolicy:
envTemplate:
template: '{{.DOCKER_REGISTRY}}/{{.IMAGE_NAME}}/{{.CLIENT_NAME}}:{{.VERSION}}'
local: {}
deploy:
kubectl: {}
profiles:
- name: dev
build:
tagPolicy:
envTemplate:
template: '{{.DOCKER_REGISTRY}}/{{.IMAGE_NAME}}/{{.CLIENT_NAME}}:{{.DIGEST_HEX}}'
local: {}
deploy:
helm:
releases:
- name: '{{.CLIENT_NAME}}'
chartPath: charts/'{{.CLIENT_NAME}}'
setValueTemplates:
image.repository: '{{.DOCKER_REGISTRY}}/{{.IMAGE_NAME}}/{{.CLIENT_NAME}}'
image.tag: '{{.DIGEST_HEX}}'
clientname: 'myclientname'
预期的行为 客户端名称Values.yaml的值设置为myclientname
实际行为 Values.yaml中的值未更改
Jx版本
NAME VERSION
jx 2.0.743
jenkins x platform 2.0.1182
Kubernetes cluster v1.12.10-eks-825e5d
kubectl v1.13.7-eks-c57ff8
helm client Client: v2.14.3+g0e7f3b6
git 2.16.5
Operating System CentOS Linux release 7.6.1810 (Core)
詹金斯类型 经典詹金斯
Kubernetes集群 EKS
答案 0 :(得分:2)
据我所知,管道不再使用skaffold。他们已将生成器切换为Google kaniko。将值插入模板的最佳方法是通过charts/myapp/templates/deployment.yaml
和charts/myapp/values.yaml
。
尝试将以下内容添加到 values.yaml
env:
clientname: myclientname
更新 deployment.yaml 模板以替换值(可以使用除env之外的其他var,仅出于演示替换的目的而显示了此
)# ...
spec:
containers:
env:
- name: clientname
value: {{ .Values.env.clientname }}
# ...