--- # The search domain for instance names search_domain: internal.efficios.com # Which DNS server to use for checks + updates name_server: smb-adc02.internal.efficios.com # The host to use for delegating lxd commands lxd_host: ci-host-amd64-1a.internal.efficios.com # Default host to create libvirt VMs on if not specified libvirt_host: ci-host-amd64-1b.internal.efficios.com # @see https://docs.ansible.com/ansible/latest/collections/community/general/lxd_container_module.html#ansible-collections-community-general-lxd-container-module # @example a container instance with the default image (deb12 amd64) # - meta: # address: 192.168.1.2 # lxd: # name: ci-node-example # # The meta.address is used to fill in the default lxd.config['user.network-config'] value # templated from the cloud_init_netconf.j2 template. Note that this does not change the # configuration inside an already deployed instances. The merged value of lxd is passed # as arguments to community.general.lxd_container task. # # When a container/vm is created, the target within the cluster is # determined by the allocation strategy configured for the LXD cluster. The # default is to allocate the instance to the cluster member with the fewest # instances (resource usage not considered). # # Once the instances are provisied meta.address and lxd.name are used to update the # DNS records in Samba. @see scripts/update_dns_entry.py. # # @example a container created on a specific cluster member # - meta: # address: 192.168.1.2 # lxd: # name: ci-node-example # # This only affects creation, the container is not moved if it # # already exists in the cluster. # target: ci-host-amd64-1a # # @example a virtual machine with the default image # - meta: # address: 192.168.1.2 # lxd: # name: ci-rootnode-example # type: virtual-machine # profiles: # - ci-rootnode # # @example a VM with an ISO attached as a cdrom # - meta: # address: 192.168.1.2 # lxd: # name: ci-rootnode-example # type: virtual-machine # profiles: # - ci-rootnode # # If there are configuration errors, sometimes the state # # will need to be set to stopped to apply any differences. # # Some values, eg. raw.apparmor, cannot be changed while the # # VM or container is online. Note that the image needs to # # be readable as the user 'nobody'. # # state: stopped # config: # raw.qemu: '-drive file=/path/to/image.iso,media=cdrom' # raw.apparmor: '/path/to/image.iso rk,' # # Console access, assuming the remote 'ci' is connected to the LXD cluster: # lxc console ci:ci-rootnode-example --type vga # Text console (may not have output depending on boot settings) # lxc console ci:ci-rootnode-example # # @example Define a VM using libvirt # - vm: # # host: 'ci-host-example' # name: 'ci-rootnode-example' # disk: '/path/to/disk' # # @note libvirt VMs are created using the task roles/libvirt/vm.yml. # If `vm.host` not specified, then the host will default to the one defined # in `libvirt_host`. # # @note: `meta.address` doesn't set any additional information for libvirt VMs. # containers: - meta: address: 172.18.18.1 lxd: name: git-mirror02 target: ci-host-amd64-1c config: # Using a privileged container here means we can avoid doing # uid/gid mapping and reduce the work done during file IO security.privileged: 'true' devices: git-mirror: path: /storage/git-mirror # This was created manually: # zfs create -o mountpoint=/storage/git-mirror tank/lxd/custom/git-mirror source: /storage/git-mirror type: disk - meta: address: 172.18.16.1 lxd: name: ci-node-deb12-amd64-01 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.2 lxd: name: ci-node-deb12-amd64-02 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.3 lxd: name: ci-node-deb12-amd64-03 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.4 lxd: name: ci-node-deb12-amd64-04 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.5 lxd: name: ci-node-deb12-amd64-05 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.6 lxd: name: ci-node-deb12-amd64-06 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.7 lxd: name: ci-node-deb12-amd64-07 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE - meta: address: 172.18.16.8 lxd: name: ci-node-deb12-amd64-08 jenkins: label: 'deb12-amd64 deb12' mode: EXCLUSIVE # "Root" nodes in libvirt, since Jenkins can use the "libvirt agents" plugin # to revert to a specific snapshot before running a job # # @NOTE: For Jenkins, the node configuration was initially created by cloning # or creating the nodes as they use a type of node which isn't 'simple' to # create through the API. The entire XML configuration would have to be written # from scratch. In effect, templates may be a better long term solution than # the current structure. # - jenkins: name: 'ci-rootnode-deb12-amd64-1a-01' label: 'deb12 deb12-amd64-rootnode' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1a-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-1a-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-1a-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1a-01.qcow' host: 'ci-host-amd64-1a.internal.efficios.com' meta: address: 172.18.17.1 - jenkins: name: 'ci-rootnode-deb12-i386-1a-01' label: 'deb12 deb12-i386-rootnode' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-i386-1a-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1a.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-i386-1a-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-i386-1a-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-i386-1a-01.qcow' host: 'ci-host-amd64-1a.internal.efficios.com' meta: address: 172.18.17.2 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-1b-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1b.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1b-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1b.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-1b-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-1b-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1b-01.qcow' host: 'ci-host-amd64-1b.internal.efficios.com' meta: address: 172.18.17.3 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-1c-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1c.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1c-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-1c-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1c-01.qcow' host: 'ci-host-amd64-1c.internal.efficios.com' meta: address: 172.18.17.4 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-1d-01' config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1d.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-1d-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-1d.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-1d-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-1d-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-1d-01.qcow' host: 'ci-host-amd64-1d.internal.efficios.com' meta: address: 172.18.17.5 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-2a-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2a.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2a-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2a.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-2a-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-2a-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2a-01.qcow' host: 'ci-host-amd64-2a.internal.efficios.com' meta: address: 172.18.17.6 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-2b-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2b.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2b-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2b.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-2b-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-2b-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2b-01.qcow' host: 'ci-host-amd64-2b.internal.efficios.com' meta: address: 172.18.17.7 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-2c-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2c.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2c-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2c.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-2c-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-2c-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2c-01.qcow' host: 'ci-host-amd64-2c.internal.efficios.com' meta: address: 172.18.17.8 - jenkins: label: 'deb12 deb12-amd64-rootnode' name: 'ci-rootnode-deb12-amd64-2d-01' mode: EXCLUSIVE config: remoteFS: '/root' launcher/hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2d.internal.efficios.com' launcher/virtualMachineName: 'ci-rootnode-deb12-amd64-2d-01' launcher/delegate: 'hudson.plugins.sshslaves.SSHLauncher=class' launcher/delegate/port: '22' launcher/delegate/host: 'ci-rootnode-deb12-amd64-1a-01.internal.efficios.com' launcher/delegate/credentialsId: 'bb5a81cf-346b-43fc-8586-3dc5e43801be' ./hypervisorDescription: 'QEMU+ssh - ci-host-amd64-2d.internal.efficios.com' ./virtualMachineName: 'ci-rootnode-deb12-amd64-2d-01' snapshotName: '' beforeJobSnapshotName: 'base-configuration' startupWaitingPeriodSeconds: '20' launcher/waitTimeMs: '20000' shutdownMethod: 'destroy' vm: name: 'ci-rootnode-deb12-amd64-2d-01' disk: '/var/lib/libvirt/images/ci-rootnode-deb12-amd64-2d-01.qcow' host: 'ci-host-amd64-2d.internal.efficios.com' meta: address: 172.18.17.9