From e2080db33d4d61c867b0cf8041faf0ba021f3f73 Mon Sep 17 00:00:00 2001 From: The_Spider Date: Mon, 7 Jun 2021 20:19:25 +0000 Subject: [PATCH] Add 'build-ubi.jenkins' Signed-off-by: The_Spider --- build-ubi.jenkins | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 build-ubi.jenkins diff --git a/build-ubi.jenkins b/build-ubi.jenkins new file mode 100644 index 0000000..b9c4b0b --- /dev/null +++ b/build-ubi.jenkins @@ -0,0 +1,83 @@ +def label = "jenkins-${UUID.randomUUID().toString()}" + +def repository = "registry.cluster.test-chamber-13.lan" +def kanikoImage = "${repository}/library/kaniko:latest" +def repositoryCreds = "harbor-repository-creds" + +def ubiOS = ["8"] +def ubiImages = ["ubi-minimal", "ubi"] + +podTemplate( + label: label, + name: "pipeline-worker", + yaml: """--- +apiVersion: v1 +kind: Pod +metadata: + name: pipeline-worker +spec: + containers: + - name: kaniko + imagePullPolicy: Always + image: ${kanikoImage} + tty: true + command: + - /busybox/cat +""") { + node (label) { + def workspace = pwd() + + stage ("Prepare Kaniko") { + container ("kaniko") { + withCredentials([usernameColonPassword( + credentialsId: repositoryCreds, + variable: "dCreds", + )]) { + def dockerJSON = """{ + "auths": { + "${repository}": { + "auth": "${dcreds.bytes.encodeBase64().toString()}" + } + } + }""" + sh """ + set +x + echo '${dockerJSON}' > /kaniko/.docker/config.json + """ + } + } + } + + for (rhOS in ubiOS) { + for (image in ubiImages) { + container("kaniko") { + stage ("Build " + image + ":" + rhOS) { + def DF = """FROM registry.access.redhat.com//ubi${rhOS}/${image}:latest + +RUN printf '%s\\n' "-----BEGIN CERTIFICATE-----" \\ + "MIICLTCCAbOgAwIBAgIDAYagMAoGCCqGSM49BAMEME0xCzAJBgNVBAYTAlVTMScw" \\ + "JQYDVQQKDB5UZXN0IENoYW1iZXIgMTMgVHJ1c3QgU2VydmljZXMxFTATBgNVBAMM" \\ + "DFRDMTMgUm9vdCBSMTAgFw0xOTAxMDEwMDAwMDBaGA8yMDUwMDEwMTAwMDAwMFow" \\ + "TTELMAkGA1UEBhMCVVMxJzAlBgNVBAoMHlRlc3QgQ2hhbWJlciAxMyBUcnVzdCBT" \\ + "ZXJ2aWNlczEVMBMGA1UEAwwMVEMxMyBSb290IFIxMHYwEAYHKoZIzj0CAQYFK4EE" \\ + "ACIDYgAE8+/J1ECc0VHxTtGXFLnHJ3NGZ2SW38pp9wI58L5EQbHRLiezYuvkUbI/" \\ + "XGJjLnFdpgjo7W1FFlyhx5ITlCstUX5Sn9bLZiA0+mE0n6b8VwhXwkHlnIeRo7od" \\ + "Zu/OfSFjo2MwYTAdBgNVHQ4EFgQUrGqUJhyRp93wXF645VNtYatRk/AwHwYDVR0j" \\ + "BBgwFoAUrGqUJhyRp93wXF645VNtYatRk/AwDwYDVR0TAQH/BAUwAwEB/zAOBgNV" \\ + "HQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwQDaAAwZQIxAJdgskimDJkf/MGVRrKotmNC" \\ + "xdH/UVQfQppjIR9FAiGeFDr47thclYrzIL6yCkV7nwIwYjf3MbOm/yWblzqe3Uyw" \\ + "UOemMEg3PjcKNsN65W2WVon5HIZx2XVfGRPjf5ZTVWzZ" \\ + "-----END CERTIFICATE-----" > /etc/pki/ca-trust/source/anchors/test-chamber-13.lan.root.crt && \\ + update-ca-trust extract && \\ + microdnf update -y && \\ + microdnf clean all +""" + writeFile(file: workspace + '/Dockerfile', text: DF) + + sh "/kaniko/executor --context \"${workspace}\" -f \"${workspace}/Dockerfile\" --destination \"${repository}/library/${image}:${rhOS}\"" + } + } + } + } + } +} \ No newline at end of file