首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Helm Uninstall以删除版本(如果存在

Helm Uninstall以删除版本(如果存在
EN

Stack Overflow用户
提问于 2020-01-20 02:39:21
回答 1查看 3.2K关注 0票数 3

我使用的是Helm3,每个环境都有3个不同的values.yaml。如果我的初始版本最终处于失败状态,以避免在运行helm upgrade --install myapp-dev时出现错误,我希望删除相关环境中存在的版本。

因此,根据下面的脚本,如果deploy stage运行成功,那么它将卸载下一阶段的发行版。根据上一阶段的“万一失败”,最好的做法是什么?我应该使用try/catch块还是post部分?同时,我到底应该在什么情况下使用这个清理?

代码语言:javascript
复制
        stage('Deploy to staging'){
          when{
            beforeAgent true
            expression{return env.GIT_BRANCH == "origin/test"}
        }
        steps{
            script{
                def namespace = "test"
                def ENV = "test"
                sh " helm upgrade myapp-test my-chart --install -f values.${ENV}.yaml --namespace ${namespace}"          
            }
        }
    }

    stage('Cleanup Stage'){
      when{
        beforeAgent true
        expression{return env.GIT_BRANCH == "origin/test"}
    }
        steps{
            script{
                //Uninstall a release from the cluster
                sh "helm uninstall myapp-test"

                //See currently deployed releases
                sh "helm list -all"
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2020-01-20 16:09:12

在Jenkinsfile中,你实际上应该在post部分做所有的清理工作,无论发生什么错误都可以执行。例如,在您的示例中:

代码语言:javascript
复制
stages {
        stage('Deploy to staging'){
          when{
            beforeAgent true
            expression{return env.GIT_BRANCH == "origin/test"}
          }
          steps{
            script{
                def namespace = "test"
                def ENV = "test"
                sh " helm upgrade myapp-test my-chart --install -f values.${ENV}.yaml -- 
                 namespace ${namespace}"          
            }
          }
      }
}
post { 
  always { 
    helm uninstall myapp-test
  }
}

这将保证您的环境保持清洁,无论在两者之间的故障。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59813197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档