aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INFO30
-rw-r--r--INFO.yaml50
-rwxr-xr-xci/deploy.sh3
-rw-r--r--docs/release/installation/installation.instruction.rst2
-rw-r--r--docs/release/release-notes/release-notes.rst22
-rw-r--r--docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst2
-rw-r--r--docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst2
-rw-r--r--docs/release/userguide/userguide.rst37
-rw-r--r--mcp/config/scenario/defaults.yaml4
-rw-r--r--mcp/config/scenario/os-odl-ovs-noha.yaml38
-rwxr-xr-xmcp/config/states/openstack_ha9
-rwxr-xr-xmcp/config/states/openstack_noha4
-rw-r--r--mcp/patches/0003-maas-region-force-artifact-download.patch2
-rw-r--r--mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch65
-rw-r--r--mcp/patches/0016-Set-boot-source-selections.patch2
-rw-r--r--mcp/patches/patches.list1
-rw-r--r--mcp/reclass/classes/cluster/.gitignore2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml14
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j254
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml1
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j211
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml3
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j219
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j21
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml72
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml23
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml1
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml49
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml1
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml26
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j22
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml.j2 (renamed from mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml.j2 (renamed from mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml)22
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j22
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j22
-rwxr-xr-xmcp/scripts/salt.sh2
40 files changed, 369 insertions, 244 deletions
diff --git a/INFO b/INFO
deleted file mode 100644
index 9526d9616..000000000
--- a/INFO
+++ /dev/null
@@ -1,30 +0,0 @@
-Project: Fuel based OPNFV installer (Fuel@OPNFV)
-Project Creation Date: 2015.07.07
-Project Category: Integration and testing
-Lifecycle State: Incubation
-Primary Contact: gelkinbard@mirantis.com
-Project Lead: gelkinbard@mirantis.com
-Jira Project Name: Fuel based OPNFV installer
-Jira Project Prefix: FUEL
-Mailing list tag: [fuel]
-IRC: Server:freenode.net Channel:#opnfv-fuel
-Repository: fuel
-
-Committers:
-gelkinbard@mirantis.com
-nikolas.hermanns@ericsson.com
-jonas.bjurel@ericsson.com
-stefan.k.berg@ericsson.com
-daniel.smith@ericsson.com
-szilard.cserey@gmail.com
-mskalski@mirantis.com
-ruijing.guo@intel.com
-fzhadaev@mirantis.com
-Alexandru.Avadanii@enea.com
-mpolenchuk@mirantis.com
-Guillermo.Herrero@enea.com
-
-Link to TSC approval of the project: http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-07-13.59.log.html
-Link(s) to approval of additional committers: http://ircbot.wl.linuxfoundation.org/meetings/opnfv-fuel/2016/opnfv-fuel.2016-04-28-11.49.html
- https://lists.opnfv.org/pipermail/opnfv-tech-discuss/2017-May/016188.html
- https://lists.opnfv.org/pipermail/opnfv-tech-discuss/2018-January/019862.html
diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644
index 000000000..4c5a2edc6
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,50 @@
+---
+project: 'Fuel based OPNFV installer (Fuel@OPNFV)'
+project_creation_date: '2015.07.07'
+project_category: 'Integration and testing'
+lifecycle_state: 'Incubation'
+project_lead: &opnfv_fuel_ptl
+ name: 'Alexandru Avadanii'
+ email: 'Alexandru.Avadanii@enea.com'
+ company: 'enea.com'
+ id: 'AlexandruAvadanii'
+primary_contact: *opnfv_fuel_ptl
+issue_tracking:
+ type: 'jira'
+ url: 'https://jira.opnfv.org/projects/FUEL'
+ key: 'FUEL'
+mailing_list:
+ type: 'mailman2'
+ url: 'opnfv-tech-discuss@lists.opnfv.org'
+ tag: '[fuel]'
+realtime_discussion:
+ type: irc
+ server: 'freenode.net'
+ channel: '#opnfv-fuel'
+meetings:
+ - type: 'gotomeeting+irc'
+ agenda: # eg: 'https://wiki.opnfv.org/display/'
+ url: # eg: 'https://global.gotomeeting.com/join/819733085'
+ server: 'freenode.net'
+ channel: '#opnfv-meeting'
+ repeats: 'weekly'
+ time: # eg: '16:00 UTC'
+repositories:
+ - 'fuel'
+committers:
+ - <<: *opnfv_fuel_ptl
+ - name: 'Michael Polenchuk'
+ email: 'mpolenchuk@mirantis.com'
+ company: 'mirantis.com'
+ id: 'mpolenchuk'
+ - name: 'Guillermo Herrero'
+ email: 'guillermo.herrero@enea.com'
+ company: 'enea.com'
+ id: 'gherrero'
+tsc:
+ # yamllint disable rule:line-length
+ approval: 'http//meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-07-07-13.59.log.html'
+ # yamllint enable rule:line-length
+ changes:
+ - type: 'promotion'
+ link: 'http://ircbot.wl.linuxfoundation.org/meetings/opnfv-fuel/2016/opnfv-fuel.2016-04-28-11.49.html'
diff --git a/ci/deploy.sh b/ci/deploy.sh
index a5fec4d44..fd41be85d 100755
--- a/ci/deploy.sh
+++ b/ci/deploy.sh
@@ -266,8 +266,9 @@ fi
generate_ssh_key
export MAAS_SSH_KEY="$(cat "$(basename "${SSH_KEY}").pub")"
+MCP_DPDK_MODE=$([[ "$DEPLOY_SCENARIO" =~ ovs ]] && echo 1 || echo 0)
# Expand jinja2 templates based on PDF data and env vars
-export MCP_VCP MCP_JUMP_ARCH=$(uname -i)
+export MCP_VCP MCP_DPDK_MODE MCP_JUMP_ARCH=$(uname -i)
do_templates_scenario "${STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
"${BASE_CONFIG_URI}" "${SCENARIO_DIR}"
do_templates_cluster "${STORAGE_DIR}" "${TARGET_LAB}" "${TARGET_POD}" \
diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst
index acf4aac4b..5d4c2cbd7 100644
--- a/docs/release/installation/installation.instruction.rst
+++ b/docs/release/installation/installation.instruction.rst
@@ -392,7 +392,7 @@ These steps are common both for virtual and baremetal deploys.
.. code-block:: bash
- $ git checkout opnfv-6.0.0
+ $ git checkout opnfv-6.1.0
#. Start the deploy script
diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst
index 5ee3bc0ff..7a2d60923 100644
--- a/docs/release/release-notes/release-notes.rst
+++ b/docs/release/release-notes/release-notes.rst
@@ -61,13 +61,13 @@ Release Data
| **Project** | fuel/armband |
| | |
+--------------------------------------+--------------------------------------+
-| **Repo/tag** | opnfv-6.0.0 |
+| **Repo/tag** | opnfv-6.1.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release designation** | Fraser 6.0 |
+| **Release designation** | Fraser 6.1 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release date** | April 27 2018 |
+| **Release date** | May 25 2018 |
| | |
+--------------------------------------+--------------------------------------+
| **Purpose of the delivery** | Fraser alignment to Released |
@@ -85,7 +85,7 @@ Version Change
Module Version Changes
----------------------
-This is the Fraser 6.0 release.
+This is the Fraser 6.1 release.
It is based on following upstream versions:
- MCP Base Release
@@ -96,7 +96,7 @@ It is based on following upstream versions:
Document Changes
----------------
-This is the Fraser 6.0 release.
+This is the Fraser 6.1 release.
It comes with the following documentation:
- :ref:`fuel-release-installation-label`
@@ -112,14 +112,14 @@ Feature Additions
-----------------
**JIRA TICKETS:**
-`Fraser 6.0 new features <https://jira.opnfv.org/issues/?filter=12302>`_
+`Fraser 6.1 new features <https://jira.opnfv.org/issues/?filter=12306>`_
Bug Corrections
---------------
**JIRA TICKETS:**
-`Fraser 6.0 bug fixes <https://jira.opnfv.org/issues/?filter=12303>`_
+`Fraser 6.1 bug fixes <https://jira.opnfv.org/issues/?filter=12307>`_
(Also See respective Integrated feature project's bug tracking)
@@ -163,7 +163,7 @@ Known Issues
**JIRA TICKETS:**
-`Known issues <https://jira.opnfv.org/issues/?filter=12304>`_
+`Known issues <https://jira.opnfv.org/issues/?filter=12308>`_
(Also See respective Integrated feature project's bug tracking)
@@ -172,20 +172,20 @@ Workarounds
**JIRA TICKETS:**
--
+`Workarounds <https://jira.opnfv.org/issues/?filter=12309>`_
(Also See respective Integrated feature project's bug tracking)
============
Test Results
============
-The Fraser 6.0 release with the Fuel deployment tool has undergone QA test
+The Fraser 6.1 release with the Fuel deployment tool has undergone QA test
runs, see separate test results.
==========
References
==========
-For more information on the OPNFV Fraser 6.0 release, please see:
+For more information on the OPNFV Fraser 6.1 release, please see:
OPNFV
=====
diff --git a/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst b/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst
index c51a5f5b8..3a8b82b6d 100644
--- a/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst
+++ b/docs/release/scenarios/os-nosdn-ovs-ha/os-nosdn-ovs-ha.rst
@@ -2,7 +2,7 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c)2017 Mirantis Inc., Enea Software AB and others
-This document provides scenario level details for Fraser 6.0 of
+This document provides scenario level details for Fraser 6.1 of
deployment with no SDN controller and no extra features enabled.
============
diff --git a/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst b/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst
index 99c4de041..5049db0c2 100644
--- a/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst
+++ b/docs/release/scenarios/os-nosdn-ovs-noha/os-nosdn-ovs-noha.rst
@@ -2,7 +2,7 @@
.. http://creativecommons.org/licenses/by/4.0
.. (c) 2017 Mirantis Inc., Enea Software AB and others
-This document provides scenario level details for Fraser 6.0 of
+This document provides scenario level details for Fraser 6.1 of
deployment with no SDN controller and no extra features enabled.
============
diff --git a/docs/release/userguide/userguide.rst b/docs/release/userguide/userguide.rst
index fd9dfa736..584948f15 100644
--- a/docs/release/userguide/userguide.rst
+++ b/docs/release/userguide/userguide.rst
@@ -250,9 +250,9 @@ UEFI-images for the guests:
+------------------+-------------------+------------------+
| Ubuntu 14.04 | untested | Full support |
+------------------+-------------------+------------------+
-| Fedora atomic 27 | untested | Not supported |
+| Fedora atomic 27 | untested | Full support |
+------------------+-------------------+------------------+
-| Fedora cloud 27 | untested | Not supported |
+| Fedora cloud 27 | untested | Full support |
+------------------+-------------------+------------------+
| Debian | untested | Full support |
+------------------+-------------------+------------------+
@@ -270,6 +270,37 @@ to make.
The images for the above operating systems can be found in their respective websites.
+
+=================
+OpenStack Storage
+=================
+
+OpenStack Cinder is the project behind block storage in OpenStack and Fuel@OPNFV supports LVM out of the box.
+By default x86 supports 2 additional block storage devices and ARMBand supports only one.
+More devices can be supported if the OS-image created has additional properties allowing block storage devices
+to be spawned as SCSI drives. To do this, add the properties below to the server:
+
+ .. code-block:: bash
+
+ openstack image set --property hw_disk_bus='scsi' --property hw_scsi_model='virtio-scsi' <image>
+
+The choice regarding which bus to use for the storage drives is an important one. Virtio-blk is the default
+choice for Fuel@OPNFV which attaches the drives in /dev/vdX. However, since we want to be able to attach a
+larger number of volumes to the virtual machines, we recommend the switch to SCSI drives which are attached
+in /dev/sdX instead. Virtio-scsi is a little worse in terms of performance but the ability to add a larger
+number of drives combined with added features like ZFS, Ceph et al, leads us to suggest the use of virtio-scsi in Fuel@OPNFV for both architectures.
+
+More details regarding the differences and performance of virtio-blk vs virtio-scsi are beyond the scope
+of this manual but can be easily found in other sources online like `4`_ or `5`_.
+
+.. _4: https://mpolednik.github.io/2017/01/23/virtio-blk-vs-virtio-scsi/
+
+.. _5 : https://www.ovirt.org/develop/release-management/features/storage/virtio-scsi/
+
+Additional configuration for configuring images in openstack can be found in the OpenStack Glance documentation.
+
+
+
===================
Openstack Endpoints
===================
@@ -372,3 +403,5 @@ References
1) :ref:`fuel-release-installation-label`
2) `Saltstack Documentation <https://docs.saltstack.com/en/latest/topics>`_
3) `Saltstack Formulas <http://salt-formulas.readthedocs.io/en/latest/>`_
+4) `Virtio performance <https://mpolednik.github.io/2017/01/23/virtio-blk-vs-virtio-scsi/>`_
+5) `Virtio SCSI <https://www.ovirt.org/develop/release-management/features/storage/virtio-scsi/>`_
diff --git a/mcp/config/scenario/defaults.yaml b/mcp/config/scenario/defaults.yaml
index 13f2dd527..110ffc704 100644
--- a/mcp/config/scenario/defaults.yaml
+++ b/mcp/config/scenario/defaults.yaml
@@ -36,14 +36,16 @@ aarch64:
apt:
keys:
- https://linux.enea.com/mcp-repos/pike/xenial/archive-mcppike.key
+ - https://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11/SALTSTACK-GPG-KEY.pub
repos:
# <repo name> <repo prio> deb [arch=<arch>] <repo url> <repo dist> <repo comp>
- - saltstack 500 deb [arch=arm64] http://linux.enea.com/saltstack/apt/ubuntu/16.04/arm64/2016.11 xenial main
+ - saltstack 500 deb [arch=amd64] http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 xenial main
- armband 1100 deb [arch=arm64] http://linux.enea.com/mcp-repos/pike/xenial pike-armband main
pkg:
install:
- linux-image-generic-hwe-16.04-edge
- linux-headers-generic-hwe-16.04-edge
+ - python-futures
- salt-minion
control:
apt: ~
diff --git a/mcp/config/scenario/os-odl-ovs-noha.yaml b/mcp/config/scenario/os-odl-ovs-noha.yaml
new file mode 100644
index 000000000..c282707f7
--- /dev/null
+++ b/mcp/config/scenario/os-odl-ovs-noha.yaml
@@ -0,0 +1,38 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+cluster:
+ domain: mcp-pike-odl-noha.local
+ states:
+ - dpdk
+ - opendaylight
+ - openstack_noha
+ - neutron_gateway
+ - networks
+virtual:
+ nodes:
+ - cfg01
+ - ctl01
+ - cmp01
+ - cmp02
+ - gtw01
+ - odl01
+ ctl01:
+ vcpus: 4
+ ram: 14336
+ gtw01:
+ ram: 1024
+ odl01:
+ vcpus: 4
+ ram: 5120
+ cmp01:
+ vcpus: 4
+ ram: 8192
+ cmp02:
+ vcpus: 4
+ ram: 8192
diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha
index 77063d6c8..a30f9af63 100755
--- a/mcp/config/states/openstack_ha
+++ b/mcp/config/states/openstack_ha
@@ -53,11 +53,10 @@ salt -I 'neutron:gateway' state.sls neutron.gateway
salt -I 'nova:compute' state.sls nova
-salt -C 'I@mongodb:server and *01*' state.sls mongodb || true
-wait_for 10.0 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'"
-salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin --eval "rs.initiate()"'
-salt -I 'mongodb:server' state.sls mongodb
-
+salt -I 'redis:cluster:role:master' state.sls redis
+salt -I 'redis:server' state.sls redis
+salt -I 'gnocchi:server' state.sls gnocchi -b 1
+salt -I 'panko:server' state.sls panko -b 1
salt -I 'aodh:server' state.sls aodh -b 1
salt -I 'ceilometer:server' state.sls ceilometer
salt -I 'ceilometer:agent' state.sls ceilometer
diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha
index 4c8cbcf8a..a266989a7 100755
--- a/mcp/config/states/openstack_noha
+++ b/mcp/config/states/openstack_noha
@@ -46,7 +46,9 @@ salt -I 'neutron:compute' state.sls neutron
salt -I 'nova:compute' state.sls nova
-wait_for 3 "salt -I 'mongodb:server' state.sls mongodb"
+salt -I 'redis:server' state.sls redis
+salt -I 'gnocchi:server' state.sls gnocchi
+salt -I 'panko:server' state.sls panko
salt -I 'aodh:server' state.sls aodh
salt -I 'ceilometer:server' state.sls ceilometer
salt -I 'ceilometer:agent' state.sls ceilometer
diff --git a/mcp/patches/0003-maas-region-force-artifact-download.patch b/mcp/patches/0003-maas-region-force-artifact-download.patch
index b61a3d1b8..c689881d8 100644
--- a/mcp/patches/0003-maas-region-force-artifact-download.patch
+++ b/mcp/patches/0003-maas-region-force-artifact-download.patch
@@ -70,4 +70,4 @@ new file mode 100644
+wait_for 30 "maas opnfv boot-resources import"
+wait_for 90 "! maas opnfv boot-resources is-importing | grep -q 'true'"
+maas opnfv rack-controllers import-boot-images || exit 3
-+wait_for 30 "test -d /var/lib/maas/boot-resources/current/ubuntu/amd64"
++wait_for 30 "true {%- for arch in region.opnfv_arches %} && test -d /var/lib/maas/boot-resources/current/ubuntu/{{ arch }}{%- endfor %}"
diff --git a/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch b/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
deleted file mode 100644
index 4a81786b2..000000000
--- a/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Sat, 19 Aug 2017 02:03:01 +0200
-Subject: [PATCH] maas: module: Obtain fabric ID from CIDR
-
-MaaS subnet update requires specifying the correct fabric via reclass,
-which we used to hardcode in our OPNFV reclass model to fabric-2.
-However, fabric index numbers are not deterministic, so the old
-method is unreliable.
-
-Update MaaS custom py module to determine fabric name/ID on the
-fly, based on CIDR matching (assuming we don't have CIDR conflicts).
-
-This change maintains backwards compatibility:
-- if fabric is specified via reclass model, it will be used as-is;
-- if fabric is not specified via reclass model, we try to deduce it
- based on CIDR; if no match is found, the old default ('') is used;
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Signed-off-by: Guillermo Herrero <Guillermo.Herrero@enea.com>
----
-
-diff --git a/_modules/maas.py b/_modules/maas.py
---- a/_modules/maas.py
-+++ b/_modules/maas.py
-@@ -126,6 +126,8 @@
-
- def process_single(name, config_data):
- self._update = False
-+ if isinstance(config_data, dict) and 'name' in config_data:
-+ name = config_data['name']
- try:
- data = self.fill_data(name, config_data, **extra)
- if data is None:
-@@ -198,7 +198,8 @@
- def fill_data(self, name, subnet, fabrics):
- data = {
- 'name': name,
-- 'fabric': str(fabrics[subnet.get('fabric', '')]),
-+ 'fabric': str(fabrics[subnet.get('fabric',
-+ self._get_fabric_from_cidr(subnet.get('cidr')))]),
- 'cidr': subnet.get('cidr'),
- 'gateway_ip': subnet['gateway_ip'],
- }
-@@ -215,6 +216,13 @@
- self._process_iprange(res_json['id'])
- return response
-
-+ def _get_fabric_from_cidr(self, cidr):
-+ subnets = json.loads(self._maas.get(u'api/2.0/subnets/').read())
-+ for subnet in subnets:
-+ if subnet['cidr'] == cidr:
-+ return subnet['vlan']['fabric']
-+ return ''
-+
- def _process_iprange(self, subnet_id):
- ipranges = json.loads(self._maas.get(u'api/2.0/ipranges/').read())
- LOG.warn('all %s ipranges %s', subnet_id, ipranges)
diff --git a/mcp/patches/0016-Set-boot-source-selections.patch b/mcp/patches/0016-Set-boot-source-selections.patch
index ff52681d2..ae7654c64 100644
--- a/mcp/patches/0016-Set-boot-source-selections.patch
+++ b/mcp/patches/0016-Set-boot-source-selections.patch
@@ -21,7 +21,7 @@ diff --git a/maas/region.sls b/maas/region.sls
+boot_source_selections:
+ cmd.run:
-+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv boot-source-selection update 1 1 release='{{ region.maas_config.default_distro_series }}'"
++ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv boot-source-selection update 1 1 release='{{ region.maas_config.default_distro_series }}' {%- for arch in region.opnfv_arches.split(' ') %} arches='{{ arch }}' {%- endfor %}"
+ - require:
+ - cmd: maas_login_admin
+ - unless: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv boot-source-selections read 1 | grep -q {{ region.maas_config.default_distro_series }}"
diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list
index 6a6e7a361..ce59395c5 100644
--- a/mcp/patches/patches.list
+++ b/mcp/patches/patches.list
@@ -8,7 +8,6 @@
/usr/share/salt-formulas/env: 0002-maas-region-skip-credentials-update.patch
/usr/share/salt-formulas/env: 0003-maas-region-force-artifact-download.patch
/usr/share/salt-formulas/env: 0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch
-/usr/share/salt-formulas/env: 0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
/usr/share/salt-formulas/env: 0006-maas-module-Add-VLAN-DHCP-enable-support.patch
/usr/share/salt-formulas/env: 0007-network.interface-Fix-ifup-OVS-port-with-route.patch
/usr/share/salt-formulas/env: 0008-Handle-extra-environment-variables.patch
diff --git a/mcp/reclass/classes/cluster/.gitignore b/mcp/reclass/classes/cluster/.gitignore
index a6b1b7d56..7d40a2bec 100644
--- a/mcp/reclass/classes/cluster/.gitignore
+++ b/mcp/reclass/classes/cluster/.gitignore
@@ -15,3 +15,5 @@ mcp-pike-ovn-ha/infra/init_vcp.yml
mcp-pike-ovn-ha/infra/kvm.yml
mcp-pike-odl-ha/opendaylight/control.yml
mcp-pike-odl-ha/openstack/init.yml
+mcp-pike-odl-noha/infra/config.yml
+mcp-pike-odl-noha/openstack/compute.yml
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml
index bd75e7b72..525abbea7 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml
@@ -87,12 +87,18 @@ parameters:
openstack_telemetry_node01:
params:
linux_system_codename: xenial
+ # create resources only from 1 controller
+ # to prevent race conditions
+ ceilometer_create_gnocchi_resources: true
+ redis_cluster_role: 'master'
openstack_telemetry_node02:
params:
linux_system_codename: xenial
+ redis_cluster_role: 'slave'
openstack_telemetry_node03:
params:
linux_system_codename: xenial
+ redis_cluster_role: 'slave'
openstack_message_queue_node01:
params:
linux_system_codename: xenial
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml
index e83de35cd..238ae95a3 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml
@@ -41,20 +41,6 @@ parameters:
enable_third_party_drivers: true
network_discovery: 'enabled'
default_min_hwe_kernel: ${_param:hwe_kernel}
- subnets:
- opnfv_maas_pxe:
- name: ${_param:opnfv_infra_maas_pxe_network_address}/24
- cidr: ${_param:opnfv_infra_maas_pxe_network_address}/24
- gateway_ip: ${_param:single_address}
- iprange:
- start: ${_param:opnfv_infra_maas_pxe_start_address}
- end: ${_param:opnfv_infra_maas_pxe_end_address}
- type: dynamic
- vlans:
- untagged:
- vid: 0
- dhcp_on: true
- primary_rack: ${_param:infra_maas_node01_hostname}
cluster:
saltstack_repo_xenial: "http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11/ xenial main"
linux:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2
index 849f26124..1838590e9 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2
@@ -5,12 +5,66 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+{%- set cluster_arch = [] %}
+{%- for node in conf.nodes %}
+ {%- if node.node.arch not in cluster_arch %}
+ {%- do cluster_arch.append(node.node.arch) %}
+ {%- endif %}
+{%- endfor %}
+{%- set net_admin = [conf.idf.net_config.admin.network,
+ conf.idf.net_config.admin.mask] | join("/") %}
---
parameters:
maas:
region:
+ subnets:
+ {{ net_admin }}:
+ name: {{ net_admin }}
+ cidr: {{ net_admin }}
+ gateway_ip: ${_param:single_address}
+ iprange:
+ start: ${_param:opnfv_infra_maas_pxe_start_address}
+ end: ${_param:opnfv_infra_maas_pxe_end_address}
+ type: dynamic
+ vlans:
+ untagged:
+ vid: 0
+ dhcp_on: true
+ primary_rack: ${_param:infra_maas_node01_hostname}
+ # Space-separated list of dpkg architectures to be supported by MaaS
+ opnfv_arches:{%- for arch in cluster_arch %} {{ arch | dpkg_arch }}{%- endfor %}
sshprefs:
- '{{ conf.MAAS_SSH_KEY }}'
+{%- if 'aarch64' in cluster_arch %}
+ package_repositories:
+ armband:
+ name: armband
+ enabled: '1'
+ url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}'
+ distributions: '${_param:openstack_version}-armband'
+ components: 'main'
+ arches: 'arm64'
+ key: &armband_key |
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+ Version: GnuPG v2.0.14 (GNU/Linux)
+
+ mQENBFagAroBCADWboNIjuF6lB1mWv2+EbvqY3lKl5mLKhr2DnSUkKeHUPBv8gNM
+ qK8Q00AMIyPiyEhgjA+dWizZ+5aBgxoiY7oMeLJ2Xym36U/8SYq2BWd3SGCbMNoz
+ SJDxDUSM/HFVs6atF1M3DY9oN65hSVnu4uy5Tu6asf6k4rhAyk0z4+pRcPBCu2vq
+ mnGi3COM/+9PShrEKeVOx5W2vRJywUFuq8EDvQnRoJ0GvM28JiJIanw17YwIPxhg
+ BKZVpZjan5X+ihVMXwA2h/G/FS5Omhd50RqV6LWSYs94VJJgYqHx8UMm7izcxI+P
+ ct3IcbD195bPbJ+SbuiFe45ZLsdY1MyGiU2BABEBAAG0K0VuZWEgQXJtYmFuZCBE
+ ZXZvcHMgVGVhbSA8YXJtYmFuZEBlbmVhLmNvbT6JATgEEwECACICGwMGCwkIBwMC
+ BhUIAgkKCwQWAgMBAh4BAheABQJaY3bYAAoJEN6rkLp5irHRoQMH/0PYl0A/6eWw
+ nQ/szhEFrr76Ln6wA4vEO+PiuWj9kTkZM2NaCnkisrIuHSPIVvOLfFmztbE6sKGe
+ t+a2b7Jqw48DZ/gq508aZE4Q307ookxdCOrzIu/796hFO34yXg3sqZoJh3VmKIjY
+ 4DL8yG1iAiQ5vOw3IFWQnATwIZUgaCcjmE7HGap+9ePuJfFuQ8mIG5cy28t8qocx
+ AB/B2tucfBMwomYxKqgbLI5AG7iSt58ajvrrNa9f8IX7Ihj/jiuXhUwX+geEp98K
+ IWVI1ftEthZvfBpZW4BS98J4z//dEPi31L4jb9RQXq3afF2RpXchDeUN85bW45nu
+ W/9PMAlgE/U=
+ =m+zE
+ -----END PGP PUBLIC KEY BLOCK-----
+{%- endif %}
machines:
{%- set pxe_interface = conf.idf.net_config.admin.interface %}
{#- We only support exactly 5 nodes for now, hardcoded order #}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml
index 24acbacf1..c9bba93f2 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml
@@ -16,6 +16,7 @@ classes:
- system.cinder.volume.single
- system.cinder.volume.backend.lvm
- system.ceilometer.agent.cluster
+ - system.ceilometer.agent.polling.default
- cluster.mcp-pike-common-ha.openstack_compute_pdf
- cluster.mcp-pike-common-ha.include.maas_proxy
- cluster.mcp-pike-common-ha.include.lab_proxy_pdf
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2
index 6f7b33e3d..599c48e80 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2
@@ -7,6 +7,7 @@
##############################################################################
---
classes:
+ - system.linux.system.repo.mcp.openstack
- system.linux.system.repo.glusterfs
- system.ceilometer.client
- system.memcached.server.single
@@ -21,7 +22,6 @@ classes:
- system.designate.server.backend.bind
- system.bind.server.single
- system.haproxy.proxy.listen.openstack.nova-placement
- - system.haproxy.proxy.listen.openstack.glare
- system.glusterfs.client.cluster
- system.glusterfs.client.volume.glance
- system.glusterfs.client.volume.keystone
@@ -82,15 +82,6 @@ parameters:
host: ${_param:openstack_proxy_control_address}
port: 8003
protocol: http
- nova:
- controller:
- pkgs:
- - nova-api
- - nova-conductor
- - nova-consoleauth
- - nova-novncproxy
- - nova-scheduler
- - python-novaclient
{%- else %}
libvirt:
server:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml
index 7c1fac5f9..d34892282 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml
@@ -12,6 +12,7 @@ classes:
- system.keystone.client.service.ceilometer
- system.keystone.client.service.nova21
- system.keystone.client.service.nova-placement
- - system.keystone.client.service.glare
- system.keystone.client.service.cinder3
- system.keystone.client.service.designate
+ - system.keystone.client.service.gnocchi
+ - system.keystone.client.service.panko
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml
index 221c84f6c..e65fc24a2 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml
@@ -14,11 +14,13 @@ classes:
- system.galera.server.database.cinder
- system.galera.server.database.designate
- system.galera.server.database.glance
+ - system.galera.server.database.gnocchi
- system.galera.server.database.grafana
- system.galera.server.database.heat
- system.galera.server.database.keystone
- system.galera.server.database.nova
- system.galera.server.database.neutron
+ - system.galera.server.database.panko
parameters:
_param:
keepalived_vip_interface: ${_param:single_nic}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2
index f6533855b..796bbb138 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2
@@ -201,13 +201,20 @@ parameters:
horizon_identity_host: ${_param:openstack_control_address}
horizon_identity_encryption: none
horizon_identity_version: 3
- mongodb_server_replica_set: ceilometer
- mongodb_ceilometer_password: opnfv_secret
- mongodb_admin_password: opnfv_secret
- mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth
metadata_password: opnfv_secret
openstack_telemetry_keepalived_password: opnfv_secret
aodh_service_host: ${_param:openstack_telemetry_address}
+ gnocchi_version: 4.0
+ gnocchi_service_host: ${_param:openstack_telemetry_address}
+ mysql_gnocchi_password: opnfv_secret
+ keystone_gnocchi_password: opnfv_secret
+ panko_version: ${_param:openstack_version}
+ panko_service_host: ${_param:openstack_telemetry_address}
+ mysql_panko_password: opnfv_secret
+ keystone_panko_password: opnfv_secret
+ ceilometer_agent_default_polling_interval: 180
+ ceilometer_agent_default_polling_meters:
+ - "*"
designate_service_host: ${_param:openstack_control_address}
designate_bind9_rndc_key: 4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7FhdTwzFFY8l/iEDmHxnyjkA33EQC8H+z0fLLBunoitw==
designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
@@ -248,10 +255,6 @@ parameters:
linux:
system:
repo:
- uca-staging:
- source: "deb http://ppa.launchpad.net/ubuntu-cloud-archive/${_param:openstack_version}-staging/ubuntu xenial main"
- key_id: 9F68104E
- key_server: keyserver.ubuntu.com
uca:
source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main"
key_id: EC4926EA
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j2
index 26943b7b6..63a5d3af9 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j2
@@ -7,6 +7,7 @@
##############################################################################
---
classes:
+ - system.linux.system.repo.mcp.openstack
- system.nginx.server.single
- system.nginx.server.proxy.openstack_api
- system.nginx.server.proxy.openstack_vnc
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml
index a42189a80..bf0dc0b41 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml
@@ -7,14 +7,22 @@
##############################################################################
---
classes:
- - system.linux.system.repo.mcp.extra
- - system.mongodb.server.cluster
- - system.mongodb.server.database.ceilometer
- - system.ceilometer.server.backend.mongodb
- # - system.ceilometer.server.backend.influxdb
- # - system.heka.ceilometer_collector.single
+ - system.linux.system.repo.mcp.openstack
+ - service.redis.server.single
- system.ceilometer.server.cluster
+ - system.ceilometer.server.coordination.redis
+ - system.ceilometer.server.backend.default
- system.aodh.server.cluster
+ - system.aodh.server.coordination.redis
+ - system.memcached.server.single
+ - system.apache.server.single
+ - system.apache.server.site.gnocchi
+ - system.apache.server.site.panko
+ - system.gnocchi.server.cluster
+ - system.gnocchi.common.storage.incoming.redis
+ - system.gnocchi.common.storage.redis
+ - system.gnocchi.common.coordination.redis
+ - system.panko.server.cluster
parameters:
_param:
keepalived_openstack_telemetry_vip_interface: ${_param:single_nic}
@@ -27,7 +35,53 @@ parameters:
cluster_node02_address: ${_param:openstack_telemetry_node02_address}
cluster_node03_hostname: ${_param:openstack_telemetry_node03_hostname}
cluster_node03_address: ${_param:openstack_telemetry_node03_address}
- mongodb:
+ redis_sentinel_node01_address: ${_param:openstack_telemetry_node01_address}
+ redis_sentinel_node02_address: ${_param:openstack_telemetry_node02_address}
+ redis_sentinel_node03_address: ${_param:openstack_telemetry_node03_address}
+ # yamllint disable-line rule:line-length
+ openstack_telemetry_redis_url: redis://${_param:redis_sentinel_node01_address}:26379?sentinel=master_1&sentinel_fallback=${_param:redis_sentinel_node02_address}:26379&sentinel_fallback=${_param:redis_sentinel_node03_address}:26379
+ gnocchi_coordination_url: ${_param:openstack_telemetry_redis_url}
+ gnocchi_storage_incoming_redis_url: ${_param:openstack_telemetry_redis_url}
+ redis:
server:
- logging:
- verbose: v
+ version: 3.0
+ appendfsync: 'no'
+ bind:
+ address: ${_param:single_address}
+ cluster:
+ enabled: true
+ mode: sentinel
+ role: ${_param:redis_cluster_role}
+ quorum: 2
+ master:
+ host: ${_param:cluster_node01_address}
+ port: 6379
+ sentinel:
+ address: ${_param:single_address}
+ gnocchi:
+ common:
+ database:
+ host: ${_param:openstack_database_address}
+ server:
+ pkgs:
+ - gnocchi-api
+ - gnocchi-metricd
+ - python-memcache
+ apache:
+ server:
+ ~modules:
+ - wsgi
+ - rewrite
+ site:
+ gnocchi:
+ wsgi:
+ threads: 1
+ aodh:
+ server:
+ coordination_backend:
+ url: ${_param:openstack_telemetry_redis_url}
+ ceilometer:
+ server:
+ ~database: ~
+ coordination_backend:
+ url: ${_param:openstack_telemetry_redis_url}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml
index 21653d7cb..7235071f5 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml
@@ -45,17 +45,6 @@ parameters:
host: ${_param:cluster_node01_address}
port: 9191
params: ${_param:haproxy_check}
- glare:
- type: general-service
- service_name: glare
- binds:
- - address: ${_param:cluster_vip_address}
- port: 9494
- servers:
- - name: ctl01
- host: ${_param:cluster_node01_address}
- port: 9494
- params: ${_param:haproxy_check}
heat_cloudwatch_api:
type: openstack-service
service_name: heat
@@ -139,18 +128,6 @@ parameters:
host: ${_param:cluster_node01_address}
port: 8778
params: ${_param:haproxy_check}
- nova_ec2_api:
- type: general-service
- service_name: nova
- check: false
- binds:
- - address: ${_param:cluster_vip_address}
- port: 8773
- servers:
- - name: ctl01
- host: ${_param:cluster_node01_address}
- port: 8773
- params: ${_param:haproxy_check}
nova_api:
type: openstack-service
service_name: nova
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml
index 3d84e6c18..8b6a74d7a 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml
@@ -14,6 +14,7 @@ classes:
- system.ceilometer.agent.cluster
- system.ceilometer.client.nova_compute
- system.ceilometer.client.cinder_volume
+ - system.ceilometer.agent.polling.default
- system.linux.system.repo.mcp.openstack
- cluster.mcp-pike-common-noha.openstack_compute_pdf
parameters:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml
index 01b320973..29b2d627e 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml
@@ -8,9 +8,8 @@
---
classes:
- system.linux.system.lowmem
+ - system.linux.system.repo.mcp.openstack
- service.nfs.server
- - system.mongodb.server.single
- - system.mongodb.server.database.ceilometer
- system.ceilometer.client
- system.ceilometer.client.neutron
- system.memcached.server.single
@@ -21,10 +20,11 @@ classes:
- system.keystone.client.single
- system.keystone.client.service.nova21
- system.keystone.client.service.nova-placement
- - system.keystone.client.service.glare
- system.keystone.client.service.cinder3
- system.keystone.client.service.ceilometer
- system.keystone.client.service.aodh
+ - system.keystone.client.service.gnocchi
+ - system.keystone.client.service.panko
- system.glance.control.single
- system.nova.control.single
- system.cinder.control.single
@@ -39,8 +39,21 @@ classes:
- system.galera.server.database.nova
- system.galera.server.database.ceilometer
- system.galera.server.database.aodh
+ - system.galera.server.database.gnocchi
+ - system.galera.server.database.panko
+ - service.redis.server.single
- service.ceilometer.server.single
+ - system.ceilometer.server.coordination.redis
+ - system.ceilometer.server.backend.default
- system.aodh.server.single
+ - system.aodh.server.coordination.redis
+ - system.gnocchi.server.single
+ - system.gnocchi.common.storage.incoming.redis
+ - system.gnocchi.common.storage.redis
+ - system.gnocchi.common.coordination.redis
+ - service.panko.server.single
+ - system.apache.server.site.gnocchi
+ - system.apache.server.site.panko
- system.horizon.server.single
- service.haproxy.proxy.single
- cluster.mcp-pike-common-noha.haproxy_openstack_api
@@ -48,6 +61,7 @@ classes:
parameters:
_param:
linux_system_codename: xenial
+ ceilometer_create_gnocchi_resources: 'True'
linux:
system:
package:
@@ -58,6 +72,11 @@ parameters:
admin_email: ${_param:admin_email}
openrc_extra:
volume_device_name: vdc
+ pkgs:
+ - keystone
+ - python-psycopg2
+ - python-mysqldb
+ - python-openstackclient
glance:
server:
storage:
@@ -76,13 +95,6 @@ parameters:
novncproxy_port: 6080
vncproxy_url: http://${_param:cluster_vip_address}:6080
workers: 1
- pkgs:
- - nova-api
- - nova-conductor
- - nova-consoleauth
- - nova-novncproxy
- - nova-scheduler
- - python-novaclient
horizon:
server:
# yamllint disable-line rule:truthy
@@ -106,12 +118,15 @@ parameters:
thread_cache_size: 12
query_cache_limit: 2
query_cache_size: 0
- mongodb:
+ ceilometer:
server:
+ ~database: ~
+ redis:
+ server:
+ version: 3.0
+ appendfsync: 'no'
bind:
- address: ${_param:cluster_local_address},127.0.0.1
- logging:
- verbose: v
+ address: ${_param:single_address}
nfs:
server:
share:
@@ -128,3 +143,9 @@ parameters:
server:
vlan_aware_vms: true
root_helper_daemon: false
+ apache:
+ server:
+ site:
+ gnocchi:
+ wsgi:
+ threads: 1
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml
index 8061bb1fe..5edf48c31 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml
@@ -7,6 +7,7 @@
##############################################################################
---
classes:
+ - system.linux.system.repo.mcp.openstack
- cluster.mcp-pike-common-noha.openstack_gateway_pdf
parameters:
_param:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml
index 7c6ce90b7..ff99b9b42 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml
@@ -84,26 +84,22 @@ parameters:
horizon_identity_host: ${_param:cluster_vip_address}
horizon_identity_encryption: none
horizon_identity_version: 3
- mongodb_server_replica_set: ceilometer
- mongodb_ceilometer_password: opnfv_secret
- mongodb_admin_password: opnfv_secret
- mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth
aodh_version: ${_param:openstack_version}
keystone_aodh_password: opnfv_secret
aodh_service_host: ${_param:cluster_local_address}
+ gnocchi_version: 4.0
+ gnocchi_service_host: ${_param:cluster_local_address}
+ mysql_gnocchi_password: opnfv_secret
+ keystone_gnocchi_password: opnfv_secret
+ panko_version: ${_param:openstack_version}
+ panko_service_host: ${_param:cluster_local_address}
+ mysql_panko_password: opnfv_secret
+ keystone_panko_password: opnfv_secret
+ ceilometer_agent_default_polling_interval: 180
+ ceilometer_agent_default_polling_meters:
+ - "*"
linux:
system:
- repo:
- uca-staging:
- # yamllint disable rule:line-length
- source: "deb http://ppa.launchpad.net/ubuntu-cloud-archive/${_param:openstack_version}-staging/ubuntu xenial main"
- key_id: 9F68104E
- key_server: keyserver.ubuntu.com
- # yamllint enable rule:line-length
- uca:
- source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/${_param:openstack_version} main"
- key_id: EC4926EA
- key_server: keyserver.ubuntu.com
kernel:
sysctl:
net.ipv4.tcp_congestion_control: yeah
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
index 912537f8f..7cf4c8864 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
@@ -8,7 +8,7 @@
{%- import 'net_map.j2' as nm with context %}
{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
{%- set nics = { nm.cmp001.nic_private: True } %}
-{%- set vlan_private_start = nm.vlan_private.rsplit('-')[0] %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
{%- set vlans = { vlan_private_start: nm.cmp001.nic_private } %}
---
parameters:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml
index cd1ae9040..3c6b3a2cf 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml
@@ -14,18 +14,6 @@ parameters:
nginx:
server:
site:
- nginx_proxy_opendaylight_web:
- enabled: true
- type: nginx_proxy
- name: opendaylight_web
- check: false
- proxy:
- host: ${_param:opendaylight_service_host}
- port: 8181
- protocol: http
- host:
- name: ${_param:nginx_proxy_openstack_api_host}
- port: 8181
nginx_proxy_opendaylight_rest:
enabled: true
type: nginx_proxy
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml.j2
index b63ac68b5..46e25fe95 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml.j2
@@ -11,7 +11,7 @@ classes:
- system.reclass.storage.system.openstack_gateway_single
- cluster.mcp-pike-common-noha.infra.config
- cluster.mcp-pike-odl-noha
- - cluster.all-mcp-arch-common.infra.config_pdf
+ - cluster.all-mcp-arch-common.infra.config{%- if conf.MCP_DPDK_MODE %}_dpdk{%- endif %}_pdf
parameters:
reclass:
storage:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml.j2
index b0690167f..12dfdcaa1 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml.j2
@@ -9,12 +9,34 @@
classes:
- service.neutron.compute.single
- service.neutron.compute.opendaylight.single
+{%- if conf.MCP_DPDK_MODE %}
+ - system.nova.compute.nfv.hugepages
+ - system.neutron.compute.nfv.dpdk
+{%- endif %}
- cluster.mcp-pike-common-noha.openstack_compute
- cluster.mcp-pike-odl-noha
parameters:
linux:
network:
interface:
+{%- if conf.MCP_DPDK_MODE %}
+ dpdk0:
+ name: ${_param:dpdk0_name}
+ pci: ${_param:dpdk0_pci}
+ driver: ${_param:dpdk0_driver}
+ enabled: true
+ bridge: br-prv
+ type: dpdk_ovs_port
+ n_rxq: ${_param:dpdk0_n_rxq}
+ br-prv:
+ enabled: true
+ type: dpdk_ovs_bridge
+ proto: static
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ tenant_interface:
+ type: dpdk # Not a meaningful type, just match 'dpdk' for filtering
+{%- endif %}
external_interface:
enabled: true
type: eth
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml
index 5bc0f2444..4c48d0798 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml
@@ -14,17 +14,6 @@ parameters:
haproxy:
proxy:
listen:
- opendaylight-web:
- type: general-service
- service_name: opendaylight
- binds:
- - address: ${_param:cluster_vip_address}
- port: 8181
- servers:
- - name: odl01
- host: ${_param:opendaylight_service_host}
- port: 8181
- params: ${_param:haproxy_check}
opendaylight-rest:
type: general-service
service_name: opendaylight
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j2
index 912537f8f..7cf4c8864 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j2
@@ -8,7 +8,7 @@
{%- import 'net_map.j2' as nm with context %}
{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
{%- set nics = { nm.cmp001.nic_private: True } %}
-{%- set vlan_private_start = nm.vlan_private.rsplit('-')[0] %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
{%- set vlans = { vlan_private_start: nm.cmp001.nic_private } %}
---
parameters:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
index 912537f8f..7cf4c8864 100644
--- a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
@@ -8,7 +8,7 @@
{%- import 'net_map.j2' as nm with context %}
{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
{%- set nics = { nm.cmp001.nic_private: True } %}
-{%- set vlan_private_start = nm.vlan_private.rsplit('-')[0] %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
{%- set vlans = { vlan_private_start: nm.cmp001.nic_private } %}
---
parameters:
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index aecfecea4..2224d660a 100755
--- a/mcp/scripts/salt.sh
+++ b/mcp/scripts/salt.sh
@@ -82,7 +82,7 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
OLD_DOMAIN=\$(grep -sPzo "id: cfg01\.\K(\S*)" /etc/salt/minion.d/minion.conf) || true
BOOTSTRAP_SALTSTACK_OPTS=" -r -dX stable 2016.11 " \
MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=nightly \
- EXTRA_FORMULAS="nfs" \
+ EXTRA_FORMULAS="nfs panko gnocchi" \
./salt-master-init.sh
salt-key -Ay