3 - _images_parameters_default: &images_parameters_imagebuilder_defaults
4 name: 'images_parameters_imagebuilder_defaults'
6 - string: &images_parameters_OS
11 - string: &images_parameters_RELEASE
13 description: 'OS release number or name'
16 - choice: &images_parameters_ARCH
18 description: 'Target architecture'
27 - string: &images_parameters_VARIANT
30 description: 'The base image variant to build off of'
32 - choice: &images_parameters_IMAGE_TYPE
37 description: 'The type of image to create'
43 description: 'The ansible group to apply to the image'
45 - string: &images_parameters_INCUS_HOST
47 default: 'ci-host-amd64-1a.internal.efficios.com'
48 description: 'The address of the incus cluster to publish to'
50 - string: &images_parameters_INCUS_INSTANCE_PROFILE
51 name: 'INCUS_INSTANCE_PROFILE'
52 default: 'ci-rootnode'
53 description: 'The Incus instance profile to use for temporary instances when building images'
55 - string: &images_parameters_GIT_URL
57 default: 'https://github.com/lttng/lttng-ci.git'
58 description: 'The source of the repo containing the ansible playbooks'
60 - string: &images_parameters_GIT_BRANCH
63 description: 'The branch or commit of the ansible playbook repo to checkout'
65 - bool: &images_parameters_TEST
68 description: 'Enable to launch a container of the published image as a test'
70 - _images_parameters_default: &images_parameters_distrobuilder_defaults
71 name: 'images_parameters_distrobuilder_defaults'
74 <<: *images_parameters_OS
76 <<: *images_parameters_RELEASE
78 <<: *images_parameters_ARCH
80 <<: *images_parameters_VARIANT
82 <<: *images_parameters_IMAGE_TYPE
84 <<: *images_parameters_INCUS_HOST
86 <<: *images_parameters_INCUS_INSTANCE_PROFILE
88 <<: *images_parameters_GIT_URL
90 <<: *images_parameters_GIT_BRANCH
92 <<: *images_parameters_TEST
94 name: 'DISTROBUILDER_GIT_URL'
95 default: 'https://github.com/lxc/distrobuilder.git'
97 name: 'DISTROBUILDER_GIT_BRANCH'
100 name: 'INCUS_CI_GIT_URL'
101 default: 'https://github.com/lxc/lxc-ci.git'
103 name: 'INCUS_CI_GIT_BRANCH'
109 - _images_properties_defaults: &images_properties_defaults
110 name: 'images_properties_defaults'
124 <p>Job is managed by Jenkins Job Builder</p>
125 project-type: freestyle
132 - credentials-binding:
133 - ssh-user-private-key:
134 credential-id: 'f3c907b6-7485-49e1-afe1-4df24fac4ca1'
135 key-file-variable: SSH_PRIVATE_KEY
136 username-variable: SSH_USERNAME
137 passphrase-variable: SSH_PASSWORD
139 credential-id: 'f3f08275-59ef-42ff-9de5-9beafc7435b8'
140 variable: INCUS_CLIENT_CERT
142 credential-id: '0debf23b-191b-4cdf-8a25-04e9a7092a67'
143 variable: INCUS_CLIENT_KEY
145 credential-id: SLES_REGISTRATION_CODE_amd64
146 variable: SLES_REGISTRATION_CODE_amd64
147 # When it needs to match ansible_architecture
149 credential-id: SLES_REGISTRATION_CODE_amd64
150 variable: SLES_REGISTRATION_CODE_x86_64
155 name: images_imagebuilder_{OS}
156 defaults: imagebuilder
158 This pipeline starts distrobuilder and imagebuilder jobs for {OS}
160 <p>Job is managed by Jenkins Job Builder</p>
161 project-type: pipeline
162 parameters: '{obj:parameters}'
170 dsl: !include-jinja2: pipelines/images/default.groovy
173 name: images_distrobuilder
174 defaults: imagebuilder
175 node: 'deb12-amd64-rootnode'
176 <<: *images_parameters_distrobuilder_defaults
177 <<: *images_properties_defaults
179 - shell: !include-raw-escape: pipelines/images/distrobuild.sh
182 name: images_imagebuilder
183 defaults: imagebuilder
184 node: 'deb12-amd64-rootnode'
185 <<: *images_parameters_imagebuilder_defaults
186 <<: *images_properties_defaults
188 - shell: !include-raw-escape: pipelines/images/imagebuild.sh
200 name: images_imagebuilder_OS
214 - 'images_imagebuilder_{OS}'
216 - bool: &images_parameters_SKIP_BASE_IMAGES
217 name: 'SKIP_BASE_IMAGES'
219 - bool: &images_parameters_SKIP_PROFILE_IMAGES
220 name: 'SKIP_PROFILE_IMAGES'
222 - choice: &images_parameters_ARCH_FILTER
233 - choice: &images_parameters_IMAGE_TYPE_FILTER
234 name: 'IMAGE_TYPE_FILTER'
239 - choice: &images_parameters_PROFILE_FILTER
240 name: 'PROFILE_FILTER'
246 name: 'RELEASE_FILTER'
254 <<: *images_parameters_GIT_URL
256 <<: *images_parameters_GIT_BRANCH
259 name: images_imagebuilder_rockylinux
269 <<: *images_parameters_SKIP_BASE_IMAGES
271 <<: *images_parameters_SKIP_PROFILE_IMAGES
273 <<: *images_parameters_ARCH_FILTER
278 <<: *images_parameters_IMAGE_TYPE_FILTER
280 <<: *images_parameters_PROFILE_FILTER
282 name: 'RELEASE_FILTER'
288 <<: *images_parameters_GIT_URL
290 <<: *images_parameters_GIT_BRANCH
292 - 'images_imagebuilder_{OS}'
295 name: images_imagebuilder_SLES
301 # 12.5 Doesn't currently work well with Incus either as a container or a VM
302 # * 12.5 has systemd 228, which doesn't support cgroups v2. Hosts _could_
303 # be configured to disable the unified cgroup hierarchy in order to have
304 # this version systemd work correctly.
305 # * Running as a QEMU VM, virtio_scsi isn't correctly able to bring the
306 # virtual disks online. The version of incus currently deployed doesn't
307 # support the io.bus option to use virtio-blk instead.
313 <<: *images_parameters_SKIP_BASE_IMAGES
316 <<: *images_parameters_SKIP_PROFILE_IMAGES
318 <<: *images_parameters_ARCH_FILTER
323 <<: *images_parameters_IMAGE_TYPE_FILTER
325 <<: *images_parameters_PROFILE_FILTER
327 name: 'RELEASE_FILTER'
333 <<: *images_parameters_GIT_URL
335 <<: *images_parameters_GIT_BRANCH
337 - 'images_imagebuilder_{OS}'
340 name: images_imagebuilder_ubuntu
351 <<: *images_parameters_SKIP_BASE_IMAGES
353 <<: *images_parameters_SKIP_PROFILE_IMAGES
355 <<: *images_parameters_ARCH_FILTER
360 <<: *images_parameters_IMAGE_TYPE_FILTER
362 <<: *images_parameters_PROFILE_FILTER
364 name: 'RELEASE_FILTER'
371 <<: *images_parameters_GIT_URL
373 <<: *images_parameters_GIT_BRANCH
375 - 'images_imagebuilder_{OS}'
378 name: images_basejobs
380 - 'images_imagebuilder'
381 - 'images_distrobuilder'
383 name: images_imagebuilder_views