Introduce a new class to disable the default libvirt network

libvirt by default enables the default network so that it can provide
dhcp for all virtual machines running on that host. However this is not
required in OpenStack deployments and should be removed.

This change introduces a new class to disable the delete network.

Change-Id: Ibc0801694770913d494aa260161fa406689436ad
This commit is contained in:
Takashi Kajinami
2022-06-26 18:15:26 +09:00
parent 4466f7cde6
commit 1eef27916f
3 changed files with 95 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
# == Class: nova::compute::libvirt::networks
#
# Configures networks managed by libvirt
#
# === Parameters:
#
# [*disable_default_network*]
# (optional) Whether or not delete the default network.
# Defaults to true.
#
class nova::compute::libvirt::networks(
$disable_default_network = true,
) {
include nova::deps
if $disable_default_network {
exec { 'libvirt-default-net-disable-autostart':
command => 'virsh net-autostart default --disable',
path => ['/bin', '/usr/bin'],
onlyif => [
'virsh net-info default 2>/dev/null',
'virsh net-info default 2>/dev/null | grep -i "^autostart:\s*yes"'
]
}
exec { 'libvirt-default-net-destroy':
command => 'virsh net-destroy default',
path => ['/bin', '/usr/bin'],
onlyif => [
'virsh net-info default 2>/dev/null',
'virsh net-info default 2>/dev/null | grep -i "^active:\s*yes"'
]
}
Service<| tag == 'libvirt-service' |>
-> Exec['libvirt-default-net-disable-autostart']
-> Exec['libvirt-default-net-destroy']
-> Service<| tag == 'nova-service' |>
}
}

View File

@@ -0,0 +1,6 @@
---
features:
- |
The new ``nova::compute::libvirt::networks`` class has been added. This
class can be used to disable the default libvirt network, which is not used
in OpenStack deployments.

View File

@@ -0,0 +1,49 @@
require 'spec_helper'
describe 'nova::compute::libvirt::networks' do
shared_examples_for 'nova::compute::libvirt::networks' do
context 'with defaults' do
it { is_expected.to contain_exec('libvirt-default-net-disable-autostart').with(
:command => 'virsh net-autostart default --disable',
:path => ['/bin', '/usr/bin'],
:onlyif => [
'virsh net-info default 2>/dev/null',
'virsh net-info default 2>/dev/null | grep -i "^autostart:\s*yes"'
]
) }
it { is_expected.to contain_exec('libvirt-default-net-destroy').with(
:command => 'virsh net-destroy default',
:path => ['/bin', '/usr/bin'],
:onlyif => [
'virsh net-info default 2>/dev/null',
'virsh net-info default 2>/dev/null | grep -i "^active:\s*yes"'
]
) }
end
context 'when not disabling the default network' do
let :params do
{
:disable_default_network => false
}
end
it { is_expected.to_not contain_exec('libvirt-default-net-disable-autostart') }
it { is_expected.to_not contain_exec('libvirt-default-net-destroy') }
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'nova::compute::libvirt::networks'
end
end
end