我正在使用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}
答案 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
此外,为皮棉和实际部署定义一个单独的阶段将是一个好主意;这样您就可以清楚地知道在失败的情况下哪个阶段失败了。