nomad

HCL and Docker files for Nomad deployments
git clone https://git.in0rdr.ch/nomad.git
Log | Files | Refs | Pull requests |Archive | README

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:
MJenkinsfile | 3++-
Mhcl/default/jenkins/templates/jenkins.yaml.tmpl | 75+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
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: |-