|
|
|
def HELM_DOWNLOAD_URL = "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz"
|
|
|
|
def WS_DIST = ".dist"
|
|
|
|
def WS_BIN = ".bin"
|
|
|
|
def WS_SCM = ".scm"
|
|
|
|
|
|
|
|
pipeline {
|
|
|
|
agent { label "kube0" }
|
|
|
|
|
|
|
|
parameters {
|
|
|
|
string(
|
|
|
|
name: "VERSION",
|
|
|
|
defaultValue: "main",
|
|
|
|
description: "version to release",
|
|
|
|
)
|
|
|
|
string(
|
|
|
|
name: "RELEASE_NAME",
|
|
|
|
defaultValue: "nikita-tokarch-uk",
|
|
|
|
description: "release name",
|
|
|
|
)
|
|
|
|
string(
|
|
|
|
name: "RELEASE_NAMESPACE",
|
|
|
|
defaultValue: "nikita-tokarch-uk",
|
|
|
|
description: "release namespace",
|
|
|
|
)
|
|
|
|
password(
|
|
|
|
name: "CREDENTIALS_ID",
|
|
|
|
defaultValue: "nikita-tokarch-uk-config",
|
|
|
|
description: "release configuration",
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
stages {
|
|
|
|
stage("Download Helm") {
|
|
|
|
when {
|
|
|
|
not {
|
|
|
|
expression { return fileExists("${WS_BIN}/linux-amd64/helm") }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
steps {
|
|
|
|
dir("${WS_DIST}") {
|
|
|
|
sh """
|
|
|
|
curl -fsSL -O "${HELM_DOWNLOAD_URL}";
|
|
|
|
mkdir -p "${env.WORKSPACE}/${WS_BIN}";
|
|
|
|
tar xfz * -C "${env.WORKSPACE}/${WS_BIN}";
|
|
|
|
ls -lah "${env.WORKSPACE}/${WS_BIN}/linux-amd64/helm";
|
|
|
|
"""
|
|
|
|
deleteDir()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stage("Checkout") {
|
|
|
|
steps {
|
|
|
|
dir("${WS_SCM}") {
|
|
|
|
deleteDir()
|
|
|
|
checkout scm
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stage("Make chart package") {
|
|
|
|
steps {
|
|
|
|
dir("${WS_SCM}/chart.tgz") {
|
|
|
|
sh """
|
|
|
|
"${env.WORKSPACE}/${WS_BIN}/linux-amd64/helm" package ../chart \
|
|
|
|
--app-version ${params.VERSION} \
|
|
|
|
;
|
|
|
|
"""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
stage("Release packaged chart") {
|
|
|
|
steps {
|
|
|
|
withCredentials([file(credentialsId: "${params.CREDENTIALS_ID}", variable: "RELEASE_CONFIG")]) {
|
|
|
|
dir("${WS_SCM}/chart.tgz") {
|
|
|
|
sh """
|
|
|
|
"${env.WORKSPACE}/${WS_BIN}/linux-amd64/helm" upgrade ${params.RELEASE_NAME} * \
|
|
|
|
--namespace ${params.RELEASE_NAMESPACE} \
|
|
|
|
--create-namespace \
|
|
|
|
--dependency-update \
|
|
|
|
--reset-values \
|
|
|
|
-f "\$RELEASE_CONFIG" \
|
|
|
|
;
|
|
|
|
"""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|