diff --git a/manifests/compute/libvirt/services.pp b/manifests/compute/libvirt/services.pp index 3745c48e6..5d20433db 100644 --- a/manifests/compute/libvirt/services.pp +++ b/manifests/compute/libvirt/services.pp @@ -152,6 +152,14 @@ class nova::compute::libvirt::services ( } if $virtlock_service_name { + if $::nova::params::virtlock_package_name { + package { 'virtlockd': + ensure => present, + name => $::nova::params::virtlock_package_name, + tag => ['openstack', 'nova-support-package'], + } + Package['virtlockd'] ~> Service['virtlockd'] + } service { 'virtlockd': ensure => running, enable => true, diff --git a/manifests/params.pp b/manifests/params.pp index 1aa06d8c5..8e63807b9 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -41,6 +41,7 @@ class nova::params { $libvirt_service_name = 'libvirtd' $libvirt_guests_service_name = 'libvirt-guests' $virtlock_service_name = 'virtlockd' + $virtlock_package_name = undef $virtlog_service_name = 'virtlogd' $virtsecret_service_name = 'virtsecretd' $virtnodedev_service_name = 'virtnodedevd' @@ -117,6 +118,12 @@ class nova::params { $spicehtml5proxy_service_name = 'nova-spicehtml5proxy' $vncproxy_package_name = 'nova-consoleproxy' $serialproxy_package_name = 'nova-consoleproxy' + # Starting with Debian 13, virtlockd lives in a separate plugin package. + if Integer.new($facts['os']['release']['major']) >= 13 { + $virtlock_package_name = 'libvirt-daemon-plugin-lockd' + } else { + $virtlock_package_name = undef + } # Use default provider on Debian } default: { @@ -125,6 +132,9 @@ class nova::params { $spicehtml5proxy_service_name = 'nova-spiceproxy' $vncproxy_package_name = 'nova-novncproxy' $serialproxy_package_name = 'nova-serialproxy' + # Starting with Ubuntu 25.10, virtlockd lives in a separate plugin package. + # We will need to fix this for Ubuntu 26.04 LTS. + $virtlock_package_name = undef } } }