export RPMUDR = $(shell pwd)/noarch/opnfv-apex-undercloud-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
export RPMODL = $(shell pwd)/noarch/opnfv-apex-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
export RPMONO = $(shell pwd)/noarch/opnfv-apex-onos-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
-export RPMSFC = $(shell pwd)/noarch/opnfv-apex-opendaylight-sfc-$(RPMVERS)-$(shell echo ${RELEASE} | tr -d '_-').noarch.rpm
.PHONY: all
clean: images-clean rpms-clean iso-clean tacker-clean congress-clean vpp-clean
.PHONY: images
-images: undercloud overcloud-full overcloud-opendaylight overcloud-onos overcloud-opendaylight-sfc
+images: undercloud overcloud-full overcloud-opendaylight overcloud-onos
.PHONY: images-clean
-images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean overcloud-opendaylight-sfc-clean
+images-clean: undercloud-clean overcloud-full-clean overcloud-opendaylight-clean overcloud-onos-clean
@rm -rf images/
.PHONY: rpms
-rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm opendaylight-sfc-rpm
+rpms: common-rpm undercloud-rpm opendaylight-rpm onos-rpm
.PHONY: rpms-check
-rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check opendaylight-sfc-rpm-check
+rpms-check: common-rpm-check undercloud-rpm-check opendaylight-rpm-check onos-rpm-check
.PHONY: rpms-clean
-rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean opendaylight-sfc-rpm-clean
+rpms-clean: common-rpm-clean undercloud-rpm-clean opendaylight-rpm-clean onos-rpm-clean
opnfv-apex-common.tar.gz:
pushd ../ && git archive --format=tar.gz --prefix=opnfv-apex-common-$(RPMVERS)/ HEAD > build/opnfv-apex-common.tar.gz
networking-vpp-rpm: networking-vpp.noarch.rpm
networking-vpp.noarch.rpm: networking-vpp
- pushd networking-vpp && python setup.py bdist_rpm --binary-only
- mv networking-vpp/dist/*.rpm networking-vpp.noarch.rpm
+ pushd networking-vpp && rpmbuild --clean -bb ../rpm_specs/networking-vpp.spec
+ mv networking-vpp/build/rpm/noarch/*.rpm networking-vpp.noarch.rpm
networking-vpp:
- git clone -b stable_vlan_rewrite https://github.com/fepan/networking-vpp.git
+ git clone https://git.openstack.org/openstack/networking-vpp
###############
# UNDERCLOUD #
# build the overcloud RPM
rpmbuild --clean -ba rpm_specs/opnfv-apex-onos.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')"
-###############
-# ODL-SFC #
-###############
-
-.PHONY: overcloud-opendaylight-sfc-clean
-overcloud-opendaylight-sfc-clean:
- @rm -f images/overcloud-full-opendaylight-sfc.qcow2
-
-.PHONY: overcloud-opendaylight-sfc
-overcloud-opendaylight-sfc: images/overcloud-full-opendaylight-sfc.qcow2
-
-images/overcloud-full-opendaylight-sfc.qcow2: images/overcloud-full-opendaylight.qcow2
- @echo "Building the Apex OpenDaylight Overcloud Image"
- @./overcloud-opendaylight-sfc.sh
-
-opnfv-apex-opendaylight-sfc.tar.gz: images/overcloud-full-opendaylight-sfc.qcow2
- tar -czf opnfv-apex-opendaylight-sfc.tar.gz --xform="s:images/overcloud-full-opendaylight-sfc.qcow2:opnfv-apex-opendaylight-sfc-$(RPMVERS)/build/images/overcloud-full-opendaylight-sfc.qcow2:" images/overcloud-full-opendaylight-sfc.qcow2
-
-.PHONY: opendaylight-sfc-rpm-check
-opendaylight-sfc-rpm-check: opnfv-apex-opendaylight-sfc.tar.gz
- rpmbuild --clean -bi -bl rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')"
-
-.PHONY: opendaylight-sfc-rpm
-opendaylight-sfc-rpm: opnfv-apex-opendaylight-sfc.tar.gz $(RPMSFC)
-
-$(RPMSFC):
- @echo "Building the Apex OpenDaylight SFC RPM"
- rpmbuild --clean -ba rpm_specs/opnfv-apex-opendaylight-sfc.spec -D '_topdir %(echo `pwd`)' -D '_builddir %(echo `pwd`)' -D '_sourcedir %(echo `pwd`)' -D '_rpmdir %(echo `pwd`)' -D '_specdir %(echo `pwd`)' -D '_srcrpmdir %(echo `pwd`)' -D "release $(shell echo $(RELEASE) | tr -d '_-')"
-
###############
# ISO #
###############
@ln $(RPMUDR) centos/Packages
@ln $(RPMODL) centos/Packages
@ln $(RPMONO) centos/Packages
- @ln $(RPMSFC) centos/Packages
# add packages to the centos packages
cd centos/Packages && yumdownloader openvswitch
cd centos/Packages && yumdownloader openstack-tripleo
<comps>
<group>
<id>apex-opendaylight</id>
- <name>OPNFV Apex OpenDaylight (non-sfc) Support</name>
+ <name>OPNFV Apex OpenDaylight Support</name>
<description>Disk images and configuration files used to launch an Apex OpenDaylight deployment.</description>
<default>false</default>
<uservisible>false</uservisible>
</group>
<group>
<id>apex-onos</id>
- <name>OPNFV Apex ONOS (non-sfc) Support</name>
+ <name>OPNFV Apex ONOS Support</name>
<description>Disk images and configuration files used to launch an Apex ONOS deployment.</description>
<default>false</default>
<uservisible>false</uservisible>
<packagereq type="mandatory">opnfv-undercloud</packagereq>
</packagelist>
</group>
- <group>
- <id>apex-opendaylight-sfc</id>
- <name>OPNFV Apex OpenDaylight SFC Support</name>
- <description>Disk images and configuration files used to launch an Apex ODL SFC deployment.</description>
- <default>false</default>
- <uservisible>false</uservisible>
- <packagelist>
- <packagereq type="mandatory">opnfv-apex-opendaylight-sfc</packagereq>
- <packagereq type="mandatory">opnfv-common</packagereq>
- <packagereq type="mandatory">opnfv-undercloud</packagereq>
- </packagelist>
- </group>
<group>
<id>additional-devel</id>
<name>Additional Development</name>
<groupid>virtualization-tools</groupid>
<groupid>apex-opendaylight</groupid>
<groupid>apex-onos</groupid>
- <groupid>apex-opendaylight-sfc</groupid>
</grouplist>
<optionlist>
<groupid>virtualization-platform</groupid>
<groupid>virtualization-tools</groupid>
<groupid>apex-opendaylight</groupid>
<groupid>apex-onos</groupid>
- <groupid>apex-opendaylight-sfc</groupid>
</grouplist>
<optionlist>
<groupid>kde-desktop</groupid>
# upload the tacker puppet module and untar it
LIBGUESTFS_BACKEND=direct virt-customize \
--upload ../opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \
+ --run-command "yum update -y python-ipaddress rabbitmq-server erlang*" \
--run-command "if ! rpm -qa | grep python-redis; then yum install -y python-redis; fi" \
--run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
--run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
--run-command "pip install distro flask_restful" \
--run-command "yum install -y etcd" \
--run-command "pip install python-etcd" \
+ --run-command "puppet module install cristifalcas/etcd" \
+ --run-command "yum update -y puppet" \
--install "centos-release-qemu-ev" \
- --run-command "yum update -y" \
+ --run-command "yum update -y qemu-kvm-ev" \
--run-command "yum remove -y qemu-system-x86" \
--upload ../os-net-config.tar.gz:/usr/lib/python2.7/site-packages \
--run-command "cd /usr/lib/python2.7/site-packages/ && rm -rf os_net_config && tar xzf os-net-config.tar.gz" \
- --upload ../noarch/openstack-congress-2016.1-1.el7.centos.noarch.rpm:/root/ \
- --install /root/openstack-congress-2016.1-1.el7.centos.noarch.rpm \
+ --upload ../noarch/$openstack_congress_pkg:/root/ \
+ --install /root/$openstack_congress_pkg \
--install "python2-congressclient" \
--upload puppet-congress.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-congress.tar.gz" \
--run-command "sed -i \"s/'--detailed-exitcodes',/'--detailed-exitcodes','-l','syslog','-l','console',/g\" /var/lib/heat-config/hooks/puppet" \
--run-command "yum install -y /root/fdio/*.rpm" \
--run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
- --run-command "tar zxvf /root/fdio/vpp_papi*.tar.gz -C /" \
--install unzip \
--upload puppet-fdio.tar.gz:/etc/puppet/modules \
--run-command "cd /etc/puppet/modules && tar xzf puppet-fdio.tar.gz" \
--upload ../neutron/agent/l3/router_info.py:/root/fdio_neutron_l3/ \
--upload ../puppet-neutron/manifests/agents/ml2/networking-vpp.pp:/etc/puppet/modules/neutron/manifests/agents/ml2/ \
--upload ../puppet-neutron/manifests/plugins/ml2/networking-vpp.pp:/etc/puppet/modules/neutron/manifests/plugins/ml2/ \
+ --upload ../puppet-neutron/lib/puppet/type/neutron_agent_vpp.rb:/etc/puppet/modules/neutron/lib/puppet/type/ \
+ --mkdir /etc/puppet/modules/neutron/lib/puppet/provider/neutron_agent_vpp \
+ --upload ../puppet-neutron/lib/puppet/provider/neutron_agent_vpp/ini_setting.rb:/etc/puppet/modules/neutron/lib/puppet/provider/neutron_agent_vpp/ \
-a overcloud-full_build.qcow2
rm -rf ovs_nsh_patches
##### Adding ONOS to overcloud #####
#######################################
-# upgrade ovs into ovs 2.5.90 with NSH function
-LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \
- --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \
- -a overcloud-full-onos_build.qcow2
-
-
# get the onos files
rm -rf puppet-onos
populate_cache "$onos_release_uri/$onos_release_file"
+++ /dev/null
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2015 Tim Rozet (Red Hat), Dan Radez (Red Hat) and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -e
-source ./variables.sh
-pushd images > /dev/null
-
-################################################
-##### Adding SFC+OpenDaylight overcloud #####
-################################################
-
-#copy opendaylight overcloud full to odl-sfc
-cp -f overcloud-full-opendaylight.qcow2 overcloud-full-opendaylight-sfc_build.qcow2
-
-# upgrade ovs into ovs 2.5.90 with NSH function
-LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \
- --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \
- -a overcloud-full-opendaylight-sfc_build.qcow2
-
-mv overcloud-full-opendaylight-sfc_build.qcow2 overcloud-full-opendaylight-sfc.qcow2
-popd > /dev/null
--- /dev/null
+Puppet::Type.type(:neutron_agent_vpp).provide(
+ :ini_setting,
+ :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting)
+) do
+
+ def self.file_path
+ '/etc/neutron/plugins/ml2/vpp_agent.ini'
+ end
+
+ # added for backwards compatibility with older versions of inifile
+ def file_path
+ self.class.file_path
+ end
+
+end
\ No newline at end of file
--- /dev/null
+Puppet::Type.newtype(:neutron_agent_vpp) do
+
+ ensurable
+
+ newparam(:name, :namevar => true) do
+ desc 'Section/setting name to manage from vpp agent config.'
+ newvalues(/\S+\/\S+/)
+ end
+
+ newproperty(:value) do
+ desc 'The value of the setting to be defined.'
+ munge do |value|
+ value = value.to_s.strip
+ value.capitalize! if value =~ /^(true|false)$/i
+ value
+ end
+ end
+
+ newparam(:ensure_absent_val) do
+ desc 'A value that is specified as the value property will behave as if ensure => absent was specified'
+ defaultto('<SERVICE DEFAULT>')
+ end
+
+ autorequire(:package) do
+ 'networking-vpp'
+ end
+
+end
\ No newline at end of file
# tuples mapping physical network names to agent's node-specific physical
# network interfaces. Defaults to empty list.
#
-# [*flat_network_if*]
-# VPP interface used for flat network
-# Defaults to ''.
+# [*etcd_host*]
+# etcd server host name/ip
+# Defaults to 127.0.0.1.
+#
+# [*etcd_port*]
+# etcd server listening port.
+# Defaults to 4001.
#
class neutron::agents::ml2::networking-vpp (
$package_ensure = 'present',
$enabled = true,
$manage_service = true,
$physnets = '',
- $flat_network_if = '',
+ $etcd_host = '127.0.0.1',
+ $etcd_port = 4001,
) {
include ::neutron::params
+ Neutron_agent_vpp<||> ~> Service['networking-vpp-agent']
+
+ neutron_agent_vpp {
+ 'ml2_vpp/physnets': value => $physnets;
+ 'ml2_vpp/etcd_host': value => $etcd_host;
+ 'ml2_vpp/etcd_port': value => $etcd_port;
+ 'DEFAULT/host': value => $::fqdn;
+ }
+
if $manage_service {
if $enabled {
$service_ensure = 'running'
}
}
- neutron_plugin_ml2 {
- 'ml2_vpp/physnets': value => $physnets;
- 'ml2_vpp/flat_network_if': value => $flat_network_if;
- }->
service { 'networking-vpp-agent':
- ensure => $service_ensure,
- name => 'networking-vpp-agent',
- enable => $enabled,
- tag => 'neutron-service',
+ ensure => $service_ensure,
+ name => 'networking-vpp-agent',
+ enable => $enabled,
}
}
\ No newline at end of file
# property for a package resource type.
# Defaults to 'present'
#
-# [*agents*]
-# Networking-vpp agents's addresses
-# Defaults to $::os_service_default
+# [*etcd_host*]
+# (required) etcd server host name or IP.
+# Defaults to '127.0.0.1'
+#
+# [*etcd_port*]
+# (optional) etcd server listening port.
+# Defaults to 4001.
+#
+# [*etcd_user*]
+# (optional) User name for etcd authentication
+# Defaults to ''.
+#
+# [*etcd_pass*]
+# (optional) Password for etcd authentication
+# Defaults to ''.
#
class neutron::plugins::ml2::networking-vpp (
$package_ensure = 'present',
- $agents = $::os_service_default,
+ $etcd_host = '127.0.0.1',
+ $etcd_port = 4001,
+ $etcd_user = '',
+ $etcd_pass = '',
) {
require ::neutron::plugins::ml2
)
neutron_plugin_ml2 {
- 'ml2_vpp/agents': value => $agents;
+ 'ml2_vpp/etcd_host': value => $etcd_host;
+ 'ml2_vpp/etcd_port': value => $etcd_port;
+ 'ml2_vpp/etcd_user': value => $etcd_user;
+ 'ml2_vpp/etcd_pass': value => $etcd_pass;
}
}
--- /dev/null
+%define name networking-vpp
+%define version %(python setup.py --version)
+%define release 1
+%define _topdir %(pwd)/build/rpm
+%define _builddir %(pwd)
+%define _rpmdir %(pwd)/build/rpm
+
+Summary: OpenStack Networking for VPP
+Name: %{name}
+Version: %{version}
+Release: %{release}
+License: Apache 2.0
+Group: Development/Libraries
+BuildArch: noarch
+Requires: vpp
+Vendor: OpenStack <openstack-dev@lists.openstack.org>
+Packager: Feng Pan <fpan@redhat.com>
+Url: http://www.openstack.org/
+
+%description
+ML2 Mechanism driver and small control plane for OpenVPP forwarder
+
+%prep
+cat << EOF > %{_builddir}/networking-vpp-agent.service
+[Unit]
+Description=Networking VPP ML2 Agent
+
+[Service]
+ExecStartPre=/usr/bin/systemctl is-active vpp
+ExecStart=/usr/bin/vpp-agent --config-file /etc/neutron/plugins/ml2/vpp_agent.ini
+Type=simple
+Restart=on-failure
+RestartSec=5s
+
+[Install]
+WantedBy=multi-user.target
+
+EOF
+
+%install
+/usr/bin/python setup.py install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
+mkdir -p %{buildroot}/usr/lib/systemd/system
+install %{_builddir}/networking-vpp-agent.service %{buildroot}/usr/lib/systemd/system
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files -f INSTALLED_FILES
+%defattr(-,root,root)
+%attr(644,root,root) /usr/lib/systemd/system/networking-vpp-agent.service
+++ /dev/null
-Name: opnfv-apex-opendaylight-sfc
-Version: 3.0
-Release: %{release}
-Summary: Overcloud Disk images for OPNFV Apex OpenDaylight with SFC deployment
-
-Group: System Environment
-License: Apache 2.0
-URL: https://gerrit.opnfv.org/gerrit/apex.git
-Source0: opnfv-apex-opendaylight-sfc.tar.gz
-
-Provides: opnfv-apex-sdn
-BuildArch: noarch
-Requires: opnfv-apex-common opnfv-apex-undercloud
-
-%description
-Overcloud Disk images for OPNFV Apex OpenDaylight with SFC deployment
-https://wiki.opnfv.org/apex
-
-%prep
-%setup -q
-
-%install
-mkdir -p %{buildroot}%{_var}/opt/opnfv/images/
-install build/images/overcloud-full-opendaylight-sfc.qcow2 %{buildroot}%{_var}/opt/opnfv/images/
-
-%files
-%defattr(644, root, root, -)
-%{_var}/opt/opnfv/images/overcloud-full-opendaylight-sfc.qcow2
-
-%changelog
-* Mon Apr 04 2016 Dan Radez <dradez@redhat.com> - 3.0-0
-- Version update for Colorado
-* Tue Jan 19 2016 Dan Radez <dradez@redhat.com> - 2.1-1
-- Initial Packaging
onos_jdk_uri=http://artifacts.opnfv.org/apex/colorado
onos_ovs_uri=http://artifacts.opnfv.org/apex/colorado
onos_ovs_pkg=package_ovs_rpm3.tar.gz
+openstack_congress_pkg="openstack-congress-2016.1-1$(rpm -E '%dist').noarch.rpm"
doctor_driver=https://raw.githubusercontent.com/openstack/congress/master/congress/datasources/doctor_driver.py
if [ -z ${GS_PATHNAME+x} ]; then
GS_PATHNAME=/colorado
fdio_uri_base=http://artifacts.opnfv.org/apex/colorado
fdio_pkgs=(
-'vpp-16.09-rc1~7_gea60221~b1030.x86_64.rpm'
-'vpp-devel-16.09-rc1~7_gea60221~b1030.x86_64.rpm'
-'vpp-lib-16.09-rc1~7_gea60221~b1030.x86_64.rpm'
-'vpp_papi-1.0.linux-x86_64.tar.gz'
+'vpp-16.09-release.x86_64.rpm'
+'vpp-devel-16.09-release.x86_64.rpm'
+'vpp-lib-16.09-release.x86_64.rpm'
+'vpp-python-api-16.09-release.x86_64.rpm'
)
-honeycomb_pkg='honeycomb-1.0.0-1609.noarch.rpm'
-
-
-ovs_rpm_name=openvswitch-2.5.90-1.el7.centos.x86_64.rpm
-ovs_kmod_rpm_name=openvswitch-kmod-2.5.90-1.el7.centos.x86_64.rpm
+honeycomb_pkg='honeycomb-1.16.9-FINAL.noarch.rpm'
virt_uri_base=https://people.redhat.com/~rjones/libguestfs-RHEL-7.3-preview
libguestfs_pkg='libguestfs-1.32.7-3.el7.x86_64.rpm'
80,Change TenantNIC and PublicNIC to be role specific
81,Fix duplicate NeutronServicePlugins
82,Fixes neutron sdnvpn config resource
+86,Moves sdnvpn config to env file
+87,Pass vlan flag to fdio module when vlan is used for tenant network
+88,Default tenant_nic to its physical name
if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-onos.spec* ]]; then
MAKE_TARGETS+=" onos-rpm-check"
fi
- if [[ $commit_file_list == *build/rpm_specs/opnfv-apex-opendaylight-sfc.spec* ]]; then
- MAKE_TARGETS+=" opendaylight-sfc-rpm-check"
- fi
fi
fi
done
vm_index=4
-ovs_bridges="br-admin br-tenant br-public br-storage"
-ovs_bridges+=" br-private br-external" # Legecy names, remove in E river
+ovs_bridges="br-admin br-tenant br-external br-storage"
+ovs_bridges+=" br-private br-public" # Legacy names, remove in E river
#OPNFV_NETWORK_TYPES=$(python3 -c 'from apex.common.constants import OPNFV_NETWORK_TYPES; print(" ".join(OPNFV_NETWORK_TYPES))')
OPNFV_NETWORK_TYPES+=" admin tenant external storage api"
post_config="TRUE"
debug="FALSE"
+ovs_rpm_name=openvswitch-2.5.90-1.el7.centos.x86_64.rpm
+ovs_kmod_rpm_name=openvswitch-kmod-2.5.90-1.el7.centos.x86_64.rpm
+
declare -i CNT
declare UNDERCLOUD
declare -A deploy_options_array
- opnfv-apex - OpenDaylight L2 / L3 and ONOS support *
- opnfv-apex-onos - ONOS support *
- - opnfv-apex-opendaylight-sfc - OpenDaylight SFC support *
- opnfv-apex-undercloud - (reqed) Undercloud Image
- opnfv-apex-common - (reqed) Supporting config files and scripts
- python34-markupsafe - (reqed) Dependency of opnfv-apex-common **
- python3-ipmi - (reqed) Dependency of opnfv-apex-common **
\* One or more of these RPMs is required
- Only one of opnfv-apex, opnfv-apex-onos and opnfv-apex-opendaylight-sfc is
- required. It is safe to leave the unneeded SDN controller's RPMs
- uninstalled if you do not intend to use them.
+ Only one of opnfv-apex or opnfv-apex-onos is required. It is safe to leave
+ the unneeded SDN controller's RPMs uninstalled if you do not intend to use
+ them.
** These RPMs are not yet distributed by CentOS or EPEL.
Apex has built these for distribution with Apex while CentOS and EPEL do
- Apex .iso file
- Apex overcloud .rpm (opnfv-apex) - For nosdn and OpenDaylight Scenarios
- Apex overcloud onos .rpm (opnfv-apex-onos) - ONOS Scenarios
-- Apex overcloud ODL SFC .rpm (opnfv-apex-opendaylight-sfc) - ODL SFC Scenario
- Apex undercloud .rpm (opnfv-apex-undercloud)
- Apex common .rpm (opnfv-apex-common)
- build.sh - Builds the above artifacts
fi
# get gateway mac
- GW_MAC=$(arping ${GW_IP} -c 1 -I br-public | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})')
+ GW_MAC=$(arping ${GW_IP} -c 1 -I br-external | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})')
if [ -z "$GW_MAC" ]; then
echo "ERROR: Failed to find gateway mac for ${GW_IP}"
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight.yaml"
fi
SDN_IMAGE=opendaylight
- if [ "${deploy_options_array['sfc']}" == 'True' ]; then
- SDN_IMAGE+=-sfc
- if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then
- echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute an SFC deployment."
- echo "Please install the opnfv-apex-opendaylight-sfc package to provide this overcloud image for deployment.${reset}"
- exit 1
- fi
- fi
elif [ "${deploy_options_array['sdn_controller']}" == 'opendaylight-external' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight-external.yaml"
SDN_IMAGE=opendaylight
# Make sure the correct overcloud image is available
if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then
echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment."
- echo "Both ONOS and OpenDaylight are currently deployed from this image."
echo "Please install the opnfv-apex package to provide this overcloud image for deployment.${reset}"
exit 1
fi
--run-command "sed -i 's/\\(^\\s\\+\\)\\(start_daemon "$OVS_VSWITCHD_PRIORITY"\\)/\\1umask 0002 \\&\\& \\2/' /usr/share/openvswitch/scripts/ovs-ctl" \
-a overcloud-full.qcow2
fi
+
+ if [ "${deploy_options_array['sfc']}" == 'True' ]; then
+ # upgrade ovs into ovs 2.5.90 with NSH function
+ LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum install -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_kmod_rpm_name}" \
+ --run-command "yum upgrade -y /root/ovs/rpm/rpmbuild/RPMS/x86_64/${ovs_rpm_name}" \
+ -a overcloud-full.qcow2
+ fi
EOI
elif [ "${deploy_options_array['dataplane']}" != 'ovs' ]; then
if 'dns-domain' not in self:
self['domain_name'] = DOMAIN_NAME
- self['dns_servers'] = self.get('dns_servers', DNS_SERVERS)
+ self['dns_servers'] = self.get('dns_nameservers', DNS_SERVERS)
def _validate_overcloud_nic_order(self, network):
"""
--run-command "cp /root/.ssh/authorized_keys /home/stack/.ssh/" \
--run-command "chown stack:stack /home/stack/.ssh/authorized_keys && chmod 600 /home/stack/.ssh/authorized_keys"
virsh start undercloud
+ virsh autostart undercloud
fi
sleep 10 # let undercloud get started up