指定用于升级安装命令的头盔图名称

时间:2020-01-19 14:54:46

标签: jenkins jenkins-pipeline kubernetes-helm

我正在使用Helm 3,并且在Jenkins管道中在命令下运行时。

  + helm upgrade --install road-dashboard -f values.dev.yaml --namespace dev

我收到以下错误。

错误:“安全升级”需要2个参数

也许我也应该指定图表名称。但是由于使用Helm的新功能,我有些困惑。

1。如何指定图表名称。它必须是目录或我可以指定的任何图表名称。我的应用程序树结构如下。

 +-- helm\road-dashboard
    |       +--charts
    |       +-- templates
    |       |   \-- ...
    |       +-- Chart.yaml
    |       +-- values.dev.yaml     # dev override values
    |       +-- values.stage.yaml   # stage override values
    |       +-- values.prod.yaml    # production override values

2。我想在部署之前运行helm lint命令。我的头盔图表目录位于Jenkins:/home/ubuntu/workspace/road-dashboard/helm/road-dashboard。因此,最佳实践是仅更改helm lint command的目录并返回helm --upgrade install命令的现有工作目录,该命令应为/home/ubuntu/workspace/road-dashboard。以下是脚本,但不确定该脚本是否适合最佳实践。

        stage('Deploy to dev'){
        when{
            beforeAgent true
            expression{return env.GIT_BRANCH == "origin/develop"}
        }
        steps{
            dir('/home/ubuntu/workspace/road-dashboard/helm/road-dashboard'){
                sh "helm lint"
            }
            script{
                def namespace = "dev"
                def ENV = "dev"

                withCredentials([file(credentialsId: 'mbtkubeconfig', variable: 'config')]){

                    sh """
                        export KUBECONFIG=\${config}

1 个答案:

答案 0 :(得分:1)

您可以通过运行“头盔列表”命令来获得发布和图表名称。

头盔升级的语法是-

helm upgrade [RELEASE] [CHART] [flags]

所以就您而言

helm upgrade [RELEASE] [CHART] --install -f values.yaml .. ...

关于第二个问题-

我建议您根据需要保留在Jenkins作业工作区目录和switch目录中。 dir块中的任何步骤都将使用此目录作为当前目录,任何相对路径都将使用它作为基本路径。

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#dir-change-current-directory

此外,为皮棉和实际部署定义一个单独的阶段将是一个好主意;这样您就可以清楚地知道在失败的情况下哪个阶段失败了。