cant use podtemplate in a function

This commit is contained in:
Hyatt 2022-01-11 17:33:36 -06:00
parent 4ea9e666e3
commit 30b78e6bde
Signed by: nhyatt
GPG Key ID: C50D0BBB5BC40BEA

View File

@ -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}"
"""
}
}
}