summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/Makefile77
-rw-r--r--build/cache.sh2
-rw-r--r--build/functions.sh2
-rw-r--r--build/opnfv-environment.yaml46
-rwxr-xr-xbuild/overcloud-full.sh47
-rwxr-xr-xbuild/overcloud-opendaylight.sh34
-rw-r--r--build/patches/0001-Removes-doing-yum-update.patch25
-rw-r--r--build/patches/puppet-neutron-add-odl-settings.patch47
-rw-r--r--build/patches/puppet-neutron-vpp-ml2.patch244
-rw-r--r--build/rpm_specs/openstack-congress-server.service13
-rw-r--r--build/rpm_specs/openstack-congress.spec77
-rw-r--r--build/rpm_specs/openstack-tacker-server.service15
-rw-r--r--build/rpm_specs/openstack-tacker.spec84
-rw-r--r--build/rpm_specs/opnfv-apex-common.spec8
-rw-r--r--build/rpm_specs/opnfv-apex-release.spec2
-rw-r--r--build/rpm_specs/opnfv-apex-undercloud.spec2
-rw-r--r--build/rpm_specs/python-tackerclient.spec44
-rwxr-xr-xbuild/undercloud.sh18
-rw-r--r--build/variables.sh20
-rw-r--r--ci/PR_revision.log14
-rwxr-xr-xci/build.sh7
-rwxr-xr-xci/clean.sh2
-rwxr-xr-xci/dev_dep_check.sh10
-rwxr-xr-xci/test.sh2
-rw-r--r--config/deploy/deploy_settings.yaml6
-rw-r--r--config/deploy/os-odl-bgpvpn-ha.yaml2
-rw-r--r--config/deploy/os-odl-bgpvpn-noha.yaml2
-rw-r--r--config/deploy/os-odl-csit-noha.yaml2
-rw-r--r--config/deploy/os-odl-gluon-noha.yaml2
-rw-r--r--config/deploy/os-odl-nofeature-ha.yaml2
-rw-r--r--config/deploy/os-odl-nofeature-noha.yaml2
-rw-r--r--config/deploy/os-odl-ovs_dpdk-ha.yaml2
-rw-r--r--config/deploy/os-odl-ovs_dpdk-noha.yaml2
-rw-r--r--config/deploy/os-odl_l2-sfc-noha.yaml2
-rw-r--r--config/yum.repos.d/opnfv-apex.repo4
-rwxr-xr-xlib/configure-deps-functions.sh7
-rwxr-xr-xlib/configure-vm171
-rw-r--r--lib/installer/domain.xml2
-rwxr-xr-xlib/overcloud-deploy-functions.sh61
-rwxr-xr-xlib/post-install-functions.sh51
-rw-r--r--lib/python/apex/inventory.py2
-rwxr-xr-xlib/undercloud-functions.sh87
-rwxr-xr-xlib/virtual-setup-functions.sh52
43 files changed, 363 insertions, 940 deletions
diff --git a/build/Makefile b/build/Makefile
index ed983256..2df41424 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -13,18 +13,6 @@ export RELEASE = "0"
export RPM_DIST = $(shell rpm -E %dist)
-export TACKER_REPO := $(shell awk -F\= '/^tacker_repo/ {print $$2}' variables.sh )
-export TACKER_BRANCH := $(shell awk -F\= '/^tacker_branch/ {print $$2}' variables.sh )
-export TACKER_COMMIT := $(shell git ls-remote $(TACKER_REPO) $(TACKER_BRANCH) | awk '{print substr($$1,1,7)}')
-
-export TACKERCLIENT_REPO := $(shell awk -F\= '/^tackerclient_repo/ {print $$2}' variables.sh )
-export TACKERCLIENT_BRANCH := $(shell awk -F\= '/^tackerclient_branch/ {print $$2}' variables.sh )
-export TACKERCLIENT_COMMIT := $(shell git ls-remote $(TACKERCLIENT_REPO) $(TACKERCLIENT_BRANCH) | awk '{print substr($$1,1,7)}')
-
-export CONGRESS_REPO := $(shell awk -F\= '/^congress_repo/ {print $$2}' variables.sh )
-export CONGRESS_BRANCH := $(shell awk -F\= '/^congress_branch/ {print $$2}' variables.sh )
-export CONGRESS_COMMIT := $(shell git ls-remote $(CONGRESS_REPO) $(CONGRESS_BRANCH) | awk '{print substr($$1,1,7)}')
-
export NETVPP_VERS := $(shell grep Version $(shell pwd)/rpm_specs/networking-vpp.spec | head -n 1 | awk '{ print $$2 }')
export NETVPP_REPO := $(shell awk -F\= '/^netvpp_repo/ {print $$2}' variables.sh )
export NETVPP_BRANCH := $(shell awk -F\= '/^netvpp_branch/ {print $$2}' variables.sh )
@@ -129,61 +117,6 @@ python-pep8-check:
pep8 ../lib/python
pep8 ../tests
-###############
-# TACKER #
-###############
-
-$(BUILD_DIR)/openstack-tacker.tar.gz:
- @echo "Preparing the Tacker RPM prerequisites"
- git clone $(TACKER_REPO) -b $(TACKER_BRANCH) $(BUILD_DIR)/openstack-tacker-2016.2
- cp rpm_specs/openstack-tacker-server.service $(BUILD_DIR)/openstack-tacker-2016.2
- tar czf $(BUILD_DIR)/openstack-tacker.tar.gz -C $(BUILD_DIR) openstack-tacker-2016.2
-
-.PHONY: tacker-rpm
-tacker-rpm: $(BUILD_DIR)/openstack-tacker.tar.gz $(BUILD_DIR)/noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm
-
-$(BUILD_DIR)/noarch/openstack-tacker-2016.2-1.git$(TACKER_COMMIT).noarch.rpm:
- @echo "Building the Tacker RPM"
- rpmbuild --clean -ba --target noarch rpm_specs/openstack-tacker.spec $(RPM_DIR_ARGS) -D 'git .git$(TACKER_COMMIT)'
-
-#################
-# TACKERCLIENT #
-#################
-
-$(BUILD_DIR)/python-tackerclient.tar.gz:
- @echo "Preparing the TackerClient RPM prerequisites"
- git clone $(TACKERCLIENT_REPO) -b $(TACKERCLIENT_BRANCH) $(BUILD_DIR)/python-tackerclient-2016.2
- tar czf $(BUILD_DIR)/python-tackerclient.tar.gz -C $(BUILD_DIR) python-tackerclient-2016.2
-
-.PHONY: tackerclient-rpm
-tackerclient-rpm: $(BUILD_DIR)/python-tackerclient.tar.gz $(BUILD_DIR)/noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm
-
-$(BUILD_DIR)/noarch/python-tackerclient-2016.2-1.git$(TACKERCLIENT_COMMIT).noarch.rpm:
- @echo "Building the TackerClient RPM"
- rpmbuild --clean -ba --target noarch rpm_specs/python-tackerclient.spec $(RPM_DIR_ARGS) -D 'git .git$(TACKERCLIENT_COMMIT)'
-
-###############
-# CONGRESS #
-###############
-
-.PHONY: congress-clean
-congress-clean:
- @rm -rf $(BUILD_DIR)/openstack-congress-2016.2
- @rm -f $(BUILD_DIR)/openstack-congress.tar.gz
-
-$(BUILD_DIR)/openstack-congress.tar.gz:
- @echo "Preparing the Congress RPM prerequisites"
- git clone $(CONGRESS_REPO) -b $(CONGRESS_BRANCH) $(BUILD_DIR)/openstack-congress-2016.2
- cp rpm_specs/openstack-congress-server.service $(BUILD_DIR)/openstack-congress-2016.2
- tar czf $(BUILD_DIR)/openstack-congress.tar.gz -C $(BUILD_DIR) openstack-congress-2016.2
-
-.PHONY: congress-rpm
-congress-rpm: $(BUILD_DIR)/noarch/openstack-congress-2016.2-1.git$(CONGRESS_COMMIT).noarch.rpm
-
-$(BUILD_DIR)/noarch/openstack-congress-2016.2-1.git$(CONGRESS_COMMIT).noarch.rpm: $(BUILD_DIR)/openstack-congress.tar.gz
- @echo "Building the Congress RPM"
- rpmbuild --clean -ba --target noarch rpm_specs/openstack-congress.spec $(RPM_DIR_ARGS) -D 'git .git$(CONGRESS_COMMIT)'
-
##################
# NETWORKING-VPP #
##################
@@ -194,9 +127,9 @@ $(BUILD_DIR)/python-networking-vpp.tar.gz:
tar czf $(BUILD_DIR)/python-networking-vpp.tar.gz -C $(BUILD_DIR) python-networking-vpp-$(NETVPP_VERS)
.PHONY: networking-vpp-rpm
-networking-vpp-rpm: $(BUILD_DIR)/noarch/python-networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(RPM_DIST).noarch.rpm
+networking-vpp-rpm: $(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm
-$(BUILD_DIR)/noarch/python-networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(RPM_DIST).noarch.rpm: $(BUILD_DIR)/python-networking-vpp.tar.gz
+$(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm: $(BUILD_DIR)/python-networking-vpp.tar.gz
@echo "Building the Networking VPP RPM"
rpmbuild --clean -ba --target noarch rpm_specs/networking-vpp.spec $(RPM_DIR_ARGS) -D 'git .git$(NETVPP_COMMIT)'
@@ -207,7 +140,7 @@ $(BUILD_DIR)/noarch/python-networking-vpp-$(NETVPP_VERS)-1.git$(NETVPP_COMMIT)$(
.PHONY: undercloud
undercloud: $(BUILD_DIR)/undercloud.qcow2
-$(BUILD_DIR)/undercloud.qcow2: tackerclient-rpm
+$(BUILD_DIR)/undercloud.qcow2:
@echo "Building the Apex Undercloud Image"
@./undercloud.sh
@@ -236,7 +169,7 @@ $(RPMUDR):
.PHONY: overcloud-full
overcloud-full: $(BUILD_DIR)/overcloud-full.qcow2
-$(BUILD_DIR)/overcloud-full.qcow2: congress-rpm tacker-rpm networking-vpp-rpm
+$(BUILD_DIR)/overcloud-full.qcow2: $(BUILD_DIR)/noarch/python-networking-vpp-*.noarch.rpm
@echo "Building the Apex Base Overcloud Image"
@./overcloud-full.sh
@@ -329,7 +262,7 @@ iso: iso-clean images rpms $(CENTISO)
@ln $(RPMUDR) $(BUILD_DIR)/centos/Packages
@ln $(RPMODL) $(BUILD_DIR)/centos/Packages
# add packages to the centos packages
- cd $(BUILD_DIR)/centos/Packages && yumdownloader openvswitch openstack-tripleo jq python34 python34-libs python34-yaml python34-setuptools ipxe-roms-qemu
+ cd $(BUILD_DIR)/centos/Packages && yumdownloader openvswitch openstack-tripleo jq python34 python34-libs python34-PyYAML python34-setuptools ipxe-roms-qemu
cd $(BUILD_DIR)/centos/Packages && curl -O https://radez.fedorapeople.org/python34-markupsafe-0.23-9.el7.centos.x86_64.rpm
cd $(BUILD_DIR)/centos/Packages && curl -O https://radez.fedorapeople.org/python3-jinja2-2.8-5.el7.centos.noarch.rpm
cd $(BUILD_DIR)/centos/Packages && curl -O http://artifacts.opnfv.org/apex/dependencies/python3-ipmi-0.3.0-1.noarch.rpm
diff --git a/build/cache.sh b/build/cache.sh
index 4c530b02..17f0db2e 100644
--- a/build/cache.sh
+++ b/build/cache.sh
@@ -21,7 +21,7 @@ function cache_dir {
# $2 = filename to write to
function curl_file {
if [ -f $CACHE_DIR/$2 ]; then
- echo "Removing stale $2"
+ echo "Removing stale $2"
rm -f $CACHE_DIR/$2
fi
echo "Downloading $1"
diff --git a/build/functions.sh b/build/functions.sh
index 7ace4b0d..becc0df1 100644
--- a/build/functions.sh
+++ b/build/functions.sh
@@ -14,7 +14,7 @@ clone_fork () {
# Use apex tripleo-heat-templates fork
local ghcreds=""
local pr_num=""
- local ref="stable/danube"
+ local ref="stable/euphrates"
local repo="https://github.com/trozet/$1"
if git log -1 | grep "${1}-pr:" | grep -o '[0-9]*'; then
diff --git a/build/opnfv-environment.yaml b/build/opnfv-environment.yaml
index 8eeb1265..6289e2d9 100644
--- a/build/opnfv-environment.yaml
+++ b/build/opnfv-environment.yaml
@@ -2,6 +2,7 @@
#types
parameters:
+ # value updated via lib/overcloud-deploy-functions.sh
#CloudDomain:
parameter_defaults:
@@ -9,17 +10,17 @@ parameter_defaults:
NeutronEnableForceMetadata: true
NeutronEnableDHCPMetadata: true
NeutronEnableIsolatedMetadata: true
+ # the following parameters are given values via
+ # lib/overcloud-deploy-functions.sh when they are used by a scenario
#NeutronVPPAgentPhysnets: 'datacentre:GigabitEthernet2/2/0'
- #NovaSchedulerDefaultFilters: "RamFilter,ComputeFilter,AvailabilityZoneFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,NUMATopologyFilter"
- # Kernel arguments, this value will be set to kernel arguments specified for compute nodes in deploy setting file.
- #ComputeKernelArgs: "intel_iommu=on iommu=pt default_hugepagesz=2MB hugepagesz=2MB hugepages=2048"
- #PmdCoreList: 1
- #OvsDpdkCoreList: 2
- #OvsDpdkSocketMemory: 1024
+ #NovaSchedulerDefaultFilters:
+ #ComputeKernelArgs:
+ #PmdCoreList:
+ #OvsDpdkCoreList:
+ #OvsDpdkSocketMemory:
#ControllerExtraConfig:
#NovaComputeExtraConfig:
ExtraConfig:
- tripleo::ringbuilder::build_ring: False
nova::nova_public_key:
type: 'ssh-rsa'
replace_public_key:
@@ -31,11 +32,11 @@ parameter_defaults:
key: 'os_compute_api:servers:show:host_status'
value: 'rule:admin_or_owner'
nova::api::default_floating_pool: 'external'
- #VPP routing node, used for odl-fdio only.
+ # VPP routing node, used for odl-fdio only.
+ # value updated via lib/overcloud-deploy-functions.sh
#opendaylight::vpp_routing_node: overcloud-novacompute-0.opnfvlf.org
ControllerServices:
- OS::TripleO::Services::CACerts
-# - OS::TripleO::Services::CephClient
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CephExternal
@@ -44,7 +45,6 @@ parameter_defaults:
- OS::TripleO::Services::CinderBackup
- OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume
- - OS::TripleO::Services::Core
- OS::TripleO::Services::Kernel
- OS::TripleO::Services::Keystone
- OS::TripleO::Services::GlanceApi
@@ -70,13 +70,11 @@ parameter_defaults:
- OS::TripleO::Services::MongoDb
- OS::TripleO::Services::NovaApi
- OS::TripleO::Services::NovaMetadata
+ - OS::TripleO::Services::NovaPlacement
- OS::TripleO::Services::NovaScheduler
- OS::TripleO::Services::NovaConsoleauth
- OS::TripleO::Services::NovaVncProxy
- OS::TripleO::Services::Ntp
- - OS::TripleO::Services::SwiftProxy
- - OS::TripleO::Services::SwiftStorage
- - OS::TripleO::Services::SwiftRingBuilder
- OS::TripleO::Services::Snmp
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::CeilometerApi
@@ -107,19 +105,18 @@ parameter_defaults:
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::OpenDaylightApi
- OS::TripleO::Services::OpenDaylightOvs
- - OS::TripleO::Services::ONOSApi
- - OS::TripleO::Services::ONOSOvs
+# - OS::TripleO::Services::ONOSApi
+# - OS::TripleO::Services::ONOSOvs
- OS::TripleO::Services::SensuClient
- OS::TripleO::Services::FluentdClient
- - OS::TripleO::Services::VipHosts
- OS::TripleO::Services::Etcd
- - OS::TripleO::Services::Gluon
+# - OS::TripleO::Services::Gluon
- OS::TripleO::Services::Tacker
- - OS::TripleO::Services::NeutronHoneycombAgent
+# - OS::TripleO::Services::NeutronHoneycombAgent
- OS::TripleO::Services::Congress
- - OS::TripleO::Services::NeutronVppAgent
+# - OS::TripleO::Services::NeutronVppAgent
- OS::TripleO::Services::OVNDBs
- - OS::TripleO::Services::Vpp
+# - OS::TripleO::Services::Vpp
ComputeServices:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephClient
@@ -140,10 +137,9 @@ parameter_defaults:
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::NeutronSriovAgent
- OS::TripleO::Services::OpenDaylightOvs
- - OS::TripleO::Services::ONOSOvs
+# - OS::TripleO::Services::ONOSOvs
- OS::TripleO::Services::SensuClient
- OS::TripleO::Services::FluentdClient
- - OS::TripleO::Services::VipHosts
- - OS::TripleO::Services::NeutronHoneycombAgent
- - OS::TripleO::Services::NeutronVppAgent
- - OS::TripleO::Services::Vpp
+# - OS::TripleO::Services::NeutronHoneycombAgent
+# - OS::TripleO::Services::NeutronVppAgent
+# - OS::TripleO::Services::Vpp
diff --git a/build/overcloud-full.sh b/build/overcloud-full.sh
index 9ecb1c32..c03ae2c2 100755
--- a/build/overcloud-full.sh
+++ b/build/overcloud-full.sh
@@ -42,13 +42,6 @@ for package in ${dpdk_rpms[@]}; do
dpdk_pkg_str+=" --upload ${BUILD_DIR}/${package}:/root/dpdk_rpms"
done
-# tar up the congress puppet module
-rm -rf puppet-congress
-git clone https://github.com/openstack/puppet-congress
-pushd puppet-congress > /dev/null
-git archive --format=tar.gz --prefix=congress/ HEAD > ${BUILD_DIR}/puppet-congress.tar.gz
-popd > /dev/null
-
# tar up the fd.io module
rm -rf puppet-fdio
git clone https://git.fd.io/puppet-fdio
@@ -61,12 +54,14 @@ rm -rf vsperf vsperf.tar.gz
git clone https://gerrit.opnfv.org/gerrit/vswitchperf vsperf
tar czf vsperf.tar.gz vsperf
-# tar up the tacker puppet module
-rm -rf puppet-tacker
-git clone https://github.com/openstack/puppet-tacker
-pushd puppet-tacker > /dev/null
-git archive --format=tar.gz --prefix=tacker/ origin/stable/ocata > ${BUILD_DIR}/puppet-tacker.tar.gz
-popd > /dev/null
+# Master FD.IO Repo
+cat > ${BUILD_DIR}/fdio.repo << EOF
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7/
+enabled=1
+gpgcheck=0
+EOF
# Get Real Time Kernel from kvm4nfv
populate_cache $kvmfornfv_uri_base/$kvmfornfv_kernel_rpm
@@ -84,19 +79,16 @@ qemu-img resize overcloud-full_build.qcow2 +900MB
# expand file system to max disk size
# installing forked opnfv-puppet-tripleo
# upload dpdk rpms but do not install
-# install the congress rpms
-# upload and explode the congress puppet module
# install fd.io yum repo and packages
# upload puppet fdio
# git clone vsperf into the overcloud image
-# upload the tacker puppet module and untar it
-# install tacker
# upload the rt_kvm kernel
LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "xfs_growfs /dev/sda" \
--upload ${BUILD_DIR}/opnfv-puppet-tripleo.tar.gz:/etc/puppet/modules \
--run-command "cd /etc/puppet/modules && rm -rf tripleo && tar xzf opnfv-puppet-tripleo.tar.gz" \
- --run-command "yum update -y python-ipaddress rabbitmq-server erlang*" \
+ --upload ${BUILD_DIR}/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" \
--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" \
@@ -109,39 +101,20 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "yum install -y etcd" \
--install python-etcd \
--run-command "puppet module install cristifalcas/etcd" \
- --run-command "yum update -y puppet" \
--install "centos-release-qemu-ev" \
--run-command "yum install -y qemu-kvm-ev-2.3.0-31.el7_2.21.1.x86_64" \
--run-command "yum remove -y qemu-system-x86" \
- --upload ${BUILD_DIR}/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 ${BUILD_DIR}/noarch/$congress_pkg:/root/ \
- --install /root/$congress_pkg \
- --install "python2-congressclient" \
- --upload ${BUILD_DIR}/puppet-congress.tar.gz:/etc/puppet/modules/ \
- --run-command "cd /etc/puppet/modules/ && tar xzf puppet-congress.tar.gz" \
--run-command "rm -f /etc/sysctl.d/80-vpp.conf" \
--install unzip \
--upload ${BUILD_DIR}/puppet-fdio.tar.gz:/etc/puppet/modules \
--run-command "cd /etc/puppet/modules && tar xzf puppet-fdio.tar.gz" \
--upload ${BUILD_DIR}/vsperf.tar.gz:/var/opt \
--run-command "cd /var/opt && tar xzf vsperf.tar.gz" \
- --upload ${BUILD_DIR}/puppet-tacker.tar.gz:/etc/puppet/modules/ \
- --run-command "cd /etc/puppet/modules/ && tar xzf puppet-tacker.tar.gz" \
- --upload ${BUILD_DIR}/noarch/$tacker_pkg:/root/ \
- --install /root/$tacker_pkg \
- --upload ${BUILD_DIR}/noarch/$tackerclient_pkg:/root/ \
- --install /root/$tackerclient_pkg \
--run-command "curl -f https://copr.fedorainfracloud.org/coprs/leifmadsen/ovs-master/repo/epel-7/leifmadsen-ovs-master-epel-7.repo > /etc/yum.repos.d/leifmadsen-ovs-master-epel-7.repo" \
--run-command "mkdir /root/ovs27" \
--run-command "yumdownloader --destdir=/root/ovs27 openvswitch*2.7* python-openvswitch-2.7*" \
- --run-command "pip install python-senlinclient" \
--run-command "sed -i -E 's/timeout=[0-9]+/timeout=60/g' /usr/share/openstack-puppet/modules/rabbitmq/lib/puppet/provider/rabbitmqctl.rb" \
- --upload ${BUILD_ROOT}/patches/puppet-neutron-add-odl-settings.patch:/usr/share/openstack-puppet/modules/neutron/ \
- --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-add-odl-settings.patch" \
--upload ${CACHE_DIR}/$kvmfornfv_kernel_rpm:/root/ \
- --upload ${BUILD_ROOT}/patches/puppet-neutron-vpp-ml2.patch:/usr/share/openstack-puppet/modules/neutron/ \
- --run-command "cd /usr/share/openstack-puppet/modules/neutron && patch -p1 < puppet-neutron-vpp-ml2.patch" \
-a overcloud-full_build.qcow2
mv -f overcloud-full_build.qcow2 overcloud-full.qcow2
diff --git a/build/overcloud-opendaylight.sh b/build/overcloud-opendaylight.sh
index d61c1f2e..bacf5360 100755
--- a/build/overcloud-opendaylight.sh
+++ b/build/overcloud-opendaylight.sh
@@ -19,26 +19,7 @@ cp -f overcloud-full.qcow2 overcloud-full-opendaylight_build.qcow2
##### Adding OpenDaylight to overcloud #####
###############################################
-# Beryllium Repo
cat > ${BUILD_DIR}/opendaylight.repo << EOF
-[opendaylight-4-release]
-name=CentOS CBS OpenDaylight Beryllium repository
-baseurl=http://cbs.centos.org/repos/nfv7-opendaylight-4-release/\$basearch/os/
-enabled=1
-gpgcheck=0
-EOF
-
-# Boron Repo
-cat > ${BUILD_DIR}/opendaylight_boron.repo << EOF
-[opendaylight-5-release]
-name=CentOS CBS OpenDaylight Boron repository
-baseurl=http://cbs.centos.org/repos/nfv7-opendaylight-5-testing/\$basearch/os/
-enabled=1
-gpgcheck=0
-EOF
-
-# Master Repo
-cat > ${BUILD_DIR}/opendaylight_master.repo << EOF
[opendaylight-6-release]
name=CentOS CBS OpenDaylight Carbon repository
baseurl=http://cbs.centos.org/repos/nfv7-opendaylight-6-testing/\$basearch/os/
@@ -85,20 +66,12 @@ populate_cache http://artifacts.opnfv.org/apex/danube/fdio_netvirt/odl-netvirt-v
# install quagga/zrpc
# upload neutron patch for generic NS linux interface driver + OVS for external networks
LIBGUESTFS_BACKEND=direct virt-customize \
- --upload ${BUILD_DIR}/opendaylight_boron.repo:/etc/yum.repos.d/opendaylight.repo \
- --run-command "yum install --downloadonly --downloaddir=/root/boron/ opendaylight" \
- --upload ${BUILD_DIR}/opendaylight_master.repo:/etc/yum.repos.d/opendaylight.repo \
- --run-command "yum install --downloadonly --downloaddir=/root/master/ opendaylight" \
--upload ${BUILD_DIR}/opendaylight.repo:/etc/yum.repos.d/opendaylight.repo \
- --run-command "wget https://nexus.fd.io/content/repositories/fd.io.stable.1704.centos7/io/fd/hc2vpp/honeycomb/1.17.04-2048.noarch/honeycomb-1.17.04-2048.noarch.rpm -O /root/fdio/honeycomb-1.17.04-2048.noarch.rpm" \
+ --run-command "curl -L https://nexus.fd.io/content/repositories/fd.io.stable.1704.centos7/io/fd/hc2vpp/honeycomb/1.17.04-2048.noarch/honeycomb-1.17.04-2048.noarch.rpm > /root/fdio/honeycomb-1.17.04-2048.noarch.rpm" \
--install opendaylight,python-networking-odl \
--run-command "yum install -y /root/fdio/honeycomb-1.17.04-2048.noarch.rpm" \
--upload ${BUILD_DIR}/puppet-opendaylight.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-opendaylight.tar.gz" \
- --upload ${BUILD_DIR}/networking-bgpvpn.tar.gz:/root/ \
- --run-command "cd /root/ && tar xzf networking-bgpvpn.tar.gz && yum localinstall -y *networking-bgpvpn*.rpm" \
- --run-command "rm -f /etc/neutron/networking_bgpvpn.conf" \
- --run-command "touch /etc/neutron/networking_bgpvpn.conf" \
--upload ${BUILD_DIR}/puppet-gluon.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-gluon.tar.gz" \
--install epel-release \
@@ -116,5 +89,10 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--upload ${CACHE_DIR}/odl-netvirt-vpp-distribution.tar.gz:/root/ \
-a overcloud-full-opendaylight_build.qcow2
+ # TODO: Put bgpvpn back into the build
+ #--upload ${BUILD_DIR}/networking-bgpvpn.tar.gz:/root/ \
+ #--run-command "cd /root/ && tar xzf networking-bgpvpn.tar.gz && yum localinstall -y *networking-bgpvpn*.rpm" \
+ #--run-command "rm -f /etc/neutron/networking_bgpvpn.conf" \
+ #--run-command "touch /etc/neutron/networking_bgpvpn.conf" \
LIBGUESTFS_BACKEND=direct virt-sparsify --compress overcloud-full-opendaylight_build.qcow2 overcloud-full-opendaylight.qcow2
popd > /dev/null
diff --git a/build/patches/0001-Removes-doing-yum-update.patch b/build/patches/0001-Removes-doing-yum-update.patch
deleted file mode 100644
index 86e6ea3f..00000000
--- a/build/patches/0001-Removes-doing-yum-update.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From d04e8f730de074bafefea4c105a8270100efd9c1 Mon Sep 17 00:00:00 2001
-From: Tim Rozet <tdrozet@gmail.com>
-Date: Wed, 25 Jan 2017 09:53:17 -0500
-Subject: [PATCH] Removes doing yum update
-
-Signed-off-by: Tim Rozet <tdrozet@gmail.com>
----
- instack_undercloud/undercloud.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/instack_undercloud/undercloud.py b/instack_undercloud/undercloud.py
-index 2b9ff8c..b26cb49 100644
---- a/instack_undercloud/undercloud.py
-+++ b/instack_undercloud/undercloud.py
-@@ -1209,7 +1209,6 @@ def install(instack_root):
- _validate_configuration()
- instack_env = _generate_environment(instack_root)
- _generate_init_data(instack_env)
-- _run_yum_update(instack_env)
- _run_instack(instack_env)
- _run_orc(instack_env)
- _post_config(instack_env)
---
-2.9.3
-
diff --git a/build/patches/puppet-neutron-add-odl-settings.patch b/build/patches/puppet-neutron-add-odl-settings.patch
deleted file mode 100644
index aa0b35a1..00000000
--- a/build/patches/puppet-neutron-add-odl-settings.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/manifests/plugins/ml2/opendaylight.pp b/manifests/plugins/ml2/opendaylight.pp
-index a27c4d6..13b56c4 100644
---- a/manifests/plugins/ml2/opendaylight.pp
-+++ b/manifests/plugins/ml2/opendaylight.pp
-@@ -29,12 +29,22 @@
- # (optional) The URI used to connect to the local OVSDB server
- # Defaults to 'tcp:127.0.0.1:6639'
- #
-+# [*port_binding_controller*]
-+# (optional) Name of the controller to be used for port binding.
-+# Defaults to $::os_service_default
-+#
-+# [*odl_hostconf_uri*]
-+# (optional) Path for ODL host configuration REST interface.
-+# Defaults to $::os_service_default
-+#
- class neutron::plugins::ml2::opendaylight (
-- $package_ensure = 'present',
-- $odl_username = $::os_service_default,
-- $odl_password = $::os_service_default,
-- $odl_url = $::os_service_default,
-- $ovsdb_connection = 'tcp:127.0.0.1:6639',
-+ $package_ensure = 'present',
-+ $odl_username = $::os_service_default,
-+ $odl_password = $::os_service_default,
-+ $odl_url = $::os_service_default,
-+ $ovsdb_connection = 'tcp:127.0.0.1:6639',
-+ $port_binding_controller = $::os_service_default,
-+ $odl_hostconf_uri = $::os_service_default,
- ) {
-
- include ::neutron::deps
-@@ -48,9 +58,11 @@ class neutron::plugins::ml2::opendaylight (
- )
-
- neutron_plugin_ml2 {
-- 'ml2_odl/username': value => $odl_username;
-- 'ml2_odl/password': value => $odl_password;
-- 'ml2_odl/url': value => $odl_url;
-+ 'ml2_odl/username': value => $odl_username;
-+ 'ml2_odl/password': value => $odl_password;
-+ 'ml2_odl/url': value => $odl_url;
-+ 'ml2_odl/port_binding_controller': value => $port_binding_controller;
-+ 'ml2_odl/odl_hostconf_uri': value => $odl_hostconf_uri;
- }
-
- neutron_config {
diff --git a/build/patches/puppet-neutron-vpp-ml2.patch b/build/patches/puppet-neutron-vpp-ml2.patch
deleted file mode 100644
index 5e1313f8..00000000
--- a/build/patches/puppet-neutron-vpp-ml2.patch
+++ /dev/null
@@ -1,244 +0,0 @@
-From 72afc22fbba73fdb474bd6e5c1c47ab31219a9b9 Mon Sep 17 00:00:00 2001
-From: Feng Pan <fpan@redhat.com>
-Date: Tue, 28 Feb 2017 18:07:53 -0500
-Subject: [PATCH] Add support for networking-vpp ML2 driver
-
-Change-Id: Ib45681b1e414001c42070a32e8f81778b4e9f15f
----
- .../provider/neutron_agent_vpp/ini_settings.rb | 15 ++++
- lib/puppet/type/neutron_agent_vpp.rb | 28 +++++++
- manifests/agents/ml2/vpp.pp | 91 ++++++++++++++++++++++
- manifests/deps.pp | 1 +
- manifests/params.pp | 3 +
- manifests/plugins/ml2/vpp.pp | 38 +++++++++
- 6 files changed, 176 insertions(+)
- create mode 100644 lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
- create mode 100644 lib/puppet/type/neutron_agent_vpp.rb
- create mode 100644 manifests/agents/ml2/vpp.pp
- create mode 100644 manifests/plugins/ml2/vpp.pp
-
-diff --git a/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb b/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
-new file mode 100644
-index 0000000..d8da7ab
---- /dev/null
-+++ b/lib/puppet/provider/neutron_agent_vpp/ini_settings.rb
-@@ -0,0 +1,15 @@
-+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
-diff --git a/lib/puppet/type/neutron_agent_vpp.rb b/lib/puppet/type/neutron_agent_vpp.rb
-new file mode 100644
-index 0000000..0718db8
---- /dev/null
-+++ b/lib/puppet/type/neutron_agent_vpp.rb
-@@ -0,0 +1,28 @@
-+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
-+ 'neutron-vpp-agent'
-+ end
-+
-+end
-diff --git a/manifests/agents/ml2/vpp.pp b/manifests/agents/ml2/vpp.pp
-new file mode 100644
-index 0000000..faae279
---- /dev/null
-+++ b/manifests/agents/ml2/vpp.pp
-@@ -0,0 +1,91 @@
-+# == Class: neutron::agents::ml2::vpp
-+#
-+# Configure networking-vpp Neutron agent for ML2 plugin.
-+#
-+# === Parameters
-+#
-+# [*package_ensure*]
-+# (optional) Package ensure state.
-+# Defaults to 'present'.
-+#
-+# [*enabled*]
-+# (required) Whether or not to enable the agent.
-+# Defaults to true.
-+#
-+# [*manage_service*]
-+# (optional) Whether to start/stop the service
-+# Defaults to true
-+#
-+# [*physnets*]
-+# (optional) Comma-separated list of <physical_network>:<physical_interface>
-+# tuples mapping physical network names to agent's node-specific physical
-+# network interfaces. Defaults to $::os_service_default.
-+#
-+# [*etcd_host*]
-+# (optional) etcd server host name/ip
-+# Defaults to $::os_service_default.
-+#
-+# [*etcd_port*]
-+# (optional) etcd server listening port.
-+# Defaults to $::os_service_default.
-+#
-+# [*etcd_user*]
-+# (optional) User name for etcd authentication
-+# Defaults to $::os_service_default.
-+#
-+# [*etcd_pass*]
-+# (optional) Password for etcd authentication
-+# Defaults to $::os_service_default.
-+#
-+# [*purge_config*]
-+# (optional) Whether to set only the specified config options
-+# in the vpp config.
-+# Defaults to false.
-+#
-+class neutron::agents::ml2::vpp (
-+ $package_ensure = 'present',
-+ $enabled = true,
-+ $manage_service = true,
-+ $physnets = $::os_service_default,
-+ $etcd_host = $::os_service_default,
-+ $etcd_port = $::os_service_default,
-+ $etcd_user = $::os_service_default,
-+ $etcd_pass = $::os_service_default,
-+ $purge_config = false,
-+) {
-+ include ::neutron::deps
-+ include ::neutron::params
-+
-+ resources { 'neutron_agent_vpp':
-+ purge => $purge_config,
-+ }
-+
-+ neutron_agent_vpp {
-+ 'ml2_vpp/physnets': value => $physnets;
-+ '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;
-+ }
-+
-+ package { 'neutron-vpp-agent':
-+ ensure => $package_ensure,
-+ name => $::neutron::params::vpp_plugin_package,
-+ tag => ['openstack', 'neutron-package'],
-+ }
-+
-+ if $manage_service {
-+ if $enabled {
-+ $service_ensure = 'running'
-+ } else {
-+ $service_ensure = 'stopped'
-+ }
-+ }
-+
-+ service { 'neutron-vpp-agent-service':
-+ ensure => $service_ensure,
-+ name => $::neutron::params::vpp_agent_service,
-+ enable => $enabled,
-+ tag => ['neutron-service'],
-+ }
-+}
-diff --git a/manifests/deps.pp b/manifests/deps.pp
-index 94b6f78..835e906 100644
---- a/manifests/deps.pp
-+++ b/manifests/deps.pp
-@@ -35,6 +35,7 @@ class neutron::deps {
- # All other inifile providers need to be processed in the config block
- Anchor['neutron::config::begin'] -> Neutron_agent_linuxbridge<||> ~> Anchor['neutron::config::end']
- Anchor['neutron::config::begin'] -> Neutron_agent_ovs<||> ~> Anchor['neutron::config::end']
-+ Anchor['neutron::config::begin'] -> Neutron_agent_vpp<||> ~> Anchor['neutron::config::end']
- Anchor['neutron::config::begin'] -> Neutron_api_config<||> ~> Anchor['neutron::config::end']
- Anchor['neutron::config::begin'] -> Neutron_api_paste_ini<||> ~> Anchor['neutron::config::end']
- Anchor['neutron::config::begin'] -> Neutron_config<||> ~> Anchor['neutron::config::end']
-diff --git a/manifests/params.pp b/manifests/params.pp
-index 05ef627..02b9be1 100644
---- a/manifests/params.pp
-+++ b/manifests/params.pp
-@@ -86,6 +86,9 @@ class neutron::params {
-
- $kernel_headers = "linux-headers-${::kernelrelease}"
-
-+ $vpp_plugin_package = 'python-networking-vpp'
-+ $vpp_agent_service = 'neutron-vpp-agent'
-+
- } elsif($::osfamily == 'Debian') {
-
- $nobody_user_group = 'nogroup'
-diff --git a/manifests/plugins/ml2/vpp.pp b/manifests/plugins/ml2/vpp.pp
-new file mode 100644
-index 0000000..837a614
---- /dev/null
-+++ b/manifests/plugins/ml2/vpp.pp
-@@ -0,0 +1,38 @@
-+#
-+# Install the networking-vpp ML2 mechanism driver and generate config file
-+# from parameters in the other classes.
-+#
-+# === Parameters
-+#
-+# [*etcd_host*]
-+# (optional) etcd server host name or IP.
-+# Defaults to $::os_service_default
-+#
-+# [*etcd_port*]
-+# (optional) etcd server listening port.
-+# Defaults to $::os_service_default.
-+#
-+# [*etcd_user*]
-+# (optional) User name for etcd authentication
-+# Defaults to $::os_service_default.
-+#
-+# [*etcd_pass*]
-+# (optional) Password for etcd authentication
-+# Defaults to $::os_service_default.
-+#
-+class neutron::plugins::ml2::vpp (
-+ $etcd_host = $::os_service_default,
-+ $etcd_port = $::os_service_default,
-+ $etcd_user = $::os_service_default,
-+ $etcd_pass = $::os_service_default,
-+) {
-+ include ::neutron::deps
-+ require ::neutron::plugins::ml2
-+
-+ neutron_plugin_ml2 {
-+ '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;
-+ }
-+}
---
-2.9.3
-
diff --git a/build/rpm_specs/openstack-congress-server.service b/build/rpm_specs/openstack-congress-server.service
deleted file mode 100644
index 20c3a67b..00000000
--- a/build/rpm_specs/openstack-congress-server.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=OpenStack Congress Server
-After=syslog.target network.target
-
-[Service]
-Type=simple
-User=congress
-ExecStart=/usr/bin/congress-server --config-file /etc/congress/congress.conf --log-file /var/log/congress/congress.log
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
-
diff --git a/build/rpm_specs/openstack-congress.spec b/build/rpm_specs/openstack-congress.spec
deleted file mode 100644
index 21211932..00000000
--- a/build/rpm_specs/openstack-congress.spec
+++ /dev/null
@@ -1,77 +0,0 @@
-%define debug_package %{nil}
-
-Name: openstack-congress
-Version: 2016.2
-Release: 1%{?git}%{?dist}
-Summary: OpenStack servicevm/device manager
-
-Group: Applications/Internet
-License: Apache 2.0
-URL: https://wiki.openstack.org/wiki/Congress/Installation
-Source0: openstack-congress.tar.gz
-
-BuildArch: noarch
-
-BuildRequires: python-setuptools python2-oslo-config python2-debtcollector libffi-devel python-devel openssl-devel python2-oslo-config python2-debtcollector python34-devel
-
-%description
-OpenStack policy manager
-
-%prep
-%setup -q
-rm requirements.txt
-
-
-%build
-#rm requirements.txt
-#/usr/bin/python setup.py build
-
-
-%install
-/usr/bin/python setup.py install --root=%{buildroot}
-
-rm -rf %{buildroot}/usr/lib/python2.7/site-packages/congress_tempest_tests
-
-install -d -m 755 %{buildroot}/var/log/congress/
-install -d -m 755 %{buildroot}/etc/congress/snapshot/
-
-install etc/api-paste.ini %{buildroot}/etc/congress/api-paste.ini
-install etc/policy.json %{buildroot}/etc/congress/policy.json
-tox -e genconfig --workdir ../.tox
-install etc/congress.conf.sample %{buildroot}/etc/congress/congress.conf
-
-install -p -D -m 644 openstack-congress-server.service %{buildroot}%{_unitdir}/openstack-congress-server.service
-install -d -m 755 %{buildroot}%{_sharedstatedir}/congress
-
-%pre
-getent group congress >/dev/null || groupadd -r congress
-if ! getent passwd congress >/dev/null; then
- useradd -r -g congress -G congress,nobody -d %{_sharedstatedir}/congress -s /sbin/nologin -c "OpenStack Congress Daemon" congress
-fi
-exit 0
-
-%post
-%systemd_post openstack-congress
-
-%preun
-%systemd_preun openstack-congress
-
-%postun
-%systemd_postun_with_restart openstack-congress
-
-%files
-%{python2_sitelib}/congress-*.egg-info
-/etc/congress/api-paste.ini
-/etc/congress/congress.conf
-/etc/congress/policy.json
-/usr/bin/congress-db-manage
-/usr/bin/congress-server
-%{_unitdir}/openstack-congress-server.service
-/usr/lib/python2.7/site-packages/congress
-/usr/lib/python2.7/site-packages/congress_dashboard
-/usr/lib/python2.7/site-packages/antlr3runtime
-
-%dir %attr(0750, congress, root) %{_localstatedir}/log/congress
-
-%changelog
-
diff --git a/build/rpm_specs/openstack-tacker-server.service b/build/rpm_specs/openstack-tacker-server.service
deleted file mode 100644
index 9bf16cd5..00000000
--- a/build/rpm_specs/openstack-tacker-server.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=OpenStack Tacker Server
-After=syslog.target network.target
-
-[Service]
-Type=simple
-User=tacker
-ExecStart=/usr/bin/openstack-tacker-server --config-file /usr/share/tacker/tacker-dist.conf --config-file /etc/tacker/tacker.conf --log-file /var/log/tacker/tacker.log
-PrivateTmp=true
-NotifyAccess=all
-KillMode=process
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/build/rpm_specs/openstack-tacker.spec b/build/rpm_specs/openstack-tacker.spec
deleted file mode 100644
index 0ec4d518..00000000
--- a/build/rpm_specs/openstack-tacker.spec
+++ /dev/null
@@ -1,84 +0,0 @@
-%define debug_package %{nil}
-
-Name: openstack-tacker
-Version: 2016.2
-Release: 1%{?git}
-Summary: OpenStack servicevm/device manager
-
-Group: Applications/Internet
-License: Apache 2.0
-URL: https://wiki.openstack.org/wiki/Tacker/Installation
-Source0: openstack-tacker.tar.gz
-
-BuildArch: noarch
-BuildRequires: python-setuptools
-
-%description
-OpenStack servicevm/device manager
-
-%prep
-%setup -q
-
-
-%build
-rm requirements.txt
-#/usr/bin/python setup.py build
-
-
-%install
-/usr/bin/python setup.py install --root=%{buildroot}
-#remove tests
-rm -rf %{buildroot}/usr/lib/python2.7/site-packages/tacker/tests
-# Move config files from /usr/etc/ to /etc
-mv %{buildroot}/usr/etc %{buildroot}
-#remove init script
-rm -fr %{buildroot}/etc/init.d
-
-# Install systemd script
-install -p -D -m 644 openstack-tacker-server.service %{buildroot}%{_unitdir}/openstack-tacker-server.service
-
-# Remove egg-info
-rm -rf %{buildroot}/usr/lib/python2.7/site-packages/*egg-info
-
-install -d -m 755 %{buildroot}%{_localstatedir}/cache/tacker
-install -d -m 755 %{buildroot}%{_sharedstatedir}/tacker
-install -d -m 755 %{buildroot}%{_localstatedir}/log/tacker
-
-%pre
-getent group tacker >/dev/null || groupadd -r tacker
-if ! getent passwd tacker >/dev/null; then
- useradd -r -g tacker -G tacker,nobody -d %{_sharedstatedir}/tacker -s /sbin/nologin -c "OpenStack Tacker Daemon" tacker
-fi
-exit 0
-
-%post
-%systemd_post openstack-tacker-server
-
-%preun
-%systemd_preun openstack-tacker-server
-
-%postun
-%systemd_postun_with_restart openstack-tacker-server
-
-%files
-/usr/bin/tacker-server
-/usr/bin/tacker-db-manage
-/usr/bin/tacker-rootwrap
-%{_unitdir}/openstack-tacker-server.service
-/usr/lib/python2.7/site-packages/tacker/*
-
-#%config(noreplace) %attr(-, root, tacker) %{_sysconfdir}/tacker/tacker.conf`
-%{_sysconfdir}/rootwrap.d/tacker.filters
-%{_sysconfdir}/tacker/api-paste.ini
-%{_sysconfdir}/tacker/policy.json
-%{_sysconfdir}/tacker/rootwrap.conf
-%dir %attr(0750, tacker, root) %{_localstatedir}/cache/tacker
-%dir %attr(0750, tacker, root) %{_sharedstatedir}/tacker
-%dir %attr(0750, tacker, root) %{_localstatedir}/log/tacker
-
-%changelog
-* Wed Nov 30 2016 Dan Radez <dradez@redhat.com> - 2016.2-1
-- Version update for Newton
-
-* Mon Jul 25 2016 Tim Rozet <trozet@redhat.com> - 2015.2-1
-- Initial Commit
diff --git a/build/rpm_specs/opnfv-apex-common.spec b/build/rpm_specs/opnfv-apex-common.spec
index 13a04817..541c1fec 100644
--- a/build/rpm_specs/opnfv-apex-common.spec
+++ b/build/rpm_specs/opnfv-apex-common.spec
@@ -10,8 +10,8 @@ Source0: opnfv-apex-common.tar.gz
BuildArch: noarch
BuildRequires: python-docutils python34-devel
-Requires: openstack-tripleo opnfv-apex-sdn opnfv-apex-undercloud openvswitch qemu-kvm bridge-utils libguestfs-tools
-Requires: initscripts net-tools iputils iproute iptables python34 python34-yaml python3-jinja2 python3-ipmi
+Requires: opnfv-apex-sdn opnfv-apex-undercloud openvswitch qemu-kvm bridge-utils libguestfs-tools
+Requires: initscripts net-tools iputils iproute iptables python34 python34-yaml python3-jinja2 python3-ipmi python2-virtualbmc
Requires: ipxe-roms-qemu >= 20160127-1
%description
@@ -77,6 +77,7 @@ install lib/undercloud-functions.sh %{buildroot}%{_var}/opt/opnfv/lib/
install lib/overcloud-deploy-functions.sh %{buildroot}%{_var}/opt/opnfv/lib/
install lib/post-install-functions.sh %{buildroot}%{_var}/opt/opnfv/lib/
install lib/utility-functions.sh %{buildroot}%{_var}/opt/opnfv/lib/
+install lib/configure-vm %{buildroot}%{_var}/opt/opnfv/lib/
install lib/python/apex_python_utils.py %{buildroot}%{_var}/opt/opnfv/lib/python/
mkdir -p %{buildroot}%{python3_sitelib}/apex/
install lib/python/apex/__init__.py %{buildroot}%{python3_sitelib}/apex/
@@ -117,6 +118,7 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%{_var}/opt/opnfv/lib/overcloud-deploy-functions.sh
%{_var}/opt/opnfv/lib/post-install-functions.sh
%{_var}/opt/opnfv/lib/utility-functions.sh
+%{_var}/opt/opnfv/lib/configure-vm
%{_var}/opt/opnfv/lib/python/
%{python3_sitelib}/apex/
%{_var}/opt/opnfv/lib/installer/domain.xml
@@ -161,6 +163,8 @@ install config/inventory/pod_example_settings.yaml %{buildroot}%{_docdir}/opnfv/
%doc %{_docdir}/opnfv/inventory.yaml.example
%changelog
+* Mon May 08 2017 Dan Radez <dradez@redhat.com> - 5.0-2
+- adding configure-vm
* Tue Apr 04 2017 Dan Radez <dradez@redhat.com> - 5.0-1
- Version update for Euphrates
- rename to ovs_dpdk
diff --git a/build/rpm_specs/opnfv-apex-release.spec b/build/rpm_specs/opnfv-apex-release.spec
index 1be58a1c..5f84a4fc 100644
--- a/build/rpm_specs/opnfv-apex-release.spec
+++ b/build/rpm_specs/opnfv-apex-release.spec
@@ -9,7 +9,7 @@ URL: https://gerrit.opnfv.org/gerrit/apex.git
Source0: opnfv-apex-release.tar.gz
BuildArch: noarch
-Requires: rdo-release = newton epel-release libvirt-python
+Requires: rdo-release = ocata epel-release libvirt-python
%description
RPM Release file that provides a yum repo file to install OPNFV Apex
diff --git a/build/rpm_specs/opnfv-apex-undercloud.spec b/build/rpm_specs/opnfv-apex-undercloud.spec
index 55a614d0..93fc6e0d 100644
--- a/build/rpm_specs/opnfv-apex-undercloud.spec
+++ b/build/rpm_specs/opnfv-apex-undercloud.spec
@@ -9,7 +9,7 @@ URL: https://gerrit.opnfv.org/gerrit/apex.git
Source0: opnfv-apex-undercloud.tar.gz
BuildArch: noarch
-BuildRequires: openvswitch libvirt qemu-kvm python-docutils
+BuildRequires: python-docutils
Requires: openvswitch libvirt qemu-kvm bridge-utils libguestfs-tools
%description
diff --git a/build/rpm_specs/python-tackerclient.spec b/build/rpm_specs/python-tackerclient.spec
deleted file mode 100644
index 5758f7c0..00000000
--- a/build/rpm_specs/python-tackerclient.spec
+++ /dev/null
@@ -1,44 +0,0 @@
-%define debug_package %{nil}
-
-Name: python-tackerclient
-Version: 2016.2
-Release: 1%{?git}
-Summary: CLI and Client Library for OpenStack Networking
-
-Group: Applications/Internet
-License: Apache 2.0
-URL: https://wiki.openstack.org/wiki/Tacker/Installation
-Source0: python-tackerclient.tar.gz
-
-BuildArch: noarch
-BuildRequires: python-setuptools
-#Requires: stevedore>=1.5.0 http oslo.config>=1.11.0 oslo.messaging!=1.17.0!=1.17.1>=1.16.0 oslo.rootwrap>=2.0.0 python-novaclient>=2.22.0
-
-%description
-CLI and Client Library for OpenStack Networking
-
-%prep
-%setup -q
-
-
-%build
-rm requirements.txt
-#/usr/bin/python setup.py build
-
-
-%install
-/usr/bin/python setup.py install --prefix=%{buildroot} --install-lib=%{buildroot}/usr/lib/python2.7/site-packages
-#rm -rf %{buildroot}/usr/lib/python2.7/site-packages/tacker/tests
-
-
-%files
-/bin/tacker
-/usr/lib/python2.7/site-packages/tackerclient/*
-/usr/lib/python2.7/site-packages/python_tackerclient-*
-
-%changelog
-* Wed Nov 30 2016 Dan Radez <dradez@redhat.com> - 2016.2-1
-- Version update for Newton
-
-* Mon Jul 25 2016 Tim Rozet <trozet@redhat.com> - 2015.2-1
-- Initial Commit
diff --git a/build/undercloud.sh b/build/undercloud.sh
index 6d8937ff..8d82bcac 100755
--- a/build/undercloud.sh
+++ b/build/undercloud.sh
@@ -27,15 +27,11 @@ popd > /dev/null
# inject rt_kvm kernel rpm name into the enable file
sed "s/kvmfornfv_kernel.rpm/$kvmfornfv_kernel_rpm/" ${BUILD_ROOT}/enable_rt_kvm.yaml | tee ${BUILD_DIR}/enable_rt_kvm.yaml
+# Turn off GSSAPI Auth in sshd
# installing forked opnfv-tht
# enabling ceph OSDs to live on the controller
# seeding configuration files specific to OPNFV
-# add congress client
-# add congress password to python-tripleoclient
-# add tacker password to tripleo-common
-# upload tacker repo and install the client package
# Add performance image scripts
-# hack for disabling undercloud package update
LIBGUESTFS_BACKEND=direct virt-customize \
--run-command "sed -i 's/^#UseDNS.*$/UseDNS no/' /etc/ssh/sshd_config" \
--run-command "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication no/' /etc/ssh/sshd_config" \
@@ -53,17 +49,7 @@ LIBGUESTFS_BACKEND=direct virt-customize \
--upload ${BUILD_ROOT}/ovs-dpdk-preconfig.yaml:/home/stack/ \
--upload ${BUILD_ROOT}/csit-environment.yaml:/home/stack/ \
--upload ${BUILD_ROOT}/virtual-environment.yaml:/home/stack/ \
- --install "python2-congressclient" \
- --run-command "sed -i '/SwiftPassword/a\ \x27TackerPassword\x27,' /usr/lib/python2.7/site-packages/tripleo_common/constants.py" \
- --run-command "sed -i '/CinderPassword/a\ \x27CongressPassword\x27,' /usr/lib/python2.7/site-packages/tripleo_common/constants.py" \
- --upload ${BUILD_DIR}/noarch/$tackerclient_pkg:/root/ \
- --install /root/$tackerclient_pkg \
- --install "python2-aodhclient" \
- --install "openstack-heat-engine" \
- --install "openstack-heat-api-cfn" \
- --install "openstack-heat-api" \
- --upload ${BUILD_ROOT}/patches/0001-Removes-doing-yum-update.patch:/usr/lib/python2.7/site-packages/ \
- --run-command "cd /usr/lib/python2.7/site-packages/ && patch -p1 < 0001-Removes-doing-yum-update.patch" \
+ --install "libguestfs-tools" \
-a undercloud_build.qcow2
mv -f undercloud_build.qcow2 undercloud.qcow2
diff --git a/build/variables.sh b/build/variables.sh
index a496608a..9d85e7a1 100644
--- a/build/variables.sh
+++ b/build/variables.sh
@@ -15,11 +15,10 @@ CACHE_DIR="$(dirname ${BUILD_ROOT})/.cache"
CACHE_HISTORY=".cache_history"
PATCHES_DIR="${BUILD_ROOT}/patches"
+rdo_images_uri=${RDO_IMAGES_URI:-https://images.rdoproject.org/ocata/delorean/current-tripleo/stable/}
+
onos_release_uri=https://downloads.onosproject.org/release/
onos_release_file=onos-1.8.4.tar.gz
-# CBS is broken for now, as a workaround use backup file server
-#rdo_images_uri=${RDO_IMAGES_URI:-http://buildlogs.centos.org/centos/7/cloud/$(uname -p)/tripleo_images/newton/delorean}
-rdo_images_uri=${RDO_IMAGES_URI:-https://images.rdoproject.org/newton/delorean/consistent/stable}
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
@@ -37,21 +36,6 @@ dpdk_rpms=(
kvmfornfv_uri_base="http://artifacts.opnfv.org/kvmfornfv/danube"
kvmfornfv_kernel_rpm="kvmfornfv-8e1bfc88-apex-kernel-4.4.50_rt62_centos.x86_64.rpm"
-tacker_repo="http://github.com/openstack/tacker"
-tacker_branch="stable/newton"
-tacker_commit=$(git ls-remote ${tacker_repo} ${tacker_branch} | awk '{print substr($1,1,7)}')
-tacker_pkg=openstack-tacker-2016.2-1.git${tacker_commit}.noarch.rpm
-
-tackerclient_repo="http://github.com/openstack/python-tackerclient"
-tackerclient_branch="stable/newton"
-tackerclient_commit=$(git ls-remote ${tackerclient_repo} ${tackerclient_branch} | awk '{print substr($1,1,7)}')
-tackerclient_pkg=python-tackerclient-2016.2-1.git${tackerclient_commit}.noarch.rpm
-
-congress_repo="http://github.com/openstack/congress"
-congress_branch="stable/newton"
-congress_commit=$(git ls-remote ${congress_repo} ${congress_branch} | awk '{print substr($1,1,7)}')
-congress_pkg=openstack-congress-2016.2-1.git${congress_commit}$(rpm -E %dist).noarch.rpm
-
netvpp_repo="https://github.com/openstack/networking-vpp"
netvpp_branch="master"
netvpp_commit=$(git ls-remote ${netvpp_repo} ${netvpp_branch} | awk '{print substr($1,1,7)}')
diff --git a/ci/PR_revision.log b/ci/PR_revision.log
index 58f3edad..3d7cc2de 100644
--- a/ci/PR_revision.log
+++ b/ci/PR_revision.log
@@ -2,17 +2,3 @@
#Note this is only needed for triggering commits with no code change in
#Apex, but changes do occur in opnfv-tht
#PR number, PR Title
-96,Add etcd service
-98,Tacker support
-107,Enable ODL clustering
-110,Adding endpoint url definitions for tacker
-109,Adding endpoint url definitions to congress
-115,Increases mariadb open files limit for noha deployments
-116,Adding notifier topic to ceilometer
-114,Use networking-odl v1 driver in bgpvpn
-119,Fixes missing ':' with setting hieradata for mariadb limit
-19,opnfv-puppet-tripleo, Only increases mariadb limit with noha deployments
-120,Add old openflow port (6633) and karaf ssh port (8101)
-123,Disable L3 HA for ODL/FDIO scenarios
-124,setting keystone region for tacker and congress
-111,Backporting OVN fixes
diff --git a/ci/build.sh b/ci/build.sh
index 3531a657..31d7ba62 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -35,7 +35,7 @@ CACHE_DEST=""
CACHE_DIR="${APEX_ROOT}/.cache"
CACHE_NAME="apex-cache"
MAKE_TARGETS="images"
-REQUIRED_PKGS="rpm-build python-docutils"
+REQUIRED_PKGS="rpm-build python-docutils python2-virtualbmc"
RELEASE_RPM=""
parse_cmdline() {
@@ -129,7 +129,10 @@ if [[ -n "$CACHE_DEST" && -n "$MAKE_TARGETS" ]]; then
rm -rf $CACHE_DIR
mkdir $CACHE_DIR
echo "Unpacking Cache to ${CACHE_DIR}"
- tar -xvzf ${CACHE_DEST}/${CACHE_NAME}.tgz -C ${CACHE_DIR}
+ tar -xvzf ${CACHE_DEST}/${CACHE_NAME}.tgz -C ${CACHE_DIR} || {
+ rm ${CACHE_DEST}/${CACHE_NAME}.tgz
+ echo "Cache unpack failed, Will rebuild."
+ }
echo "Cache contents after unpack:"
ls -al ${CACHE_DIR}
else
diff --git a/ci/clean.sh b/ci/clean.sh
index 4335b821..bd48c0d1 100755
--- a/ci/clean.sh
+++ b/ci/clean.sh
@@ -102,6 +102,7 @@ for i in $(seq 0 $vm_index); do
/usr/bin/touch /var/lib/libvirt/images/baremetal${i}.qcow2
virsh vol-delete baremetal${i}.qcow2 --pool default 2> /dev/null | xargs echo -n
rm -f /var/lib/libvirt/images/baremetal${i}.qcow2 2> /dev/null
+ if [ -e /root/.vbmc/baremetal$i ]; then vbmc delete baremetal$i; fi
done
for network in ${OPNFV_NETWORK_TYPES}; do
@@ -119,7 +120,6 @@ done
# clean pub keys from root's auth keys
sed -i '/stack@undercloud.localdomain/d' /root/.ssh/authorized_keys
-sed -i '/virtual-power-key/d' /root/.ssh/authorized_keys
# force storage cleanup
diff --git a/ci/dev_dep_check.sh b/ci/dev_dep_check.sh
index 6d0aa11f..71cea22c 100755
--- a/ci/dev_dep_check.sh
+++ b/ci/dev_dep_check.sh
@@ -32,8 +32,11 @@ if ! sudo yum update -y ipxe-roms-qemu; then
fi
# check for other packages
-for i in epel-release python34-PyYAML openvswitch openstack-tripleo libguestfs libguestfs-tools-c libvirt-python python2-oslo-config python2-debtcollector python34-devel libxslt-devel libxml2-devel; do
-# Make sure deploy deps are installed
+for i in epel-release python34-PyYAML openvswitch openstack-tripleo libguestfs \
+ libguestfs-tools-c libvirt-python python2-oslo-config \
+ python2-debtcollector python34-devel libxslt-devel \
+ libxml2-devel python-virtualbmc; do
+ # Make sure deploy deps are installed
if ! rpm -q $i > /dev/null; then
if ! sudo yum install -y $i; then
echo "Failed to install $i package..."
@@ -49,9 +52,6 @@ sudo pip3 install python-ipmi
# Make sure jinja2 is installed
easy_install-3.4 jinja2
-# TODO(cgoncalves): remove once congress RPM is downloaded from upstream
-easy_install-3.4 tox
-
# Required packages to redirect stdin with virt-customize
if ! sudo yum -y install libguestfs libguestfs-tools libguestfs-tools-c supermin supermin5 supermin-helper perl-Sys-Guestfs python-libguestfs; then
echo "Failed to install supermin/libguestfs packages..."
diff --git a/ci/test.sh b/ci/test.sh
index 4f8a0421..3e538ffb 100755
--- a/ci/test.sh
+++ b/ci/test.sh
@@ -11,7 +11,7 @@
set -e
# Make sure python dependencies are installed
-for pkg in epel-release python34-devel python34-nose python-pep8; do
+for pkg in iproute epel-release python34-devel python34-nose python34-PyYAML python-pep8 python34-mock; do
if ! rpm -q ${pkg} > /dev/null; then
if ! sudo yum install -y ${pkg}; then
echo "Failed to install ${pkg} package..."
diff --git a/config/deploy/deploy_settings.yaml b/config/deploy/deploy_settings.yaml
index aedd1979..3186a5da 100644
--- a/config/deploy/deploy_settings.yaml
+++ b/config/deploy/deploy_settings.yaml
@@ -14,9 +14,9 @@ deploy_options:
sdn_controller: opendaylight
# Which version of ODL to use. This is only valid if 'opendaylight' was used
- # above. Valid options are 'beryllium', 'boron' and 'carbon'. If no value
- # is specified, Beryllium will be used.
- #odl_version: boron
+ # above. Valid options are 'carbon'. If no value
+ # is specified, carbon will be used.
+ #odl_version: carbon
# Whether to configure ODL L3 support. This will disable the Neutron L3 Agent and
# use ODL instead.
diff --git a/config/deploy/os-odl-bgpvpn-ha.yaml b/config/deploy/os-odl-bgpvpn-ha.yaml
index ef51e737..76d051eb 100644
--- a/config/deploy/os-odl-bgpvpn-ha.yaml
+++ b/config/deploy/os-odl-bgpvpn-ha.yaml
@@ -4,7 +4,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
sdn_l3: true
- odl_version: boron
+ odl_version: carbon
tacker: false
congress: true
sfc: false
diff --git a/config/deploy/os-odl-bgpvpn-noha.yaml b/config/deploy/os-odl-bgpvpn-noha.yaml
index 7812d054..d569ba6c 100644
--- a/config/deploy/os-odl-bgpvpn-noha.yaml
+++ b/config/deploy/os-odl-bgpvpn-noha.yaml
@@ -4,7 +4,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
sdn_l3: true
- odl_version: boron
+ odl_version: carbon
tacker: false
congress: true
sfc: false
diff --git a/config/deploy/os-odl-csit-noha.yaml b/config/deploy/os-odl-csit-noha.yaml
index ad61e26b..d5e2695e 100644
--- a/config/deploy/os-odl-csit-noha.yaml
+++ b/config/deploy/os-odl-csit-noha.yaml
@@ -3,7 +3,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
- odl_version: boron
+ odl_version: carbon
sdn_l3: true
tacker: false
congress: false
diff --git a/config/deploy/os-odl-gluon-noha.yaml b/config/deploy/os-odl-gluon-noha.yaml
index cdeb90c5..12e5d25f 100644
--- a/config/deploy/os-odl-gluon-noha.yaml
+++ b/config/deploy/os-odl-gluon-noha.yaml
@@ -4,7 +4,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
sdn_l3: true
- odl_version: boron
+ odl_version: carbon
tacker: false
congress: true
sfc: false
diff --git a/config/deploy/os-odl-nofeature-ha.yaml b/config/deploy/os-odl-nofeature-ha.yaml
index d421c7ca..64af606a 100644
--- a/config/deploy/os-odl-nofeature-ha.yaml
+++ b/config/deploy/os-odl-nofeature-ha.yaml
@@ -3,7 +3,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
- odl_version: boron
+ odl_version: carbon
sdn_l3: true
tacker: true
congress: true
diff --git a/config/deploy/os-odl-nofeature-noha.yaml b/config/deploy/os-odl-nofeature-noha.yaml
index 972b1f85..d95ed9c6 100644
--- a/config/deploy/os-odl-nofeature-noha.yaml
+++ b/config/deploy/os-odl-nofeature-noha.yaml
@@ -3,7 +3,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
- odl_version: boron
+ odl_version: carbon
sdn_l3: true
tacker: true
congress: true
diff --git a/config/deploy/os-odl-ovs_dpdk-ha.yaml b/config/deploy/os-odl-ovs_dpdk-ha.yaml
index ad265699..8e3674a0 100644
--- a/config/deploy/os-odl-ovs_dpdk-ha.yaml
+++ b/config/deploy/os-odl-ovs_dpdk-ha.yaml
@@ -3,7 +3,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
- odl_version: boron
+ odl_version: carbon
sdn_l3: true
tacker: true
congress: true
diff --git a/config/deploy/os-odl-ovs_dpdk-noha.yaml b/config/deploy/os-odl-ovs_dpdk-noha.yaml
index 6f7630dc..1711fc63 100644
--- a/config/deploy/os-odl-ovs_dpdk-noha.yaml
+++ b/config/deploy/os-odl-ovs_dpdk-noha.yaml
@@ -3,7 +3,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
- odl_version: boron
+ odl_version: carbon
sdn_l3: true
tacker: true
congress: true
diff --git a/config/deploy/os-odl_l2-sfc-noha.yaml b/config/deploy/os-odl_l2-sfc-noha.yaml
index fa9a7868..4423b175 100644
--- a/config/deploy/os-odl_l2-sfc-noha.yaml
+++ b/config/deploy/os-odl_l2-sfc-noha.yaml
@@ -4,7 +4,7 @@ global_params:
deploy_options:
sdn_controller: opendaylight
sdn_l3: false
- odl_version: boron
+ odl_version: carbon
tacker: true
congress: true
sfc: true
diff --git a/config/yum.repos.d/opnfv-apex.repo b/config/yum.repos.d/opnfv-apex.repo
index aff09420..21e7e163 100644
--- a/config/yum.repos.d/opnfv-apex.repo
+++ b/config/yum.repos.d/opnfv-apex.repo
@@ -1,6 +1,6 @@
[opnfv-apex]
-name=OPNFV Apex Danube
-baseurl=http://artifacts.opnfv.org/apex/danube/yumrepo/
+name=OPNFV Apex Euphrates
+baseurl=http://artifacts.opnfv.org/apex/euphrates/yumrepo/
failovermethod=priority
enabled=1
gpgcheck=0
diff --git a/lib/configure-deps-functions.sh b/lib/configure-deps-functions.sh
index 3c82c66a..32900015 100755
--- a/lib/configure-deps-functions.sh
+++ b/lib/configure-deps-functions.sh
@@ -90,9 +90,14 @@ EOF
fi
done
else
+ # verify virtualbmc is installed for a virtual install
+ if ! rpm -q python2-virtualbmc; then
+ echo -e "${red}ERROR: Package python2-virtualbmc is required to do a virtual install.$reset"
+ exit 1
+ fi
for network in ${OPNFV_NETWORK_TYPES}; do
if ! ovs-vsctl --may-exist add-br ${NET_MAP[$network]}; then
- echo -e "${red}ERROR: Failed to create ovs bridge ${NET_MAP[$network]}{$reset}"
+ echo -e "${red}ERROR: Failed to create ovs bridge ${NET_MAP[$network]}${reset}"
exit 1
fi
echo "${blue}INFO: Creating Virsh Network: $network${reset}"
diff --git a/lib/configure-vm b/lib/configure-vm
new file mode 100755
index 00000000..340a7ab6
--- /dev/null
+++ b/lib/configure-vm
@@ -0,0 +1,171 @@
+#!/usr/bin/env python
+
+import argparse
+import math
+import os
+import random
+
+import libvirt
+
+templatedir = os.getenv('LIB', '/var/opt/opnfv/lib') + '/installer/'
+
+MAX_NUM_MACS = math.trunc(0xff/2)
+
+
+def generate_baremetal_macs(count=1):
+ """Generate an Ethernet MAC address suitable for baremetal testing."""
+ # NOTE(dprince): We generate our own bare metal MAC address's here
+ # instead of relying on libvirt so that we can ensure the
+ # locally administered bit is set low. (The libvirt default is
+ # to set the 2nd MSB high.) This effectively allows our
+ # fake baremetal VMs to more accurately behave like real hardware
+ # and fixes issues with bridge/DHCP configurations which rely
+ # on the fact that bridges assume the MAC address of the lowest
+ # attached NIC.
+ # MACs generated for a given machine will also be in sequential
+ # order, which matches how most BM machines are laid out as well.
+ # Additionally we increment each MAC by two places.
+ macs = []
+
+ if count > MAX_NUM_MACS:
+ raise ValueError("The MAX num of MACS supported is %i." % MAX_NUM_MACS)
+
+ base_nums = [0x00,
+ random.randint(0x00, 0xff),
+ random.randint(0x00, 0xff),
+ random.randint(0x00, 0xff),
+ random.randint(0x00, 0xff)]
+ base_mac = ':'.join(map(lambda x: "%02x" % x, base_nums))
+
+ start = random.randint(0x00, 0xff)
+ if (start + (count * 2)) > 0xff:
+ # leave room to generate macs in sequence
+ start = 0xff - count * 2
+ for num in range(0, count*2, 2):
+ mac = start + num
+ macs.append(base_mac + ":" + ("%02x" % mac))
+ return macs
+
+def main():
+ parser = argparse.ArgumentParser(
+ description="Configure a kvm virtual machine for the seed image.")
+ parser.add_argument('--name', default='seed',
+ help='the name to give the machine in libvirt.')
+ parser.add_argument('--image',
+ help='Use a custom image file (must be qcow2).')
+ parser.add_argument('--diskbus', default='sata',
+ help='Choose an alternate bus type for the disk')
+ parser.add_argument('--baremetal-interface', nargs='+', default=['brbm'],
+ help='The interface which bare metal nodes will be connected to.')
+ parser.add_argument('--engine', default='kvm',
+ help='The virtualization engine to use')
+ parser.add_argument('--arch', default='i686',
+ help='The architecture to use')
+ parser.add_argument('--memory', default='2097152',
+ help="Maximum memory for the VM in KB.")
+ parser.add_argument('--cpus', default='1',
+ help="CPU count for the VM.")
+ parser.add_argument('--bootdev', default='hd',
+ help="What boot device to use (hd/network).")
+ parser.add_argument('--seed', default=False, action='store_true',
+ help='Create a seed vm with two interfaces.')
+ parser.add_argument('--ovsbridge', default="",
+ help='Place the seed public interface on this ovs bridge.')
+ parser.add_argument('--libvirt-nic-driver', default='virtio',
+ help='The libvirt network driver to use')
+ parser.add_argument('--enable-serial-console', action="store_true",
+ help='Enable a serial console')
+ parser.add_argument('--direct-boot',
+ help='Enable directboot to <value>.{vmlinux & initrd}')
+ parser.add_argument('--kernel-arg', action="append", dest='kernel_args',
+ help='Kernel arguments, use multiple time for multiple args.')
+ parser.add_argument('--uri', default='qemu:///system',
+ help='The server uri with which to connect.')
+ args = parser.parse_args()
+ with file(templatedir + '/domain.xml', 'rb') as f:
+ source_template = f.read()
+ imagefile = '/var/lib/libvirt/images/seed.qcow2'
+ if args.image:
+ imagefile = args.image
+ imagefile = os.path.realpath(imagefile)
+ params = {
+ 'name': args.name,
+ 'imagefile': imagefile,
+ 'engine': args.engine,
+ 'arch': args.arch,
+ 'memory': args.memory,
+ 'cpus': args.cpus,
+ 'bootdev': args.bootdev,
+ 'network': '',
+ 'enable_serial_console': '',
+ 'direct_boot': '',
+ 'kernel_args': '',
+ }
+ if args.image is not None:
+ params['imagefile'] = args.image
+
+ # Configure the bus type for the target disk device
+ params['diskbus'] = args.diskbus
+ nicparams = {
+ 'nicdriver': args.libvirt_nic_driver,
+ 'ovsbridge': args.ovsbridge,
+ }
+ if args.seed:
+ if args.ovsbridge:
+ params['network'] = """
+ <interface type='bridge'>
+ <source bridge='%(ovsbridge)s'/>
+ <virtualport type='openvswitch'/>
+ <model type='%(nicdriver)s'/>
+ </interface>""" % nicparams
+ else:
+ params['network'] = """
+ <!-- regular natted network, for access to the vm -->
+ <interface type='network'>
+ <source network='default'/>
+ <model type='%(nicdriver)s'/>
+ </interface>""" % nicparams
+
+ macs = generate_baremetal_macs(len(args.baremetal_interface))
+
+ params['bm_network'] = ""
+ for bm_interface, mac in zip(args.baremetal_interface, macs):
+ bm_interface_params = {
+ 'bminterface': bm_interface,
+ 'bmmacaddress': mac,
+ 'nicdriver': args.libvirt_nic_driver,
+ }
+ params['bm_network'] += """
+ <!-- bridged 'bare metal' network on %(bminterface)s -->
+ <interface type='network'>
+ <mac address='%(bmmacaddress)s'/>
+ <source network='%(bminterface)s'/>
+ <model type='%(nicdriver)s'/>
+ </interface>""" % bm_interface_params
+
+ if args.enable_serial_console:
+ params['enable_serial_console'] = """
+ <serial type='pty'>
+ <target port='0'/>
+ </serial>
+ <console type='pty'>
+ <target type='serial' port='0'/>
+ </console>
+ """
+ if args.direct_boot:
+ params['direct_boot'] = """
+ <kernel>/var/lib/libvirt/images/%(direct_boot)s.vmlinuz</kernel>
+ <initrd>/var/lib/libvirt/images/%(direct_boot)s.initrd</initrd>
+ """ % { 'direct_boot': args.direct_boot }
+ if args.kernel_args:
+ params['kernel_args'] = """
+ <cmdline>%s</cmdline>
+ """ % ' '.join(args.kernel_args)
+
+ libvirt_template = source_template % params
+ conn=libvirt.open(args.uri)
+ a = conn.defineXML(libvirt_template)
+ print ("Created machine %s with UUID %s" % (args.name, a.UUIDString()))
+
+if __name__ == '__main__':
+ main()
diff --git a/lib/installer/domain.xml b/lib/installer/domain.xml
index c710e561..ead0de69 100644
--- a/lib/installer/domain.xml
+++ b/lib/installer/domain.xml
@@ -7,6 +7,8 @@
<type arch='%(arch)s'>hvm</type>
<boot dev='%(bootdev)s'/>
<bootmenu enable='no'/>
+ %(direct_boot)s
+ %(kernel_args)s
</os>
<features>
<acpi/>
diff --git a/lib/overcloud-deploy-functions.sh b/lib/overcloud-deploy-functions.sh
index e5f9134b..f26a72a3 100755
--- a/lib/overcloud-deploy-functions.sh
+++ b/lib/overcloud-deploy-functions.sh
@@ -42,7 +42,7 @@ function overcloud_deploy {
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-honeycomb-l2.yaml"
fi
else
- DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-l3.yaml"
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight.yaml"
fi
SDN_IMAGE=opendaylight
elif [ "${deploy_options_array['sdn_controller']}" == 'opendaylight-external' ]; then
@@ -256,22 +256,20 @@ EOI
# Set ODL version accordingly
if [[ "${deploy_options_array['sdn_controller']}" == 'opendaylight' && -n "${deploy_options_array['odl_version']}" ]]; then
case "${deploy_options_array['odl_version']}" in
- beryllium) odl_version=''
+ carbon) odl_version=''
;;
- boron) odl_version='boron'
- ;;
- carbon) odl_version='master'
- ;;
- *) echo -e "${red}Invalid ODL version ${deploy_options_array['odl_version']}. Please use 'carbon' or 'boron' values.${reset}"
+ *) echo -e "${red}Invalid ODL version ${deploy_options_array['odl_version']}. Please use 'carbon'.${reset}"
exit 1
;;
esac
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
- LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y remove opendaylight" \
- --run-command "yum -y install /root/${odl_version}/*" \
- -a overcloud-full.qcow2
+ if [[ -n "$odl_version" ]]; then
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
+ LIBGUESTFS_BACKEND=direct virt-customize --run-command "yum -y remove opendaylight" \
+ --run-command "yum -y install /root/${odl_version}/*" \
+ -a overcloud-full.qcow2
EOI
+ fi
fi
# Override ODL if we enable netvirt for fdio
@@ -333,6 +331,9 @@ EOI
DEPLOY_OPTIONS+=" --control-flavor control --compute-flavor compute"
if [[ "$virtual" == "TRUE" ]]; then
DEPLOY_OPTIONS+=" -e virtual-environment.yaml"
+ # double check the status of the vbmc devices
+ # TODO add some validation logic here
+ vbmc list
fi
echo -e "${blue}INFO: Deploy options set:\n${DEPLOY_OPTIONS}${reset}"
@@ -356,33 +357,25 @@ echo "Uploading overcloud glance images"
openstack overcloud image upload
echo "Configuring undercloud and discovering nodes"
-openstack baremetal import --json instackenv.json
+
if [[ -z "$virtual" ]]; then
- openstack baremetal introspection bulk start
- if [[ -n "$root_disk_list" ]]; then
- openstack baremetal configure boot --root-device=${root_disk_list}
- else
- openstack baremetal configure boot
- fi
+ openstack overcloud node import instackenv.json
+ openstack overcloud node introspect --all-manageable --provide
+ #if [[ -n "$root_disk_list" ]]; then
+ # TODO: replace node configure boot with ironic node-update
+ # TODO: configure boot is not used in ocata here anymore
+ #openstack overcloud node configure boot --root-device=${root_disk_list}
+ #https://github.com/openstack/tripleo-quickstart-extras/blob/master/roles/overcloud-prep-images/templates/overcloud-prep-images.sh.j2#L73-L130
+ #ironic node-update $ironic_node add properties/root_device='{"{{ node['key'] }}": "{{ node['value'] }}"}'
+ #fi
else
- openstack baremetal configure boot
+ openstack overcloud node import --provide instackenv.json
fi
-echo "Configuring flavors"
-for flavor in baremetal control compute; do
- echo -e "${blue}INFO: Updating flavor: \${flavor}${reset}"
- if openstack flavor list | grep \${flavor}; then
- openstack flavor delete \${flavor}
- fi
- openstack flavor create --id auto --ram 4096 --disk 39 --vcpus 1 \${flavor}
- if ! openstack flavor list | grep \${flavor}; then
- echo -e "${red}ERROR: Unable to create flavor \${flavor}${reset}"
- fi
-done
-openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" baremetal
-openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="control" control
-openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute" compute
+openstack flavor set --property "cpu_arch"="x86_64" baremetal
+openstack flavor set --property "cpu_arch"="x86_64" control
+openstack flavor set --property "cpu_arch"="x86_64" compute
echo "Configuring nameserver on ctlplane network"
dns_server_ext=''
for dns_server in ${dns_servers}; do
@@ -390,7 +383,7 @@ for dns_server in ${dns_servers}; do
done
neutron subnet-update \$(neutron subnet-list | grep -Ev "id|tenant|external|storage" | grep -v \\\\-\\\\- | awk {'print \$2'}) \${dns_server_ext}
sed -i '/CloudDomain:/c\ CloudDomain: '${domain_name} ${ENV_FILE}
-echo "Executing overcloud deployment, this should run for an extended period without output."
+echo "Executing overcloud deployment, this could run for an extended period without output."
sleep 60 #wait for Hypervisor stats to check-in to nova
# save deploy command so it can be used for debugging
cat > deploy_command << EOF
diff --git a/lib/post-install-functions.sh b/lib/post-install-functions.sh
index a93ad541..7678b0d3 100755
--- a/lib/post-install-functions.sh
+++ b/lib/post-install-functions.sh
@@ -91,36 +91,37 @@ source overcloudrc
set -o errexit
echo "Configuring Neutron external network"
if [[ -n "$external_nic_mapping_compute_vlan" && "$external_nic_mapping_compute_vlan" != 'native' ]]; then
- neutron net-create external --router:external=True --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --provider:network_type vlan --provider:segmentation_id ${external_nic_mapping_compute_vlan} --provider:physical_network datacentre
+ openstack network create external --project service --external --provider-network-type vlan --provider-segment $external_nic_mapping_compute_vlan --provider-physical-network datacentre
else
- neutron net-create external --router:external=True --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --provider:network_type flat --provider:physical_network datacentre
+ openstack network create external --project service --external --provider-network-type flat --provider-physical-network datacentre
fi
if [ "$external_network_ipv6" == "True" ]; then
- neutron subnet-create --name external-net --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') external --ip_version 6 --ipv6_ra_mode slaac --ipv6_address_mode slaac --gateway ${external_gateway} --allocation-pool start=${external_floating_ip_range%%,*},end=${external_floating_ip_range##*,} ${external_cidr}
+ openstack subnet create external-subnet --project service --network external --no-dhcp --gateway $external_gateway --allocation-pool start=${external_floating_ip_range%%,*},end=${external_floating_ip_range##*,} --subnet-range $external_cidr --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac
elif [[ "$enabled_network_list" =~ "external" ]]; then
- neutron subnet-create --name external-net --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --disable-dhcp external --gateway ${external_gateway} --allocation-pool start=${external_floating_ip_range%%,*},end=${external_floating_ip_range##*,} ${external_cidr}
+ openstack subnet create external-subnet --project service --network external --no-dhcp --gateway $external_gateway --allocation-pool start=${external_floating_ip_range%%,*},end=${external_floating_ip_range##*,} --subnet-range $external_cidr
else
# we re-use the introspection range for floating ips with single admin network
- neutron subnet-create --name external-net --tenant-id \$(openstack project show service | grep id | awk '{ print \$4 }') --disable-dhcp external --gateway ${admin_gateway} --allocation-pool start=${admin_introspection_range%%,*},end=${admin_introspection_range##*,} ${admin_cidr}
+ openstack subnet create external-subnet --project service --network external --no-dhcp --gateway $admin_gateway --allocation-pool start=${admin_introspection_range%%,*},end=${admin_introspection_range##*,} --subnet-range $admin_cidr
fi
if [ "${deploy_options_array['gluon']}" == 'True' ]; then
echo "Creating Gluon dummy network and subnet"
- neutron net-create --shared --provider:network_type vxlan GluonNetwork
- neutron subnet-create --name GluonSubnet --no-gateway --disable-dhcp GluonNetwork 0.0.0.0/1
+ openstack network create gluon-network --share --provider-network-type vxlan
+ openstack subnet create gluon-subnet --no-gateway --no-dhcp --network GluonNetwork --subnet-range 0.0.0.0/1
fi
-echo "Removing sahara endpoint and service"
-sahara_service_id=\$(openstack service list | grep sahara | cut -d ' ' -f 2)
-sahara_endpoint_id=\$(openstack endpoint list | grep sahara | cut -d ' ' -f 2)
-[[ -n "\$sahara_endpoint_id" ]] && openstack endpoint delete \$sahara_endpoint_id
-[[ -n "\$sahara_service_id" ]] && openstack service delete \$sahara_service_id
-
-echo "Removing swift endpoint and service"
-swift_service_id=\$(openstack service list | grep swift | cut -d ' ' -f 2)
-swift_endpoint_id=\$(openstack endpoint list | grep swift | cut -d ' ' -f 2)
-[[ -n "\$swift_endpoint_id" ]] && openstack endpoint delete \$swift_endpoint_id
-[[ -n "\$swift_service_id" ]] && openstack service delete \$swift_service_id
+# Fix project_id and os_tenant_name not in overcloudrc
+# Deprecated openstack client does not need project_id
+# and os_tenant_name anymore but glance client and
+# Rally in general does need it.
+# REMOVE when not needed in Rally/glance-client anymore.
+if ! grep -q "OS_PROJECT_ID" ./overcloudrc;then
+ project_id=\$(openstack project list |grep admin|awk '{print \$2}')
+ echo "export OS_PROJECT_ID=\$project_id" >> ./overcloudrc
+fi
+if ! grep -q "OS_TENANT_NAME" ./overcloudrc;then
+ echo "export OS_TENANT_NAME=admin" >> ./overcloudrc
+fi
if [ "${deploy_options_array['dataplane']}" == 'fdio' ] || [ "${deploy_options_array['dataplane']}" == 'ovs_dpdk' ]; then
for flavor in \$(openstack flavor list -c Name -f value); do
@@ -160,20 +161,6 @@ if [ "${deploy_options_array['congress']}" == 'True' ]; then
fi
-# Fix project_id and os_tenant_name not in overcloudrc
-# Deprecated openstack client does not need project_id
-# and os_tenant_name anymore but glance client and
-# Rally in generall does need it.
-# REMOVE when not needed in Rally/glance-client anymore.
-if ! grep -q "OS_PROJECT_ID" ./overcloudrc;then
- project_id=\$(openstack project list |grep admin|awk '{print \$2}')
- echo "export OS_PROJECT_ID=\$project_id" >> ./overcloudrc
-fi
-if ! grep -q "OS_TENANT_NAME" ./overcloudrc;then
- echo "export OS_TENANT_NAME=admin" >> ./overcloudrc
-fi
-
-
EOI
# we need to restart neutron-server in Gluon deployments to allow the Gluon core
diff --git a/lib/python/apex/inventory.py b/lib/python/apex/inventory.py
index ce16ef41..2e08d3b9 100644
--- a/lib/python/apex/inventory.py
+++ b/lib/python/apex/inventory.py
@@ -43,6 +43,8 @@ class Inventory(dict):
node['pm_password'] = node['ipmi_pass']
node['pm_user'] = node['ipmi_user']
node['mac'] = [node['mac_address']]
+ if 'cpus' in node:
+ node['cpu'] = node['cpus']
for i in ('ipmi_ip', 'ipmi_pass', 'ipmi_user', 'mac_address',
'disk_device'):
diff --git a/lib/undercloud-functions.sh b/lib/undercloud-functions.sh
index 0b13c8c8..a17036ac 100755
--- a/lib/undercloud-functions.sh
+++ b/lib/undercloud-functions.sh
@@ -11,6 +11,7 @@
##verify vm exists, an has a dhcp lease assigned to it
##params: none
function setup_undercloud_vm {
+ local libvirt_imgs=/var/lib/libvirt/images
if ! virsh list --all | grep undercloud > /dev/null; then
undercloud_nets="default admin"
if [[ $enabled_network_list =~ "external" ]]; then
@@ -27,17 +28,18 @@ function setup_undercloud_vm {
#error: internal error: received hangup / error event on socket
#error: Reconnected to the hypervisor
- local undercloud_dst=/var/lib/libvirt/images/undercloud.qcow2
- cp -f $IMAGES/undercloud.qcow2 $undercloud_dst
+ cp -f $IMAGES/undercloud.qcow2 $libvirt_imgs/undercloud.qcow2
+ cp -f $IMAGES/overcloud-full.vmlinuz $libvirt_imgs/overcloud-full.vmlinuz
+ cp -f $IMAGES/overcloud-full.initrd $libvirt_imgs/overcloud-full.initrd
# resize Undercloud machine
echo "Checking if Undercloud needs to be resized..."
- undercloud_size=$(LIBGUESTFS_BACKEND=direct virt-filesystems --long -h --all -a $undercloud_dst |grep device | grep -Eo "[0-9\.]+G" | sed -n 's/\([0-9][0-9]*\).*/\1/p')
+ undercloud_size=$(LIBGUESTFS_BACKEND=direct virt-filesystems --long -h --all -a $libvirt_imgs/undercloud.qcow2 |grep device | grep -Eo "[0-9\.]+G" | sed -n 's/\([0-9][0-9]*\).*/\1/p')
if [ "$undercloud_size" -lt 30 ]; then
qemu-img resize /var/lib/libvirt/images/undercloud.qcow2 +25G
- LIBGUESTFS_BACKEND=direct virt-resize --expand /dev/sda1 $IMAGES/undercloud.qcow2 $undercloud_dst
- LIBGUESTFS_BACKEND=direct virt-customize -a $undercloud_dst --run-command 'xfs_growfs -d /dev/sda1 || true'
- new_size=$(LIBGUESTFS_BACKEND=direct virt-filesystems --long -h --all -a $undercloud_dst |grep filesystem | grep -Eo "[0-9\.]+G" | sed -n 's/\([0-9][0-9]*\).*/\1/p')
+ LIBGUESTFS_BACKEND=direct virt-resize --expand /dev/sda1 $IMAGES/undercloud.qcow2 $libvirt_imgs/undercloud.qcow2
+ LIBGUESTFS_BACKEND=direct virt-customize -a $libvirt_imgs/undercloud.qcow2 --run-command 'xfs_growfs -d /dev/sda1 || true'
+ new_size=$(LIBGUESTFS_BACKEND=direct virt-filesystems --long -h --all -a $libvirt_imgs/undercloud.qcow2 |grep filesystem | grep -Eo "[0-9\.]+G" | sed -n 's/\([0-9][0-9]*\).*/\1/p')
if [ "$new_size" -lt 30 ]; then
echo "Error resizing Undercloud machine, disk size is ${new_size}"
exit 1
@@ -56,11 +58,11 @@ function setup_undercloud_vm {
# if the VM is not running update the authkeys and start it
if ! virsh list | grep undercloud > /dev/null; then
if [ "$debug" == 'TRUE' ]; then
- LIBGUESTFS_BACKEND=direct virt-customize -a $undercloud_dst --root-password password:opnfvapex
+ LIBGUESTFS_BACKEND=direct virt-customize -a $libvirt_imgs/undercloud.qcow2 --root-password password:opnfvapex
fi
echo "Injecting ssh key to Undercloud VM"
- LIBGUESTFS_BACKEND=direct virt-customize -a $undercloud_dst --run-command "mkdir -p /root/.ssh/" \
+ LIBGUESTFS_BACKEND=direct virt-customize -a $libvirt_imgs/undercloud.qcow2 --run-command "mkdir -p /root/.ssh/" \
--upload ~/.ssh/id_rsa.pub:/root/.ssh/authorized_keys \
--run-command "chmod 600 /root/.ssh/authorized_keys && restorecon /root/.ssh/authorized_keys" \
--run-command "cp /root/.ssh/authorized_keys /home/stack/.ssh/" \
@@ -115,6 +117,9 @@ function setup_undercloud_vm {
echo -e "${blue}\r ${reset}"
sleep 1
+ # ensure stack user on Undercloud machine has an ssh key
+ ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "if [ ! -e ~/.ssh/id_rsa.pub ]; then ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa; fi"
+
# ssh key fix for stack user
ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "restorecon -r /home/stack"
}
@@ -163,47 +168,13 @@ $compute_nic_template
EOF
EOI
- # ensure stack user on Undercloud machine has an ssh key
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "if [ ! -e ~/.ssh/id_rsa.pub ]; then ssh-keygen -t rsa -N '' -f ~/.ssh/id_rsa; fi"
-
- if [ "$virtual" == "TRUE" ]; then
-
- # copy the Undercloud VM's stack user's pub key to
- # root's auth keys so that Undercloud can control
- # vm power on the hypervisor
- ssh ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" "cat /home/stack/.ssh/id_rsa.pub" >> /root/.ssh/authorized_keys
- fi
-
- # allow stack to control power management on the hypervisor via sshkey
- # only if this is a virtual deployment
- if [ "$virtual" == "TRUE" ]; then
- ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI
-while read -r line; do
- stack_key=\${stack_key}\\\\\\\\n\${line}
-done < <(cat ~/.ssh/id_rsa)
-stack_key=\$(echo \$stack_key | sed 's/\\\\\\\\n//')
-sed -i 's~INSERT_STACK_USER_PRIV_KEY~'"\$stack_key"'~' instackenv.json
-EOI
- fi
-
- # copy stack's ssh key to this users authorized keys
- ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "cat /home/stack/.ssh/id_rsa.pub" >> ~/.ssh/authorized_keys
-
# disable requiretty for sudo
ssh -T ${SSH_OPTIONS[@]} "root@$UNDERCLOUD" "sed -i 's/Defaults\s*requiretty//'" /etc/sudoers
# configure undercloud on Undercloud VM
- echo "Running undercloud configuration."
- echo "Logging undercloud configuration to undercloud:/home/stack/apex-undercloud-install.log"
+ echo "Running undercloud installation and configuration."
+ echo "Logging undercloud installation to stack@undercloud:/home/stack/apex-undercloud-install.log"
ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" << EOI
-sed -i 's/#local_ip/local_ip/' undercloud.conf
-sed -i 's/#network_gateway/network_gateway/' undercloud.conf
-sed -i 's/#network_cidr/network_cidr/' undercloud.conf
-sed -i 's/#dhcp_start/dhcp_start/' undercloud.conf
-sed -i 's/#dhcp_end/dhcp_end/' undercloud.conf
-sed -i 's/#inspection_iprange/inspection_iprange/' undercloud.conf
-sed -i 's/#undercloud_debug/undercloud_debug/' undercloud.conf
-
openstack-config --set undercloud.conf DEFAULT local_ip ${admin_installer_vm_ip}/${admin_cidr##*/}
openstack-config --set undercloud.conf DEFAULT network_gateway ${admin_installer_vm_ip}
openstack-config --set undercloud.conf DEFAULT network_cidr ${admin_cidr}
@@ -213,6 +184,7 @@ openstack-config --set undercloud.conf DEFAULT inspection_iprange ${admin_intros
openstack-config --set undercloud.conf DEFAULT undercloud_debug false
openstack-config --set undercloud.conf DEFAULT undercloud_hostname "undercloud.${domain_name}"
openstack-config --set undercloud.conf DEFAULT enable_ui false
+openstack-config --set undercloud.conf DEFAULT undercloud_update_packages false
sudo openstack-config --set /etc/ironic/ironic.conf disk_utils iscsi_verify_attempts 30
sudo openstack-config --set /etc/ironic/ironic.conf disk_partitioner check_device_max_retries 40
@@ -224,14 +196,12 @@ sudo sed -i '/CephClusterFSID:/c\\ CephClusterFSID: \\x27$(cat /proc/sys/kernel
sudo sed -i '/CephMonKey:/c\\ CephMonKey: \\x27'"\$(ceph-authtool --gen-print-key)"'\\x27' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
sudo sed -i '/CephAdminKey:/c\\ CephAdminKey: \\x27'"\$(ceph-authtool --gen-print-key)"'\\x27' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
-# we assume that packages will not need to be updated with undercloud install
-# and that it will be used only to configure the undercloud
-# packages updates would need to be handled manually with yum update
-sudo cp -f /usr/share/diskimage-builder/elements/yum/bin/install-packages /usr/share/diskimage-builder/elements/yum/bin/install-packages.bak
-cat << 'EOF' | sudo tee /usr/share/diskimage-builder/elements/yum/bin/install-packages > /dev/null
-#!/bin/sh
-exit 0
-EOF
+#####
+# TEMP WORKAROUND, REMOVE WHEN SNAPS SUPPORTS GLANCE API v2
+# JIRA: SNAPS-66
+#####
+sudo sed -i '/glance::api::enable_v1_api/ s/false/true/' -i /usr/share/openstack-tripleo-heat-templates/puppet/services/glance-api.yaml
+
openstack undercloud install &> apex-undercloud-install.log || {
# cat the undercloud install log incase it fails
@@ -240,8 +210,6 @@ openstack undercloud install &> apex-undercloud-install.log || {
exit 1
}
-sleep 30
-sudo systemctl restart openstack-glance-api
# Set nova domain name
sudo openstack-config --set /etc/nova/nova.conf DEFAULT dns_domain ${domain_name}
sudo openstack-config --set /etc/nova/nova.conf DEFAULT dhcp_domain ${domain_name}
@@ -254,11 +222,6 @@ sudo systemctl restart openstack-nova-scheduler
sudo openstack-config --set /etc/neutron/neutron.conf DEFAULT dns_domain ${domain_name}
sudo systemctl restart neutron-server
sudo systemctl restart neutron-dhcp-agent
-
-sudo sed -i '/num_engine_workers/c\num_engine_workers = 2' /etc/heat/heat.conf
-sudo sed -i '/#workers\s=/c\workers = 2' /etc/heat/heat.conf
-sudo systemctl restart openstack-heat-engine
-sudo systemctl restart openstack-heat-api
EOI
# configure external network
@@ -286,10 +249,4 @@ fi
EOI
fi
-# WORKAROUND: must restart the above services to fix sync problem with nova compute manager
-# TODO: revisit and file a bug if necessary. This should eventually be removed
-# as well as glance api problem
-echo -e "${blue}INFO: Sleeping 15 seconds while services come back from restart${reset}"
-sleep 15
-
}
diff --git a/lib/virtual-setup-functions.sh b/lib/virtual-setup-functions.sh
index c74a374b..ac7b507b 100755
--- a/lib/virtual-setup-functions.sh
+++ b/lib/virtual-setup-functions.sh
@@ -74,23 +74,26 @@ EOF
node${i}:
mac_address: "$mac"
ipmi_ip: 192.168.122.1
- ipmi_user: root
- ipmi_pass: "INSERT_STACK_USER_PRIV_KEY"
- pm_type: "pxe_ssh"
- cpus: $vcpus
+ ipmi_user: admin
+ ipmi_pass: "password"
+ pm_type: "pxe_ipmitool"
+ pm_port: "623$i"
+ cpu: $vcpus
memory: $ramsize
disk: 41
arch: "x86_64"
capabilities: "$capability"
EOF
+ vbmc add baremetal$i --port 623$i
+ if service firewalld status > /dev/null; then
+ firewall-cmd --permanent --zone=public --add-port=623$i/udp
+ fi
+ # TODO: add iptables check and commands too
+ vbmc start baremetal$i
done
-
- #Overwrite the tripleo-inclubator domain.xml with our own, keeping a backup.
- if [ ! -f /usr/share/tripleo/templates/domain.xml.bak ]; then
- /usr/bin/mv -f /usr/share/tripleo/templates/domain.xml /usr/share/tripleo/templates/domain.xml.bak
+ if service firewalld status > /dev/null; then
+ firewall-cmd --reload
fi
-
- /usr/bin/cp -f $LIB/installer/domain.xml /usr/share/tripleo/templates/domain.xml
}
##Create virtual nodes in virsh
@@ -101,7 +104,7 @@ EOF
## vcpus - Number of VCPUs to use (defaults to 4)
## ramsize - Size of RAM for VM in MB (defaults to 8192)
function define_vm () {
- local vcpus ramsize
+ local vcpus ramsize volume_path direct_boot kernel_args
if [ -z "$5" ]; then
vcpus=4
@@ -129,14 +132,23 @@ function define_vm () {
exit 1
fi
+ # undercloud need to be direct booted.
+ # the upstream image no longer includes the kernel and initrd
+ if [ "$1" == 'undercloud' ]; then
+ direct_boot='--direct-boot overcloud-full'
+ kernel_args='--kernel-arg console=ttyS0 --kernel-arg root=/dev/sda'
+ fi
+
# create the VM
- /usr/libexec/openstack-tripleo/configure-vm --name $1 \
- --bootdev $2 \
- --image "$volume_path" \
- --diskbus sata \
- --arch x86_64 \
- --cpus $vcpus \
- --memory $ramsize \
- --libvirt-nic-driver virtio \
- --baremetal-interface $4
+ $LIB/configure-vm --name $1 \
+ --bootdev $2 \
+ --image "$volume_path" \
+ --diskbus sata \
+ --arch $(uname -i) \
+ --cpus $vcpus \
+ --memory $ramsize \
+ --libvirt-nic-driver virtio \
+ $direct_boot \
+ $kernel_args \
+ --baremetal-interface $4
}