diff options
Diffstat (limited to 'mcp')
32 files changed, 268 insertions, 197 deletions
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 |