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
212 - 'images_imagebuilder_{OS}'
214 - bool: &images_parameters_SKIP_BASE_IMAGES
215 name: 'SKIP_BASE_IMAGES'
217 - bool: &images_parameters_SKIP_PROFILE_IMAGES
218 name: 'SKIP_PROFILE_IMAGES'
220 - choice: &images_parameters_ARCH_FILTER
231 - choice: &images_parameters_IMAGE_TYPE_FILTER
232 name: 'IMAGE_TYPE_FILTER'
237 - choice: &images_parameters_PROFILE_FILTER
238 name: 'PROFILE_FILTER'
244 name: 'RELEASE_FILTER'
252 <<: *images_parameters_GIT_URL
254 <<: *images_parameters_GIT_BRANCH
257 name: images_imagebuilder_rockylinux
267 <<: *images_parameters_SKIP_BASE_IMAGES
269 <<: *images_parameters_SKIP_PROFILE_IMAGES
271 <<: *images_parameters_ARCH_FILTER
276 <<: *images_parameters_IMAGE_TYPE_FILTER
278 <<: *images_parameters_PROFILE_FILTER
280 name: 'RELEASE_FILTER'
286 <<: *images_parameters_GIT_URL
288 <<: *images_parameters_GIT_BRANCH
290 - 'images_imagebuilder_{OS}'
293 name: images_imagebuilder_SLES
299 # 12.5 Doesn't currently work well with Incus either as a container or a VM
300 # * 12.5 has systemd 228, which doesn't support cgroups v2. Hosts _could_
301 # be configured to disable the unified cgroup hierarchy in order to have
302 # this version systemd work correctly.
303 # * Running as a QEMU VM, virtio_scsi isn't correctly able to bring the
304 # virtual disks online. The version of incus currently deployed doesn't
305 # support the io.bus option to use virtio-blk instead.
311 <<: *images_parameters_SKIP_BASE_IMAGES
314 <<: *images_parameters_SKIP_PROFILE_IMAGES
316 <<: *images_parameters_ARCH_FILTER
321 <<: *images_parameters_IMAGE_TYPE_FILTER
323 <<: *images_parameters_PROFILE_FILTER
325 name: 'RELEASE_FILTER'
331 <<: *images_parameters_GIT_URL
333 <<: *images_parameters_GIT_BRANCH
335 - 'images_imagebuilder_{OS}'
338 name: images_imagebuilder_ubuntu
349 <<: *images_parameters_SKIP_BASE_IMAGES
351 <<: *images_parameters_SKIP_PROFILE_IMAGES
353 <<: *images_parameters_ARCH_FILTER
358 <<: *images_parameters_IMAGE_TYPE_FILTER
360 <<: *images_parameters_PROFILE_FILTER
362 name: 'RELEASE_FILTER'
369 <<: *images_parameters_GIT_URL
371 <<: *images_parameters_GIT_BRANCH
373 - 'images_imagebuilder_{OS}'
376 name: images_basejobs
378 - 'images_imagebuilder'
379 - 'images_distrobuilder'
381 name: images_imagebuilder_views