如何将变量环境拉入deployment.yml?

问题描述 投票:0回答:1

我从 Jenkins 创建了一个流程,该流程构建一个 dockerfile,然后通过 helm 为我创建一个图表。问题是我推送到 dockerhub 的镜像名称,然后存储库根据 Jenkins 版本号进行更改。

deployment.yaml

          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"

values.yaml

image:
  repository: photop/micro_focus
  pullPolicy: IfNotPresent
  # Overrides the image tag whose default is the chart appVersion.
  tag: "%image_tag%"

Jenkinsfile

    stage ('Deploy&Operate HM'){
        steps{
            script{
        bat 'minikube start'
        bat 'kubectl create deployment %BUILD_NUMBER% --image="%BUILD_NUMBER%":latest'
        bat 'helm install  test-%BUILD_NUMBER% ./micro --set image_tag=%BUILD_NUMBER%'

输出:

Failed to apply default image tag "photop/micro_focus:%image_tag%": couldn't parse image reference "photop/micro_focus:%image_tag%": invalid reference format

如何更改 Jenkins 构建的变量而不是 %image_tag% :

photop/micro_focus:%image_tag%
kubernetes jenkins kubernetes-helm
1个回答
0
投票

您只需创建自动应用于集群的部署,因为您没有指定 --dry-run=client 参数。因此我不明白你为什么要使用 helm install,这样感觉很模糊。但我可能是错的,不明白这种方式的做法。

© www.soinside.com 2019 - 2024. All rights reserved.