From 2698b1c19e44ea9d82e47f328d7ea610a06719e1 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Thu, 1 Dec 2022 14:04:19 +0900 Subject: [PATCH] Support customizing package state ... so that users can install specific versions or even update some packages. Change-Id: I09318d95d905ef9c298f3b58c605be585b9a20f1 --- manifests/controller.pp | 18 ++++++++++++------ manifests/northd.pp | 9 +++++++-- .../notes/package_ensure-00a5cd380097f2af.yaml | 5 +++++ spec/classes/ovn_controller_spec.rb | 2 +- spec/classes/ovn_northd_spec.rb | 2 +- 5 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 releasenotes/notes/package_ensure-00a5cd380097f2af.yaml diff --git a/manifests/controller.pp b/manifests/controller.pp index efb9e7d..f74887f 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -9,14 +9,19 @@ # (Required) URL of the remote ovn southbound db. # Example: 'tcp:127.0.0.1:6642' # +# [*ovn_encap_ip*] +# (Required) IP address of the hypervisor(in which this module is installed) +# to which the other controllers would use to create a tunnel to this +# controller +# +# [*package_ensure*] +# (Optional) State of the openvswitch package +# Defaults to 'present'. +# # [*ovn_encap_type*] # (Optional) The encapsulation type to be used # Defaults to 'geneve' # -# [*ovn_encap_ip*] -# (Required) IP address of the hypervisor(in which this module is installed) to which -# the other controllers would use to create a tunnel to this controller -# # [*ovn_encap_tos*] # (Optional) The value to be applied to OVN tunnel interface's option:tos. # Defaults to undef @@ -108,6 +113,7 @@ class ovn::controller( $ovn_remote, $ovn_encap_ip, + $package_ensure = 'present', $ovn_encap_type = 'geneve', $ovn_encap_tos = undef, $ovn_bridge_mappings = [], @@ -155,9 +161,9 @@ class ovn::controller( } package { $::ovn::params::ovn_controller_package_name: - ensure => present, + ensure => $package_ensure, + notify => Service['controller'], name => $::ovn::params::ovn_controller_package_name, - before => Service['controller'] } $config_items = { diff --git a/manifests/northd.pp b/manifests/northd.pp index 6513a55..ee20b8a 100644 --- a/manifests/northd.pp +++ b/manifests/northd.pp @@ -3,6 +3,10 @@ # # installs ovn package starts the ovn-northd service # +# [*package_ensure*] +# (Optional) State of the openvswitch package +# Defaults to 'present'. +# # [*dbs_listen_ip*] # The IP-Address where OVN DBs should be listening # Defaults to '0.0.0.0' @@ -16,6 +20,7 @@ # Defaults to undef # class ovn::northd( + $package_ensure = 'present', $dbs_listen_ip = '0.0.0.0', $dbs_cluster_local_addr = undef, $dbs_cluster_remote_addr = undef, @@ -69,9 +74,9 @@ class ovn::northd( } package { $::ovn::params::ovn_northd_package_name: - ensure => present, + ensure => $package_ensure, name => $::ovn::params::ovn_northd_package_name, - before => Service['northd'], + notify => Service['northd'], require => Package[$::vswitch::params::ovs_package_name] } } diff --git a/releasenotes/notes/package_ensure-00a5cd380097f2af.yaml b/releasenotes/notes/package_ensure-00a5cd380097f2af.yaml new file mode 100644 index 0000000..392391d --- /dev/null +++ b/releasenotes/notes/package_ensure-00a5cd380097f2af.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The ``ovn::northd`` class and the ``ovn::controller`` class now support + customizing state of the packages, by the ``package_ensure`` parameter. diff --git a/spec/classes/ovn_controller_spec.rb b/spec/classes/ovn_controller_spec.rb index 6d2753b..1649c3c 100644 --- a/spec/classes/ovn_controller_spec.rb +++ b/spec/classes/ovn_controller_spec.rb @@ -32,7 +32,7 @@ describe 'ovn::controller' do is_expected.to contain_package(platform_params[:ovn_controller_package_name]).with( :ensure => 'present', :name => platform_params[:ovn_controller_package_name], - :before => 'Service[controller]' + :notify => 'Service[controller]' ) end diff --git a/spec/classes/ovn_northd_spec.rb b/spec/classes/ovn_northd_spec.rb index bd505ba..2b5fac3 100644 --- a/spec/classes/ovn_northd_spec.rb +++ b/spec/classes/ovn_northd_spec.rb @@ -31,7 +31,7 @@ describe 'ovn::northd' do is_expected.to contain_package(platform_params[:ovn_northd_package_name]).with( :ensure => 'present', :name => platform_params[:ovn_northd_package_name], - :before => 'Service[northd]' + :notify => 'Service[northd]' ) end end