@Library('shared-lib') _ import tech.avroid.kube.PodTemplates import tech.avroid.scm.Git import tech.avroid.jenkins.Notifications import tech.avroid.jenkins.Jenkins properties([ buildDiscarder(logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '10', daysToKeepStr: '', numToKeepStr: '10')), disableConcurrentBuilds() ]) String repoPath = 'Apps-Backend/helm-values.git' String branch = 'master' String valuesPath = 'avroid.local/api-gateway/openresty' String namespace = 'api-gateway' String helmChart = 'openresty' String helmRepoPath = 'avroid/openresty' String helmRepo = "${env.JENKINS_NEXUS_URL}/repository/devops-helm-release" Map configuration = [ vaultUrl: env.JENKINS_VAULT_URL, vaultCredentialId: 'vault-role', engineVersion: 2 ] List dockerCreds = [ [path: 'team-devops/services/ci-cd/Jenkins/jenkins.avroid.tech', engineVersion: 2, secretValues: [ [vaultKey: 'k8s_jenkins_deploy_token'], ] ] ] Git git = new Git(this, env.JENKINS_GIT_CREDENTIALS_SSH) PodTemplates slaveTemplates = new PodTemplates(this, env.JENKINS_DOCKER_REGISTRY, ["${env.JENKINS_K8S_HARBOR_SECRET}"]) slaveTemplates.jnlp { slaveTemplates.helm { try { node(POD_LABEL){ withVault([configuration: configuration, vaultSecrets: dockerCreds]) { stage('get repo with values'){ gitVars = git.clone([urlRepo: "${env.JENKINS_GIT_REPOSITORY_SSH_URL}/${repoPath}", branch: branch]) } container('helm'){ stage('deploy'){ dir(valuesPath){ sh """#!/bin/sh helm repo add avroid ${helmRepo} helm -n ${namespace} upgrade -f values.yaml \ --install ${helmChart} ${helmRepoPath} """ } } } } } } catch(err) { errorMessage = err.getMessage() println 'ERROR: ' + errorMessage currentBuild.result = 'FAILURE' String currentBuildUser = Jenkins.GetCurrentBuildUser(script: this) String emailSubject = "${currentBuild.currentResult}. " + "Pipeline task: ${currentBuild.fullDisplayName}" Notifications.email( script: this, subject: emailSubject, errorString: errorMessage, recipientProviders: [], to: "${currentBuildUser}@avroid.team" ) } } }