diff --git a/example-puppet.py b/example-puppet.py index d85cec1c..8a500233 100644 --- a/example-puppet.py +++ b/example-puppet.py @@ -162,7 +162,7 @@ def setup_resources(): # NEUTRON # Deploy chain neutron -> (plugins) -> neutron_server -> ( agents ) neutron_puppet = vr.create('neutron_puppet', 'resources/neutron_puppet', { - 'core_plugin': 'neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2' + 'core_plugin': 'neutron.plugins.ml2.plugin.Ml2Plugin' })[0] signals.connect(node1, neutron_puppet) signals.connect(rabbitmq_service1, neutron_puppet, { @@ -237,23 +237,16 @@ def setup_resources(): 'bind_port': ['admin_port', 'internal_port', 'public_port'], }) - # NEUTRON OVS PLUGIN & AGENT WITH GRE - neutron_plugins_ovs = vr.create('neutron_plugins_ovs', 'resources/neutron_plugins_ovs_puppet', { - 'tenant_network_type': 'gre', - })[0] - signals.connect(node1, neutron_plugins_ovs) - signals.connect(neutron_db_user, neutron_plugins_ovs, { - 'user_name':'db_user', - 'db_name':'db_name', - 'user_password':'db_password', - 'db_host' : 'db_host' - }) - neutron_agents_ovs = vr.create('neutron_agents_ovs', 'resources/neutron_agents_ovs_puppet', { + # NEUTRON ML2 PLUGIN & ML2-OVS AGENT WITH GRE + neutron_plugins_ml2 = vr.create('neutron_plugins_ml2', 'resources/neutron_plugins_ml2_puppet', {})[0] + signals.connect(node1, neutron_plugins_ml2) + neutron_agents_ml2 = vr.create('neutron_agents_ml2', 'resources/neutron_agents_ml2_ovs_puppet', { # TODO(bogdando) these should come from the node network resource 'enable_tunneling': True, + 'tunnel_types': ['gre'], 'local_ip': '10.1.0.13' # should be the IP addr of the br-mesh int. })[0] - signals.connect(node1, neutron_agents_ovs) + signals.connect(node1, neutron_agents_ml2) # NEUTRON DHCP, L3, metadata agents neutron_agents_dhcp = vr.create('neutron_agents_dhcp', 'resources/neutron_agents_dhcp_puppet', {})[0] @@ -285,17 +278,15 @@ def setup_resources(): }) # NEUTRON OVS PLUGIN & AGENT WITH GRE FOR COMPUTE (node2) - neutron_plugins_ovs2 = vr.create('neutron_plugins_ovs2', 'resources/neutron_plugins_ovs_puppet', {})[0] - signals.connect(node2, neutron_plugins_ovs2) - signals.connect(neutron_plugins_ovs, neutron_plugins_ovs2, { - 'db_host', 'db_name', 'db_password', 'db_user', 'tenant_network_type' - }) - neutron_agents_ovs2 = vr.create('neutron_agents_ovs2', 'resources/neutron_agents_ovs_puppet', { + neutron_plugins_ml22 = vr.create('neutron_plugins_ml22', 'resources/neutron_plugins_ml2_puppet', {})[0] + signals.connect(node2, neutron_plugins_ml22) + neutron_agents_ml22 = vr.create('neutron_agents_ml22', 'resources/neutron_agents_ml2_ovs_puppet', { # TODO(bogdando) these should come from the node network resource 'enable_tunneling': True, + 'tunnel_types': ['gre'], 'local_ip': '10.1.0.14' # Should be the IP addr of the br-mesh int. })[0] - signals.connect(node2, neutron_agents_ovs2) + signals.connect(node2, neutron_agents_ml22) # CINDER cinder_puppet = vr.create('cinder_puppet', 'resources/cinder_puppet', {})[0] @@ -614,9 +605,9 @@ resources_to_run = [ 'neutron_keystone_role', 'neutron_puppet', 'neutron_keystone_service_endpoint', - 'neutron_plugins_ovs', + 'neutron_plugins_ml2', 'neutron_server_puppet', - 'neutron_agents_ovs', + 'neutron_agents_ml2', 'neutron_agents_dhcp', 'neutron_agents_l3', 'neutron_agents_metadata', @@ -655,8 +646,8 @@ resources_to_run = [ 'nova_compute_puppet', 'neutron_puppet2', - 'neutron_plugins_ovs2', - 'neutron_agents_ovs2', + 'neutron_plugins_ml22', + 'neutron_agents_ml22', ] @click.command() diff --git a/resources/neutron_agents_ml2_ovs_puppet/README.md b/resources/neutron_agents_ml2_ovs_puppet/README.md new file mode 100644 index 00000000..b9ea2e28 --- /dev/null +++ b/resources/neutron_agents_ml2_ovs_puppet/README.md @@ -0,0 +1,74 @@ +# Neutron OVS agent with ML2 plugin puppet resource + +Setups OVS neutron agent when using ML2 plugin + +# === Parameters + +source https://github.com/openstack/puppet-neutron/blob/5.1.0/manifests/agents/ml2/ovs.pp + + ``package_ensure`` + (optional) The state of the package + Defaults to 'present' + + ``enabled`` + (required) Whether or not to enable the OVS Agent + Defaults to true + + ``bridge_uplinks`` + (optional) List of interfaces to connect to the bridge when doing + bridge mapping. + Defaults to empty list + + ``bridge_mapping`` + (optional) List of : + Defaults to empty list + + ``integration_bridge`` + (optional) Integration bridge in OVS + Defaults to 'br-int' + + ``enable_tunneling`` + (optional) Enable or not tunneling + Defaults to false + + ``tunnel_types`` + (optional) List of types of tunnels to use when utilizing tunnels, + either 'gre' or 'vxlan'. + Defaults to false + + ``local_ip`` + (optional) Local IP address of GRE tunnel endpoints. + Required when enabling tunneling + Defaults to false + + ``tunnel_bridge`` + (optional) Bridge used to transport tunnels + Defaults to 'br-tun' + + ``vxlan_udp_port`` + (optional) The UDP port to use for VXLAN tunnels. + Defaults to '4789' + + ``polling_interval`` + (optional) The number of seconds the agent will wait between + polling for local device changes. + Defaults to '2" + + ``l2_population`` + (optional) Extension to use alongside ml2 plugin's l2population + mechanism driver. + Defaults to false + + ``arp_responder`` + (optional) Enable or not the ARP responder. + Recommanded when using l2 population mechanism driver. + Defaults to false + + ``firewall_driver`` + (optional) Firewall driver for realizing neutron security group function. + Defaults to 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'. + + ``enable_distributed_routing`` + (optional) Set to True on L2 agents to enable support + for distributed virtual routing. + Defaults to false \ No newline at end of file diff --git a/resources/neutron_agents_ovs_puppet/actions/remove.pp b/resources/neutron_agents_ml2_ovs_puppet/actions/remove.pp similarity index 62% rename from resources/neutron_agents_ovs_puppet/actions/remove.pp rename to resources/neutron_agents_ml2_ovs_puppet/actions/remove.pp index 30baa70a..7a197915 100644 --- a/resources/neutron_agents_ovs_puppet/actions/remove.pp +++ b/resources/neutron_agents_ml2_ovs_puppet/actions/remove.pp @@ -1,4 +1,4 @@ -class { 'neutron::agents::ovs': +class { 'neutron::agents::ml2::ovs': package_ensure => 'absent', enabled => false, } \ No newline at end of file diff --git a/resources/neutron_agents_ml2_ovs_puppet/actions/run.pp b/resources/neutron_agents_ml2_ovs_puppet/actions/run.pp new file mode 100644 index 00000000..f9941be7 --- /dev/null +++ b/resources/neutron_agents_ml2_ovs_puppet/actions/run.pp @@ -0,0 +1,45 @@ +$resource = hiera($::resource_name) + +$ip = $resource['input']['ip']['value'] + +$package_ensure = $resource['input']['package_ensure']['value'] +$enabled = $resource['input']['enabled']['value'] +$bridge_uplinks = $resource['input']['bridge_uplinks']['value'] +$bridge_mappings = $resource['input']['bridge_mappings']['value'] +$integration_bridge = $resource['input']['integration_bridge']['value'] +$enable_tunneling = $resource['input']['enable_tunneling']['value'] +$tunnel_types = $resource['input']['tunnel_types']['value'] +$local_ip = $resource['input']['local_ip']['value'] +$tunnel_bridge = $resource['input']['tunnel_bridge']['value'] +$vxlan_udp_port = $resource['input']['vxlan_udp_port']['value'] +$polling_interval = $resource['input']['polling_interval']['value'] +$l2_population = $resource['input']['l2_population']['value'] +$arp_responder = $resource['input']['arp_responder']['value'] +$firewall_driver = $resource['input']['firewall_driver']['value'] +$enable_distributed_routing = $resource['input']['enable_distributed_routing']['value'] + +class { 'neutron::agents::ml2::ovs': + enabled => true, + package_ensure => $package_ensure, + bridge_uplinks => $bridge_uplinks, + bridge_mappings => $bridge_mappings, + integration_bridge => $integration_bridge, + enable_tunneling => $enable_tunneling, + tunnel_types => $tunnel_types, + local_ip => $local_ip, + tunnel_bridge => $tunnel_bridge, + vxlan_udp_port => $vxlan_udp_port, + polling_interval => $polling_interval, + l2_population => $l2_population, + arp_responder => $arp_responder, + firewall_driver => $firewall_driver, + enable_distributed_routing => $enable_distributed_routing, +} + +# Remove external class dependency and restore required ones +Service <| title == 'neutron-ovs-agent-service' |> { + require => undef +} +Neutron_plugin_ml2<||> ~> Service['neutron-ovs-agent-service'] +File <| title == '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini' |> ~> +Service<| title == 'neutron-ovs-agent-service' |> \ No newline at end of file diff --git a/resources/neutron_agents_ovs_puppet/meta.yaml b/resources/neutron_agents_ml2_ovs_puppet/meta.yaml similarity index 74% rename from resources/neutron_agents_ovs_puppet/meta.yaml rename to resources/neutron_agents_ml2_ovs_puppet/meta.yaml index e29d979d..bd011660 100644 --- a/resources/neutron_agents_ovs_puppet/meta.yaml +++ b/resources/neutron_agents_ml2_ovs_puppet/meta.yaml @@ -1,5 +1,5 @@ handler: puppet -id: 'neutron_agents_ovs_puppet' +id: 'neutron_agents_ml2_ovs_puppet' input: ip: schema: str! @@ -14,6 +14,9 @@ input: package_ensure: schema: str value: 'present' + enabled: + schema: bool + value: true bridge_uplinks: schema: [str] value: [] @@ -31,7 +34,7 @@ input: value: [] local_ip: schema: str - value: + value: '' tunnel_bridge: schema: str value: 'br-tun' @@ -41,17 +44,23 @@ input: polling_interval: schema: int value: 2 + l2_population: + schema: bool + value: false + arp_responder: + schema: bool + value: false firewall_driver: schema: str value: 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver' - veth_mtu: - schema: str - value: + enable_distributed_routing: + schema: bool + value: false git: schema: {repository: str!, branch: str!} value: {repository: 'https://github.com/openstack/puppet-neutron', branch: '5.1.0'} puppet_module: 'neutron' -tags: [resource/neutron, resource/neutron_agents_ovs] +tags: [resource/neutron, resource/neutron_agents_ml2_ovs] version: 1.0.0 diff --git a/resources/neutron_agents_ovs_puppet/README.md b/resources/neutron_agents_ovs_puppet/README.md deleted file mode 100644 index b04c023c..00000000 --- a/resources/neutron_agents_ovs_puppet/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Neutron OVS agent puppet resource - -Setups OVS neutron agent - -source https://github.com/openstack/puppet-neutron/blob/5.1.0/manifests/agents/ovs.pp \ No newline at end of file diff --git a/resources/neutron_agents_ovs_puppet/actions/run.pp b/resources/neutron_agents_ovs_puppet/actions/run.pp deleted file mode 100644 index 8ae399bd..00000000 --- a/resources/neutron_agents_ovs_puppet/actions/run.pp +++ /dev/null @@ -1,38 +0,0 @@ -$resource = hiera($::resource_name) - -$ip = $resource['input']['ip']['value'] - -$package_ensure = $resource['input']['package_ensure']['value'] -$bridge_uplinks = $resource['input']['bridge_uplinks']['value'] -$bridge_mappings = $resource['input']['bridge_mappings']['value'] -$integration_bridge = $resource['input']['integration_bridge']['value'] -$enable_tunneling = $resource['input']['enable_tunneling']['value'] -$tunnel_types = $resource['input']['tunnel_types']['value'] -$local_ip = $resource['input']['local_ip']['value'] -$tunnel_bridge = $resource['input']['tunnel_bridge']['value'] -$vxlan_udp_port = $resource['input']['vxlan_udp_port']['value'] -$polling_interval = $resource['input']['polling_interval']['value'] -$firewall_driver = $resource['input']['firewall_driver']['value'] -$veth_mtu = $resource['input']['veth_mtu']['value'] - -class { 'neutron::agents::ovs': - enabled => true, - manage_service => true, - package_ensure => $package_ensure, - bridge_uplinks => $bridge_uplinks, - bridge_mappings => $bridge_mappings, - integration_bridge => $integration_bridge, - enable_tunneling => $enable_tunneling, - tunnel_types => $tunnel_types, - local_ip => $local_ip, - tunnel_bridge => $tunnel_bridge, - vxlan_udp_port => $vxlan_udp_port, - polling_interval => $polling_interval, - firewall_driver => $firewall_driver, - veth_mtu => $veth_mtu, -} - -# Remove external class dependency -Service <| title == 'neutron-plugin-ovs-service' |> { - require => undef -} \ No newline at end of file diff --git a/resources/neutron_plugins_ml2_puppet/README.md b/resources/neutron_plugins_ml2_puppet/README.md new file mode 100644 index 00000000..a81c5216 --- /dev/null +++ b/resources/neutron_plugins_ml2_puppet/README.md @@ -0,0 +1,83 @@ +# Neutron ML2 plugin puppet resource + +# === Parameters + +source https://github.com/openstack/puppet-neutron/blob/5.1.0/manifests/plugins/ml2.pp + + ``type_drivers`` + (optional) List of network type driver entrypoints to be loaded + from the neutron.ml2.type_drivers namespace. + Could be an array that can have these elements: + local, flat, vlan, gre, vxlan + Defaults to ['local', 'flat', 'vlan', 'gre', 'vxlan']. + + ``tenant_network_types`` + (optional) Ordered list of network_types to allocate as tenant networks. + The value 'local' is only useful for single-box testing + but provides no connectivity between hosts. + Should be an array that can have these elements: + local, flat, vlan, gre, vxlan + Defaults to ['local', 'flat', 'vlan', 'gre', 'vxlan']. + + ``mechanism_drivers`` + (optional) An ordered list of networking mechanism driver + entrypoints to be loaded from the neutron.ml2.mechanism_drivers namespace. + Should be an array that can have these elements: + logger, test, linuxbridge, openvswitch, hyperv, ncs, arista, cisco_nexus, + l2population, sriovnicswitch + Default to ['openvswitch', 'linuxbridge']. + + ``flat_networks`` + (optional) List of physical_network names with which flat networks + can be created. Use * to allow flat networks with arbitrary + physical_network names. + Should be an array. + Default to *. + + ``network_vlan_ranges`` + (optional) List of :: or + specifying physical_network names + usable for VLAN provider and tenant networks, as + well as ranges of VLAN tags on each available for + allocation to tenant networks. + Should be an array with vlan_min = 1 & vlan_max = 4094 (IEEE 802.1Q) + Default to empty. + + ``tunnel_id_ranges`` + (optional) Comma-separated list of : tuples + enumerating ranges of GRE tunnel IDs that are + available for tenant network allocation + Should be an array with tun_max +1 - tun_min > 1000000 + Default to empty. + + ``vxlan_group`` + (optional) Multicast group for VXLAN. + Multicast group for VXLAN. If unset, disables VXLAN enable sending allocate + broadcast traffic to this multicast group. When left unconfigured, will + disable multicast VXLAN mode + Should be an Multicast IP (v4 or v6) address. + Default to 'None'. + + ``vni_ranges`` + (optional) Comma-separated list of : tuples + enumerating ranges of VXLAN VNI IDs that are + available for tenant network allocation. + Min value is 0 and Max value is 16777215. + Default to empty. + + ``enable_security_group`` + (optional) Controls if neutron security group is enabled or not. + It should be false when you use nova security group. + Defaults to true. + + ``supported_pci_vendor_devs`` + (optional) Supported PCI vendor devices, defined by + vendor_id:product_id according to the PCI ID + Repository. Should be an array of devices. + Defaults to ['15b3:1004', '8086:10ca'] (Intel & Mellanox SR-IOV capable NICs) + + ``sriov_agent_required`` + (optional) SRIOV neutron agent is required for port binding. + Only set to true if SRIOV network adapters support VF link state setting + and if admin state management is desired. + Defaults to false. diff --git a/resources/neutron_plugins_ml2_puppet/actions/remove.pp b/resources/neutron_plugins_ml2_puppet/actions/remove.pp new file mode 100644 index 00000000..1867d4cd --- /dev/null +++ b/resources/neutron_plugins_ml2_puppet/actions/remove.pp @@ -0,0 +1,3 @@ +class { 'neutron::plugins::ml2': + package_ensure => 'absent', +} \ No newline at end of file diff --git a/resources/neutron_plugins_ml2_puppet/actions/run.pp b/resources/neutron_plugins_ml2_puppet/actions/run.pp new file mode 100644 index 00000000..33478a37 --- /dev/null +++ b/resources/neutron_plugins_ml2_puppet/actions/run.pp @@ -0,0 +1,54 @@ +$resource = hiera($::resource_name) + +$ip = $resource['input']['ip']['value'] + +$type_drivers = $resource['input']['type_drivers']['value'] +$tenant_network_types = $resource['input']['tenant_network_types']['value'] +$mechanism_drivers = $resource['input']['mechanism_drivers']['value'] +$flat_networks = $resource['input']['flat_networks']['value'] +$network_vlan_ranges = $resource['input']['network_vlan_ranges']['value'] +$tunnel_id_ranges = $resource['input']['tunnel_id_ranges']['value'] +$vxlan_group = $resource['input']['vxlan_group']['value'] +$vni_ranges = $resource['input']['vni_ranges']['value'] +$enable_security_group = $resource['input']['enable_security_group']['value'] +$package_ensure = $resource['input']['package_ensure']['value'] +$supported_pci_vendor_devs = $resource['input']['supported_pci_vendor_devs']['value'] +$sriov_agent_required = $resource['input']['sriov_agent_required']['value'] + +# LP1490438 +file {'/etc/default/neutron-server': + ensure => present, + owner => 'root', + group => 'root', + mode => 644 +} -> + +class { 'neutron::plugins::ml2': + type_drivers => $type_drivers, + tenant_network_types => $tenant_network_types, + mechanism_drivers => $mechanism_drivers, + flat_networks => $flat_networks, + network_vlan_ranges => $network_vlan_ranges, + tunnel_id_ranges => $tunnel_id_ranges, + vxlan_group => $vxlan_group, + vni_ranges => $vni_ranges, + enable_security_group => $enable_security_group, + package_ensure => $package_ensure, + supported_pci_vendor_devs => $supported_pci_vendor_devs, + sriov_agent_required => $sriov_agent_required, +} -> + +exec { 'neutron-db-sync': + provider => 'shell', + command => "${command} stamp head", + path => [ '/usr/bin', '/bin' ], + onlyif => "${command} current | grep -qE '^Current revision.*None$' " +} + +include neutron::params + +package { 'neutron': + ensure => $package_ensure, + name => $::neutron::params::package_name, + before => Exec['neutron-db-sync'] +} \ No newline at end of file diff --git a/resources/neutron_plugins_ml2_puppet/meta.yaml b/resources/neutron_plugins_ml2_puppet/meta.yaml new file mode 100644 index 00000000..c5ca3674 --- /dev/null +++ b/resources/neutron_plugins_ml2_puppet/meta.yaml @@ -0,0 +1,57 @@ +handler: puppet +id: 'neutron_plugins_ml2_puppet' +input: + ip: + schema: str! + value: + ssh_key: + schema: str! + value: + ssh_user: + schema: str! + value: + + type_drivers: + schema: [str] + value: ['local', 'flat', 'vlan', 'gre', 'vxlan'] + tenant_network_types: + schema: [str] + value: ['local', 'flat', 'vlan', 'gre', 'vxlan'] + mechanism_drivers: + schema: [str] + value: ['openvswitch', 'linuxbridge'] + flat_networks: + schema: [str] + value: ['*'] + network_vlan_ranges: + schema: [str] + value: ['physnet1:1000:2999'] + tunnel_id_ranges: + schema: [str] + value: ['20:100'] + vxlan_group: + schema: str + value: '224.0.0.1' + vni_ranges: + schema: [str] + value: ['10:100'] + enable_security_group: + schema: bool + value: true + package_ensure: + schema: str + value: 'present' + supported_pci_vendor_devs: + schema: [str] + value: ['15b3:1004', '8086:10ca'] + sriov_agent_required: + schema: bool + value: false + + git: + schema: {repository: str!, branch: str!} + value: {repository: 'https://github.com/openstack/puppet-neutron', branch: '5.1.0'} + +puppet_module: 'neutron' +tags: [resource/neutron, resource/neutron_plugins_ml2] +version: 1.0.0 diff --git a/resources/neutron_plugins_ovs_puppet/README.md b/resources/neutron_plugins_ovs_puppet/README.md deleted file mode 100644 index af945afe..00000000 --- a/resources/neutron_plugins_ovs_puppet/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Neutron OVS plugin puppet resource - -Configure the neutron server to use the OVS plugin. -This configures the plugin for the API server, but does nothing -about configuring the agents that must also run and share a config -file with the OVS plugin if both are on the same machine. - -Note, this plugin was deprecated, you may want to use the ML2 plugin instead. - -NB: don't need tunnel ID range when using VLANs, -*but* you do need the network vlan range regardless of type, -because the list of networks there is still important -even if the ranges aren't specified -if type is vlan or flat, a default of physnet1:1000:2000 is used -otherwise this will not be set by default. - -source https://github.com/openstack/puppet-neutron/blob/5.1.0/manifests/plugins/ovs.pp \ No newline at end of file diff --git a/resources/neutron_plugins_ovs_puppet/actions/remove.pp b/resources/neutron_plugins_ovs_puppet/actions/remove.pp deleted file mode 100644 index 1ab65452..00000000 --- a/resources/neutron_plugins_ovs_puppet/actions/remove.pp +++ /dev/null @@ -1,15 +0,0 @@ -class { 'neutron::plugins::ovs': - package_ensure => 'absent', -} - -include neutron::params - -package { 'neutron': - ensure => 'absent', - name => $::neutron::params::package_name, -} - -# Remove external class dependency -Service <| title == 'neutron-plugin-ovs-service' |> { - require => undef -} \ No newline at end of file diff --git a/resources/neutron_plugins_ovs_puppet/actions/run.pp b/resources/neutron_plugins_ovs_puppet/actions/run.pp deleted file mode 100644 index e4816044..00000000 --- a/resources/neutron_plugins_ovs_puppet/actions/run.pp +++ /dev/null @@ -1,51 +0,0 @@ -$resource = hiera($::resource_name) - -$ip = $resource['input']['ip']['value'] - -$db_user = $resource['input']['db_user']['value'] -$db_host = $resource['input']['db_host']['value'] -$db_password = $resource['input']['db_password']['value'] -$db_name = $resource['input']['db_name']['value'] - -$package_ensure = $resource['input']['package_ensure']['value'] -$sql_max_retries = $resource['input']['sql_max_retries']['value'] -$sql_idle_timeout = $resource['input']['sql_idle_timeout']['value'] -$reconnect_interval = $resource['input']['reconnect_interval']['value'] -$tenant_network_type = $resource['input']['tenant_network_type']['value'] -$network_vlan_ranges = $resource['input']['network_vlan_ranges']['value'] -$tunnel_id_ranges = $resource['input']['tunnel_id_ranges']['value'] -$vxlan_udp_port = $resource['input']['vxlan_udp_port']['value'] - -# Stamp neutron head, if current version is None, or upgrade head would fail later -$command = '/usr/bin/neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini' -class { 'neutron::plugins::ovs': - package_ensure => $package_ensure, - sql_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}", - sql_max_retries => $sql_max_retries, - sql_idle_timeout => $sql_idle_timeout, - reconnect_interval => $reconnect_interval, - tenant_network_type => $tenant_network_type, - network_vlan_ranges => $network_vlan_ranges, - tunnel_id_ranges => $tunnel_id_ranges, - vxlan_udp_port => $vxlan_udp_port, -} -> - -exec { 'neutron-db-sync': - provider => 'shell', - command => "${command} stamp head", - path => [ '/usr/bin', '/bin' ], - onlyif => "${command} current | grep -qE '^Current revision.*None$' " -} - -include neutron::params - -package { 'neutron': - ensure => $package_ensure, - name => $::neutron::params::package_name, - before => Exec['neutron-db-sync'] -} - -# Remove external class dependency -Service <| title == 'neutron-plugin-ovs-service' |> { - require => undef -} diff --git a/resources/neutron_plugins_ovs_puppet/meta.yaml b/resources/neutron_plugins_ovs_puppet/meta.yaml deleted file mode 100644 index 06b770d6..00000000 --- a/resources/neutron_plugins_ovs_puppet/meta.yaml +++ /dev/null @@ -1,58 +0,0 @@ -handler: puppet -id: 'neutron_plugins_ovs_puppet' -input: - ip: - schema: str! - value: - ssh_key: - schema: str! - value: - ssh_user: - schema: str! - value: - - package_ensure: - schema: str - value: 'present' - sql_max_retries: - schema: str - value: - sql_idle_timeout: - schema: str - value: - reconnect_interval: - schema: str - value: - tenant_network_type: - schema: str - value: 'vlan' - network_vlan_ranges: - schema: str - value: - tunnel_id_ranges: - schema: str - value: '1:1000' - vxlan_udp_port: - schema: int - value: 4789 - - db_user: - schema: str! - value: - db_password: - schema: str! - value: - db_name: - schema: str! - value: - db_host: - schema: str! - value: - - git: - schema: {repository: str!, branch: str!} - value: {repository: 'https://github.com/openstack/puppet-neutron', branch: '5.1.0'} - -puppet_module: 'neutron' -tags: [resource/neutron, resource/neutron_plugins_ovs] -version: 1.0.0