| 1 | --- |
| 2 | # The search domain for instance names |
| 3 | search_domain: internal.efficios.com |
| 4 | # Which DNS server to use for checks + updates |
| 5 | name_server: smb-adc02.internal.efficios.com |
| 6 | # The host to use for delegating lxd commands |
| 7 | lxd_host: ci-host-amd64-1a.internal.efficios.com |
| 8 | # Default host to create libvirt VMs on if not specified |
| 9 | libvirt_host: ci-host-amd64-1b.internal.efficios.com |
| 10 | |
| 11 | # @see https://docs.ansible.com/ansible/latest/collections/community/general/lxd_container_module.html#ansible-collections-community-general-lxd-container-module |
| 12 | # @example a container instance with the default image (deb12 amd64) |
| 13 | # - meta: |
| 14 | # address: 192.168.1.2 |
| 15 | # lxd: |
| 16 | # name: ci-node-example |
| 17 | # |
| 18 | # The meta.address is used to fill in the default lxd.config['user.network-config'] value |
| 19 | # templated from the cloud_init_netconf.j2 template. Note that this does not change the |
| 20 | # configuration inside an already deployed instances. The merged value of lxd is passed |
| 21 | # as arguments to community.general.lxd_container task. |
| 22 | # |
| 23 | # When a container/vm is created, the target within the cluster is |
| 24 | # determined by the allocation strategy configured for the LXD cluster. The |
| 25 | # default is to allocate the instance to the cluster member with the fewest |
| 26 | # instances (resource usage not considered). |
| 27 | # |
| 28 | # Once the instances are provisied meta.address and lxd.name are used to update the |
| 29 | # DNS records in Samba. @see scripts/update_dns_entry.py. |
| 30 | # |
| 31 | # @example a container created on a specific cluster member |
| 32 | # - meta: |
| 33 | # address: 192.168.1.2 |
| 34 | # lxd: |
| 35 | # name: ci-node-example |
| 36 | # # This only affects creation, the container is not moved if it |
| 37 | # # already exists in the cluster. |
| 38 | # target: ci-host-amd64-1a |
| 39 | # |
| 40 | # @example a virtual machine with the default image |
| 41 | # - meta: |
| 42 | # address: 192.168.1.2 |
| 43 | # lxd: |
| 44 | # name: ci-rootnode-example |
| 45 | # type: virtual-machine |
| 46 | # profiles: |
| 47 | # - ci-rootnode |
| 48 | # |
| 49 | # @example a VM with an ISO attached as a cdrom |
| 50 | # - meta: |
| 51 | # address: 192.168.1.2 |
| 52 | # lxd: |
| 53 | # name: ci-rootnode-example |
| 54 | # type: virtual-machine |
| 55 | # profiles: |
| 56 | # - ci-rootnode |
| 57 | # # If there are configuration errors, sometimes the state |
| 58 | # # will need to be set to stopped to apply any differences. |
| 59 | # # Some values, eg. raw.apparmor, cannot be changed while the |
| 60 | # # VM or container is online. Note that the image needs to |
| 61 | # # be readable as the user 'nobody'. |
| 62 | # # state: stopped |
| 63 | # config: |
| 64 | # raw.qemu: '-drive file=/path/to/image.iso,media=cdrom' |
| 65 | # raw.apparmor: '/path/to/image.iso rk,' |
| 66 | # |
| 67 | # Console access, assuming the remote 'ci' is connected to the LXD cluster: |
| 68 | # lxc console ci:ci-rootnode-example --type vga |
| 69 | # Text console (may not have output depending on boot settings) |
| 70 | # lxc console ci:ci-rootnode-example |
| 71 | # |
| 72 | # @example Define a VM using libvirt |
| 73 | # - vm: |
| 74 | # # host: 'ci-host-example' |
| 75 | # name: 'ci-rootnode-example' |
| 76 | # disk: '/path/to/disk' |
| 77 | # |
| 78 | # @note libvirt VMs are created using the task roles/libvirt/vm.yml. |
| 79 | # If `vm.host` not specified, then the host will default to the one defined |
| 80 | # in `libvirt_host`. |
| 81 | # |
| 82 | # @note: `meta.address` doesn't set any additional information for libvirt VMs. |
| 83 | # |
| 84 | containers: |
| 85 | - meta: |
| 86 | address: 172.18.18.1 |
| 87 | lxd: |
| 88 | name: git-mirror02 |
| 89 | target: ci-host-amd64-1c |
| 90 | config: |
| 91 | # Using a privileged container here means we can avoid doing |
| 92 | # uid/gid mapping and reduce the work done during file IO |
| 93 | security.privileged: 'true' |
| 94 | devices: |
| 95 | git-mirror: |
| 96 | path: /storage/git-mirror |
| 97 | # This was created manually: |
| 98 | # zfs create -o mountpoint=/storage/git-mirror tank/lxd/custom/git-mirror |
| 99 | source: /storage/git-mirror |
| 100 | type: disk |
| 101 | - meta: |
| 102 | address: 172.18.16.1 |
| 103 | lxd: |
| 104 | name: ci-node-deb12-amd64-01 |
| 105 | jenkins: |
| 106 | label: 'deb12-amd64 deb12' |
| 107 | mode: EXCLUSIVE |
| 108 | - meta: |
| 109 | address: 172.18.16.2 |
| 110 | lxd: |
| 111 | name: ci-node-deb12-amd64-02 |
| 112 | jenkins: |
| 113 | label: 'deb12-amd64 deb12' |
| 114 | mode: EXCLUSIVE |
| 115 | - meta: |
| 116 | address: 172.18.16.3 |
| 117 | lxd: |
| 118 | name: ci-node-deb12-amd64-03 |
| 119 | jenkins: |
| 120 | label: 'deb12-amd64 deb12' |
| 121 | mode: EXCLUSIVE |
| 122 | - meta: |
| 123 | address: 172.18.16.4 |
| 124 | lxd: |
| 125 | name: ci-node-deb12-amd64-04 |
| 126 | jenkins: |
| 127 | label: 'deb12-amd64 deb12' |
| 128 | mode: EXCLUSIVE |
| 129 | - meta: |
| 130 | address: 172.18.16.5 |
| 131 | lxd: |
| 132 | name: ci-node-deb12-amd64-05 |
| 133 | jenkins: |
| 134 | label: 'deb12-amd64 deb12' |
| 135 | mode: EXCLUSIVE |
| 136 | - meta: |
| 137 | address: 172.18.16.6 |
| 138 | lxd: |
| 139 | name: ci-node-deb12-amd64-06 |
| 140 | jenkins: |
| 141 | label: 'deb12-amd64 deb12' |
| 142 | mode: EXCLUSIVE |
| 143 | - meta: |
| 144 | address: 172.18.16.7 |
| 145 | lxd: |
| 146 | name: ci-node-deb12-amd64-07 |
| 147 | jenkins: |
| 148 | label: 'deb12-amd64 deb12' |
| 149 | mode: EXCLUSIVE |
| 150 | - meta: |
| 151 | address: 172.18.16.8 |
| 152 | lxd: |
| 153 | name: ci-node-deb12-amd64-08 |
| 154 | jenkins: |
| 155 | label: 'deb12-amd64 deb12' |
| 156 | mode: EXCLUSIVE |
| 157 | # "Root" nodes in libvirt, since Jenkins can use the "libvirt agents" plugin |
| 158 | # to revert to a specific snapshot before running a job |
| 159 | # |
| 160 | # @NOTE: For Jenkins, the node configuration was initially created by cloning |
| 161 | # or creating the nodes as they use a type of node which isn't 'simple' to |
| 162 | # create through the API. The entire XML configuration would have to be written |
| 163 | # from scratch. In effect, templates may be a better long term solution than |
| 164 | # the current structure. |
| 165 | # |
| 166 | - jenkins: |
| 167 | name: 'ci-rootnode-deb12-amd64-1a-01' |
| 168 | label: 'deb12 deb12-amd64-rootnode' |
| 169 | mode: EXCLUSIVE |
| 170 | config: |
| 171 | remoteFS: '/root' |
| 172 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' |
| 173 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1a-01' |
| 174 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 175 | launcher/delegate/port: '22' |
| 176 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 177 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 178 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' |
| 179 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-1a-01' |
| 180 | snapshotName: '' |
| 181 | beforeJobSnapshotName: 'base-configuration' |
| 182 | startupWaitingPeriodSeconds: '20' |
| 183 | launcher/waitTimeMs: '20000' |
| 184 | shutdownMethod: 'destroy' |
| 185 | vm: |
| 186 | name: 'ci-rootnode-deb12-amd64-1a-01' |
| 187 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1a-01.qcow' |
| 188 | host: 'ci-host-amd64-1a.internal.efficios.com' |
| 189 | meta: |
| 190 | address: 172.18.17.1 |
| 191 | - jenkins: |
| 192 | name: 'ci-rootnode-deb12-i386-1a-01' |
| 193 | label: 'deb12 deb12-i386-rootnode' |
| 194 | mode: EXCLUSIVE |
| 195 | config: |
| 196 | remoteFS: '/root' |
| 197 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' |
| 198 | launcher/virtualMachineName: 'ci-rootnode-deb12-i386-1a-01' |
| 199 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 200 | launcher/delegate/port: '22' |
| 201 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 202 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 203 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' |
| 204 | ./virtualMachineName: 'ci-rootnode-deb12-i386-1a-01' |
| 205 | snapshotName: '' |
| 206 | beforeJobSnapshotName: 'base-configuration' |
| 207 | startupWaitingPeriodSeconds: '20' |
| 208 | launcher/waitTimeMs: '20000' |
| 209 | shutdownMethod: 'destroy' |
| 210 | vm: |
| 211 | name: 'ci-rootnode-deb12-i386-1a-01' |
| 212 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-i386-1a-01.qcow' |
| 213 | host: 'ci-host-amd64-1a.internal.efficios.com' |
| 214 | meta: |
| 215 | address: 172.18.17.2 |
| 216 | - jenkins: |
| 217 | label: 'deb12 deb12-amd64-rootnode' |
| 218 | name: 'ci-rootnode-deb12-amd64-1b-01' |
| 219 | mode: EXCLUSIVE |
| 220 | config: |
| 221 | remoteFS: '/root' |
| 222 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1b.internal.efficios.com' |
| 223 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1b-01' |
| 224 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 225 | launcher/delegate/port: '22' |
| 226 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 227 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 228 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1b.internal.efficios.com' |
| 229 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-1b-01' |
| 230 | snapshotName: '' |
| 231 | beforeJobSnapshotName: 'base-configuration' |
| 232 | startupWaitingPeriodSeconds: '20' |
| 233 | launcher/waitTimeMs: '20000' |
| 234 | shutdownMethod: 'destroy' |
| 235 | vm: |
| 236 | name: 'ci-rootnode-deb12-amd64-1b-01' |
| 237 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1b-01.qcow' |
| 238 | host: 'ci-host-amd64-1b.internal.efficios.com' |
| 239 | meta: |
| 240 | address: 172.18.17.3 |
| 241 | - jenkins: |
| 242 | label: 'deb12 deb12-amd64-rootnode' |
| 243 | name: 'ci-rootnode-deb12-amd64-1c-01' |
| 244 | mode: EXCLUSIVE |
| 245 | config: |
| 246 | remoteFS: '/root' |
| 247 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1c.internal.efficios.com' |
| 248 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1c-01' |
| 249 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 250 | launcher/delegate/port: '22' |
| 251 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 252 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 253 | snapshotName: '' |
| 254 | beforeJobSnapshotName: 'base-configuration' |
| 255 | startupWaitingPeriodSeconds: '20' |
| 256 | launcher/waitTimeMs: '20000' |
| 257 | shutdownMethod: 'destroy' |
| 258 | vm: |
| 259 | name: 'ci-rootnode-deb12-amd64-1c-01' |
| 260 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1c-01.qcow' |
| 261 | host: 'ci-host-amd64-1c.internal.efficios.com' |
| 262 | meta: |
| 263 | address: 172.18.17.4 |
| 264 | - jenkins: |
| 265 | label: 'deb12 deb12-amd64-rootnode' |
| 266 | name: 'ci-rootnode-deb12-amd64-1d-01' |
| 267 | config: |
| 268 | remoteFS: '/root' |
| 269 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1d.internal.efficios.com' |
| 270 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1d-01' |
| 271 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 272 | launcher/delegate/port: '22' |
| 273 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 274 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 275 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1d.internal.efficios.com' |
| 276 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-1d-01' |
| 277 | snapshotName: '' |
| 278 | beforeJobSnapshotName: 'base-configuration' |
| 279 | startupWaitingPeriodSeconds: '20' |
| 280 | launcher/waitTimeMs: '20000' |
| 281 | shutdownMethod: 'destroy' |
| 282 | vm: |
| 283 | name: 'ci-rootnode-deb12-amd64-1d-01' |
| 284 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1d-01.qcow' |
| 285 | host: 'ci-host-amd64-1d.internal.efficios.com' |
| 286 | meta: |
| 287 | address: 172.18.17.5 |
| 288 | - jenkins: |
| 289 | label: 'deb12 deb12-amd64-rootnode' |
| 290 | name: 'ci-rootnode-deb12-amd64-2a-01' |
| 291 | mode: EXCLUSIVE |
| 292 | config: |
| 293 | remoteFS: '/root' |
| 294 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2a.internal.efficios.com' |
| 295 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2a-01' |
| 296 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 297 | launcher/delegate/port: '22' |
| 298 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 299 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 300 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2a.internal.efficios.com' |
| 301 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-2a-01' |
| 302 | snapshotName: '' |
| 303 | beforeJobSnapshotName: 'base-configuration' |
| 304 | startupWaitingPeriodSeconds: '20' |
| 305 | shutdownMethod: 'destroy' |
| 306 | vm: |
| 307 | name: 'ci-rootnode-deb12-amd64-2a-01' |
| 308 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2a-01.qcow' |
| 309 | host: 'ci-host-amd64-2a.internal.efficios.com' |
| 310 | meta: |
| 311 | address: 172.18.17.6 |
| 312 | - jenkins: |
| 313 | label: 'deb12 deb12-amd64-rootnode' |
| 314 | name: 'ci-rootnode-deb12-amd64-2b-01' |
| 315 | mode: EXCLUSIVE |
| 316 | config: |
| 317 | remoteFS: '/root' |
| 318 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2b.internal.efficios.com' |
| 319 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2b-01' |
| 320 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 321 | launcher/delegate/port: '22' |
| 322 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 323 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 324 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2b.internal.efficios.com' |
| 325 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-2b-01' |
| 326 | snapshotName: '' |
| 327 | beforeJobSnapshotName: 'base-configuration' |
| 328 | startupWaitingPeriodSeconds: '20' |
| 329 | launcher/waitTimeMs: '20000' |
| 330 | shutdownMethod: 'destroy' |
| 331 | vm: |
| 332 | name: 'ci-rootnode-deb12-amd64-2b-01' |
| 333 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2b-01.qcow' |
| 334 | host: 'ci-host-amd64-2b.internal.efficios.com' |
| 335 | meta: |
| 336 | address: 172.18.17.7 |
| 337 | - jenkins: |
| 338 | label: 'deb12 deb12-amd64-rootnode' |
| 339 | name: 'ci-rootnode-deb12-amd64-2c-01' |
| 340 | mode: EXCLUSIVE |
| 341 | config: |
| 342 | remoteFS: '/root' |
| 343 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2c.internal.efficios.com' |
| 344 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2c-01' |
| 345 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 346 | launcher/delegate/port: '22' |
| 347 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 348 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 349 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2c.internal.efficios.com' |
| 350 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-2c-01' |
| 351 | snapshotName: '' |
| 352 | beforeJobSnapshotName: 'base-configuration' |
| 353 | startupWaitingPeriodSeconds: '20' |
| 354 | launcher/waitTimeMs: '20000' |
| 355 | shutdownMethod: 'destroy' |
| 356 | vm: |
| 357 | name: 'ci-rootnode-deb12-amd64-2c-01' |
| 358 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2c-01.qcow' |
| 359 | host: 'ci-host-amd64-2c.internal.efficios.com' |
| 360 | meta: |
| 361 | address: 172.18.17.8 |
| 362 | - jenkins: |
| 363 | label: 'deb12 deb12-amd64-rootnode' |
| 364 | name: 'ci-rootnode-deb12-amd64-2d-01' |
| 365 | mode: EXCLUSIVE |
| 366 | config: |
| 367 | remoteFS: '/root' |
| 368 | launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2d.internal.efficios.com' |
| 369 | launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2d-01' |
| 370 | launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' |
| 371 | launcher/delegate/port: '22' |
| 372 | launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' |
| 373 | launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' |
| 374 | ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2d.internal.efficios.com' |
| 375 | ./virtualMachineName: 'ci-rootnode-deb12-amd64-2d-01' |
| 376 | snapshotName: '' |
| 377 | beforeJobSnapshotName: 'base-configuration' |
| 378 | startupWaitingPeriodSeconds: '20' |
| 379 | launcher/waitTimeMs: '20000' |
| 380 | shutdownMethod: 'destroy' |
| 381 | vm: |
| 382 | name: 'ci-rootnode-deb12-amd64-2d-01' |
| 383 | disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2d-01.qcow' |
| 384 | host: 'ci-host-amd64-2d.internal.efficios.com' |
| 385 | meta: |
| 386 | address: 172.18.17.9 |