commit d927a6798af05535ab862fb72520aa4ab9845d66 Author: Federico Ressi Date: Wed Oct 14 10:28:39 2020 +0200 Add support to OVN to the Vagrantfile Change-Id: I18be7ae43122f2d4c49083c1cbc4f70e46147e5a diff --git a/Vagrantfile b/Vagrantfile index ce68f20..06141fe 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -24,6 +24,9 @@ VAGRANTFILE_DIR = File.dirname(__FILE__) PROVISION_PLAYBOOK = ENV.fetch( "PROVISION_PLAYBOOK", "#{VAGRANTFILE_DIR}/playbooks/vagrant/provision.yaml") +# Playbook directory +PROVISION_DIR = File.dirname(PROVISION_PLAYBOOK) + # Host IP address to be assigned to OpenStack in DevStack HOST_IP = "192.168.33.10" @@ -35,6 +38,13 @@ GIT_BASE = ENV.fetch('GIT_BASE', 'https://opendev.org') TOX_ENVLIST = ENV.fetch('TOX_ENVLIST', '') TOX_EXTRA_ARGS = ENV.fetch('TOX_EXTRA_ARGS', '--notest') +# Allow to switch configuration +DEVSTACK_CONF_NAME = ENV.fetch('DEVSTACK_CONF_NAME', 'ovs') + +DEVSTACK_LOCAL_CONF_FILE = ENV.fetch( + 'DEVSTACK_LOCAL_CONF_FILE', + "#{PROVISION_DIR}/#{DEVSTACK_CONF_NAME}/local.conf" ) + # Local project directories to be copied DEVSTACK_PROJECTS = { # Local directory from where look for devstack project files @@ -123,6 +133,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ansible.playbook = PROVISION_PLAYBOOK ansible.extra_vars = ansible.extra_vars = { 'devstack_projects' => DEVSTACK_PROJECTS, + 'devstack_local_conf_file' => DEVSTACK_LOCAL_CONF_FILE, 'tox_envlist' => TOX_ENVLIST, 'tox_extra_args' => TOX_EXTRA_ARGS, } diff --git a/playbooks/vagrant/local.conf b/playbooks/vagrant/local.conf deleted file mode 100644 index f7d5ce3..0000000 --- a/playbooks/vagrant/local.conf +++ /dev/null @@ -1,30 +0,0 @@ -[[local|localrc]] -ADMIN_PASSWORD=secret -DATABASE_PASSWORD=$ADMIN_PASSWORD -RABBIT_PASSWORD=$ADMIN_PASSWORD -SERVICE_PASSWORD=$ADMIN_PASSWORD - -LOGFILE=/opt/stack/devstack/stack.log -LOG_COLOR=False - - -# Disable unrequired services ------------------------------------------------- - -disable_service horizon -disable_service tempest - - -# Configure Neutron ----------------------------------------------------------- - -HOST_IP=192.168.33.10 -IP_VERSION=4 - - -# Configure Heat -------------------------------------------------------------- - -enable_plugin heat https://opendev.org/openstack/heat.git - - -# Configure Tobiko ------------------------------------------------------------ - -enable_plugin devstack-plugin-tobiko https://opendev.org/x/devstack-plugin-tobiko.git diff --git a/playbooks/vagrant/ovn/local.conf b/playbooks/vagrant/ovn/local.conf new file mode 100644 index 0000000..9d40266 --- /dev/null +++ b/playbooks/vagrant/ovn/local.conf @@ -0,0 +1,75 @@ +[[local|localrc]] +ADMIN_PASSWORD=secret +DATABASE_PASSWORD=$ADMIN_PASSWORD +RABBIT_PASSWORD=$ADMIN_PASSWORD +SERVICE_PASSWORD=$ADMIN_PASSWORD + +LOGFILE=/opt/stack/devstack/stack.log +LOG_COLOR=False + + +# Disable unrequired services ------------------------------------------------- + +disable_service horizon +disable_service tempest + + +# Configure Neutron ----------------------------------------------------------- + +HOST_IP=192.168.33.10 +IP_VERSION=4 + +Q_AGENT=ovn +Q_ML2_PLUGIN_MECHANISM_DRIVERS=ovn,logger +Q_ML2_PLUGIN_TYPE_DRIVERS=local,flat,vlan,geneve +Q_ML2_TENANT_NETWORK_TYPE="geneve" + +enable_service ovn-northd +enable_service ovn-controller +enable_service q-ovn-metadata-agent + +# Use Neutron +enable_service q-svc + +# Disable Neutron agents not used with OVN. +disable_service q-agt +disable_service q-l3 +disable_service q-dhcp +disable_service q-meta + +# Enable services, these services depend on neutron plugin. +enable_plugin neutron https://opendev.org/openstack/neutron +enable_service q-trunk +enable_service q-dns +enable_service q-port-forwarding +enable_service q-qos +enable_service neutron-segments + +# Whether or not to build custom openvswitch kernel modules from the ovs git +# tree. This is disabled by default. This is required unless your distro kernel +# includes ovs+conntrack support. This support was first released in Linux 4.3, +# and will likely be backported by some distros. +# NOTE(mjozefcz): We need to compile the module for Ubuntu Bionic, because default +# shipped kernel module doesn't openflow meter action support. +OVN_BUILD_MODULES=False + + +# Configure Horizon ----------------------------------------------------------- +disable_service horizon + + +# Configure Cinder ------------------------------------------------------------ + +# Cinder (OpenStack Block Storage) is disabled by default to speed up +# DevStack a bit. You may enable it here if you would like to use it. +disable_service cinder c-sch c-api c-vol + + +# Configure Heat -------------------------------------------------------------- + +enable_plugin heat https://opendev.org/openstack/heat.git + + +# Configure Tobiko ------------------------------------------------------------ + +enable_plugin devstack-plugin-tobiko https://opendev.org/x/devstack-plugin-tobiko.git diff --git a/playbooks/vagrant/ovs/local.conf b/playbooks/vagrant/ovs/local.conf new file mode 100644 index 0000000..f7d5ce3 --- /dev/null +++ b/playbooks/vagrant/ovs/local.conf @@ -0,0 +1,30 @@ +[[local|localrc]] +ADMIN_PASSWORD=secret +DATABASE_PASSWORD=$ADMIN_PASSWORD +RABBIT_PASSWORD=$ADMIN_PASSWORD +SERVICE_PASSWORD=$ADMIN_PASSWORD + +LOGFILE=/opt/stack/devstack/stack.log +LOG_COLOR=False + + +# Disable unrequired services ------------------------------------------------- + +disable_service horizon +disable_service tempest + + +# Configure Neutron ----------------------------------------------------------- + +HOST_IP=192.168.33.10 +IP_VERSION=4 + + +# Configure Heat -------------------------------------------------------------- + +enable_plugin heat https://opendev.org/openstack/heat.git + + +# Configure Tobiko ------------------------------------------------------------ + +enable_plugin devstack-plugin-tobiko https://opendev.org/x/devstack-plugin-tobiko.git diff --git a/roles/devstack-tobiko-deploy/tasks/run-stack.yaml b/roles/devstack-tobiko-deploy/tasks/run-stack.yaml index 184bba2..445d402 100644 --- a/roles/devstack-tobiko-deploy/tasks/run-stack.yaml +++ b/roles/devstack-tobiko-deploy/tasks/run-stack.yaml @@ -7,6 +7,7 @@ become_user: stack shell: cmd: | + sudo chown -R stack.stack /opt/stack/ || exit 66 sudo su -l stack -c " cd '{{ devstack_dir }}' && ./stack.sh && diff --git a/roles/devstack-tobiko-deploy/tasks/run-unstack.yaml b/roles/devstack-tobiko-deploy/tasks/run-unstack.yaml index a2f8d38..8b1984d 100644 --- a/roles/devstack-tobiko-deploy/tasks/run-unstack.yaml +++ b/roles/devstack-tobiko-deploy/tasks/run-unstack.yaml @@ -7,6 +7,7 @@ become_user: stack shell: cmd: | + sudo chown -R stack.stack /opt/stack/ || exit 66 sudo su -l stack -c " rm -f '{{ stack_succeeded_file }}'; cd '{{ devstack_dir }}' &&