diff --git a/vars/functions.groovy b/vars/functions.groovy index 29077e9..b315d0b 100644 --- a/vars/functions.groovy +++ b/vars/functions.groovy @@ -1,96 +1,71 @@ #!groovy -def deletePod( - String kubeAuth, - String kubeURL, - String namespace, - String selector -){ - def label = "kubernetes-${UUID.randomUUID().toString()}" - def ws = pwd() - - podTemplate( - label: label, - name: "pipeline-worker", - yaml: """ +def podYaml (Map config) { + def output = """ --- apiVersion: v1 kind: Pod metadata: - name: pipeline-worker + name: ${config.templateName} spec: containers: - - name: alpine +""" + if (config.kaniko == true) { + output += """ + - name: kaniko imagePullPolicy: Always - image: ${repository}/library/alpine:latest + image: ${config.repo}/library/kaniko:latest tty: true command: - /busybox/sh -""", - ){ - node(label) { - container("alpine") { - sh """ - apk add --no-cache curl - curl -L --silent https://storage.googleapis.com/kubernetes-release/release/\$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl - chmod +x /usr/local/bin/kubectl - """ +""" + } + if (config.alpine == true) { + output += """ + - name: alpine + imagePullPolicy: Always + image: ${config.repo}/library/alpine:latest + tty: true +""" + } - withKubeConfig([ - credentialsId: kubeAuth, - serverUrl: kubeURL, - namespace: namespace, - ]) { - sh "for i in \$(kubectl get pods --selector ${selector} -o name); do kubectl delete \${i}; done" - } - } + return output +} + +def deletePod (Mab config) { + def ws = pwd() + container ("alpine") { + sh """ + apk add --no-cache curl + curl -L --silent https://storage.googleapis.com/kubernetes-release/release/\$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl + chmod +x /usr/local/bin/kubectl + """ + + withKubeConfig ([ + credentialsId: config.kubeAuth, + serverUrl: config.kubeURL, + namespace: config.namespace, + ]) { + sh "for i in \$(kubectl get pods --selector ${config.selector} -o name); do kubectl delete \${i}; done" } } } -def buildContainer(String repository, - String imageDest, - String dockerFile, - String repoCreds) { - - def label = "kaniko-${UUID.randomUUID().toString()}" +def buildContainer (Map config) { def ws = pwd() - - podTemplate( - label: label, - name: "pipeline-worker", - yaml: """ ---- -apiVersion: v1 -kind: Pod -metadata: - name: pipeline-worker -spec: - containers: - - name: kaniko - imagePullPolicy: Always - image: ${repository}/library/kaniko:latest - tty: true - command: - - /busybox/sh -""", - ){ - node(label) { - container("kaniko") { - writeFile(file: ws + "/Dockerfile", text: DF) - withCredentials([usernameColonPassword( - credentialsId: repoCreds, - variable: "dCreds", - )]) { - sh "set +x; printf '{\"auths\":{\"%s\":{\"auth\": \"%s\"}}}' \"${repository}\" \"${dcreds.bytes.encodeBase64().toString()}\" > /kaniko/.docker/config.json" - } - sh """ - /kaniko/executor \\ - --context "${ws}" \\ - -f "${ws}/Dockerfile" \\ - --destination "${repository}/${imageDest} - """ - } + container("kaniko") { + writeFile (file: ws + "/Dockerfile", text: config.dockerFile) + withCredentials([usernameColonPassword( + credentialsId: config.repoCreds, + variable: "dCreds", + )]) { + sh "set +x; printf '{\"auths\":{\"%s\":{\"auth\": \"%s\"}}}' \"${config.repository}\" \"${dcreds.bytes.encodeBase64().toString()}\" > /kaniko/.docker/config.json" } + sh """ + /kaniko/executor \\ + --context "${ws}" \\ + -f "${ws}/Dockerfile" \\ + --destination "${config.imageDest}" + """ } -} \ No newline at end of file +}