aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/reclass/classes/cluster/mcp-common-noha
diff options
context:
space:
mode:
Diffstat (limited to 'mcp/reclass/classes/cluster/mcp-common-noha')
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/haproxy_openstack_api.yml166
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/infra/config.yml.j236
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/infra/init.yml.j248
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/init_options.yml24
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml95
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j276
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2247
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_control_pdf.yml.j256
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml20
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j292
-rw-r--r--mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2133
11 files changed, 993 insertions, 0 deletions
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/haproxy_openstack_api.yml b/mcp/reclass/classes/cluster/mcp-common-noha/haproxy_openstack_api.yml
new file mode 100644
index 000000000..dd3bc4761
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/haproxy_openstack_api.yml
@@ -0,0 +1,166 @@
+##############################################################################
+# 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
+##############################################################################
+---
+parameters:
+ _param:
+ haproxy_check: check inter 30m fastinter 2s downinter 4s rise 3 fall 3
+ haproxy:
+ proxy:
+ listen:
+ cinder_api:
+ type: openstack-service
+ service_name: cinder
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8776
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8776
+ params: ${_param:haproxy_check}
+ glance_api:
+ type: openstack-service
+ service_name: glance
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 9292
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 9292
+ params: ${_param:haproxy_check}
+ glance_registry_api:
+ type: general-service
+ service_name: glance
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 9191
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 9191
+ params: ${_param:haproxy_check}
+ heat_api:
+ type: openstack-service
+ service_name: heat
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8004
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8004
+ params: ${_param:haproxy_check}
+ heat_cfn_api:
+ type: openstack-service
+ service_name: heat
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8000
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8000
+ params: ${_param:haproxy_check}
+ keystone_public_api:
+ type: openstack-service
+ service_name: keystone
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 5000
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 5000
+ params: ${_param:haproxy_check}
+ keystone_admin_api:
+ type: openstack-service
+ service_name: keystone
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 35357
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 35357
+ params: ${_param:haproxy_check}
+ neutron_api:
+ type: openstack-service
+ service_name: neutron
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 9696
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 9696
+ params: ${_param:haproxy_check}
+ nova_placement_api:
+ type: openstack-service
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8778
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8778
+ params: ${_param:haproxy_check}
+ nova_api:
+ type: openstack-service
+ service_name: nova
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8774
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8774
+ params: ${_param:haproxy_check}
+ nova_metadata_api:
+ type: openstack-service
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8775
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8775
+ params: ${_param:haproxy_check}
+ aodh-api:
+ type: openstack-service
+ service_name: aodh
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 8042
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 8042
+ params: ${_param:haproxy_check}
+ barbican_api:
+ type: openstack-service
+ service_name: barbican
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 9311
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 9311
+ params: ${_param:haproxy_check}
+ barbican_admin_api:
+ type: openstack-service
+ service_name: barbican
+ binds:
+ - address: ${_param:cluster_vip_address}
+ port: 9312
+ servers:
+ - name: ctl01
+ host: ${_param:cluster_node01_address}
+ port: 9312
+ params: ${_param:haproxy_check}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/infra/config.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/infra/config.yml.j2
new file mode 100644
index 000000000..90e6ffc8d
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/infra/config.yml.j2
@@ -0,0 +1,36 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+---
+classes:
+ - cluster.all-mcp-arch-common.infra.config_pdf
+parameters:
+ _param:
+ openstack_control_node01_hostname: ctl01
+ pxe_admin_address: ${_param:reclass_config_master}
+ single_address: ${_param:opnfv_infra_config_address}
+ salt_master_host: 127.0.0.1
+ salt_minion_ca_host: ${linux:network:fqdn}
+ salt:
+ master:
+ file_recv: true
+ worker_threads: 4
+ command_timeout: 20
+ reclass:
+ storage:
+ node:
+ openstack_control_node01:
+ name: ${_param:openstack_control_node01_hostname}
+ domain: ${_param:cluster_domain}
+ classes:
+ - cluster.${_param:cluster_name}.openstack.control
+ params:
+ linux_system_codename: bionic
+ salt_master_host: ${_param:reclass_config_master}
+ single_address: ${_param:openstack_control_node01_address}
+ pxe_admin_address: ${_param:opnfv_openstack_control_node01_pxe_admin_address}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/infra/init.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/infra/init.yml.j2
new file mode 100644
index 000000000..d3e07e106
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/infra/init.yml.j2
@@ -0,0 +1,48 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+---
+classes:
+ - cluster.all-mcp-arch-common
+parameters:
+ _param:
+ # infra service addresses
+ infra_config_address: ${_param:opnfv_infra_config_address}
+ infra_config_deploy_address: {{ conf.SALT_MASTER }}
+ cluster_domain: ${_param:cluster_name}.local
+ reclass_config_master: ${_param:opnfv_infra_config_pxe_admin_address}
+ infra_maas_node01_hostname: mas01
+ infra_maas_node01_address: ${_param:opnfv_infra_maas_node01_address}
+ infra_maas_node01_deploy_address: ${_param:opnfv_infra_maas_node01_deploy_address}
+ linux:
+ system:
+ apt:
+ config:
+ prefer_ipv4:
+ Acquire::ForceIPv4: true
+ allow_downgrades:
+ APT::Get::allow-downgrades: true
+ network:
+ host:
+ cfg01:
+ address: ${_param:opnfv_infra_config_address}
+ names:
+ - cfg01
+ - cfg01.${_param:cluster_domain}
+ cfg:
+ address: ${_param:opnfv_infra_config_address}
+ names:
+ - cfg
+ - cfg.${_param:cluster_domain}
+{%- if nm.cluster.has_baremetal_nodes %}
+ mas01:
+ address: ${_param:infra_maas_node01_address}
+ names:
+ - ${_param:infra_maas_node01_hostname}
+ - ${_param:infra_maas_node01_hostname}.${_param:cluster_domain}
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/init_options.yml b/mcp/reclass/classes/cluster/mcp-common-noha/init_options.yml
new file mode 100644
index 000000000..4b5a4dec8
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/init_options.yml
@@ -0,0 +1,24 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+ - cluster.all-mcp-arch-common
+parameters:
+ _param:
+ # openstack service addresses
+ openstack_control_address: ${_param:opnfv_openstack_control_node01_address}
+ openstack_control_node01_address: ${_param:opnfv_openstack_control_node01_address}
+ openstack_control_node02_address: ${_param:opnfv_openstack_control_node02_address}
+ openstack_control_node03_address: ${_param:opnfv_openstack_control_node03_address}
+ openstack_database_address: ${_param:openstack_control_address}
+ openstack_message_queue_address: ${_param:openstack_control_address}
+ openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
+ openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
+ openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
+ openstack_gateway_address: ${_param:opnfv_openstack_gateway_node01_address}
+ control_address: ${_param:openstack_control_address}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml
new file mode 100644
index 000000000..edaf5190a
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml
@@ -0,0 +1,95 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+ - service.nfs.client
+ - system.nova.compute.single
+ - service.cinder.volume.single
+ - system.cinder.volume.backend.lvm
+ - system.ceilometer.agent.cluster
+ - system.ceilometer.client.nova_compute
+ - system.ceilometer.client.cinder_volume
+ - system.ceilometer.agent.polling.default
+ - service.barbican.client.single
+ - cluster.all-mcp-arch-common.backports
+ - cluster.mcp-common-noha.openstack_compute_pdf
+parameters:
+ nova:
+ compute:
+ libvirt_service: libvirtd
+ libvirt_bin: /etc/default/libvirtd
+ disk_cachemodes: file=directsync,block=none
+ vncproxy_url: http://${_param:cluster_vip_address}:6080
+ heal_instance_info_cache_interval: 300
+ bind:
+ vnc_address: ${_param:single_address}
+ network:
+ region: ${_param:openstack_region}
+ user: neutron
+ tenant: service
+ password: ${_param:keystone_neutron_password}
+ barbican:
+ enabled: ${_param:barbican_integration_enabled}
+ image:
+ verify_glance_signatures: false
+ pkgs:
+ - nova-compute
+ - python3-novaclient
+ - pm-utils
+ - sysfsutils
+ neutron:
+ compute:
+ notification: true
+ vlan_aware_vms: true
+ root_helper_daemon: false
+ report_interval: 120
+ agent_mode: ${_param:neutron_compute_agent_mode}
+ message_queue:
+ host: ${_param:openstack_control_address}
+ metadata:
+ host: ${_param:openstack_control_address}
+ cinder:
+ volume:
+ backend:
+ lvm-driver:
+ # Align system.cinder.volume.backend.lvm and MaaS data
+ volume_group: ${linux:storage:lvm:cinder-vg:name}
+ my_ip: ${_param:single_address}
+ database:
+ host: ${_param:cluster_local_address}
+ identity:
+ host: ${_param:cluster_local_address}
+ glance:
+ host: ${_param:cluster_local_address}
+ message_queue:
+ host: ${_param:cluster_local_address}
+ barbican:
+ enabled: ${_param:barbican_integration_enabled}
+ pkgs:
+ - cinder-volume
+ openiscsi_services:
+ - tgt
+ - iscsid
+ nfs:
+ client:
+ mount:
+ nfs:
+ path: /var/lib/nova/instances
+ fstype: nfs
+ device: ${_param:openstack_control_address}:/srv/nova/instances
+ linux:
+ storage:
+ lvm:
+ # Align with both system.cinder.volume.backend.lvm and MaaS data
+ cinder-vg:
+ name: vgroot
+ system:
+ kernel:
+ sysctl:
+ vm.dirty_ratio: 10
+ vm.dirty_background_ratio: 5
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2
new file mode 100644
index 000000000..b63555339
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute_pdf.yml.j2
@@ -0,0 +1,76 @@
+##############################################################################
+# 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
+##############################################################################
+{#- NOTE: br-{mgmt,ctl} are cross-referenced, careful when changing names #}
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.cmp001.nic_mgmt: True, nm.cmp001.nic_private: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.cmp001.nic_mgmt } %}
+{%- if '-ovs-' not in conf.MCP_DEPLOY_SCENARIO and '-fdio-' not in conf.MCP_DEPLOY_SCENARIO %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+{%- do vlans.update({ vlan_private_start: nm.cmp001.nic_private }) %}
+{%- endif %}
+---
+parameters:
+ _param:
+ # Should later be determined via PDF/IDF, AArch64 has ESP on /dev/sda1
+{%- if nm.cmp001.idx < conf.nodes | length %}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
+ ~cinder_lvm_devices: ['/dev/vdb']
+{%- elif conf.nodes[nm.cmp001.idx].node.arch == 'aarch64' or
+ conf.nodes[nm.cmp001.idx].disks.0.disk_capacity | storage_size_num | float > 2000000000000 %}
+ ~cinder_lvm_devices: ['/dev/sda2']
+{%- else %}
+ ~cinder_lvm_devices: ['/dev/sda1']
+{%- endif %}
+{%- endif %}
+ linux:
+ network:
+{%- if '-fdio-' not in conf.MCP_DEPLOY_SCENARIO %}
+ ovs_nowait: true
+ bridge: openvswitch
+{%- else %}
+ dpdk:
+ enabled: true
+ driver: "${_param:compute_dpdk_driver}"
+ vpp:
+ enabled: true
+ decimal_interface_names: true
+ # Reuse ovs-dpdk socket mem configuration from IDF
+ dpdk_socket_mem: ${_param:compute_ovs_dpdk_socket_mem}
+ main_core: ${linux:system:kernel:isolcpu}
+ gid: 'neutron'
+{%- endif %}
+ interface:
+ pxe_admin_int:
+ enabled: true
+ name: ${_param:pxe_admin_interface}
+ proto: static
+ type: eth
+ address: ${_param:pxe_admin_address}
+ netmask: ${_param:opnfv_net_admin_mask}
+ mtu: ${_param:interface_mtu}
+ noifupdown: true
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.cmp001.nic_admin in nics %}
+ {%- do nics.pop(nm.cmp001.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+ br-mgmt:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: ${_param:opnfv_net_mgmt_mask}
+ use_interfaces:
+ - {{ ma.interface_str(nm.cmp001.nic_mgmt, nm.vlan_mgmt) }}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2
new file mode 100644
index 000000000..e383edd16
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2
@@ -0,0 +1,247 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+ - system.linux.system.lowmem
+ - service.nfs.server
+ - system.ceilometer.client
+ - system.ceilometer.client.neutron
+ - system.memcached.server.single
+ - system.rabbitmq.server.single
+ - system.rabbitmq.server.vhost.openstack
+ - system.keystone.server.wsgi
+ - system.keystone.server.single
+ - system.keystone.client.single
+ - system.keystone.client.v3.service.keystone
+ - system.keystone.client.service.nova21
+ - system.keystone.client.service.nova-placement
+ - 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.keystone.client.service.barbican
+ - system.glance.control.single
+ - system.nova.control.single
+ - system.cinder.control.single
+ - system.cinder.control.backend.lvm
+ - system.heat.server.single
+ - service.mysql.server.single
+ - system.galera.server.database.cinder
+ - system.galera.server.database.glance
+ - system.galera.server.database.neutron
+ - system.galera.server.database.heat
+ - system.galera.server.database.keystone
+ - system.galera.server.database.nova
+ - system.galera.server.database.aodh
+ - system.galera.server.database.gnocchi
+ - system.galera.server.database.panko
+ - system.galera.server.database.barbican
+ - system.barbican.server.single
+ - service.barbican.server.plugin.simple_crypto
+ - service.redis.server.single
+ - service.ceilometer.server.single
+ - system.ceilometer.server.backend.default
+ - system.aodh.server.single
+ - system.gnocchi.server.single
+ - service.panko.server.single
+ - system.apache.server.site.aodh
+ - system.apache.server.site.gnocchi
+ - system.apache.server.site.panko
+ - system.apache.server.site.barbican
+ - system.apache.server.single
+ - system.horizon.server.single
+ - system.nginx.server.single
+ - system.nginx.server.proxy.openstack_web
+ - service.haproxy.proxy.single
+{%- if '-sfc-' in conf.MCP_DEPLOY_SCENARIO %}
+ - system.keystone.client.service.tacker
+ - system.galera.server.database.tacker
+ - service.tacker.server.single
+{%- endif %}
+ - cluster.all-mcp-arch-common.backports
+ - cluster.mcp-common-noha.haproxy_openstack_api
+ - cluster.mcp-common-noha.openstack_control_pdf
+parameters:
+ _param:
+ ceilometer_create_gnocchi_resources: 'True'
+ ceilometer_endpoint_status: absent
+ barbican_integration_enabled: 'false'
+ linux:
+ system:
+ package:
+ python-msgpack:
+ version: latest
+ sysfs:
+ transparent_hugepages:
+ kernel/mm/transparent_hugepage/enabled: never
+ keystone:
+ server:
+ admin_email: ${_param:admin_email}
+ openrc_extra:
+ volume_device_name: sdc
+ pkgs:
+ - keystone
+ - python3-memcache
+ - python3-openstackclient
+ client:
+ enabled: true
+ resources:
+ v3:
+ enabled: true
+ services:
+ ceilometer:
+ status: absent
+ # required only for Rally validation
+ cinder:
+ type: volume
+ description: OpenStack Volume Service
+ server:
+ identity:
+ admin:
+ api_version: 3
+ admin_identity:
+ admin:
+ api_version: ''
+ user_domain_name: 'Default'
+ project_domain_name: 'Default'
+ glance:
+ server:
+ storage:
+ engine: file
+ images: []
+ workers: 1
+ barbican:
+ enabled: ${_param:barbican_integration_enabled}
+ identity:
+ barbican_endpoint: ${barbican:server:host_href}
+ pkgs:
+ - glance
+ services:
+ - glance-api
+ cinder:
+ controller:
+ barbican:
+ enabled: ${_param:barbican_integration_enabled}
+ pkgs:
+ - cinder-api
+ - cinder-scheduler
+ nova:
+ controller:
+ metadata:
+ password: ${_param:metadata_password}
+ bind:
+ private_address: ${_param:cluster_local_address}
+ public_address: ${_param:cluster_vip_address}
+ novncproxy_port: 6080
+ vncproxy_url: http://${_param:cluster_vip_address}:6080
+ workers: 1
+ barbican:
+ enabled: ${_param:barbican_integration_enabled}
+ pkgs:
+ - nova-api
+ - nova-conductor
+ - nova-consoleauth
+ - nova-scheduler
+ - nova-novncproxy
+ - python3-novaclient
+ horizon:
+ server:
+ # yamllint disable-line rule:truthy
+ secure: False
+ heat:
+ server:
+ bind:
+ api_cfn:
+ address: ${_param:single_address}
+ api_cloudwatch:
+ address: ${_param:single_address}
+ mysql:
+ server:
+ version: '5.7'
+ bind:
+ address: ${_param:cluster_local_address}
+ key_buffer: 8
+ max_allowed_packet: 128
+ max_connections: 2048
+ thread_stack: 512
+ thread_cache_size: 12
+ query_cache_limit: 2
+ query_cache_size: 0
+ ceilometer:
+ server:
+ ~database: ~
+ redis:
+ server:
+ version: 5.0
+ appendfsync: 'no'
+ bind:
+ address: ${_param:single_address}
+ gnocchi:
+ common:
+ storage:
+ driver: redis
+ redis_url: redis://${_param:single_address}:6379
+ incoming:
+ driver: redis
+ redis_url: redis://${_param:single_address}:6379
+ nfs:
+ server:
+ share:
+ nova_instances:
+ path: /srv/nova/instances
+ host:
+ nova:
+ host: ${_param:single_address}/${_param:opnfv_net_mgmt_mask}
+ params:
+ - rw
+ - no_root_squash
+ - async
+ neutron:
+ server:
+ vlan_aware_vms: true
+ root_helper_daemon: false
+ agent_down_time: 300
+ global_physnet_mtu: ${_param:interface_mtu}
+ backend:
+ external_mtu: ${_param:interface_mtu}
+{%- if '-bgpvpn-' in conf.MCP_DEPLOY_SCENARIO %}
+ bgp_vpn:
+ enabled: True
+ driver: opendaylight_v2
+{%- endif %}
+ apache:
+ server:
+ bind:
+ listen_default_ports: false
+ site:
+ gnocchi: &wsgi_threads
+ wsgi:
+ threads: 1
+ barbican:
+ <<: *wsgi_threads
+ barbican_admin:
+ <<: *wsgi_threads
+ mod_wsgi: libapache2-mod-wsgi-py3
+ barbican:
+ server:
+ ks_notifications_enable: true
+ store:
+ software:
+ crypto_plugin: simple_crypto
+ store_plugin: store_crypto
+ global_default: true
+ rabbitmq:
+ server:
+ env_variables:
+ hostname: localhost
+ nginx:
+ server:
+ site:
+ nginx_ssl_redirect_openstack_web:
+ enabled: false
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control_pdf.yml.j2
new file mode 100644
index 000000000..06df3b845
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control_pdf.yml.j2
@@ -0,0 +1,56 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_mgmt: True, nm.ctl01.nic_public: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt, nm.vlan_public: nm.ctl01.nic_public } %}
+---
+parameters:
+ linux:
+ network:
+ interface:
+ pxe_admin_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_admin }}
+ proto: static
+ type: eth
+ address: ${_param:pxe_admin_address}
+ netmask: ${_param:opnfv_net_admin_mask}
+ mtu: ${_param:interface_mtu}
+ noifupdown: true
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.ctl01.nic_admin in nics %}
+ {%- do nics.pop(nm.ctl01.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+ br-ctl:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: ${_param:opnfv_net_mgmt_mask}
+ noifupdown: true
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_mgmt, nm.vlan_mgmt) }}
+ br-ext:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:cluster_public_host}
+ netmask: ${_param:opnfv_net_public_mask}
+ gateway: ${_param:opnfv_net_public_gw}
+ name_servers: {{ nm.dns_public }}
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}
+ noifupdown: true
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml
new file mode 100644
index 000000000..e59263c99
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml
@@ -0,0 +1,20 @@
+##############################################################################
+# 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
+##############################################################################
+---
+classes:
+ - cluster.all-mcp-arch-common.backports
+ - cluster.mcp-common-noha.openstack_gateway_pdf
+parameters:
+ neutron:
+ gateway:
+ notification: true
+ agent_mode: ${_param:neutron_gateway_agent_mode}
+ vlan_aware_vms: true
+ root_helper_daemon: false
+ dhcp_lease_duration: 3600
+ report_interval: 120
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2
new file mode 100644
index 000000000..00d8fbd8c
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway_pdf.yml.j2
@@ -0,0 +1,92 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- import 'net_map.j2' as nm with context %}
+{%- import 'net_macros.j2' as ma with context %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_mgmt: True, nm.ctl01.nic_private: True } %}
+{%- set vlans = { nm.vlan_mgmt: nm.ctl01.nic_mgmt } %}
+{%- if '-fdio-' in conf.MCP_DEPLOY_SCENARIO %}
+{%- do nics.update({ nm.ctl01.nic_public: True }) %}
+{%- do vlans.update({ nm.vlan_public: nm.ctl01.nic_public }) %}
+{%- elif '-ovs-' not in conf.MCP_DEPLOY_SCENARIO %}
+{%- set vlan_private_start = (nm.vlan_private | string).rsplit('-')[0] %}
+{%- do vlans.update({ vlan_private_start: nm.ctl01.nic_private }) %}
+{%- endif %}
+parameters:
+ linux:
+ network:
+{%- if '-fdio-' not in conf.MCP_DEPLOY_SCENARIO %}
+{%- set floating_br_type = 'ovs_bridge' %}
+ bridge: openvswitch
+{%- else %}
+{%- set floating_br_type = 'bridge' %}
+ vpp:
+ enabled: true
+ decimal_interface_names: true
+ # Reuse ovs-dpdk socket mem configuration from IDF
+ dpdk_socket_mem: ${_param:compute_ovs_dpdk_socket_mem}
+ main_core: ${linux:system:kernel:isolcpu}
+ gid: 'neutron'
+ commands: |
+ create tap host-if-name vpp_ext_tap host-bridge br-floating rx-ring-size 1024 tx-ring-size 1024
+ set interface state ${_param:external_vpp_tap} up
+ dpdk:
+ enabled: true
+ driver: "${_param:compute_dpdk_driver}"
+{%- endif %}
+ interface:
+ pxe_admin_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_admin }}
+ proto: static
+ type: eth
+ address: ${_param:pxe_admin_address}
+ netmask: ${_param:opnfv_net_admin_mask}
+ mtu: ${_param:interface_mtu}
+ noifupdown: true
+
+{#- prevent duplicates for tagged mgmt on the same physical interface as PXE/admin #}
+{%- if nm.ctl01.nic_admin in nics %}
+ {%- do nics.pop(nm.ctl01.nic_admin) %}
+{%- endif %}
+
+{{ ma.linux_network_interfaces_nic(nics) }}
+
+{{ ma.linux_network_interfaces_vlan(vlans) }}
+
+{%- if '-fdio-' not in conf.MCP_DEPLOY_SCENARIO %}
+ {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}:
+ enabled: true
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ ovs_port_type: OVSPort
+ type: ovs_port
+ ovs_bridge: br-floating
+ bridge: br-floating
+{%- endif %}
+ br-floating:
+ enabled: true
+ type: {{ floating_br_type }}
+ proto: static
+ address: ${_param:external_address}
+ netmask: ${_param:opnfv_net_public_mask}
+ gateway: ${_param:opnfv_net_public_gw}
+ name_servers: {{ nm.dns_public }}
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_public, nm.vlan_public) }}
+ noifupdown: true
+ br-mgmt:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: ${_param:opnfv_net_mgmt_mask}
+ mtu: ${_param:interface_mtu}
+ use_interfaces:
+ - {{ ma.interface_str(nm.ctl01.nic_mgmt, nm.vlan_mgmt) }}
diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2
new file mode 100644
index 000000000..3f3ff0ab8
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2
@@ -0,0 +1,133 @@
+##############################################################################
+# 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
+---
+parameters:
+ _param:
+ openstack_region: RegionOne
+ admin_email: root@localhost
+ cluster_public_protocol: http
+ cluster_public_host: ${_param:opnfv_openstack_control_node01_external_address}
+ neutron_public_protocol: http
+ neutron_control_dvr: 'False'
+ neutron_l3_ha: 'False'
+ neutron_global_physnet_mtu: 1500
+ neutron_external_mtu: 1500
+ neutron_gateway_dvr: 'False'
+ neutron_gateway_agent_mode: legacy
+ neutron_compute_dvr: 'False'
+ neutron_compute_agent_mode: legacy
+ neutron_compute_external_access: 'False'
+ galera_server_cluster_name: openstack_cluster
+ cluster_vip_address: ${_param:cluster_public_host}
+ cluster_local_address: ${_param:openstack_control_address}
+ cluster_node01_hostname: ctl01
+ cluster_node01_address: ${_param:opnfv_openstack_control_node01_address}
+ cluster_node02_hostname: ctl02
+ cluster_node02_address: ${_param:opnfv_openstack_control_node02_address}
+ cluster_node03_hostname: ctl03
+ cluster_node03_address: ${_param:opnfv_openstack_control_node03_address}
+ glance_version: ${_param:openstack_version}
+ glance_service_host: ${_param:cluster_local_address}
+ keystone_version: ${_param:openstack_version}
+ keystone_service_host: ${_param:cluster_local_address}
+ heat_version: ${_param:openstack_version}
+ heat_service_host: ${_param:cluster_local_address}
+ ceilometer_version: ${_param:openstack_version}
+ ceilometer_service_host: ${_param:cluster_local_address}
+ ceilometer_database_host: ${_param:cluster_local_address}
+ cinder_version: ${_param:openstack_version}
+ cinder_service_host: ${_param:cluster_local_address}
+ nova_version: ${_param:openstack_version}
+ nova_service_host: ${_param:cluster_local_address}
+ nova_vncproxy_url: http://${_param:cluster_vip_address}:8060
+ neutron_version: ${_param:openstack_version}
+ neutron_service_host: ${_param:cluster_local_address}
+ mysql_admin_user: root
+ horizon_version: ${_param:openstack_version}
+ horizon_secret_key: opaesee8Que2yahJoh9fo0eefo1Aeyo6ahyei8zeiboh3aeth5loth7ieNa5xi5e
+ horizon_identity_host: ${_param:cluster_vip_address}
+ horizon_identity_encryption: none
+ horizon_identity_version: 3
+ horizon_public_protocol: http
+ horizon_public_port: 80
+ apache_mods_status_enabled: false
+ nginx_server_site_nginx_proxy_openstack_web_enabled: true
+ nginx_proxy_ssl:
+ enabled: false
+
+ barbican_version: ${_param:openstack_version}
+ barbican_service_host: ${_param:cluster_local_address}
+ apache_barbican_api_address: ${_param:single_address}
+ barbican_simple_crypto_kek: "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY="
+ barbican_integration_enabled: true
+
+{%- if '-sfc-' in conf.MCP_DEPLOY_SCENARIO %}
+ tacker_service_host: ${_param:cluster_local_address}
+{%- endif %}
+
+ aodh_version: ${_param:openstack_version}
+ aodh_service_host: ${_param:cluster_local_address}
+ gnocchi_version: 4.3
+ gnocchi_service_host: ${_param:cluster_local_address}
+ panko_version: ${_param:openstack_version}
+ panko_service_host: ${_param:cluster_local_address}
+ ceilometer_agent_default_polling_interval: 180
+ ceilometer_agent_default_polling_meters:
+ - "*"
+ linux:
+ system:
+ kernel:
+ sysctl:
+ net.ipv4.tcp_congestion_control: yeah
+ net.ipv4.tcp_slow_start_after_idle: 0
+ net.ipv4.tcp_fin_timeout: 30
+{%- if 'aarch64' in nm.cluster.arch %}
+ repo:
+ armband_3: # Should be in sync with the repo config generated via curtin/MaaS
+ source: "deb http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/xenial ${_param:armband_repo_version}-armband main"
+ key: ${_param:armband_key}
+ pinning:
+ 15:
+ enabled: true
+ pin: 'release a=${_param:armband_repo_version}-armband'
+ priority: 15
+ package: '*'
+ 1200:
+ enabled: true
+ pin: 'release a=${_param:armband_repo_version}-armband'
+ priority: 1200
+ package: 'qemu-efi'
+{%- endif %}
+ network:
+ host:
+ ctl:
+ address: ${_param:openstack_control_address}
+ names:
+ - ctl
+ - ctl.${_param:cluster_domain}
+ ctl01:
+ address: ${_param:openstack_control_node01_address}
+ names:
+ - ctl01
+ - ctl01.${_param:cluster_domain}
+ gtw01:
+ address: ${_param:openstack_gateway_address}
+ names:
+ - gtw01
+ - gtw01.${_param:cluster_domain}
+{#- For compute nodes, expand values in-place, bypassing reclass param expansion #}
+{%- for cmp in range(1, nm.cmp_nodes + 1) %}
+ {%- set h = 'cmp%03d' | format(cmp) %}
+ {%- set mgmt = nm.net_mgmt_hosts | length + nm.start_ip[nm.net_mgmt] + loop.index %}
+ {{ h }}:
+ address: {{ nm.net_mgmt | ipnet_hostaddr(mgmt) }}
+ names:
+ - {{ h }}
+ - {{ h }}.${_param:cluster_domain}
+{%- endfor %}