diff --git a/vars/buildContainerImage2.groovy b/vars/buildContainerImage2.groovy index 891c1ff..478d917 100644 --- a/vars/buildContainerImage2.groovy +++ b/vars/buildContainerImage2.groovy @@ -9,6 +9,7 @@ def call(args) { def schedule = args?.schedule def defaultBranch = args?.defaultBranch def pi = args?.pi + def resources = args?.resources properties([ pipelineTriggers([cron(schedule ?: 'H H H * *')]) @@ -32,9 +33,6 @@ def call(args) { if (defaultBranch == null) { defaultBranch = 'main' } - if (pi == null) { - pi = true - } def repo = "${registry}/${project}/${name}" def full_name = "${repo}:${tag}" @@ -48,14 +46,14 @@ def call(args) { full_name: full_name, registry: registry, arch: arch, - pi: pi, + resources: resources, ) } } } parallel stages - runInPod(pi: false) { + runInPod { container('buildah') { withBuildahCreds(registry) { if (archlist.size() > 1) { @@ -96,9 +94,9 @@ def buildStage(args) { def full_name = args.full_name def registry = args.registry def arch = args.arch - def pi = args.pi + def resources = args?.resources - runInPod(arch: arch, pi: pi) { + runInPod(arch: arch, resources: resources) { checkout scm container('buildah') { @@ -111,23 +109,24 @@ def buildStage(args) { } } +def runInPod(block) { + runInPod(null, block) +} + def runInPod(args, block) { def arch = args?.arch - def pi = args?.pi - if (pi == null) { - pi = true - } + def resources = args?.resources def podTemplateYaml = libraryResource('podTemplate2.yaml') - if (pi) { + if (resources) { def tmpl = readYaml(text: podTemplateYaml) - def tolerations = tmpl['spec']['tolerations'] ?: [] - tolerations.push([ - key: 'du5t1n.me/machine', - value: 'raspberrypi', - effect: 'NoExecute', - ]) - tmpl['spec']['tolerations'] = tolerations + tmpl.spec.containers.each { c -> + c.resources = c.resources ?: [:] + c.resources.putAll([ + requests: (c.resources.requests ?: [:]) + resources, + limits: (c.resources.limits ?: [:]) + resources, + ]) + } podTemplateYaml = writeYaml(data: tmpl, returnText: true) } podTemplate(