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_LXD_HOST
47 default: 'ci-host-amd64-1a.internal.efficios.com'
48 description: 'The address of the LXD cluster to publish to'
50 - string: &images_parameters_LXD_INSTANCE_PROFILE
51 name: 'LXD_INSTANCE_PROFILE'
52 default: 'ci-rootnode'
53 description: 'The LXD 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_LXD_HOST
86 <<: *images_parameters_LXD_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: 'LXC_CI_GIT_URL'
101 default: 'https://github.com/lxc/lxc-ci.git'
103 name: 'LXC_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: LXD_CLIENT_CERT
142 credential-id: '0debf23b-191b-4cdf-8a25-04e9a7092a67'
143 variable: LXD_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}'
169 dsl: !include-jinja2: pipelines/images/default.groovy
172 name: images_distrobuilder
173 defaults: imagebuilder
174 node: 'deb12-amd64-rootnode'
175 <<: *images_parameters_distrobuilder_defaults
176 <<: *images_properties_defaults
178 - shell: !include-raw-escape: pipelines/images/distrobuild.sh
181 name: images_imagebuilder
182 defaults: imagebuilder
183 node: 'deb12-amd64-rootnode'
184 <<: *images_parameters_imagebuilder_defaults
185 <<: *images_properties_defaults
187 - shell: !include-raw-escape: pipelines/images/imagebuild.sh
199 name: images_imagebuilder_OS
211 - 'images_imagebuilder_{OS}'
213 - bool: &images_parameters_SKIP_BASE_IMAGES
214 name: 'SKIP_BASE_IMAGES'
216 - bool: &images_parameters_SKIP_PROFILE_IMAGES
217 name: 'SKIP_PROFILE_IMAGES'
219 - choice: &images_parameters_ARCH_FILTER
230 - choice: &images_parameters_IMAGE_TYPE_FILTER
231 name: 'IMAGE_TYPE_FILTER'
236 - choice: &images_parameters_PROFILE_FILTER
237 name: 'PROFILE_FILTER'
243 name: 'RELEASE_FILTER'
251 <<: *images_parameters_GIT_URL
253 <<: *images_parameters_GIT_BRANCH
256 name: images_imagebuilder_rockylinux
266 <<: *images_parameters_SKIP_BASE_IMAGES
268 <<: *images_parameters_SKIP_PROFILE_IMAGES
270 <<: *images_parameters_ARCH_FILTER
275 <<: *images_parameters_IMAGE_TYPE_FILTER
277 <<: *images_parameters_PROFILE_FILTER
279 name: 'RELEASE_FILTER'
285 <<: *images_parameters_GIT_URL
287 <<: *images_parameters_GIT_BRANCH
289 - 'images_imagebuilder_{OS}'
292 name: images_imagebuilder_SLES
298 # 12.5 Doesn't currently work well with LXD either as a container or a VM
299 # * 12.5 has systemd 228, which doesn't support cgroups v2. Hosts _could_
300 # be configured to disable the unified cgroup hierarchy in order to have
301 # this version systemd work correctly.
302 # * Running as a QEMU VM, virtio_scsi isn't correctly able to bring the
303 # virtual disks online. The version of lxd currently deployed doesn't
304 # support the io.bus option to use virtio-blk instead.
310 <<: *images_parameters_SKIP_BASE_IMAGES
313 <<: *images_parameters_SKIP_PROFILE_IMAGES
315 <<: *images_parameters_ARCH_FILTER
320 <<: *images_parameters_IMAGE_TYPE_FILTER
322 <<: *images_parameters_PROFILE_FILTER
324 name: 'RELEASE_FILTER'
330 <<: *images_parameters_GIT_URL
332 <<: *images_parameters_GIT_BRANCH
334 - 'images_imagebuilder_{OS}'
337 name: images_imagebuilder_ubuntu
348 <<: *images_parameters_SKIP_BASE_IMAGES
350 <<: *images_parameters_SKIP_PROFILE_IMAGES
352 <<: *images_parameters_ARCH_FILTER
357 <<: *images_parameters_IMAGE_TYPE_FILTER
359 <<: *images_parameters_PROFILE_FILTER
361 name: 'RELEASE_FILTER'
368 <<: *images_parameters_GIT_URL
370 <<: *images_parameters_GIT_BRANCH
372 - 'images_imagebuilder_{OS}'
375 name: images_basejobs
377 - 'images_imagebuilder'
378 - 'images_distrobuilder'
380 name: images_imagebuilder_views