Укажите имя Helm Chart для использования команды обновления установки - PullRequest
0 голосов
/ 19 января 2020

Я использую 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 Ответ

1 голос
/ 19 января 2020

Вы можете получить название выпуска и диаграммы, запустив команду «helm list», если она уже развернута.

Синтаксис для обновления helm: -

helm upgrade [RELEASE] [CHART] [flags]

, поэтому в вашем case

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

По второму вопросу -

Я бы посоветовал вам остаться в каталоге рабочих мест Jenkins и в каталогах коммутаторов в соответствии с вашими потребностями. Любой шаг внутри блока dir будет использовать этот каталог как текущий, а любой относительный путь будет использовать его как базовый путь.

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

Кроме того, было бы неплохо определить отдельный этап для lint и фактического развертывания; таким образом, вы получите четкое указание, на каком этапе произошел сбой в случае сбоев.

...