commit c0f3e50d840b49524f76fcc888c2107509b8acfc
parent f66bd3a8433905dc5175b272309346384ff95cb4
Author: Andreas Gruhler <agruhl@gmx.ch>
Date: Wed, 25 Feb 2026 21:08:28 +0100
feat(jenkins): arm64 and amd64 runners
Diffstat:
2 files changed, 75 insertions(+), 3 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
@@ -3,7 +3,8 @@
//def buildahbud = new BuildahBud(this)
//def buildahpush = new BuildahPush(this)
-node('podman'){
+// only build for arm64
+node('podman&&arm64'){
checkout scm
gitleaks()
diff --git a/hcl/default/jenkins/templates/jenkins.yaml.tmpl b/hcl/default/jenkins/templates/jenkins.yaml.tmpl
@@ -94,6 +94,77 @@ jenkins:
"Datacenters": [
"dc1"
],
+ "Constraints": [
+ {
+ "LTarget": "${attr.cpu.arch}",
+ "Operand": "=",
+ "RTarget": "arm64"
+ }
+ ],
+ "TaskGroups": [
+ {
+ "Name": "jenkins-podman-worker-taskgroup",
+ "Count": 1,
+ "RestartPolicy": {
+ "Attempts": 0,
+ "Interval": 10000000000,
+ "Mode": "fail",
+ "Delay": 1000000000
+ },
+ "Tasks": [
+ {
+ "Name": "jenkins-podman-worker",
+ "Driver": "podman",
+ "User": "jenkins",
+ "Config": {
+ "volumes": [
+ "/run/user/1312/podman/podman.sock:/home/jenkins/agent/podman.sock",
+ "/etc/containers/registries.conf:/etc/containers/registries.conf",
+ "/home/jenkins/workspace:/home/jenkins/workspace"
+ ],
+ "force_pull": true,
+ "image": "127.0.0.1:5000/jenkins-inbound-agent:${REMOTING_VERSION}"
+ },
+ "Env": {
+ "REMOTING_OPTS": "-url http://{{ env "NOMAD_ADDR_jenkins" }} -name %WORKER_NAME% -secret %WORKER_SECRET% -tunnel {{ env "NOMAD_ADDR_jnlp" }}",
+ "DOCKER_HOST": "unix:///home/jenkins/agent/podman.sock"
+ },
+ "Resources": {
+ "CPU": 500,
+ "MemoryMB": 512,
+ "MemoryMaxMB": 1024
+ }
+ }
+ ],
+ "EphemeralDisk": {
+ "SizeMB": 300
+ }
+ }
+ ]
+ }
+ }
+ labels: "nomad podman arm64" # use the 'podman' label in the Jenkins pipeline spec
+ numExecutors: 1
+ prefix: "jenkins-podman-arm64"
+ reusable: true
+ - idleTerminationInMinutes: 10
+ jobTemplate: |-
+ {
+ "Job": {
+ "Region": "global",
+ "ID": "%WORKER_NAME%",
+ "Namespace": "default",
+ "Type": "batch",
+ "Datacenters": [
+ "dc1"
+ ],
+ "Constraints": [
+ {
+ "LTarget": "${attr.cpu.arch}",
+ "Operand": "=",
+ "RTarget": "amd64"
+ }
+ ],
"TaskGroups": [
{
"Name": "jenkins-podman-worker-taskgroup",
@@ -136,9 +207,9 @@ jenkins:
]
}
}
- labels: "nomad podman" # use the 'podman' label in the Jenkins pipeline spec
+ labels: "nomad podman amd64" # use the 'podman' label in the Jenkins pipeline spec
numExecutors: 1
- prefix: "jenkins-podman"
+ prefix: "jenkins-podman-amd64"
reusable: true
- idleTerminationInMinutes: 10
jobTemplate: |-