diff options
author | 2018-01-09 09:29:04 -0800 | |
---|---|---|
committer | 2018-01-09 09:29:04 -0800 | |
commit | 3928c2d76f89e56b636386816efadec93e304fe2 (patch) | |
tree | 2b0e14f486968f86fcf071fc2b99de23cb48cce4 /build | |
parent | 0e94f7b06acec7535db88f2f5c9a5290c3cba88a (diff) |
Update for Euphrates; build/use Tacker container
JIRA: MODELS-2
Change-Id: I71db2f530a055e17d8012ba37487a9ae76be0fd1
Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
Diffstat (limited to 'build')
-rw-r--r-- | build/tacker.sh | 66 | ||||
-rw-r--r-- | build/tacker/Dockerfile | 80 | ||||
-rw-r--r-- | build/tacker/start.sh | 213 | ||||
-rw-r--r-- | build/tacker/tacker.conf | 315 |
4 files changed, 674 insertions, 0 deletions
diff --git a/build/tacker.sh b/build/tacker.sh new file mode 100644 index 0000000..a416fc4 --- /dev/null +++ b/build/tacker.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# Copyright 2017 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#. What this is: Build script for the OpenStack Tacker project +#. https://github.com/openstack/tacker +#. +#. Prerequisites: +#. Docker hub user logged on so images can be pushed to docker hub, i.e. via +#. $ docker login -u <hub-user> +#. +#. Usage: +#. bash tacker.sh <hub-user> <branch> +#. hub-user: username for dockerhub +#. branch: branch to use (default: master) +#. +#. Status: this is a work in progress, under test. + +trap 'fail' ERR + +fail() { + echo "Build Failed!" + exit 1 +} + +dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'` + +hub_user=$1 +branch=$2 + +echo; echo "$0 $(date): Update package repos" +if [ "$dist" == "Ubuntu" ]; then + sudo apt-get update +else + sudo yum update -y +fi + +if [[ ! -d /tmp/models ]]; then + echo; echo "$0 $(date): Cloning models repo to /tmp/models" + git clone https://gerrit.opnfv.org/gerrit/models /tmp/models +fi + +echo; echo "$0 $(date): Starting Tacker build process" +cd /tmp/models/build/tacker +sed -i -- "s/<branch>/$branch/g" Dockerfile +sudo docker build -t tacker . + +echo; echo "$0 $(date): Tagging the image as models-tacker:$branch" +if [[ "$branch" == "" ]]; then branch="latest"; fi +id=$(sudo docker images | grep tacker | awk '{print $3}') +id=$(echo $id | cut -d ' ' -f 1) +sudo docker tag $id $1/models-tacker:$branch + +echo; echo "$0 $(date): Pushing the image to dockerhub as $1/models-tacker" +sudo docker push $1/models-tacker diff --git a/build/tacker/Dockerfile b/build/tacker/Dockerfile new file mode 100644 index 0000000..f7c7af6 --- /dev/null +++ b/build/tacker/Dockerfile @@ -0,0 +1,80 @@ +# Copyright 2017 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# What this is: A Dockerfile for building an OpenStack Tacker container image. +# +# Status: this is a work in progress, under test. +# + +FROM ubuntu:xenial + +MAINTAINER Bryan Sullivan + +# Per http://docs.openstack.org/developer/tacker/install/manual_installation.html +RUN apt-get update --fix-missing +RUN apt-get install -y apt-utils +RUN apt-get upgrade -y +RUN apt-get install -y python +RUN apt-get install -y python-dev +RUN apt-get install -y python-pip +RUN apt-get install -y wget +RUN apt-get install -y openssh-server +RUN apt-get install -y git +RUN apt-get install -y apg +RUN apt-get install -y libffi-dev +RUN apt-get install -y libssl-dev +# newton: tacker uses ping for monitoring VIM (not in default docker containers) +RUN apt-get install -y inetutils-ping +# apt-utils is not installed in xenial container image +RUN apt-get install -y apt-utils +# Upgrage pip again - needs to be the latest version due to errors found in testing +RUN pip install --upgrade pip + +# Install OpenStack clients +RUN git clone https://github.com/openstack/python-openstackclient.git; \ +cd python-openstackclient; \ +if [[ "<branch>" != "" ]]; then git checkout <branch>; fi; \ +pip install -r requirements.txt; \ +pip install . + +RUN git clone https://github.com/openstack/python-neutronclient.git; \ +cd python-neutronclient; \ +if [[ "<branch>" != "" ]]; then git checkout <branch>; fi; \ +pip install -r requirements.txt; \ +pip install . + +RUN git clone https://github.com/openstack/python-novaclient.git; \ +cd python-novaclient; \ +if [[ "<branch>" != "" ]]; then git checkout <branch>; fi; \ +pip install -r requirements.txt; \ +pip install . + +RUN git clone https://github.com/openstack/python-tackerclient; \ +cd python-tackerclient; \ +if [[ "<branch>" != "" ]]; then git checkout <branch>; fi; \ +python setup.py install + +# Setup Tacker +RUN git clone https://github.com/openstack/tacker.git; \ +if [[ "<branch>" != "" ]]; then cd tacker; git checkout <branch>; fi; \ +cd tacker; \ +pip install -r requirements.txt; \ +pip install tosca-parser; \ +python setup.py install; \ +mkdir /var/log/tacker; \ +mkdir /var/lib/tacker + +COPY tacker.conf /usr/local/etc/tacker/tacker.conf +COPY start.sh start.sh +ENTRYPOINT ["/bin/bash", "start.sh"] diff --git a/build/tacker/start.sh b/build/tacker/start.sh new file mode 100644 index 0000000..b824589 --- /dev/null +++ b/build/tacker/start.sh @@ -0,0 +1,213 @@ +#!/bin/bash +# Copyright 2017 AT&T Intellectual Property, Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# What this is: Startup script for OpenStack Tacker running under docker. + +function log() { + f=$(caller 0 | awk '{print $2}') + l=$(caller 0 | awk '{print $1}') + echo; echo "$f:$l ($(date)) $1" +} + +export MYSQL_PASSWORD=$(/usr/bin/apg -n 1 -m 16 -c cl_seed) +echo $MYSQL_PASSWORD >~/mysql +debconf-set-selections <<< 'mysql-server mysql-server/root_password password '$MYSQL_PASSWORD +debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password '$MYSQL_PASSWORD +apt-get -q -y install mysql-server python-mysqldb +service mysql restart + +log "create Tacker database" +mysql --user=root --password=$MYSQL_PASSWORD -e "CREATE DATABASE tacker; GRANT ALL PRIVILEGES ON tacker.* TO 'root@localhost' IDENTIFIED BY '"$MYSQL_PASSWORD"'; GRANT ALL PRIVILEGES ON tacker.* TO 'tacker'@'%' IDENTIFIED BY '"$MYSQL_PASSWORD"';" + +log "Setup OpenStack CLI environment" +source /opt/tacker/admin-openrc.sh + +uid=$(openstack user list | awk "/ tacker / { print \$2 }") +if [[ $uid ]]; then + log "Remove prior Tacker user etc" + openstack user delete tacker + openstack service delete tacker + # Note: deleting the service deletes the endpoint +fi + +log "Setup Tacker user in OpenStack" +service_project=$(openstack project list | awk "/service/ { print \$4 }") +openstack user create --project $service_project --password tacker tacker +openstack role add --project $service_project --user tacker admin + +log "Create Tacker service in OpenStack" +sid=$(openstack service list | awk "/ tacker / { print \$2 }") +openstack service create --name tacker --description "Tacker Project" nfv-orchestration +sid=$(openstack service list | awk "/ tacker / { print \$2 }") + +log "Create Tacker service endpoint in OpenStack" +ip=$(ip route get 8.8.8.8 | awk '{print $NF; exit}') +region=$(openstack endpoint list | awk "/ nova / { print \$4 }" | head -1) +openstack endpoint create --region $region \ + --publicurl "http://$ip:9890/" \ + --adminurl "http://$ip:9890/" \ + --internalurl "http://$ip:9890/" nfv-orchestration + +# TODO: find a generic way to set extension_drivers = port_security in ml2_conf.ini + # On the neutron service host, update ml2_conf.ini and and restart neutron service + # sed -i -- 's~#extension_drivers =~extension_drivers = port_security~' /etc/neutron/plugins/ml2/ml2_conf.ini + # For devstack, set in local.conf per http://docs.openstack.org/developer/devstack/guides/neutron.html + # Q_ML2_PLUGIN_EXT_DRIVERS=port_security + +log "Update tacker.conf values" + +# [DEFAULT] section (update) +sed -i -- 's/#auth_strategy = keystone/auth_strategy = keystone/' /usr/local/etc/tacker/tacker.conf +# [DEFAULT] section (add to) +sed -i -- "/\[DEFAULT\]/adebug = True" /usr/local/etc/tacker/tacker.conf +sed -i -- "/\[DEFAULT\]/ause_syslog = False" /usr/local/etc/tacker/tacker.conf +sed -i -- "/\[DEFAULT\]/alogging_context_format_string = %(asctime)s.%(msecs)03d %(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_name)s] %(instance)s%(message)s" /usr/local/etc/tacker/tacker.conf +sed -i -- 's~#policy_file = policy.json~policy_file = /usr/local/etc/tacker/policy.json~' /usr/local/etc/tacker/tacker.conf +sed -i -- 's~#state_path = /var/lib/tacker~state_path = /var/lib/tacker~' /usr/local/etc/tacker/tacker.conf + +# Not sure what the effect of the next line is, given that we are running as root in the container +#sed -i -- "s~# root_helper = sudo~root_helper = sudo /usr/local/bin/tacker-rootwrap /usr/local/etc/tacker/rootwrap.conf~" /usr/local/etc/tacker/tacker.conf +sed -i -- "s~#api_paste_config = api-paste.ini~api_paste_config = /usr/local/etc/tacker/api-paste.ini~" /usr/local/etc/tacker/tacker.conf +sed -i -- "s/#bind_host = 0.0.0.0/bind_host = $ip/" /usr/local/etc/tacker/tacker.conf +sed -i -- "s/#bind_port = 8888/bind_port = 9890/" /usr/local/etc/tacker/tacker.conf + +# Newton changes, based upon sample newton gate test conf file provided by sridhar_ram on #tacker +sed -i -- "s/#nova_region_name = <None>/#nova_region_name = $region/" /usr/local/etc/tacker/tacker.conf +sed -i -- "s/#nova_api_insecure = false/nova_api_insecure = False/" /usr/local/etc/tacker/tacker.conf +sed -i -- "s/#nova_ca_certificates_file = <None>/nova_ca_certificates_file =/" /usr/local/etc/tacker/tacker.conf +keystone_adminurl=$(openstack endpoint show keystone | awk "/ adminurl / { print \$4 }") +sed -i -- "s~#nova_admin_auth_url = http://localhost:5000/v2.0~nova_admin_auth_url = $keystone_adminurl~" /usr/local/etc/tacker/tacker.conf +# TODO: don't hard-code service tenant ID +sed -i -- "s/#nova_admin_tenant_id = <None>/nova_admin_tenant_id = service/" /usr/local/etc/tacker/tacker.conf +sed -i -- "s/#nova_admin_password = <None>/nova_admin_password = $OS_PASSWORD/" /usr/local/etc/tacker/tacker.conf +# this diff seems superfluous < nova_admin_user_name = nova + # only one ref in tacker (setting the default value) + # devstack/lib/tacker: iniset $TACKER_CONF DEFAULT nova_admin_user_name nova +# set nova_url to "/v2" (normal value is "/v2.1") due to tacker API version compatibility (?) +nova_ipport=$(openstack endpoint show nova | awk "/ adminurl / { print \$4 }" | awk -F'[/]' '{print $3}') +sed -i -- "s~#nova_url = http://127.0.0.1:8774/v2~nova_url = http://$nova_ipport/v2~" /usr/local/etc/tacker/tacker.conf + +sed -i -- "s~#state_path = /var/lib/tacker~state_path = /var/lib/tacker~" /usr/local/etc/tacker/tacker.conf + +# [alarm_auth] section - optional (?) +# < url = http://15.184.66.78:35357/v3 +# < project_name = service +# < password = secretservice +# < uername = tacker + +# [nfvo_vim] section +sed -i -- "s/#default_vim = <None>/default_vim = VIM0/" /usr/local/etc/tacker/tacker.conf + +# [openstack_vim] section - only change this if you want to override values in models/tests/utils/tacker/tacker.conf.sample +#sed -i -- "s/#stack_retries = 60/stack_retries = 10/" /usr/local/etc/tacker/tacker.conf +#sed -i -- "s/#stack_retry_wait = 5/stack_retry_wait = 60/" /usr/local/etc/tacker/tacker.conf + +# newton: add [keystone_authtoken] missing in generated tacker.conf.sample, excluding the following +# (not referenced) memcached_servers = 15.184.66.78:11211 +# (not referenced) signing_dir = /var/cache/tacker +# (not referenced) cafile = /opt/stack/data/ca-bundle.pem +# (not referenced) auth_uri = http://15.184.66.78/identity +# auth_uri is required for keystonemiddleware.auth_token use of public identity endpoint +# removed due to issues with "ERROR oslo_middleware.catch_errors DiscoveryFailure: Cannot use v2 authentication with domain scope" + # project_domain_name = Default + # user_domain_name = Default + +cat >>/usr/local/etc/tacker/tacker.conf <<EOF +[keystone_authtoken] +auth_uri = $(openstack endpoint show keystone | awk "/ publicurl / { print \$4 }") +auth_url = $(openstack endpoint show keystone | awk "/ internalurl / { print \$4 }") +project_name = $service_project +password = tacker +username = tacker +auth_type = password +EOF + +# these diffs seem superfluous - not referenced at all: + # < transport_url = rabbit://stackrabbit:secretrabbit@15.184.66.78:5672/ + # < heat_uri = http://15.184.66.78:8004/v1 + +# newton: add [tacker_heat] missing in generated tacker.conf.sample +heat_ipport=$(openstack endpoint show heat | awk "/ internalurl / { print \$4 }" | awk -F'[/]' '{print $3}') +cat >>/usr/local/etc/tacker/tacker.conf <<EOF +[tacker_heat] +stack_retry_wait = 10 +stack_retries = 60 +heat_uri = http://$heat_ipport/v1 +EOF + +# newton: add [database] missing in generated tacker.conf.sample +cat >>/usr/local/etc/tacker/tacker.conf <<EOF +[database] +connection = mysql://tacker:$MYSQL_PASSWORD@localhost:3306/tacker?charset=utf8 +EOF + +# newton: add [tacker_nova] missing in generated tacker.conf.sample, excluding the following + # these diffs seem superfluous - the only ref'd field is region_name: + # project_domain_id = default + # project_name = service + # user_domain_id = default + # password = secretservice + # username = nova + # auth_url = http://15.184.66.78/identity_v2_admin + # auth_plugin = password +cat >>/usr/local/etc/tacker/tacker.conf <<EOF +[tacker_nova] +region_name = $region +EOF + +log "/usr/local/etc/tacker/tacker.conf" +cat /usr/local/etc/tacker/tacker.conf + +log "Populate Tacker database" +/usr/local/bin/tacker-db-manage --config-file /usr/local/etc/tacker/tacker.conf upgrade head + +# deferred until its determined how to get this to Horizon +## Install Tacker Horizon plugin" +#cd /opt/tacker +#git clone https://github.com/openstack/tacker-horizon +#cd tacker-horizon +#python setup.py install +# The next two commands must affect the Horizon server +#cp openstack_dashboard_extensions/* /usr/share/openstack-dashboard/openstack_dashboard/enabled/ +#service apache2 restart + +log "Start the Tacker Server" +nohup python /usr/local/bin/tacker-server \ + --config-file /usr/local/etc/tacker/tacker.conf \ + --log-file /var/log/tacker/tacker.log & + +# Wait 30 seconds for Tacker server to come online" +sleep 30 + +log "Register default VIM" +cd /opt/tacker +# TODO: bug in https://github.com/openstack/python-tackerclient/blob/stable/newton/tackerclient/common/utils.py +# expects that there will be a port specified in the auth_url +# TODO: bug: user_domain_name: Default is required even for identity v2 +# removed due to issues with "DiscoveryFailure" as above + # project_domain_name: Default + # user_domain_name: Default +cat <<EOF >vim-config.yaml +auth_url: $OS_AUTH_URL +username: $OS_USERNAME +password: $OS_PASSWORD +project_id: $(openstack project show admin | awk '/ id / {print $4}') +project_name: admin +user_id: $(openstack user list | awk "/ admin / { print \$2 }") +EOF + +# newton: NAME (was "--name") is now a positional parameter +tacker vim-register --is-default --config-file vim-config.yaml --description OpenStack VIM0 +tail -f /var/log/tacker/tacker.log diff --git a/build/tacker/tacker.conf b/build/tacker/tacker.conf new file mode 100644 index 0000000..d7dff09 --- /dev/null +++ b/build/tacker/tacker.conf @@ -0,0 +1,315 @@ +[DEFAULT] + +# +# From tacker.common.config +# + +# The host IP to bind to (string value) +#bind_host = 0.0.0.0 + +# The port to bind to (integer value) +#bind_port = 9890 + +# The API paste config file to use (string value) +#api_paste_config = api-paste.ini + +# The path for API extensions (string value) +#api_extensions_path = + +# The service plugins Tacker will use (list value) +#service_plugins = nfvo,vnfm + +# The policy file to use (string value) +#policy_file = policy.json + +# The type of authentication to use (string value) +#auth_strategy = keystone + +# Allow the usage of the bulk API (boolean value) +#allow_bulk = true + +# Allow the usage of the pagination (boolean value) +#allow_pagination = false + +# Allow the usage of the sorting (boolean value) +#allow_sorting = false + +# The maximum number of items returned in a single response, value was +# 'infinite' or negative integer means no limit (string value) +#pagination_max_limit = -1 + +# The hostname Tacker is running on (string value) +#host = fa719b05f53c + +# URL for connection to nova (string value) +#nova_url = http://127.0.0.1:8774/v2 + +# Username for connecting to nova in admin context (string value) +#nova_admin_username = <None> + +# Password for connection to nova in admin context (string value) +#nova_admin_password = <None> + +# The uuid of the admin nova tenant (string value) +#nova_admin_tenant_id = <None> + +# Authorization URL for connecting to nova in admin context (string value) +#nova_admin_auth_url = http://localhost:5000/v2.0 + +# CA file for novaclient to verify server certificates (string value) +#nova_ca_certificates_file = <None> + +# If True, ignore any SSL validation issues (boolean value) +#nova_api_insecure = false + +# Name of nova region to use. Useful if keystone manages more than one region. +# (string value) +#nova_region_name = <None> + +# Where to store Tacker state files. This directory must be writable by the +# agent. (string value) +#state_path = /var/lib/tacker + +# +# From tacker.service +# + +# Seconds between running periodic tasks (integer value) +#periodic_interval = 40 + +# Number of separate worker processes for service (integer value) +#api_workers = 0 + +# Range of seconds to randomly delay when starting the periodic task scheduler +# to reduce stampeding. (Disable by setting to 0) (integer value) +#periodic_fuzzy_delay = 5 + +# +# From tacker.wsgi +# + +# Number of backlog requests to configure the socket with (integer value) +#backlog = 4096 + +# Sets the value of TCP_KEEPIDLE in seconds for each server socket. Not +# supported on OS X. (integer value) +#tcp_keepidle = 600 + +# Number of seconds to keep retrying to listen (integer value) +#retry_until_window = 30 + +# Max header line to accommodate large tokens (integer value) +#max_header_line = 16384 + +# Enable SSL on the API server (boolean value) +#use_ssl = false + +# CA certificate file to use to verify connecting clients (string value) +#ssl_ca_file = <None> + +# Certificate file to use when starting the server securely (string value) +#ssl_cert_file = <None> + +# Private key file to use when starting the server securely (string value) +#ssl_key_file = <None> + + +[alarm_auth] + +# +# From tacker.alarm_receiver +# + +# User name for alarm monitoring (string value) +#username = tacker + +# password for alarm monitoring (string value) +#password = nomoresecret + +# project name for alarm monitoring (string value) +#project_name = service + +# url for alarm monitoring (string value) +#url = http://localhost:35357/v3 + + +[ceilometer] + +# +# From tacker.vnfm.monitor_drivers.ceilometer.ceilometer +# + +# Address which drivers use to trigger (string value) +#host = fa719b05f53c + +# port number which drivers use to trigger (port value) +# Minimum value: 0 +# Maximum value: 65535 +#port = 9890 + + +[monitor] + +# +# From tacker.vnfm.monitor +# + +# check interval for monitor (integer value) +#check_intvl = 10 + + +[monitor_http_ping] + +# +# From tacker.vnfm.monitor_drivers.http_ping.http_ping +# + +# number of times to retry (integer value) +#retry = 5 + +# number of seconds to wait for a response (integer value) +#timeout = 1 + +# HTTP port number to send request (integer value) +#port = 80 + + +[monitor_ping] + +# +# From tacker.vnfm.monitor_drivers.ping.ping +# + +# number of ICMP packets to send (string value) +#count = 1 + +# number of seconds to wait for a response (string value) +#timeout = 1 + +# number of seconds to wait between packets (string value) +#interval = 1 + + +[nfvo_vim] + +# +# From tacker.nfvo.nfvo_plugin +# + +# VIM driver for launching VNFs (list value) +#vim_drivers = openstack + +# Interval to check for VIM health (integer value) +#monitor_interval = 30 + +# +# From tacker.vnfm.vim_client +# + +# DEPRECATED: Default VIM for launching VNFs. This option is deprecated and +# will be removed in Ocata release. (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +#default_vim = <None> + + +[openstack_vim] + +# +# From tacker.vnfm.infra_drivers.openstack.openstack +# + +# Number of attempts to retry for stack creation/deletion (integer value) +stack_retries = 60 + +# Wait time (in seconds) between consecutive stack create/delete retries +# (integer value) +stack_retry_wait = 10 + +# Flavor Extra Specs (dict value) +#flavor_extra_specs = + + +[openwrt] + +# +# From tacker.vnfm.mgmt_drivers.openwrt.openwrt +# + +# user name to login openwrt (string value) +#user = root + +# password to login openwrt (string value) +#password = + + +[tacker] + +# +# From tacker.vnfm.monitor +# + +# Monitor driver to communicate with Hosting VNF/logical service instance +# tacker plugin will use (list value) +#monitor_driver = ping,http_ping + +# Alarm monitoring driver to communicate with Hosting VNF/logical service +# instance tacker plugin will use (list value) +#alarm_monitor_driver = ceilometer + +# +# From tacker.vnfm.plugin +# + +# MGMT driver to communicate with Hosting VNF/logical service instance tacker +# plugin will use (list value) +#mgmt_driver = noop,openwrt + +# Time interval to wait for VM to boot (integer value) +#boot_wait = 30 + +# Hosting vnf drivers tacker plugin will use (list value) +#infra_driver = nova,heat,noop,openstack + + +[tacker_heat] + +# +# From tacker.vnfm.infra_drivers.heat.heat +# + +# Number of attempts to retry for stack creation/deletion (integer value) +#stack_retries = 60 + +# Wait time (in seconds) between consecutive stack create/delete retries +# (integer value) +#stack_retry_wait = 5 + +# Flavor Extra Specs (dict value) +#flavor_extra_specs = + + +[vim_keys] + +# +# From tacker.nfvo.drivers.vim.openstack_driver +# + +# Dir.path to store fernet keys. (string value) +#openstack = /etc/tacker/vim/fernet_keys + + +[vim_monitor] + +# +# From tacker.nfvo.drivers.vim.openstack_driver +# + +# number of ICMP packets to send (string value) +#count = 1 + +# number of seconds to wait for a response (string value) +#timeout = 1 + +# number of seconds to wait between packets (string value) +#interval = 1 |