.PHONY: overcloud-full
overcloud-full: images/overcloud-full.qcow2
-images/overcloud-full.qcow2: tacker-rpm tackerclient-rpm congress-rpm networking-vpp-rpm
+images/overcloud-full.qcow2: congress-rpm networking-vpp-rpm
@echo "Building the Apex Base Overcloud Image"
@./overcloud-full.sh
##############################################################################
clone_fork () {
- # ARG 1: opnfv-tht or opnfv-python-triplo
+ # ARG 1: opnfv-tht or opnfv-puppet-tripleo
echo "Cloning $1"
# Use apex tripleo-heat-templates fork
local ghcreds=""
local pr_num=""
- local ref="stable/colorado"
+ local ref="stable/danube"
local repo="https://github.com/trozet/$1"
if git log -1 | grep "${1}-pr:" | grep -o '[0-9]*'; then
# in a typical configuration. Override via parameter_defaults.
resource_registry:
OS::TripleO::Network::External: /usr/share/openstack-tripleo-heat-templates/network/external.yaml
- OS::TripleO::Network::InternalApi: /usr/share/openstack-tripleo-heat-templates/network/noop.yaml
- OS::TripleO::Network::StorageMgmt: /usr/share/openstack-tripleo-heat-templates/network/noop.yaml
- OS::TripleO::Network::Storage: /usr/share/openstack-tripleo-heat-templates/network/noop.yaml
- OS::TripleO::Network::Tenant: /usr/share/openstack-tripleo-heat-templates/network/noop.yaml
+ OS::TripleO::Network::InternalApi: OS::Heat::None
+ OS::TripleO::Network::StorageMgmt: OS::Heat::None
+ OS::TripleO::Network::Storage: OS::Heat::None
+ OS::TripleO::Network::Tenant: OS::Heat::None
# Management network is optional and disabled by default
#OS::TripleO::Network::Management: /usr/share/openstack-tripleo-heat-templates/network/noop.yaml
OS::TripleO::Compute::Net::SoftwareConfig: nics/compute.yaml
OS::TripleO::Controller::Net::SoftwareConfig: nics/controller.yaml
+ # Services
+ OS::TripleO::Services::SwiftStorage: OS::Heat::None
+ OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None
+ OS::TripleO::Services::SwiftProxy: OS::Heat::None
+
parameter_defaults:
NeutronExternalNetworkBridge: 'br-ex'
ControlPlaneSubnetCidr: "24"
# StorageMgmtNetworkVlanID: 30 # NOT IMPLEMENTED
TenantNetworkVlanID: 40
ExternalNetworkVlanID: 50
-
-parameters:
ServiceNetMap:
NeutronTenantNetwork: tenant
CeilometerApiNetwork: internal_api
AodhApiNetwork: internal_api
- OpenDaylightApiNetwork: internal_api
+ OpendaylightApiNetwork: internal_api
MongoDbNetwork: internal_api
CinderApiNetwork: internal_api
CinderIscsiNetwork: storage
#types
parameters:
- controllerImage: overcloud-full
- OvercloudControlFlavor: control
- OvercloudComputeFlavor: compute
- ControllerEnableSwiftStorage: false
+# CloudDomain:
+
+parameter_defaults:
+ CeilometerStoreEvents: true
NeutronEnableForceMetadata: true
NeutronEnableDHCPMetadata: true
NeutronEnableIsolatedMetadata: true
-# CloudDomain:
- EnableSahara: false
- EnableTacker: true
+ OvercloudControlFlavor: control
+ OvercloudComputeFlavor: compute
+ controllerImage: overcloud-full
ExtraConfig:
tripleo::ringbuilder::build_ring: False
nova::nova_public_key:
nova-os_compute_api:servers:show:host_status:
key: 'os_compute_api:servers:show:host_status'
value: 'rule:admin_or_owner'
-
-parameter_defaults:
- CeilometerStoreEvents: true
+ ControllerServices:
+ - OS::TripleO::Services::CACerts
+# - OS::TripleO::Services::CephClient
+ - OS::TripleO::Services::CephMon
+ - OS::TripleO::Services::CephOSD
+ - OS::TripleO::Services::CephExternal
+ - OS::TripleO::Services::CephRgw
+ - OS::TripleO::Services::CinderApi
+ - 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
+ - OS::TripleO::Services::GlanceRegistry
+ - OS::TripleO::Services::HeatApi
+ - OS::TripleO::Services::HeatApiCfn
+ - OS::TripleO::Services::HeatApiCloudwatch
+ - OS::TripleO::Services::HeatEngine
+ - OS::TripleO::Services::MySQL
+ - OS::TripleO::Services::NeutronDhcpAgent
+ - OS::TripleO::Services::NeutronL3Agent
+ - OS::TripleO::Services::NeutronMetadataAgent
+ - OS::TripleO::Services::NeutronApi
+ - OS::TripleO::Services::NeutronCorePlugin
+ - OS::TripleO::Services::NeutronOvsAgent
+ - OS::TripleO::Services::RabbitMQ
+ - OS::TripleO::Services::HAproxy
+ - OS::TripleO::Services::Keepalived
+ - OS::TripleO::Services::Memcached
+ - OS::TripleO::Services::Pacemaker
+ - OS::TripleO::Services::Redis
+ - OS::TripleO::Services::NovaConductor
+ - OS::TripleO::Services::MongoDb
+ - OS::TripleO::Services::NovaApi
+ - OS::TripleO::Services::NovaMetadata
+ - 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
+ - OS::TripleO::Services::CeilometerCollector
+ - OS::TripleO::Services::CeilometerExpirer
+ - OS::TripleO::Services::CeilometerAgentCentral
+ - OS::TripleO::Services::CeilometerAgentNotification
+ - OS::TripleO::Services::Horizon
+ - OS::TripleO::Services::GnocchiApi
+ - OS::TripleO::Services::GnocchiMetricd
+ - OS::TripleO::Services::GnocchiStatsd
+ - OS::Tripleo::Services::ManilaApi
+ - OS::Tripleo::Services::ManilaScheduler
+ - OS::Tripleo::Services::ManilaBackendGeneric
+ - OS::Tripleo::Services::ManilaBackendNetapp
+ - OS::Tripleo::Services::ManilaBackendCephFs
+ - OS::Tripleo::Services::ManilaShare
+ - OS::TripleO::Services::AodhApi
+ - OS::TripleO::Services::AodhEvaluator
+ - OS::TripleO::Services::AodhNotifier
+ - OS::TripleO::Services::AodhListener
+ - OS::TripleO::Services::SaharaApi
+ - OS::TripleO::Services::SaharaEngine
+ - OS::TripleO::Services::IronicApi
+ - OS::TripleO::Services::IronicConductor
+ - OS::TripleO::Services::NovaIronic
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::OpenDaylightApi
+ - OS::TripleO::Services::OpenDaylightOvs
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::FluentdClient
+ - OS::TripleO::Services::VipHosts
+ ComputeServices:
+ - OS::TripleO::Services::CACerts
+ - OS::TripleO::Services::CephClient
+ - OS::TripleO::Services::CephOSD
+ - OS::TripleO::Services::CephExternal
+ - OS::TripleO::Services::Timezone
+ - OS::TripleO::Services::Ntp
+ - OS::TripleO::Services::Snmp
+ - OS::TripleO::Services::NovaCompute
+ - OS::TripleO::Services::NovaLibvirt
+ - OS::TripleO::Services::Kernel
+ - OS::TripleO::Services::ComputeNeutronCorePlugin
+ - OS::TripleO::Services::ComputeNeutronOvsAgent
+ - OS::TripleO::Services::ComputeCeilometerAgent
+ - OS::TripleO::Services::ComputeNeutronL3Agent
+ - OS::TripleO::Services::ComputeNeutronMetadataAgent
+ - OS::TripleO::Services::TripleoPackages
+ - OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::NeutronSriovAgent
+ - OS::TripleO::Services::OpenDaylightOvs
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::FluentdClient
+ - OS::TripleO::Services::VipHosts
tar -xf cache/overcloud-full.tar -C images/
mv -f images/overcloud-full.qcow2 images/overcloud-full_build.qcow2
-# Add extra space to the overcloud image
-qemu-img resize images/overcloud-full_build.qcow2 +1G
-LIBGUESTFS_BACKEND=direct virt-customize -a images/overcloud-full_build.qcow2 \
- --run-command 'resize2fs /dev/sda'
-
##########################################################
##### Prep initial overcloud image with common deps #####
##########################################################
--run-command "cd /etc/puppet/modules && tar xzf puppet-fdio.tar.gz" \
--upload vsperf.tar.gz:/var/opt \
--run-command "cd /var/opt && tar xzf vsperf.tar.gz" \
- --upload ../noarch/python-tackerclient-2015.2-1.trozet.noarch.rpm:/root/ \
- --install /root/python-tackerclient-2015.2-1.trozet.noarch.rpm \
- --upload ../noarch/openstack-tacker-2015.2-1.trozet.noarch.rpm:/root/ \
- --install /root/openstack-tacker-2015.2-1.trozet.noarch.rpm \
--upload puppet-tacker.tar.gz:/etc/puppet/modules/ \
--run-command "cd /etc/puppet/modules/ && tar xzf puppet-tacker.tar.gz" \
--run-command "pip install python-senlinclient" \
+++ /dev/null
-From 26d39efbb931e04a5e95d504c27ede12d0a81c43 Mon Sep 17 00:00:00 2001
-From: Masahito Muroi <muroi.masahito@lab.ntt.co.jp>
-Date: Fri, 25 Mar 2016 14:06:00 +0900
-Subject: [PATCH] Allows DataSource's config field to have not dict type obj
-
-CongressClient expects all datasource driver has dict object in
-config field. It raises an error when a datasource doesn't have
-any config.
-
-This patch allows config fields to be None object.
-
-Change-Id: I73354f1073f3f814854652eaeaa4b3bbe4bfcf7d
----
-
-diff --git a/congressclient/common/utils.py b/congressclient/common/utils.py
-index 9a381e8..b5cedd4 100644
---- a/congressclient/common/utils.py
-+++ b/congressclient/common/utils.py
-@@ -77,6 +77,8 @@
- :param data: a dict
- :rtype: a string formatted to {a:b, c:d}
- """
-+ if not isinstance(data, dict):
-+ return str(data)
- return str({str(key): str(value) for key, value in data.items()})
# enabling ceph OSDs to live on the controller
# OpenWSMan package update supports the AMT Ironic driver for the TealBox
# seeding configuration files specific to OPNFV
-# add congress client and apply: https://review.openstack.org/#/c/297515/
-# add congress password to python-triploclient
+# add congress client
+# add congress password to python-tripleoclient
# add tacker password to python-tripleoclient
# upload tacker repo and install the client package
LIBGUESTFS_BACKEND=direct virt-customize \
--upload ../opnfv-tht.tar.gz:/usr/share \
+ --install "openstack-utils" \
+ --install "ceph-common" \
--run-command "cd /usr/share && rm -rf openstack-tripleo-heat-templates && tar xzf opnfv-tht.tar.gz" \
--run-command "sed -i '/ControllerEnableCephStorage/c\\ ControllerEnableCephStorage: true' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" \
--run-command "sed -i '/ComputeEnableCephStorage/c\\ ComputeEnableCephStorage: true' /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml" \
--upload ../opnfv-environment.yaml:/home/stack/ \
--upload ../virtual-environment.yaml:/home/stack/ \
--install "python2-congressclient" \
- --upload ../python-congressclient.diff:/tmp \
- --run-command "cd /usr/lib/python2.7/site-packages && patch -p1 < /tmp/python-congressclient.diff" \
--run-command "sed -i '/SERVICE_LIST/a\\ \x27congress\x27: {\x27password_field\x27: \x27OVERCLOUD_CONGRESS_PASSWORD\x27},' /usr/lib/python2.7/site-packages/tripleoclient/constants.py" \
--run-command "sed -i '/PASSWORD_NAMES =/a\\ \"OVERCLOUD_CONGRESS_PASSWORD\",' /usr/lib/python2.7/site-packages/tripleoclient/utils.py" \
--run-command "sed -i '/AodhPassword/a\\ parameters\[\x27CongressPassword\x27\] = passwords\[\x27OVERCLOUD_CONGRESS_PASSWORD\x27\]' /usr/lib/python2.7/site-packages/tripleoclient/v1/overcloud_deploy.py" \
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-rdo_images_uri=http://artifacts.opnfv.org/apex/colorado
+rdo_images_uri=http://buildlogs.centos.org/centos/7/cloud/x86_64/tripleo_images/newton/delorean
onos_release_uri=https://downloads.onosproject.org/nightly/
onos_release_file=onos-1.6.0-rc2.tar.gz
onos_jdk_uri=http://artifacts.opnfv.org/apex/colorado
parameter_defaults:
controllerExtraConfig:
- # In releases before Mitaka, HeatWorkers doesn't modify
- # num_engine_workers, so handle via heat::config
- heat::config::heat_config:
- DEFAULT/num_engine_workers:
- value: 1
heat::api_cloudwatch::enabled: false
heat::api_cfn::enabled: false
HeatWorkers: 1
+++ /dev/null
-global_params:
- ha_enabled: true
-
-deploy_options:
- sdn_controller: opendaylight
- sdn_l3: false
- odl_version: beryllium
- tacker: true
- congress: true
- sfc: false
- vpn: false
--- /dev/null
+os-odl_l3-nofeature-ha.yaml
\ No newline at end of file
deploy_options:
sdn_controller: opendaylight
+ odl_version: boron
sdn_l3: true
tacker: true
congress: true
--- /dev/null
+global_params:
+ ha_enabled: false
+
+deploy_options:
+ sdn_controller: opendaylight
+ odl_version: boron
+ sdn_l3: true
+ tacker: true
+ congress: true
+ sfc: false
+ vpn: false
local num_control_nodes
if [[ "${#deploy_options_array[@]}" -eq 0 || "${deploy_options_array['sdn_controller']}" == 'opendaylight' ]]; then
- if [ "${deploy_options_array['sdn_l3']}" == 'True' ]; then
- DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_l3.yaml"
- elif [ "${deploy_options_array['sfc']}" == 'True' ]; then
+ if [ "${deploy_options_array['sfc']}" == 'True' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sfc.yaml"
elif [ "${deploy_options_array['vpn']}" == 'True' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sdnvpn.yaml"
elif [ "${deploy_options_array['vpn']}" == 'true' ]; then
DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight_sdnvpn.yaml"
else
- DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/opendaylight.yaml"
+ DEPLOY_OPTIONS+=" -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-opendaylight-l3.yaml"
fi
SDN_IMAGE=opendaylight
if [ "${deploy_options_array['sfc']}" == 'True' ]; then
PRE_CONFIG_DIR
)
+HEAT_NONE = 'OS::Heat::None'
PORTS = '/ports'
# Resources defined by <resource name>: <prefix>
EXTERNAL_RESOURCES = {'OS::TripleO::Network::External': None,
if prefix is None:
prefix = ''
m = re.split('%s/\w+\.yaml' % prefix, self[reg][key])
- if m is not None:
+ if m is not None and len(m) > 1:
self.tht_dir = m[0]
break
if not self.tht_dir:
def _config_resource_reg(self, resources, postfix):
for key, prefix in resources.items():
if prefix is None:
+ if postfix == '/noop.yaml':
+ self[reg][key] = HEAT_NONE
+ continue
prefix = ''
self[reg][key] = self.tht_dir + prefix + postfix
# Test IPv6
ne = NetworkEnvironment(self.ns_ipv6,
'../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(EXTERNAL_RESOURCES.keys()))]
+ regstr = ne['resource_registry']['OS::TripleO::Network::External']
assert_equal(regstr.split('/')[-1], 'external_v6.yaml')
def test_netenv_settings_external_network_removed(self):
# Test removing EXTERNAL_NETWORK
ns.enabled_network_list.remove(EXTERNAL_NETWORK)
ne = NetworkEnvironment(ns, '../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(EXTERNAL_RESOURCES.keys()))]
- assert_equal(regstr.split('/')[-1], 'noop.yaml')
+ regstr = ne['resource_registry']['OS::TripleO::Network::External']
+ assert_equal(regstr.split('/')[-1], 'OS::Heat::None')
def test_netenv_settings_tenant_network_vlans(self):
# test vlans
# Test removing TENANT_NETWORK
ns.enabled_network_list.remove(TENANT_NETWORK)
ne = NetworkEnvironment(ns, '../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(TENANT_RESOURCES.keys()))]
- assert_equal(regstr.split('/')[-1], 'noop.yaml')
+ regstr = ne['resource_registry']['OS::TripleO::Network::Tenant']
+ assert_equal(regstr.split('/')[-1], 'OS::Heat::None')
def test_netenv_settings_storage_network_vlans(self):
# test vlans
# Test IPv6
ne = NetworkEnvironment(self.ns_ipv6,
'../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(STORAGE_RESOURCES.keys()))]
+ regstr = ne['resource_registry']['OS::TripleO::Network::Storage']
assert_equal(regstr.split('/')[-1], 'storage_v6.yaml')
def test_netenv_settings_storage_network_removed(self):
# Test removing STORAGE_NETWORK
ns.enabled_network_list.remove(STORAGE_NETWORK)
ne = NetworkEnvironment(ns, '../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(STORAGE_RESOURCES.keys()))]
- assert_equal(regstr.split('/')[-1], 'noop.yaml')
+ regstr = ne['resource_registry']['OS::TripleO::Network::Storage']
+ assert_equal(regstr.split('/')[-1], 'OS::Heat::None')
def test_netenv_settings_api_network_v4(self):
ns = copy(self.ns_vlans)
# Test IPv6
ne = NetworkEnvironment(self.ns_ipv6,
'../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(API_RESOURCES.keys()))]
+ regstr = ne['resource_registry']['OS::TripleO::Network::InternalApi']
assert_equal(regstr.split('/')[-1], 'internal_api_v6.yaml')
def test_netenv_settings_api_network_removed(self):
ns = copy(self.ns)
# API_NETWORK is not in the default network settings file
ne = NetworkEnvironment(ns, '../build/network-environment.yaml')
- regstr = ne['resource_registry'][next(iter(API_RESOURCES.keys()))]
- assert_equal(regstr.split('/')[-1], 'noop.yaml')
+ regstr = ne['resource_registry']['OS::TripleO::Network::InternalApi']
+ assert_equal(regstr.split('/')[-1], 'OS::Heat::None')
def test_numa_configs(self):
ne = NetworkEnvironment(self.ns, '../build/network-environment.yaml',