diff --git a/manifests/controller.pp b/manifests/controller.pp index 6109028..2a013eb 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -147,7 +147,7 @@ class ovn::controller( String $ovn_remote, Stdlib::IP::Address $ovn_encap_ip, String $package_ensure = 'present', - Variant[String[1], Array[String[1]]] $ovn_encap_type = 'geneve', + Variant[Ovn::EncapType, Array[Ovn::EncapType]] $ovn_encap_type = 'geneve', Optional[Variant[String, Integer]] $ovn_encap_tos = undef, Ovn::BridgeMappings $ovn_bridge_mappings = [], Array[String[1]] $bridge_interface_mappings = [], diff --git a/spec/type_aliases/encaptype_spec.rb b/spec/type_aliases/encaptype_spec.rb new file mode 100644 index 0000000..f867ffb --- /dev/null +++ b/spec/type_aliases/encaptype_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe 'Ovn::EncapType' do + describe 'valid types' do + context 'with valid types' do + [ + 'geneve', + 'vxlan' + ].each do |value| + describe value.inspect do + it { is_expected.to allow_value(value) } + end + end + end + end + + describe 'invalid types' do + context 'with garbage inputs' do + [ + '', + 'vlan', + true, + false, + 1, + ['vxlan'], + {'' => 'vxlan'}, + {'vxlan' => ''} + ].each do |value| + describe value.inspect do + it { is_expected.not_to allow_value(value) } + end + end + end + end +end diff --git a/types/encaptype.pp b/types/encaptype.pp new file mode 100644 index 0000000..453065d --- /dev/null +++ b/types/encaptype.pp @@ -0,0 +1 @@ +type Ovn::EncapType = Enum['geneve', 'vxlan']