From 5d53a641f6ec869dafa26860e81ee824671ac2b1 Mon Sep 17 00:00:00 2001 From: Igor Gajsin Date: Mon, 11 Jan 2016 16:57:08 +0300 Subject: [PATCH] refactoring manifests Do it more granular and clear. Remove useless and redundant things. Add new task. Change-Id: I0c218cf373f2d85dd3e57533d3780036312d4aae --- deployment_scripts/puppet/manifests/agents.pp | 19 ++-- .../puppet/manifests/compute-vmware.pp | 71 +++++--------- .../puppet/manifests/controllers.pp | 23 +++++ .../puppet/manifests/override_hiera.pp | 3 +- .../puppet/manifests/set-neutron-timeout.pp | 17 ++++ deployment_scripts/puppet/manifests/site.pp | 34 ++++--- .../parser/functions/get_agents_data.rb | 22 +++-- .../modules/vmware_dvs/manifests/agent.pp | 49 +++++++++- .../modules/vmware_dvs/manifests/compute.pp | 86 +++++++++++++++++ .../modules/vmware_dvs/manifests/init.pp | 77 +++++----------- .../vmware_dvs/manifests/neutron_server.pp | 43 +++++++++ deployment_tasks.yaml | 92 ++++++++++++++----- metadata.yaml | 4 +- 13 files changed, 384 insertions(+), 156 deletions(-) create mode 100644 deployment_scripts/puppet/manifests/controllers.pp create mode 100644 deployment_scripts/puppet/manifests/set-neutron-timeout.pp create mode 100644 deployment_scripts/puppet/modules/vmware_dvs/manifests/compute.pp create mode 100644 deployment_scripts/puppet/modules/vmware_dvs/manifests/neutron_server.pp diff --git a/deployment_scripts/puppet/manifests/agents.pp b/deployment_scripts/puppet/manifests/agents.pp index 813b11c..1f2787e 100644 --- a/deployment_scripts/puppet/manifests/agents.pp +++ b/deployment_scripts/puppet/manifests/agents.pp @@ -12,11 +12,18 @@ # License for the specific language governing permissions and limitations # under the License. -notice('MODULAR: vmware_dvs agent install') +notice('MODULAR: fuel-plugin-vmware-dvs/agent') -$vcenter = hiera('vcenter', {}) -$vmware_dvs = hiera_hash('fuel-plugin-vmware-dvs', {}) -$neutron = hiera_hash('neutron_config', {}) -$agents = get_agents_data($vcenter, $neutron, $vmware_dvs) +$vcenter = hiera('vcenter', {}) +$vmware_dvs = hiera_hash('fuel-plugin-vmware-dvs', {}) +$neutron = hiera_hash('neutron_config', {}) +$n_fqdn = hiera('fqdn') +$roles = hiera_array('roles', {}) +$agents = get_agents_data($vcenter, $neutron, $vmware_dvs, $n_fqdn, $roles) -create_resources(vmware_dvs::agent, $agents) +$defaults = { + 'neutron_url_timeout' => '3600', + 'py_root' => '/usr/lib/python2.7/dist-packages', +} + +create_resources(vmware_dvs::agent, $agents, $defaults) diff --git a/deployment_scripts/puppet/manifests/compute-vmware.pp b/deployment_scripts/puppet/manifests/compute-vmware.pp index c1dddb3..011e2c1 100644 --- a/deployment_scripts/puppet/manifests/compute-vmware.pp +++ b/deployment_scripts/puppet/manifests/compute-vmware.pp @@ -1,9 +1,21 @@ +# Copyright 2015 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + notice('MODULAR: fuel-plugin-vmware-dvs/compute-vmware') -include nova::params - -$neutron_config = hiera_hash('neutron_config') -$nova_hash = hiera_hash('nova') +$neutron_config = hiera_hash('neutron_config') +$nova_hash = hiera_hash('nova') $management_vip = hiera('management_vip') $service_endpoint = hiera('service_endpoint', $management_vip) @@ -19,47 +31,12 @@ $admin_identity_uri = "http://${service_endpoint}:35357" $admin_auth_url = "${admin_identity_uri}/${auth_api_version}" $neutron_url = "http://${neutron_endpoint}:9696" -class {'nova::network::neutron': - neutron_admin_password => $admin_password, - neutron_admin_tenant_name => $admin_tenant_name, - neutron_region_name => $region_name, - neutron_admin_username => $admin_username, - neutron_admin_auth_url => $admin_auth_url, - neutron_url => $neutron_url, -} - -file {'/usr/lib/python2.7/dist-packages/nova.patch': - source => 'puppet:///modules/vmware_dvs/nova.patch', - notify => Exec['apply-nova-patch'], -} -exec {'apply-nova-patch': - path => '/usr/bin:/usr/sbin:/bin', - command => 'patch -d /usr/lib/python2.7/dist-packages -N -p1 - < /usr/lib/python2.7/dist-packages/nova.patch', - refreshonly => true, -} - -augeas { 'sysctl-net.bridge.bridge-nf-call-arptables': - context => '/files/etc/sysctl.conf', - changes => "set net.bridge.bridge-nf-call-arptables '1'", -} -augeas { 'sysctl-net.bridge.bridge-nf-call-iptables': - context => '/files/etc/sysctl.conf', - changes => "set net.bridge.bridge-nf-call-iptables '1'", -} -augeas { 'sysctl-net.bridge.bridge-nf-call-ip6tables': - context => '/files/etc/sysctl.conf', - changes => "set net.bridge.bridge-nf-call-ip6tables '1'", -} - -service { 'nova-compute': - ensure => 'running', - name => $::nova::params::compute_service_name, -} -Nova_config<| |> ~> Service['nova-compute'] - -if($::operatingsystem == 'Ubuntu') { - tweaks::ubuntu_service_override { 'nova-network': - package_name => 'nova-network', - } +class {'::vmware_dvs::compute': + admin_password => $admin_password, + admin_tenant_name => $admin_tenant_name, + region_name => $region_name, + admin_username => $admin_username, + admin_auth_url => $admin_auth_url, + neutron_url => $neutron_url, + neutron_url_timeout => '3600', } diff --git a/deployment_scripts/puppet/manifests/controllers.pp b/deployment_scripts/puppet/manifests/controllers.pp new file mode 100644 index 0000000..022de99 --- /dev/null +++ b/deployment_scripts/puppet/manifests/controllers.pp @@ -0,0 +1,23 @@ +# Copyright 2016 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +notice('MODULAR: fuel-plugin-vmware-dvs/controllers') + +$py_root = '/usr/lib/python2.7/dist-packages' +$ml2_driver_path = 'neutron/plugins/ml2/drivers/mech_vmware_dvs' +$path = "${py_root}/${ml2_driver_path}" + +class {'::vmware_dvs::neutron_server': + path => $path, +} diff --git a/deployment_scripts/puppet/manifests/override_hiera.pp b/deployment_scripts/puppet/manifests/override_hiera.pp index 441c73b..b856301 100644 --- a/deployment_scripts/puppet/manifests/override_hiera.pp +++ b/deployment_scripts/puppet/manifests/override_hiera.pp @@ -1,3 +1,4 @@ -notice('MODULAR: vmware_dvs overrride hiera task') +notice('MODULAR: fuel-plugin-vmware-dvs/overrride_hiera') + $src = '/etc/hiera/override/plugins.yaml' $res = override_hiera($src) diff --git a/deployment_scripts/puppet/manifests/set-neutron-timeout.pp b/deployment_scripts/puppet/manifests/set-neutron-timeout.pp new file mode 100644 index 0000000..a57dd01 --- /dev/null +++ b/deployment_scripts/puppet/manifests/set-neutron-timeout.pp @@ -0,0 +1,17 @@ +# Copyright 2016 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +notice('MODULAR: fuel-plugin-vmware-dvs/set-neutron-timeout') + +nova_config { 'neutron/timeout': value => '3600'} diff --git a/deployment_scripts/puppet/manifests/site.pp b/deployment_scripts/puppet/manifests/site.pp index bf38271..89475b0 100644 --- a/deployment_scripts/puppet/manifests/site.pp +++ b/deployment_scripts/puppet/manifests/site.pp @@ -14,18 +14,30 @@ notice('MODULAR: fuel-plugin-vmware-dvs') -$vcenter = hiera('vcenter', {}) -$vmware_dvs = hiera_hash('fuel-plugin-vmware-dvs', {}) -$neutron = hiera_hash('neutron_config', {}) +$vcenter = hiera_hash('vcenter', {}) +$computes = $vcenter['computes'][0] +$vsphere_hostname = $computes['vc_host'] +$vsphere_login = $computes['vc_user'] +$vsphere_password = $computes['vc_password'] -$agents = get_agents_data($vcenter, $neutron, $vmware_dvs) -$agents_arr = values($agents) -$vc_creds = $agents_arr[1] +$neutron = hiera_hash('neutron_config', {}) +$physnet = $neutron["predefined_networks"]["admin_internal_net"]["L2"]["physnet"] + +$vmware_dvs = hiera_hash('fuel-plugin-vmware-dvs', {}) +$vds = $vmware_dvs['vmware_dvs_net_maps'] +$network_maps = "${physnet}:${vds}" + +$py_root = '/usr/lib/python2.7/dist-packages' +$ml2_driver_path = 'neutron/plugins/ml2/drivers/mech_vmware_dvs' +$ml2_plugin_path = 'neutron/cmd/eventlet/plugins/dvs_neutron_agent.py' +$driver_path = "${py_root}/${ml2_driver_path}" +$plugin_path = "${py_root}/${ml2_plugin_path}" class {'::vmware_dvs': - vsphere_hostname => $vc_creds['vsphere_hostname'], - vsphere_login => $vc_creds['vsphere_login'], - vsphere_password => $vc_creds['vsphere_password'], - network_maps => $vc_creds['network_maps'], - neutron_url_timeout => '3600', + vsphere_hostname => $vsphere_hostname, + vsphere_login => $vsphere_login, + vsphere_password => $vsphere_password, + network_maps => $network_maps, + driver_path => $driver_path, + plugin_path => $plugin_path, } diff --git a/deployment_scripts/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb b/deployment_scripts/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb index 6e6cb73..fb74fe1 100644 --- a/deployment_scripts/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb +++ b/deployment_scripts/puppet/modules/vmware_dvs/lib/puppet/parser/functions/get_agents_data.rb @@ -1,22 +1,26 @@ -module Puppet::Parser::Functions + module Puppet::Parser::Functions newfunction(:get_agents_data, :type => :rvalue, :doc => <<-EOS Create parameters for the agent resource EOS ) do |args| - raise(Puppet::ParseError, 'Shoud have 3 arguments!') if args.size < 2 or args[0] == "" + raise(Puppet::ParseError, 'Shoud have 5 arguments!') if args.size < 4 or args[0] == "" vcenter = args[0]['computes'] physnet = args[1]["predefined_networks"]["admin_internal_net"]["L2"]["physnet"] dvSwitch = args[2]["vmware_dvs_net_maps"] + current_node = args[3].split(".")[0] + controllersp = args[4].any? {|role| role.include?("controller")} agents = [] vcenter.each {|vc| - agent = {} - agent["host"] = vc["availability_zone_name"] + "-" + vc["service_name"] - agent["vsphere_hostname"] = vc["vc_host"] - agent["vsphere_login"] = vc["vc_user"] - agent["vsphere_password"] = vc["vc_password"] - agent["network_maps"] = physnet + ":" + dvSwitch - agents.push(agent) + if (vc["target_node"] == "controllers" and controllersp) or current_node == vc["target_node"] + agent = {} + agent["host"] = vc["availability_zone_name"] + "-" + vc["service_name"] + agent["vsphere_hostname"] = vc["vc_host"] + agent["vsphere_login"] = vc["vc_user"] + agent["vsphere_password"] = vc["vc_password"] + agent["network_maps"] = physnet + ":" + dvSwitch + agents.push(agent) + end } Hash[agents.collect {|agent| [agent["host"], agent]}] end diff --git a/deployment_scripts/puppet/modules/vmware_dvs/manifests/agent.pp b/deployment_scripts/puppet/modules/vmware_dvs/manifests/agent.pp index e205e23..7d1fec4 100644 --- a/deployment_scripts/puppet/modules/vmware_dvs/manifests/agent.pp +++ b/deployment_scripts/puppet/modules/vmware_dvs/manifests/agent.pp @@ -12,19 +12,58 @@ # License for the specific language governing permissions and limitations # under the License. +# === Parameters +# +# [*host*] +# (required) String. The host parameter for nova-compute process +# +# [*vsphere_hostname*] +# (required) String. This is a name or ip of VMware vSphere server. +# +# [*vsphere_login*] +# (required) String. This is a name of VMware vSphere user. +# +# [*vsphere_password*] +# (required) String. This is a password of VMware vSphere user. +# +# [*network_maps*] +# (required) String. This is a name of DVS. +# +# [*neutron_url_timeout*] +# (required) String. This is the timeout for neutron. +# +# [*py_root*] +# (required) String. Path for python's dist-packages. + + define vmware_dvs::agent( - $host = 'vcenter-servicename', - $vsphere_hostname = '192.168.0.1', - $vsphere_login = 'administrator@vsphere.local', - $vsphere_password = 'StrongPassword!', - $network_maps = 'physnet1:dvSwitch1', + $host = 'vcenter-servicename', + $vsphere_hostname = '192.168.0.1', + $vsphere_login = 'administrator@vsphere.local', + $vsphere_password = 'StrongPassword!', + $network_maps = 'physnet1:dvSwitch1', + $neutron_url_timeout = '3600', + $py_root = '/usr/lib/python2.7/dist-packages', ) { + $agent_config = "/etc/neutron/plugins/ml2/vmware_dvs-${host}.ini" $agent_name = "neutron-plugin-vmware-dvs-agent-${host}" $agent_init = "/etc/init/${agent_name}.conf" $agent_log = "/var/log/neutron/vmware-dvs-agent-${host}.log" + nova_config {'neutron/url_timeout': value => $neutron_url_timeout} + + file {"${py_root}/nova.patch": + source => 'puppet:///modules/vmware_dvs/nova.patch', + notify => Exec['apply-nova-patch'], + } + exec {'apply-nova-patch': + path => '/usr/bin:/usr/sbin:/bin:/sbin', + command => "patch -d ${py_root} -N -p1 < ${py_root}/nova.patch", + refreshonly => true, + } + file {$agent_config: ensure => present, content => template('vmware_dvs/agent_config.erb'), diff --git a/deployment_scripts/puppet/modules/vmware_dvs/manifests/compute.pp b/deployment_scripts/puppet/modules/vmware_dvs/manifests/compute.pp new file mode 100644 index 0000000..cf17799 --- /dev/null +++ b/deployment_scripts/puppet/modules/vmware_dvs/manifests/compute.pp @@ -0,0 +1,86 @@ +# Copyright 2016 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# === Parameters +# +# [*admin_password*] +# (required) String. The admin's password +# +# [*admin_tenant_name*] +# (required) String. Name of the tenant's admin +# +# [*region_name*] +# (required) String. +# +# [*admin_username*] +# (required) String. +# +# [*admin_auth_url*] +# (required) String. +# +# [*neutron_url*] +# (required) String. +# +# [*neutron_url_timeout*] +# (optional) String. +# + +class vmware_dvs::compute( + $admin_password, + $admin_tenant_name, + $region_name, + $admin_username, + $admin_auth_url, + $neutron_url, + $neutron_url_timeout = '3600', +) +{ + include ::nova::params + + class {'::nova::network::neutron': + neutron_admin_password => $admin_password, + neutron_admin_tenant_name => $admin_tenant_name, + neutron_region_name => $region_name, + neutron_admin_username => $admin_username, + neutron_admin_auth_url => $admin_auth_url, + neutron_url => $neutron_url, + neutron_url_timeout => $neutron_url_timeout, + } + + augeas { 'sysctl-net.bridge.bridge-nf-call-arptables': + context => '/files/etc/sysctl.conf', + changes => "set net.bridge.bridge-nf-call-arptables '1'", + } + augeas { 'sysctl-net.bridge.bridge-nf-call-iptables': + context => '/files/etc/sysctl.conf', + changes => "set net.bridge.bridge-nf-call-iptables '1'", + } + augeas { 'sysctl-net.bridge.bridge-nf-call-ip6tables': + context => '/files/etc/sysctl.conf', + changes => "set net.bridge.bridge-nf-call-ip6tables '1'", + } + + service { 'nova-compute': + ensure => 'running', + name => $::nova::params::compute_service_name, + } + Nova_config<| |> ~> Service['nova-compute'] + + if($::operatingsystem == 'Ubuntu') { + tweaks::ubuntu_service_override { 'nova-network': + package_name => 'nova-network', + } + } + +} diff --git a/deployment_scripts/puppet/modules/vmware_dvs/manifests/init.pp b/deployment_scripts/puppet/modules/vmware_dvs/manifests/init.pp index 670dbad..a9858ff 100644 --- a/deployment_scripts/puppet/modules/vmware_dvs/manifests/init.pp +++ b/deployment_scripts/puppet/modules/vmware_dvs/manifests/init.pp @@ -30,18 +30,21 @@ # [*network_maps*] # (required) String. This is a name of DVS. # -# [*neutron_url_timeout*] -# (optional) String. This is the timeout for neutron +# [*driver_path*] +# (required) String. This is the ml2 driver's path. +# +# [*plugin_path*] +# (required) String. This is the ml2 plugin's path. class vmware_dvs( - $vsphere_hostname = '192.168.0.1', - $vsphere_login = 'administrator@vsphere.loc', - $vsphere_password = 'StrongPassword!', - $network_maps = 'physnet2:dvSwitch1', - $neutron_url_timeout = '3600', + $vsphere_hostname = '192.168.0.1', + $vsphere_login = 'administrator@vsphere.loc', + $vsphere_password = 'StrongPassword!', + $network_maps = 'physnet2:dvSwitch1', + $driver_path = 'neutron/plugins/ml2/drivers/mech_vmware_dvs', + $plugin_path = 'neutron/cmd/eventlet/plugins/dvs_neutron_agent.py', ) { - $py_root = '/usr/lib/python2.7/dist-packages' neutron_config { 'DEFAULT/notification_driver': value => 'messagingv2'; 'DEFAULT/notification_topics': value => 'notifications,vmware_dvs'; @@ -55,53 +58,21 @@ class vmware_dvs( package { ['python-suds','python-mech-vmware-dvs']: ensure => present, }-> - file {"${py_root}/neutron/plugins/ml2/drivers/mech_vmware_dvs": + file {$driver_path: ensure => 'link', target => '/usr/local/lib/python2.7/dist-packages/mech_vmware_dvs', } + file {'dvs_neutron_agent.py': + path => $plugin_path, + source => 'puppet:///modules/vmware_dvs/dvs_neutron_agent.py', + } - service { 'neutron-server': - ensure => running, - enable => true, - subscribe => File["${py_root}/neutron/plugins/ml2/drivers/mech_vmware_dvs"], - } - - file_line { 'neutron_timeout': - path => '/etc/haproxy/conf.d/085-neutron.cfg', - line => ' timeout server 1h', - after => 'listen neutron', - } - - service {'haproxy': - ensure => running, - hasrestart => true, - restart => '/sbin/ip netns exec haproxy service haproxy reload', - subscribe => File_Line['neutron_timeout'], - } - - nova_config {'neutron/url_timeout': value => $neutron_url_timeout} - - file {"${py_root}/nova.patch": - source => 'puppet:///modules/vmware_dvs/nova.patch', - notify => Exec['apply-nova-patch'], - } - exec {'apply-nova-patch': - path => '/usr/bin:/usr/sbin:/bin:/sbin', - command => "patch -d ${py_root} -N -p1 < ${py_root}/nova.patch", - refreshonly => true, - } - - file {'dvs_neutron_agent.py': - path => "${py_root}/neutron/cmd/eventlet/plugins/dvs_neutron_agent.py", - source => 'puppet:///modules/vmware_dvs/dvs_neutron_agent.py', - } - - file {'neutron-dvs-agent': - path => '/usr/local/bin/neutron-dvs-agent', - source => 'puppet:///modules/vmware_dvs/neutron-dvs-agent', - owner => 'root', - group => 'root', - mode => '0755', - require => Package['python-mech-vmware-dvs'], - } + file {'neutron-dvs-agent': + path => '/usr/local/bin/neutron-dvs-agent', + source => 'puppet:///modules/vmware_dvs/neutron-dvs-agent', + owner => 'root', + group => 'root', + mode => '0755', + require => Package['python-mech-vmware-dvs'], + } } diff --git a/deployment_scripts/puppet/modules/vmware_dvs/manifests/neutron_server.pp b/deployment_scripts/puppet/modules/vmware_dvs/manifests/neutron_server.pp new file mode 100644 index 0000000..c8914e3 --- /dev/null +++ b/deployment_scripts/puppet/modules/vmware_dvs/manifests/neutron_server.pp @@ -0,0 +1,43 @@ +# Copyright 2016 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# === Parameters +# +# [*path*] +# (required) String. The path to the mech_vmware_dvs ml2 driver. +# + +class vmware_dvs::neutron_server( + $path = 'filepath', +) +{ + service { 'neutron-server': + ensure => running, + enable => true, + subscribe => File[$path], + } + + file_line { 'neutron_timeout': + path => '/etc/haproxy/conf.d/085-neutron.cfg', + line => ' timeout server 1h', + after => 'listen neutron', + } + + service {'haproxy': + ensure => running, + hasrestart => true, + restart => '/sbin/ip netns exec haproxy service haproxy reload', + subscribe => File_Line['neutron_timeout'], + } +} diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml index 7e96ce0..367a5a2 100644 --- a/deployment_tasks.yaml +++ b/deployment_tasks.yaml @@ -1,4 +1,5 @@ - id: vmware-dvs-property-hypervisor_type + version: 2.0.0 role: ['primary-controller'] required_for: [post_deployment_end] requires: [disable_keystone_service_token] @@ -8,9 +9,10 @@ timeout: 120 - id: vmware-dvs-override-hiera - groups: ['primary-controller','controller'] - required_for: [openstack-network-plugins-l2] - requires: [openstack-network-server-config] + version: 2.0.0 + groups: ['primary-controller','controller', 'compute-vmware'] + required_for: [openstack-network-server-config, vmware-dvs-network-common-config] + requires: [override_configuration] type: puppet parameters: puppet_manifest: puppet/manifests/override_hiera.pp @@ -18,9 +20,10 @@ timeout: 720 - id: vmware-dvs-setup-neutron-plugin - groups: ['primary-controller','controller'] - required_for: [openstack-network-plugins-l2] - requires: [vmware-dvs-override-hiera] + version: 2.0.0 + groups: ['primary-controller','controller', 'compute-vmware'] + required_for: [primary-openstack-network-plugins-l2,openstack-network-plugins-l2,vmware-dvs-network-plugins-l2] + requires: [openstack-network-common-config, vmware-dvs-network-common-config, vmware-dvs-override-hiera] type: puppet parameters: puppet_manifest: puppet/manifests/site.pp @@ -28,9 +31,10 @@ timeout: 720 - id: vmware-dvs-neutron-agent-install + version: 2.0.0 groups: ['primary-controller','controller','compute-vmware'] require_for: [openstack-network-networks] - requires: [vware-dvs-network-common-config] + requires: [vmware-dvs-network-common-config] type: puppet parameters: puppet_manifest: puppet/manifests/agents.pp @@ -38,20 +42,57 @@ timeout: 720 - id: vmware-dvs-compute-vmware + version: 2.0.0 groups: ['compute-vmware'] - requires: [top-role-compute-vmware] + requires: [vmware-dvs-network-compute-nova] type: puppet parameters: puppet_manifest: puppet/manifests/compute-vmware.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 720 -- id: vware-dvs-network-common-config +- id: vmware-dvs-network-compute-nova type: puppet version: 2.0.0 - groups: [compute-vmware] - required_for: [openstack-network-end] - requires: [openstack-network-start] + groups: ['compute-vmware'] + required_for: [vmware-dvs-network-end] + requires: [vmware-dvs-network-common-config,vmware-dvs-network-agents-l3,vmware-dvs-network-agents-metadata] + cross-depends: + - name: /(primary-)?openstack-network-plugins-l2/ + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/compute-nova.pp + puppet_modules: /etc/puppet/modules + timeout: 1800 + +- id: vmware-dvs-set-neutron-timeout + version: 2.0.0 + groups: ['primary-controller','controller'] + required_for: [deploy_end] + requires: [openstack-network-server-nova] + type: puppet + parameters: + puppet_manifest: puppet/manifests/set-neutron-timeout.pp + puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 720 + +# Anchor (empty task) for another tasks, say 'tenant network FW setup starting' +- id: vmware-dvs-network-start + type: skipped + version: 2.0.0 + groups: ['primary-controller','controller','compute-vmware'] + requires: [neutron-keystone, neutron-db, netconfig, openstack-controller, top-role-compute] + required_for: [openstack-network-common-config] + cross-depends: + - name: neutron-keystone + - name: openstack-haproxy + - name: neutron-db + +- id: vmware-dvs-network-common-config + type: puppet + version: 2.0.0 + groups: ['primary-controller','controller','compute-vmware'] + required_for: [vmware-dvs-network-end] + requires: [vmware-dvs-network-start] parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/openstack-network/common-config.pp puppet_modules: /etc/puppet/modules @@ -60,9 +101,9 @@ - id: vmware-dvs-network-plugins-l2 type: puppet version: 2.0.0 - groups: [compute-vmware] - required_for: [openstack-network-end] - requires: [openstack-network-common-config, openstack-network-server-config] + groups: ['primary-controller','controller','compute-vmware'] + required_for: [vmware-dvs-network-end] + requires: [vmware-dvs-network-common-config, openstack-network-server-config] refresh_on: [neutron_plugin_ml2, neutron_agent_ovs, neutron_config, neutron_api_config] cross-depends: - name: primary-openstack-network-plugins-l2 @@ -71,12 +112,12 @@ puppet_modules: /etc/puppet/modules timeout: 1800 -- id: vmare-dvs-network-agents-l3 +- id: vmware-dvs-network-agents-l3 type: puppet version: 2.0.0 - groups: [compute-vmware] - required_for: [openstack-network-end] - requires: [openstack-network-networks, openstack-network-routers, primary-openstack-network-plugins-l2, openstack-network-plugins-l2] + groups: ['primary-controller','controller','compute-vmware'] + required_for: [vmware-dvs-network-end] + requires: [openstack-network-networks, openstack-network-routers, primary-openstack-network-plugins-l2, vmware-dvs-network-plugins-l2] refresh_on: [neutron_l3_agent_config] cross-depends: - name: /(primary-)?openstack-network-plugins-l2/ @@ -89,9 +130,9 @@ - id: vmware-dvs-network-agents-metadata type: puppet version: 2.0.0 - groups: [compute-vmware] - required_for: [openstack-network-end] - requires: [openstack-network-common-config,openstack-network-server-nova,openstack-network-agents-l3] + groups: ['primary-controller','controller','compute-vmware'] + required_for: [vmware-dvs-network-end] + requires: [vmware-dvs-network-common-config, openstack-network-server-nova,vmware-dvs-network-agents-l3] refresh_on: [neutron_metadata_agent_config] cross-depends: - name: primary-openstack-network-agents-metadata @@ -101,3 +142,10 @@ puppet_modules: /etc/puppet/modules timeout: 1800 +# Anchor (empty task) for another tasks, say 'tenant network FW setup done' +- id: vmware-dvs-network-end + type: skipped + version: 2.0.0 + groups: ['primary-controller','controller','compute-vmware'] + required_for: [deploy_end] + requires: [] diff --git a/metadata.yaml b/metadata.yaml index 55bc4ec..0b374f0 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -3,7 +3,7 @@ name: fuel-plugin-vmware-dvs # Human-readable name for your plugin title: Neutron VMware DVS ML2 plugin # Plugin version -version: '2.1.0' +version: '2.1.4' # Description description: Enable to use plugin vmware_dvs for Neutron # Required fuel version @@ -22,7 +22,7 @@ is_hotpluggable: false # The plugin is compatible with releases in the list releases: - os: ubuntu - version: 2015.1.0-8.0 + version: liberty-8.0 mode: ['ha', 'multinode'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu