aboutsummaryrefslogtreecommitdiffstats
path: root/mcp
diff options
context:
space:
mode:
Diffstat (limited to 'mcp')
-rw-r--r--mcp/config/labs/local/idf-pod1.yaml43
-rw-r--r--mcp/config/labs/local/idf-virtual1.yaml101
-rw-r--r--mcp/config/labs/local/pod1.yaml90
-rw-r--r--mcp/config/labs/local/virtual1.yaml127
-rw-r--r--mcp/config/scenario/.gitignore1
-rw-r--r--mcp/config/scenario/README.rst2
-rw-r--r--mcp/config/scenario/baremetal/os-nosdn-nofeature-ha.yaml26
-rw-r--r--mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml28
-rw-r--r--mcp/config/scenario/baremetal/os-odl-nofeature-ha.yaml27
-rw-r--r--mcp/config/scenario/defaults-x86_64.yaml27
-rw-r--r--mcp/config/scenario/defaults.yaml (renamed from mcp/config/scenario/defaults-aarch64.yaml)28
-rw-r--r--mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j267
-rw-r--r--mcp/config/scenario/os-nosdn-nofeature-noha.yaml (renamed from mcp/config/scenario/virtual/os-nosdn-nofeature-noha.yaml)3
-rw-r--r--mcp/config/scenario/os-nosdn-ovs-ha.yaml.j268
-rw-r--r--mcp/config/scenario/os-nosdn-ovs-noha.yaml (renamed from mcp/config/scenario/virtual/os-nosdn-ovs-noha.yaml)3
-rw-r--r--mcp/config/scenario/os-odl-nofeature-ha.yaml.j268
-rw-r--r--mcp/config/scenario/os-odl-nofeature-noha.yaml (renamed from mcp/config/scenario/virtual/os-odl-nofeature-noha.yaml)4
-rw-r--r--mcp/config/scenario/os-ovn-nofeature-ha.yaml.j267
-rw-r--r--mcp/config/scenario/os-ovn-nofeature-noha.yaml (renamed from mcp/config/scenario/virtual/os-ovn-nofeature-noha.yaml)4
-rwxr-xr-xmcp/config/states/baremetal_init7
-rwxr-xr-xmcp/config/states/dpdk3
-rwxr-xr-xmcp/config/states/maas43
-rwxr-xr-xmcp/config/states/neutron_compute12
-rwxr-xr-xmcp/config/states/opendaylight16
-rwxr-xr-xmcp/config/states/openstack_ha54
-rwxr-xr-xmcp/config/states/openstack_noha1
-rwxr-xr-xmcp/config/states/ovn_ctl_opts15
-rwxr-xr-xmcp/config/states/virtual_control_plane17
-rw-r--r--mcp/metadata/service/opendaylight/server/single.yml4
-rw-r--r--mcp/patches/0001-opendaylight-formula-neutron.patch135
-rw-r--r--mcp/patches/0002-maas-region-skip-credentials-update.patch2
-rw-r--r--mcp/patches/0003-maas-region-force-artifact-download.patch2
-rw-r--r--mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch45
-rw-r--r--mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch41
-rw-r--r--mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch2
-rw-r--r--mcp/patches/0006-maas-module-Add-VLAN-DHCP-enable-support.patch2
-rw-r--r--mcp/patches/0007-network.interface-Fix-ifup-OVS-port-with-route.patch2
-rw-r--r--mcp/patches/0008-Handle-extra-environment-variables.patch25
-rw-r--r--mcp/patches/0008-Handle-kernel-boot-options.patch69
-rw-r--r--mcp/patches/0009-controller-Use-keystoneclient-to-check-project-ID.patch168
-rw-r--r--mcp/patches/0010-maas-region-allow-timeout-override.patch19
-rw-r--r--mcp/patches/0011-system.repo-Debian-Add-keyserver-proxy-support.patch14
-rw-r--r--mcp/patches/0012-linux.storage.lvm-Disable-filter.patch35
-rw-r--r--mcp/patches/0012-routes-Skip-network-restart-on-noifupdown.patch37
-rw-r--r--mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch30
-rw-r--r--mcp/patches/0014-reclass.storage.node-Merge-duplicate-nodes.patch44
-rw-r--r--mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch86
-rw-r--r--mcp/patches/0016-Set-boot-source-selections.patch31
-rw-r--r--mcp/patches/fuel-patch-copyright.template2
-rwxr-xr-xmcp/patches/patch.sh9
-rw-r--r--mcp/patches/patches.list13
-rw-r--r--mcp/patches/patches_init.list (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/init.yml)4
-rw-r--r--mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch110
-rw-r--r--mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch (renamed from mcp/patches/reclass-system-salt-model/0003-Use-keystone-v3-endpoints-by-default.patch)6
-rw-r--r--mcp/patches/reclass-system-salt-model/0002-Revert-Admin-endpoint-for-keystone-v3.patch (renamed from mcp/patches/reclass-system-salt-model/0004-Revert-Admin-endpoint-for-keystone-v3.patch)0
-rw-r--r--mcp/patches/reclass-system-salt-model/0002-mongodb-Parameterize-cluster-hostnames.patch37
-rw-r--r--mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch2
-rw-r--r--mcp/patches/scripts/0002-salt-master-init.sh-Apply-OPNFV-Fuel-patches.patch35
-rw-r--r--mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch (renamed from mcp/patches/scripts/0002-salt-master-setup-Group-APT-install-formulas.patch)4
-rw-r--r--mcp/reclass/classes/cluster/.gitignore16
-rw-r--r--mcp/reclass/classes/cluster/README.rst12
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/aarch64/init.yml1
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_dpdk_pdf.yml.j242
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_pdf.yml.j233
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml2
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/init.yml2
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example111
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml14
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.j2 (renamed from mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml)9
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.template14
-rw-r--r--mcp/reclass/classes/cluster/all-mcp-arch-common/x86_64/init.yml1
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j298
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2118
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_proxy.yml45
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute.yml31
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute_pdf.yml.j283
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config_pdf.yml.j254
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/maas.yml11
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j247
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml24
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/proxy.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/maas.yml11
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute_pdf.yml.j283
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/init.yml18
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/proxy.yml12
-rw-r--r--mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/include/lab_proxy_pdf.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/lab_proxy_pdf.yml.j2)0
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/include/maas_proxy.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/include/proxy.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/config.yml)12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/init.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/init.yml)15
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm_pdf.yml.j266
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml)63
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j232
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml)29
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j293
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml)74
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control_init.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database_init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database_init.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml)104
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_biport.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_triport.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_message_queue.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_message_queue.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j298
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_telemetry.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/haproxy_openstack_api.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/config.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml)30
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/init.yml)2
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/init_options.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/init_options.yml)16
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml)42
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute_pdf.yml.j244
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control.yml)24
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control_pdf.yml.j232
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml (renamed from mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-dpdk-ha.local.yml)16
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway_pdf.yml.j2 (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml)18
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml)25
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/config.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/config.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init_vcp.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/kvm.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/kvm.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml)11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/maas.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/init.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/opendaylight/control.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/opendaylight/control.yml)16
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute.yml17
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j249
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/control.yml)17
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/init.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/init.yml)14
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/message_queue.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/proxy.yml)20
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml)11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/init.yml)11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control.yml)19
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control_pdf.yml.j225
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/compute.yml)19
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/control.yml)28
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/gateway.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/gateway.yml)24
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/config.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/config.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init_vcp.yml.j212
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/kvm.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/message_queue.yml)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/maas.yml11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j249
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/control.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/init.yml)4
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/message_queue.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/proxy.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/maas.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/config.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/config.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/init.yml13
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/compute.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/compute.yml)9
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/control.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/init.yml10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/config.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/init.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init_vcp.yml.j212
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/kvm.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/maas.yml11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute.yml28
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute_pdf.yml.j227
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/control.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/init.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/init.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/proxy.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/init.yml)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/config.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml)19
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/init.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/init.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/init.yml)9
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/compute.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml)12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/control.yml)8
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/gateway.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/gateway.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/init.yml13
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/config.yml (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/kvm.yml)7
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init_vcp.yml.j212
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/kvm.yml.j2 (renamed from mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/message_queue.yml)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/maas.yml11
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/init.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute.yml17
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j249
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/control.yml13
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/database.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/init.yml13
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/message_queue.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/proxy.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/telemetry.yml12
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/config.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml)11
-rw-r--r--[-rwxr-xr-x]mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/init.yml (renamed from mcp/config/states/networking_gw)10
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/init.yml13
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/compute.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/compute.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/control.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/control.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/gateway.yml (renamed from mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/gateway.yml)6
-rw-r--r--mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/init.yml13
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/init.yml21
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/init.yml14
m---------mcp/reclass/classes/system0
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-odl-ha.local.yml (renamed from mcp/reclass/nodes/cfg01.baremetal-mcp-pike-odl-ha.local.yml)4
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-odl-noha.local.yml (renamed from mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovn-noha.local.yml)4
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovn-ha.local.yml18
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovn-noha.local.yml (renamed from mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-ha.local.yml)4
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-ha.local.yml (renamed from mcp/reclass/nodes/cfg01.virtual-mcp-pike-odl-noha.local.yml)4
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-noha.local.yml18
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovs-ha.local.yml18
-rw-r--r--mcp/reclass/nodes/cfg01.mcp-pike-ovs-noha.local.yml18
-rw-r--r--mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-dpdk-noha.local.yml18
-rw-r--r--mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-noha.local.yml18
-rw-r--r--mcp/salt-formulas/maas/machines/delete.sls1
-rw-r--r--mcp/salt-formulas/maas/machines/mark_broken_fixed.sls3
-rw-r--r--mcp/salt-formulas/maas/machines/override_failed_testing.sls20
-rw-r--r--mcp/salt-formulas/maas/machines/set_storage_layout.sls20
-rw-r--r--mcp/salt-formulas/maas/pxe_nat.sls37
-rw-r--r--mcp/salt-formulas/opendaylight/client.sls38
-rw-r--r--mcp/salt-formulas/opendaylight/files/jetty.xml33
-rw-r--r--mcp/salt-formulas/opendaylight/files/setenv.shell1
-rw-r--r--mcp/salt-formulas/opendaylight/map.jinja8
-rw-r--r--mcp/salt-formulas/opendaylight/server.sls16
-rw-r--r--mcp/salt-formulas/opnfv/route_wrapper.sls27
-rw-r--r--mcp/scripts/.gitignore3
-rw-r--r--mcp/scripts/globals.sh39
-rw-r--r--mcp/scripts/lib.sh125
-rw-r--r--mcp/scripts/lib_template.sh88
-rw-r--r--mcp/scripts/net_public.xml14
m---------mcp/scripts/pharos0
-rw-r--r--mcp/scripts/requirements_deb.yaml15
-rw-r--r--mcp/scripts/requirements_rpm.yaml17
-rwxr-xr-xmcp/scripts/salt.sh42
-rwxr-xr-xmcp/scripts/sysinfo_print.sh10
-rw-r--r--mcp/scripts/user-data.admin.sh.j214
-rw-r--r--mcp/scripts/user-data.mcp.sh.j2 (renamed from mcp/scripts/user-data.template)6
-rw-r--r--mcp/scripts/virsh_net/net_internal.xml (renamed from mcp/scripts/net_internal.xml)0
-rw-r--r--mcp/scripts/virsh_net/net_mcpcontrol.xml.j2 (renamed from mcp/scripts/net_mcpcontrol.xml.template)5
-rw-r--r--mcp/scripts/virsh_net/net_mgmt.xml.j2 (renamed from mcp/scripts/net_mgmt.xml)9
-rw-r--r--mcp/scripts/virsh_net/net_public.xml.j232
-rw-r--r--mcp/scripts/virsh_net/net_pxebr.xml.j226
-rw-r--r--mcp/scripts/xdf_data.sh.j271
252 files changed, 3298 insertions, 2536 deletions
diff --git a/mcp/config/labs/local/idf-pod1.yaml b/mcp/config/labs/local/idf-pod1.yaml
index 4ee359f88..b916707a1 100644
--- a/mcp/config/labs/local/idf-pod1.yaml
+++ b/mcp/config/labs/local/idf-pod1.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Linux Foundation, 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
@@ -10,13 +10,50 @@
idf:
version: 0.1
+ net_config:
+ # NOTE: Network names are likely to change after the PDF spec is updated
+ oob:
+ interface: 0
+ ip-range: 172.30.8.65-172.30.8.75
+ vlan: 410
+ admin:
+ interface: 0
+ vlan: native
+ network: 192.168.11.0 # Untagged, 'PXE/Admin' on wiki, different IP
+ mask: 24
+ mgmt:
+ interface: 0
+ vlan: 300
+ network: 10.167.4.0 # Tagged, 'vlan 300' on wiki
+ ip-range: 10.167.4.10-10.167.4.254 # Some IPs are in use by lab infra
+ mask: 24
+ storage:
+ interface: 3
+ vlan: 301
+ network: 10.2.0.0 # Tagged, not the same with 'storage' on wiki
+ mask: 24
+ private:
+ interface: 1
+ vlan: 1000
+ network: 10.1.0.0 # Tagged, not the same with 'private' on wiki
+ mask: 24
+ public:
+ interface: 2
+ vlan: native
+ network: 172.30.10.0 # Untagged, 'public' on wiki
+ ip-range: 172.30.10.100-172.30.10.254 # Some IPs are in use by lab infra
+ mask: 24
+ gateway: 172.30.10.1
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
fuel:
jumphost:
bridges:
admin: 'pxebr'
mgmt: 'br-ctl'
- private: ''
- public: ''
+ private: ~
+ public: ~
network:
node:
# Ordered-list, index should be in sync with node index in PDF
diff --git a/mcp/config/labs/local/idf-virtual1.yaml b/mcp/config/labs/local/idf-virtual1.yaml
new file mode 100644
index 000000000..79a5fa044
--- /dev/null
+++ b/mcp/config/labs/local/idf-virtual1.yaml
@@ -0,0 +1,101 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, 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
+##############################################################################
+---
+### Fuel@OPNFV sample VIRTUAL installer descriptor file ###
+
+idf:
+ version: 0.0 # Intentionally invalid to indicate this is experimental
+ net_config:
+ # NOTE: Network names are likely to change after the PDF spec is updated
+ oob:
+ interface: 0
+ ip-range: ~
+ vlan: native
+ # All networks (except OOB) are virtual networks managed by `libvirt`
+ # Interface indexes are based on Fuel installer defaults
+ admin:
+ interface: 0 # when used, will be first vnet interface, untagged
+ vlan: native
+ network: 192.168.11.0
+ mask: 24
+ mgmt:
+ interface: 1 # when used, will be second vnet interface, untagged
+ vlan: native
+ network: 172.16.10.0
+ ip-range: 172.16.10.10-172.16.10.254 # Some IPs are in use by lab infra
+ mask: 24
+ storage:
+ interface: 4 # when used, will be fifth vnet interface, untagged
+ vlan: native
+ network: 192.168.20.0
+ mask: 24
+ private:
+ interface: 2 # when used, will be third vnet interface, untagged
+ vlan: 1000-1999
+ network: 10.1.0.0
+ mask: 24
+ public:
+ interface: 3 # when used, will be fourth vnet interface, untagged
+ vlan: native
+ network: 10.16.0.0
+ ip-range: 10.16.0.100-10.16.0.254 # Some IPs are in use by lab infra
+ mask: 24
+ gateway: 10.16.0.1
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ fuel:
+ jumphost:
+ bridges:
+ admin: ~
+ mgmt: ~
+ private: ~
+ public: ~
+ network:
+ node:
+ # Ordered-list, index should be in sync with node index in PDF
+ - interfaces: &interfaces
+ # Ordered-list, index should be in sync with interface index in PDF
+ - 'ens3'
+ - 'ens4'
+ - 'ens5'
+ - 'ens6'
+ busaddr: &busaddr
+ # Bus-info reported by `ethtool -i ethX`
+ - '0000:00:03.0'
+ - '0000:00:04.0'
+ - '0000:00:05.0'
+ - '0000:00:06.0'
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ reclass:
+ node:
+ - compute_params: &compute_params
+ common: &compute_params_common
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 2048
+ compute_hugepages_mount: /mnt/hugepages_2M
+ dpdk:
+ <<: *compute_params_common
+ compute_dpdk_driver: uio
+ compute_ovs_pmd_cpu_mask: "0x6"
+ compute_ovs_dpdk_socket_mem: "1024"
+ compute_ovs_dpdk_lcore_mask: "0x8"
+ compute_ovs_memory_channels: "2"
+ dpdk0_driver: igb_uio
+ dpdk0_n_rxq: 2
+ - compute_params: *compute_params
+ - compute_params: *compute_params
+ - compute_params: *compute_params
+ - compute_params: *compute_params
diff --git a/mcp/config/labs/local/pod1.yaml b/mcp/config/labs/local/pod1.yaml
index cf60dcf72..219b2a683 100644
--- a/mcp/config/labs/local/pod1.yaml
+++ b/mcp/config/labs/local/pod1.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Linux Foundation, 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
@@ -8,6 +8,7 @@
---
### LF POD 2 descriptor file ###
+version: 1.0
details:
pod_owner: Trevor Bramwell
contact: tbramwell@linuxfoundation.org
@@ -16,42 +17,6 @@ details:
type: production
link: https://wiki.opnfv.org/display/pharos/LF+POD+2
##############################################################################
-net_config:
- # NOTE: Network names are likely to change after the PDF spec is updated
- oob:
- interface: 0
- ip-range: 172.30.8.65-172.30.8.75
- vlan: 410
- admin:
- interface: 0
- vlan: native
- network: 192.168.11.0 # Untagged, 'PXE/Admin' on wiki, different IP
- mask: 24
- mgmt:
- interface: 0
- vlan: 300
- network: 10.167.4.0 # Tagged, 'vlan 300' on wiki
- mask: 24
- storage:
- interface: 3
- vlan: 301
- network: 10.2.0.0 # Tagged, not the same with 'storage' on wiki
- mask: 24
- private:
- interface: 1
- vlan: 1000
- network: 10.1.0.0 # Tagged, not the same with 'private' on wiki
- mask: 24
- public:
- interface: 2
- vlan: native
- network: 172.30.10.0 # Untagged, 'public' on wiki
- mask: 24
- gateway: 172.30.10.1
- dns:
- - 8.8.8.8
- - 8.8.4.4
-##############################################################################
jumphost:
name: pod2-jump
node:
@@ -68,7 +33,7 @@ jumphost:
disk_capacity: 2400G
disk_type: hdd
disk_interface: sas
- disk_rotation:
+ disk_rotation: 0
os: centos-7
remote_params: &remote_params
type: ipmi
@@ -84,19 +49,20 @@ jumphost:
- mac_address: "00:25:b5:a0:00:1a"
speed: 40gb
features: 'dpdk|sriov'
+ address: 192.168.11.1
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:1b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:1c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:1d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.1
- mgmt: 10.167.4.1
- public: 172.30.10.72
+ name: 'nic4'
##############################################################################
nodes:
- name: pod2-node1
@@ -118,19 +84,19 @@ nodes:
- mac_address: "00:25:b5:a0:00:2a"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:2b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:2c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:2d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.2
- mgmt: 10.167.4.2
- public: 172.30.10.2
+ name: 'nic4'
############################################################################
- name: pod2-node2
node: *nodeparams
@@ -143,19 +109,19 @@ nodes:
- mac_address: "00:25:b5:a0:00:3a"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:3b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:3c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:3d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.3
- mgmt: 10.167.4.3
- public: 172.30.10.3
+ name: 'nic4'
############################################################################
- name: pod2-node3
node: *nodeparams
@@ -168,19 +134,19 @@ nodes:
- mac_address: "00:25:b5:a0:00:4a"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:4b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:4c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:4d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.4
- mgmt: 10.167.4.4
- public: 172.30.10.4
+ name: 'nic4'
############################################################################
- name: pod2-node4
node: *nodeparams
@@ -193,19 +159,19 @@ nodes:
- mac_address: "00:25:b5:a0:00:5a"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:5b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:5c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:5d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.5
- mgmt: 10.167.4.5
- public: 172.30.10.5
+ name: 'nic4'
############################################################################
- name: pod2-node5
node: *nodeparams
@@ -218,16 +184,16 @@ nodes:
- mac_address: "00:25:b5:a0:00:6a"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic1'
- mac_address: "00:25:b5:a0:00:6b"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic2'
- mac_address: "00:25:b5:a0:00:6c"
speed: 40gb
features: 'dpdk|sriov'
+ name: 'nic3'
- mac_address: "00:25:b5:a0:00:6d"
speed: 40gb
features: 'dpdk|sriov'
- fixed_ips:
- admin: 192.168.11.6
- mgmt: 10.167.4.6
- public: 172.30.10.6
+ name: 'nic4'
diff --git a/mcp/config/labs/local/virtual1.yaml b/mcp/config/labs/local/virtual1.yaml
new file mode 100644
index 000000000..e46a2c6c9
--- /dev/null
+++ b/mcp/config/labs/local/virtual1.yaml
@@ -0,0 +1,127 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, 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
+##############################################################################
+---
+### Fuel@OPNFV sample VIRTUAL POD descriptor file ###
+### NOTE: This is subject to change as vPDF is not yet officialy supported ###
+
+version: 0.0 # Intentionally invalid to indicate this is experimental
+details:
+ pod_owner: Fuel@OPNFV
+ contact: Fuel@OPNFV
+ lab: Example Lab
+ location: Example Location
+ type: development
+ link: https://wiki.opnfv.org/display/pharos/
+##############################################################################
+jumphost:
+ name: virtual1-jump
+ node:
+ type: baremetal
+ vendor: HP
+ model: ProLiant BL460c Gen8
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: ivybridge
+ cores: 10
+ memory: 64G
+ disks:
+ - name: 'disk1'
+ disk_capacity: 800G
+ disk_type: hdd
+ disk_interface: scsi
+ disk_rotation: 15000
+ os: ubuntu-16.04
+ remote_management:
+ type: ipmi
+ versions:
+ - 1.0
+ - 2.0
+ user: changeme
+ pass: changeme
+ address: 0.0.0.0
+ mac_address: "00:00:00:00:00:00"
+ interfaces:
+ - name: 'nic1'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic2'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+##############################################################################
+nodes:
+ - name: node-1
+ node: &nodeparams
+ # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+ type: virtual
+ vendor: libvirt
+ model: virt
+ arch: x86_64
+ cpus: 1
+ cpu_cflags: ivybridge
+ cores: 8
+ memory: 6G
+ disks: &disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: 15000
+ remote_management: &remotemgmt
+ type: libvirt
+ user: changeme
+ pass: changeme
+ address: 127.0.0.1 # Not used currently, will be 'qemu:///system' later
+ interfaces: &interfaces
+ - name: 'nic1'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ ############################################################################
+ - name: node-2
+ node: *nodeparams
+ disks: *disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-3
+ node: *nodeparams
+ disks: *disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-4
+ node: *nodeparams
+ disks: *disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/mcp/config/scenario/.gitignore b/mcp/config/scenario/.gitignore
new file mode 100644
index 000000000..46c7f92c8
--- /dev/null
+++ b/mcp/config/scenario/.gitignore
@@ -0,0 +1 @@
+*-ha.yaml
diff --git a/mcp/config/scenario/README.rst b/mcp/config/scenario/README.rst
index 389877ac4..e03182f11 100644
--- a/mcp/config/scenario/README.rst
+++ b/mcp/config/scenario/README.rst
@@ -19,4 +19,4 @@ feature scenarios used by Fuel@OPNFV, e.g.:
NOTES:
------
This directory is highly likely to change and/or be replaced/complemented
-by the new PDF (Pod Descriptor File) info in securedlab OPNFV git repo.
+by the new PDF (Pod Descriptor File) info in Pharos OPNFV git repo.
diff --git a/mcp/config/scenario/baremetal/os-nosdn-nofeature-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-nofeature-ha.yaml
deleted file mode 100644
index b721db431..000000000
--- a/mcp/config/scenario/baremetal/os-nosdn-nofeature-ha.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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: baremetal-mcp-pike-ovs-ha.local
- states:
- - maas
- - baremetal_init
- - virtual_control_plane
- - openstack_ha
- - networks
-virtual:
- nodes:
- - cfg01
- - mas01
- cfg01:
- vcpus: 4
- ram: 6144
- mas01:
- vcpus: 4
- ram: 6144
diff --git a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml b/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
deleted file mode 100644
index eec97eb96..000000000
--- a/mcp/config/scenario/baremetal/os-nosdn-ovs-ha.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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: baremetal-mcp-pike-ovs-dpdk-ha.local
- states:
- - maas
- - baremetal_init
- - virtual_control_plane
- - dpdk
- - openstack_ha
- - networks
- - networking_gw
-virtual:
- nodes:
- - cfg01
- - mas01
- cfg01:
- vcpus: 4
- ram: 6144
- mas01:
- vcpus: 4
- ram: 6144
diff --git a/mcp/config/scenario/baremetal/os-odl-nofeature-ha.yaml b/mcp/config/scenario/baremetal/os-odl-nofeature-ha.yaml
deleted file mode 100644
index a72c00d7d..000000000
--- a/mcp/config/scenario/baremetal/os-odl-nofeature-ha.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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: baremetal-mcp-pike-odl-ha.local
- states:
- - maas
- - baremetal_init
- - virtual_control_plane
- - opendaylight
- - openstack_ha
- - networks
-virtual:
- nodes:
- - cfg01
- - mas01
- cfg01:
- vcpus: 4
- ram: 6144
- mas01:
- vcpus: 4
- ram: 6144
diff --git a/mcp/config/scenario/defaults-x86_64.yaml b/mcp/config/scenario/defaults-x86_64.yaml
deleted file mode 100644
index 18b0826f9..000000000
--- a/mcp/config/scenario/defaults-x86_64.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
----
-base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
-virtual:
- default:
- vcpus: 2
- ram: 4096
- common:
- apt:
- keys:
- - 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=amd64] http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 xenial main
- pkg:
- install:
- - salt-minion
- control:
- pkg:
- install:
- - cloud-init
diff --git a/mcp/config/scenario/defaults-aarch64.yaml b/mcp/config/scenario/defaults.yaml
index 1efa12ae4..13f2dd527 100644
--- a/mcp/config/scenario/defaults-aarch64.yaml
+++ b/mcp/config/scenario/defaults.yaml
@@ -1,13 +1,34 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc. and others.
+# 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
##############################################################################
---
-base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-uefi1.img
-virtual:
+x86_64:
+ base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img
+ default:
+ vcpus: 2
+ ram: 4096
+ common:
+ apt:
+ keys:
+ - 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=amd64] http://repo.saltstack.com/apt/ubuntu/16.04/amd64/2016.11 xenial main
+ pkg:
+ install:
+ - linux-generic-hwe-16.04
+ - salt-minion
+ control:
+ apt: ~
+ pkg:
+ install:
+ - cloud-init
+aarch64:
+ base_image: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-arm64-uefi1.img
default:
vcpus: 6
ram: 4096
@@ -25,6 +46,7 @@ virtual:
- linux-headers-generic-hwe-16.04-edge
- salt-minion
control:
+ apt: ~
pkg:
install:
- cloud-init
diff --git a/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2
new file mode 100644
index 000000000..2c4a5f197
--- /dev/null
+++ b/mcp/config/scenario/os-nosdn-nofeature-ha.yaml.j2
@@ -0,0 +1,67 @@
+##############################################################################
+# 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 %}
+{%- set cluster = {'has_virtual_nodes': False} %}
+{%- for node in conf.nodes %}
+ {%- if not cluster.has_virtual_nodes and node.node.type == 'baremetal' %}
+ {%- do cluster.update({'has_baremetal_nodes': True}) %}
+ {%- endif %}
+{%- endfor %}
+---
+cluster:
+ domain: mcp-pike-ovs-ha.local
+ states:
+{%- if cluster.has_baremetal_nodes %}
+ - maas
+ - baremetal_init
+{%- endif %}
+{%- if conf.MCP_VCP %}
+ - virtual_control_plane
+{%- endif %}
+ - openstack_ha
+ - networks
+virtual:
+ nodes:
+ - cfg01
+{%- if cluster.has_baremetal_nodes %}
+ - mas01
+{%- endif %}
+{#- Most likely, controllers will always have the same type and number (3) #}
+{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %}
+ - kvm01
+ - kvm02
+ - kvm03
+{%- endif %}
+{#- Later, we might have mixed computes here, for hybrid multi-arch testing #}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
+ - cmp001
+ - cmp002
+{%- endif %}
+ cfg01:
+ vcpus: 4
+ ram: 6144
+ # Below values are only used when nodes are defined in virtual.nodes above
+ mas01:
+ vcpus: 4
+ ram: 6144
+ # NOTE: We might need to add more RAM here
+ kvm01:
+ vcpus: 4
+ ram: 14336
+ kvm02:
+ vcpus: 4
+ ram: 14336
+ kvm03:
+ vcpus: 4
+ ram: 14336
+ cmp001:
+ vcpus: 4
+ ram: 8192
+ cmp002:
+ vcpus: 4
+ ram: 8192
diff --git a/mcp/config/scenario/virtual/os-nosdn-nofeature-noha.yaml b/mcp/config/scenario/os-nosdn-nofeature-noha.yaml
index b35e66fc7..3a36ae297 100644
--- a/mcp/config/scenario/virtual/os-nosdn-nofeature-noha.yaml
+++ b/mcp/config/scenario/os-nosdn-nofeature-noha.yaml
@@ -7,11 +7,10 @@
##############################################################################
---
cluster:
- domain: virtual-mcp-pike-ovs-noha.local
+ domain: mcp-pike-ovs-noha.local
states:
- openstack_noha
- neutron_gateway
- - neutron_compute
- networks
virtual:
nodes:
diff --git a/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2 b/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2
new file mode 100644
index 000000000..96db11739
--- /dev/null
+++ b/mcp/config/scenario/os-nosdn-ovs-ha.yaml.j2
@@ -0,0 +1,68 @@
+##############################################################################
+# 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 %}
+{%- set cluster = {'has_virtual_nodes': False} %}
+{%- for node in conf.nodes %}
+ {%- if not cluster.has_virtual_nodes and node.node.type == 'baremetal' %}
+ {%- do cluster.update({'has_baremetal_nodes': True}) %}
+ {%- endif %}
+{%- endfor %}
+---
+cluster:
+ domain: mcp-pike-ovs-dpdk-ha.local
+ states:
+{%- if cluster.has_baremetal_nodes %}
+ - maas
+ - baremetal_init
+{%- endif %}
+{%- if conf.MCP_VCP %}
+ - virtual_control_plane
+{%- endif %}
+ - dpdk
+ - openstack_ha
+ - networks
+virtual:
+ nodes:
+ - cfg01
+{%- if cluster.has_baremetal_nodes %}
+ - mas01
+{%- endif %}
+{#- Most likely, controllers will always have the same type and number (3) #}
+{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %}
+ - kvm01
+ - kvm02
+ - kvm03
+{%- endif %}
+{#- Later, we might have mixed computes here, for hybrid multi-arch testing #}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
+ - cmp001
+ - cmp002
+{%- endif %}
+ cfg01:
+ vcpus: 4
+ ram: 6144
+ # Below values are only used when nodes are defined in virtual.nodes above
+ mas01:
+ vcpus: 4
+ ram: 6144
+ # NOTE: We might need to add more RAM here
+ kvm01:
+ vcpus: 4
+ ram: 14336
+ kvm02:
+ vcpus: 4
+ ram: 14336
+ kvm03:
+ vcpus: 4
+ ram: 14336
+ cmp001:
+ vcpus: 4
+ ram: 8192
+ cmp002:
+ vcpus: 4
+ ram: 8192
diff --git a/mcp/config/scenario/virtual/os-nosdn-ovs-noha.yaml b/mcp/config/scenario/os-nosdn-ovs-noha.yaml
index e3cd3dbd9..eed17c1a4 100644
--- a/mcp/config/scenario/virtual/os-nosdn-ovs-noha.yaml
+++ b/mcp/config/scenario/os-nosdn-ovs-noha.yaml
@@ -7,12 +7,11 @@
##############################################################################
---
cluster:
- domain: virtual-mcp-pike-ovs-dpdk-noha.local
+ domain: mcp-pike-ovs-dpdk-noha.local
states:
- dpdk
- openstack_noha
- neutron_gateway
- - neutron_compute
- networks
virtual:
nodes:
diff --git a/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2
new file mode 100644
index 000000000..0bd3a1307
--- /dev/null
+++ b/mcp/config/scenario/os-odl-nofeature-ha.yaml.j2
@@ -0,0 +1,68 @@
+##############################################################################
+# 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 %}
+{%- set cluster = {'has_virtual_nodes': False} %}
+{%- for node in conf.nodes %}
+ {%- if not cluster.has_virtual_nodes and node.node.type == 'baremetal' %}
+ {%- do cluster.update({'has_baremetal_nodes': True}) %}
+ {%- endif %}
+{%- endfor %}
+---
+cluster:
+ domain: mcp-pike-odl-ha.local
+ states:
+{%- if cluster.has_baremetal_nodes %}
+ - maas
+ - baremetal_init
+{%- endif %}
+{%- if conf.MCP_VCP %}
+ - virtual_control_plane
+{%- endif %}
+ - opendaylight
+ - openstack_ha
+ - networks
+virtual:
+ nodes:
+ - cfg01
+{%- if cluster.has_baremetal_nodes %}
+ - mas01
+{%- endif %}
+{#- Most likely, controllers will always have the same type and number (3) #}
+{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %}
+ - kvm01
+ - kvm02
+ - kvm03
+{%- endif %}
+{#- Later, we might have mixed computes here, for hybrid multi-arch testing #}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
+ - cmp001
+ - cmp002
+{%- endif %}
+ cfg01:
+ vcpus: 4
+ ram: 6144
+ # Below values are only used when nodes are defined in virtual.nodes above
+ mas01:
+ vcpus: 4
+ ram: 6144
+ # NOTE: We might need to add more RAM here
+ kvm01:
+ vcpus: 4
+ ram: 14336
+ kvm02:
+ vcpus: 4
+ ram: 14336
+ kvm03:
+ vcpus: 4
+ ram: 14336
+ cmp001:
+ vcpus: 4
+ ram: 8192
+ cmp002:
+ vcpus: 4
+ ram: 8192
diff --git a/mcp/config/scenario/virtual/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml
index cef41270c..f52eaf5aa 100644
--- a/mcp/config/scenario/virtual/os-odl-nofeature-noha.yaml
+++ b/mcp/config/scenario/os-odl-nofeature-noha.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,7 +7,7 @@
##############################################################################
---
cluster:
- domain: virtual-mcp-pike-odl-noha.local
+ domain: mcp-pike-odl-noha.local
states:
- opendaylight
- openstack_noha
diff --git a/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2 b/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2
new file mode 100644
index 000000000..8b7fda0c4
--- /dev/null
+++ b/mcp/config/scenario/os-ovn-nofeature-ha.yaml.j2
@@ -0,0 +1,67 @@
+##############################################################################
+# 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 %}
+{%- set cluster = {'has_virtual_nodes': False} %}
+{%- for node in conf.nodes %}
+ {%- if not cluster.has_virtual_nodes and node.node.type == 'baremetal' %}
+ {%- do cluster.update({'has_baremetal_nodes': True}) %}
+ {%- endif %}
+{%- endfor %}
+---
+cluster:
+ domain: mcp-pike-ovn-ha.local
+ states:
+{%- if cluster.has_baremetal_nodes %}
+ - maas
+ - baremetal_init
+{%- endif %}
+{%- if conf.MCP_VCP %}
+ - virtual_control_plane
+{%- endif %}
+ - openstack_ha
+ - networks
+virtual:
+ nodes:
+ - cfg01
+{%- if cluster.has_baremetal_nodes %}
+ - mas01
+{%- endif %}
+{#- Most likely, controllers will always have the same type and number (3) #}
+{%- if conf.nodes[nm.ctl01.idx].node.type == 'virtual' %}
+ - kvm01
+ - kvm02
+ - kvm03
+{%- endif %}
+{#- Later, we might have mixed computes here, for hybrid multi-arch testing #}
+{%- if conf.nodes[nm.cmp001.idx].node.type == 'virtual' %}
+ - cmp001
+ - cmp002
+{%- endif %}
+ cfg01:
+ vcpus: 4
+ ram: 6144
+ # Below values are only used when nodes are defined in virtual.nodes above
+ mas01:
+ vcpus: 4
+ ram: 6144
+ # NOTE: We might need to add more RAM here
+ kvm01:
+ vcpus: 4
+ ram: 14336
+ kvm02:
+ vcpus: 4
+ ram: 14336
+ kvm03:
+ vcpus: 4
+ ram: 14336
+ cmp001:
+ vcpus: 4
+ ram: 8192
+ cmp002:
+ vcpus: 4
+ ram: 8192
diff --git a/mcp/config/scenario/virtual/os-ovn-nofeature-noha.yaml b/mcp/config/scenario/os-ovn-nofeature-noha.yaml
index e0a19ebb2..104df96d3 100644
--- a/mcp/config/scenario/virtual/os-ovn-nofeature-noha.yaml
+++ b/mcp/config/scenario/os-ovn-nofeature-noha.yaml
@@ -7,11 +7,9 @@
##############################################################################
---
cluster:
- domain: virtual-mcp-pike-ovn-noha.local
+ domain: mcp-pike-ovn-noha.local
states:
- openstack_noha
- - ovn_ctl_opts
- - neutron_compute
- networks
virtual:
nodes:
diff --git a/mcp/config/states/baremetal_init b/mcp/config/states/baremetal_init
index c14772837..891eae365 100755
--- a/mcp/config/states/baremetal_init
+++ b/mcp/config/states/baremetal_init
@@ -1,6 +1,6 @@
#!/bin/bash -e
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -25,8 +25,11 @@ salt -C 'kvm* or cmp*' file.replace $debian_ip_source \
salt -C 'kvm*' pkg.install bridge-utils
salt -C 'kvm*' state.apply linux.network,linux.system.kernel
salt -C 'kvm* or cmp*' state.apply salt.minion
-salt -C 'cmp*' state.apply linux.system
+wait_for 5.0 "salt -C 'cmp*' state.apply linux.system"
+# wrap distro `route` binary to silence errors when route already exists
+wait_for 5.0 "salt -C 'kvm* or cmp*' state.apply opnfv.route_wrapper"
salt -C 'cmp*' state.apply linux.network || true
+wait_for 30.0 "salt -C 'kvm* or cmp*' test.ping"
# disable dhcp offered routes on compute nodes
salt -C 'cmp*' file.write /etc/dhcp/dhclient-enter-hooks.d/no-default-route \
diff --git a/mcp/config/states/dpdk b/mcp/config/states/dpdk
index 5ae2aac48..281b78fed 100755
--- a/mcp/config/states/dpdk
+++ b/mcp/config/states/dpdk
@@ -12,8 +12,5 @@ CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
# shellcheck disable=SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
-salt -I 'nova:compute' system.reboot
-wait_for 90.0 "salt -I 'nova:compute' test.ping"
-
salt -I 'nova:compute' alternatives.set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk
salt -I 'nova:compute' service.restart openvswitch-switch
diff --git a/mcp/config/states/maas b/mcp/config/states/maas
index 8f7a86611..10cfd01bf 100755
--- a/mcp/config/states/maas
+++ b/mcp/config/states/maas
@@ -14,6 +14,9 @@ ERASE_ENV=${ERASE_ENV:-0}
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/globals.sh"
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
+bm_nodes=$(salt --out yaml 'mas01*' pillar.get maas:region:machines | \
+ awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); printf "%s ", $1}')
+
# Wait for MaaS commissioning/deploy to finish, retry on failure
function maas_fixup() {
local statuscmd="salt 'mas01*' --out yaml state.apply maas.machines.status"
@@ -27,12 +30,19 @@ function maas_fixup() {
local fcnodes=$(echo "${statusout}" | \
grep -Pzo 'status: Failed commissioning\n\s+system_id: \K.+\n')
+ local ftnodes=$(echo "${statusout}" | \
+ grep -Pzo 'status: Failed testing\n\s+system_id: \K.+\n')
for node_system_id in ${fcnodes}; do
salt -C 'mas01*' state.apply maas.machines.delete \
pillar="{'system_id': '${node_system_id}'}"
sleep 10
done
- if [ -n "${fcnodes}" ]; then
+ for node_system_id in ${ftnodes}; do
+ salt -C 'mas01*' state.apply maas.machines.override_failed_testing \
+ pillar="{'system_id': '${node_system_id}'}"
+ sleep 10
+ done
+ if [ -n "${fcnodes}" ] || [ -n "${ftnodes}" ]; then
salt -C 'mas01*' state.apply maas.machines
return 1
fi
@@ -47,6 +57,16 @@ function maas_fixup() {
sleep 10
done
if [ -n "${fdnodes}" ] || [ -n "${rnodes}" ]; then
+ for node_system_id in ${fdnodes} ${rnodes}; do
+ # For now, we allocate 30GB (fixed) for / on cmp nodes
+ local node_hostname=$(echo "${statusout}" | \
+ grep -Pzo 'hostname: \K.+(?=\n.+\n\s+system_id: '"${node_system_id}"')')
+ if [[ "${node_hostname}" =~ ^cmp ]]; then
+ salt -C 'mas01*' state.apply maas.machines.set_storage_layout \
+ pillar="{'system_id': '${node_system_id}', 'lv_size': '32212254720'}"
+ sleep 10
+ fi
+ done
salt -C 'mas01*' state.apply maas.machines.deploy
return 1
fi
@@ -68,16 +88,19 @@ fi
# MaaS rack/region controller, node commissioning
salt -C 'mas01*' state.apply linux,salt,openssh,ntp
+salt -C 'mas01*' state.apply maas.pxe_nat
salt -C 'mas01*' state.apply maas.cluster
wait_for 10 "salt -C 'mas01*' state.apply maas.region"
-salt -C 'mas01*' state.apply maas.machines
+if [ -n "${bm_nodes}" ]; then
+ salt -C 'mas01*' state.apply maas.machines
+fi
# cleanup outdated salt keys
sleep 30
salt-key --out yaml | awk '!/^(minions|- cfg01|- mas01)/ {print $2}' | \
- xargs -I{} salt-key -yd {}
+ xargs --no-run-if-empty -I{} salt-key -yd {}
# MaaS node deployment
wait_for 10 maas_fixup
@@ -87,18 +110,6 @@ salt -C 'mas01*' pillar.item\
maas:region:admin:password
# Check all baremetal nodes are available
-rc=1
-attempt=0
-total_attempts=10
-while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do
- bm_nodes=$(salt --out yaml 'mas01*' pillar.get maas:region:machines | \
- awk '/^\s+\w+[[:digit:]]+:$/ {gsub(/:$/, "*"); print $1}')
- rc=0
- for node in $bm_nodes; do
- salt "$node" test.ping 2>/dev/null || { rc=$?; break; };
- done
- sleep 5
- ((attempt+=1))
-done
+wait_for 5.0 "(for n in ${bm_nodes}; do salt \${n} test.ping 2>/dev/null || exit; done)"
wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"
diff --git a/mcp/config/states/neutron_compute b/mcp/config/states/neutron_compute
deleted file mode 100755
index c6b90e20d..000000000
--- a/mcp/config/states/neutron_compute
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash -e
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
-
-CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-
-salt -I 'neutron:compute' state.sls neutron
diff --git a/mcp/config/states/opendaylight b/mcp/config/states/opendaylight
index 34a2c3bd8..de15d0cef 100755
--- a/mcp/config/states/opendaylight
+++ b/mcp/config/states/opendaylight
@@ -1,6 +1,6 @@
#!/bin/bash -e
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,7 +9,13 @@
CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-salt -I 'opendaylight:server' state.sls opendaylight
-salt -I 'opendaylight:client' state.sls opendaylight.client
-salt -I 'opendaylight:client' cmd.run 'neutron-odl-ovs-hostconfig --noovs_dpdk'
-salt -I 'neutron:server' state.sls opendaylight.client
+# shellcheck disable=SC1090
+source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
+
+# Get OpenDaylight server options with prefix odl_
+function odl() {
+ salt --out txt -I 'opendaylight:server' pillar.get "opendaylight:server:odl_$1" | cut -d ' ' -f2
+}
+
+wait_for 5.0 "salt -I 'opendaylight:server' state.sls opendaylight"
+wait_for 20 "salt --out yaml -C 'I@neutron:server and *01*' network.connect $(odl bind_ip) $(odl rest_port) | fgrep -q 'result: true'"
diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha
index 0bbf7cde5..77063d6c8 100755
--- a/mcp/config/states/openstack_ha
+++ b/mcp/config/states/openstack_ha
@@ -12,8 +12,8 @@ CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
# shellcheck disable=SC1090
source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
-salt -I 'keepalived:cluster' state.sls keepalived -b 1
-salt -I 'keepalived:cluster' pillar.get keepalived:cluster:instance:VIP:address
+wait_for 5.0 "salt -I 'keepalived:cluster' state.sls keepalived -b 1"
+wait_for 5.0 "salt -I 'keepalived:cluster' pillar.get keepalived:cluster:instance:VIP:address"
salt -C 'I@rabbitmq:server and *01*' state.sls rabbitmq
salt -I 'rabbitmq:server' state.sls rabbitmq
@@ -25,10 +25,10 @@ salt -I 'glusterfs:server' cmd.run "gluster peer status; gluster volume status"
salt -I 'glusterfs:client' state.sls glusterfs.client
salt -I 'galera:master' state.sls galera
-salt -I 'galera:slave' state.sls galera
+salt -I 'galera:slave' state.sls galera -b 1
salt -I 'galera:master' mysql.status | grep -A1 wsrep_cluster_size
-salt -I 'memcached:server' state.sls memcached
+wait_for 3.0 "salt -I 'memcached:server' state.sls memcached"
salt -I 'haproxy:proxy' state.sls haproxy
salt -I 'haproxy:proxy' service.status haproxy
@@ -38,15 +38,15 @@ set +e; salt -I 'keystone:server' state.sls keystone.server -b 1; set -e
salt -I 'keystone:server' service.restart apache2
salt -I 'keystone:server' state.sls keystone.server -b 1
-wait_for 30 "salt -I 'keystone:client' state.sls keystone.client"
+wait_for 30.0 "salt -I 'keystone:client' state.sls keystone.client"
salt -I 'keystone:server' cmd.run ". /root/keystonercv3; openstack service list"
salt -I 'glance:server' state.sls glance -b 1
salt -I 'nova:controller' state.sls nova -b 1
salt -I 'heat:server' state.sls heat -b 1
-wait_for 5 "salt -I 'cinder:controller' state.sls cinder -b 1"
-wait_for 3 "salt -I 'cinder:volume' state.sls cinder"
+wait_for 5.0 "salt -I 'cinder:controller' state.sls cinder -b 1"
+wait_for 3.0 "salt -I 'cinder:volume' state.sls cinder"
salt -I 'neutron:server' state.sls neutron -b 1
salt -I 'neutron:gateway' state.sls neutron.gateway
@@ -54,7 +54,7 @@ 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 "salt -C 'I@mongodb:server and *01*' cmd.run 'mongo localhost:27017/admin'"
+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
@@ -63,23 +63,27 @@ salt -I 'ceilometer:server' state.sls ceilometer
salt -I 'ceilometer:agent' state.sls ceilometer
salt -I 'horizon:server' state.sls horizon
-salt -I 'nginx:server' state.sls nginx,sphinx
-
-# workaround for the pike horizon is missing css, FUEL-324
-salt -I 'horizon:server' file.symlink \
- /var/lib/openstack-dashboard/static \
- /usr/share/openstack-dashboard/static
-salt -I 'horizon:server' cmd.run "/usr/share/openstack-dashboard/manage.py collectstatic --noinput"
-salt -I 'horizon:server' cmd.run "/usr/share/openstack-dashboard/manage.py compress --force"
-salt -I 'horizon:server' file.append /etc/openstack-dashboard/local_settings.py \
- "AVAILABLE_THEMES = [ ('default', 'Default', 'themes/default'),]"
-salt -I 'horizon:server' service.reload apache2
-
-clstr_vip_addr=$(salt -C 'I@nginx:server and *01*' --out=yaml \
- pillar.get _param:cluster_vip_address | awk '{print $2; exit}')
-salt -C 'I@nginx:server and *01*' cp.push \
- "/etc/ssl/certs/${clstr_vip_addr}-with-chain.crt" upload_path='certs/os_cacert'
-cd /etc/ssl/certs && ln -sf /var/cache/salt/master/minions/prx01.*/files/certs/os_cacert
+salt -I 'nginx:server' state.sls nginx
+
+# workaround for Ubuntu Pike Horizon missing css, FUEL-324
+if ! salt -C 'I@horizon:server and *01*' --out=yaml pkg.version openstack-dashboard | grep -qE ':.*mcp'; then
+ salt -I 'horizon:server' file.symlink \
+ /var/lib/openstack-dashboard/static \
+ /usr/share/openstack-dashboard/static
+ salt -I 'horizon:server' cmd.run "/usr/share/openstack-dashboard/manage.py collectstatic --noinput"
+ salt -I 'horizon:server' cmd.run "/usr/share/openstack-dashboard/manage.py compress --force"
+ salt -I 'horizon:server' file.append /etc/openstack-dashboard/local_settings.py \
+ "AVAILABLE_THEMES = [ ('default', 'Default', 'themes/default'),]"
+ salt -I 'horizon:server' service.reload apache2
+fi
+
+cluster_public_host=$(salt -C 'I@nginx:server and *01*' --out=yaml \
+ pillar.get _param:cluster_public_host | awk '{print $2; exit}')
+dashboard_host=$(salt -C 'I@nginx:server and *01*' --out=yaml cp.push \
+ "/etc/ssl/certs/${cluster_public_host}-with-chain.crt" \
+ upload_path='certs/os_cacert' | cut -d':' -f1)
+cd /etc/ssl/certs && \
+ ln -sf "/var/cache/salt/master/minions/${dashboard_host}/files/certs/os_cacert"
# glance v1 api is required by orchestra tests
salt -I 'glance:server' ini.set_option /etc/glance/glance-api.conf '{DEFAULT: {enable_v1_api: True}}'
diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha
index 9fc30bbf1..4c8cbcf8a 100755
--- a/mcp/config/states/openstack_noha
+++ b/mcp/config/states/openstack_noha
@@ -42,6 +42,7 @@ salt -I 'cinder:controller' state.sls cinder
wait_for 3 "salt -I 'cinder:volume' state.sls cinder"
salt -I 'neutron:server' state.sls neutron
+salt -I 'neutron:compute' state.sls neutron
salt -I 'nova:compute' state.sls nova
diff --git a/mcp/config/states/ovn_ctl_opts b/mcp/config/states/ovn_ctl_opts
deleted file mode 100755
index eeb336b28..000000000
--- a/mcp/config/states/ovn_ctl_opts
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash -e
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
-
-CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-
-salt -I 'neutron:server' file.append /etc/default/ovn-central \
- args="OVN_CTL_OPTS='--db-nb-create-insecure-remote=yes --db-sb-create-insecure-remote=yes'"
-salt -I 'neutron:server' service.restart ovn-central
-sleep 30
diff --git a/mcp/config/states/virtual_control_plane b/mcp/config/states/virtual_control_plane
index 338c4470f..c391cfe6f 100755
--- a/mcp/config/states/virtual_control_plane
+++ b/mcp/config/states/virtual_control_plane
@@ -33,20 +33,10 @@ salt -C 'kvm* or cmp*' state.apply salt
wait_for 10.0 "salt -C 'kvm*' state.sls salt.control"
vcp_nodes=$(salt --out yaml 'kvm01*' pillar.get salt:control:cluster:internal:node | \
- awk '/\s+\w+:$/ {gsub(/:$/, "*"); print $1}')
+ awk '/\s+\w+:$/ {gsub(/:$/, "*"); printf "%s ", $1}')
# Check all vcp nodes are available
-rc=1
-attempt=0
-total_attempts=50
-while [ $rc -ne 0 ] && [ ${attempt} -lt ${total_attempts} ]; do
- rc=0
- for node in $vcp_nodes; do
- salt "$node" test.ping 2>/dev/null || { rc=$?; break; };
- done
- sleep 5
- ((attempt+=1))
-done
+wait_for 25.0 "(for n in ${vcp_nodes}; do salt \${n} test.ping 2>/dev/null || exit; done)"
wait_for 10.0 "salt -C '* and not cfg01* and not mas01*' saltutil.sync_all"
@@ -58,7 +48,7 @@ cd /srv/salt/env/prd/maas/files && ln -sf \
salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' cp.get_file \
"salt://maas/files/$(basename "${APT_CONF_D_CURTIN}")" "${APT_CONF_D_CURTIN}"
-wait_for 10 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt"
+wait_for 10.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply salt"
wait_for 10.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' state.apply linux,ntp"
wait_for 10.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_USER} \
@@ -67,6 +57,7 @@ wait_for 10.0 "salt -C 'E@^(?!cfg01|mas01|kvm|cmp00).*' ssh.set_auth_key ${SUDO_
# Disable proxy dhcp routes after installation
salt -C 'prx*' file.write /etc/dhcp/dhclient-enter-hooks.d/no-default-route \
args='unset new_routers'
+salt -C 'prx*' state.apply opnfv.route_wrapper
salt -C 'prx*' system.reboot
wait_for 30.0 "salt -C 'prx*' test.ping"
diff --git a/mcp/metadata/service/opendaylight/server/single.yml b/mcp/metadata/service/opendaylight/server/single.yml
index b714809b3..3a762b39a 100644
--- a/mcp/metadata/service/opendaylight/server/single.yml
+++ b/mcp/metadata/service/opendaylight/server/single.yml
@@ -9,8 +9,12 @@
applications:
- opendaylight
parameters:
+ _param:
+ version: oxygen
opendaylight:
server:
enabled: 'True'
+ version: ${_param:version}
+ repo: 'odl-team/${_param:version}'
logging:
engine: syslog
diff --git a/mcp/patches/0001-opendaylight-formula-neutron.patch b/mcp/patches/0001-opendaylight-formula-neutron.patch
deleted file mode 100644
index 4bd161700..000000000
--- a/mcp/patches/0001-opendaylight-formula-neutron.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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: Michael Polenchuk <mpolenchuk@mirantis.com>
-Date: Thu, 29 Jun 2017 12:05:25 +0400
-Subject: [PATCH] Bring in opendaylight support
-
-Change-Id: Ie9073fafccba336f94b1996bd85c98d7a7f5060b
-
-diff --git a/neutron/files/pike/dhcp_agent.ini b/neutron/files/pike/dhcp_agent.ini
-index d327e64..739dddf 100644
---- a/neutron/files/pike/dhcp_agent.ini
-+++ b/neutron/files/pike/dhcp_agent.ini
-@@ -1,3 +1,8 @@
-+{%- if pillar.neutron.gateway is defined %}
-+{%- from "neutron/map.jinja" import gateway as neutron with context %}
-+{%- else %}
-+{%- from "neutron/map.jinja" import compute as neutron with context %}
-+{%- endif %}
- [DEFAULT]
-
- #
-@@ -48,6 +53,7 @@ enable_isolated_metadata = True
- # this value will force the DHCP server to append specific host routes to the DHCP request. If this option is set, then the metadata service
- # will be activated for all the networks. (boolean value)
- #force_metadata = false
-+{% if neutron.backend.router is defined %}force_metadata = True{% endif %}
-
- # Allows for serving metadata requests coming from a dedicated metadata access network whose CIDR is 169.254.169.254/16 (or larger prefix),
- # and is connected to a Neutron router from which the VMs send metadata:1 request. In this case DHCP Option 121 will not be injected in VMs,
-diff --git a/neutron/files/pike/ml2_conf.ini b/neutron/files/pike/ml2_conf.ini
-index b61e313..02da3b1 100644
---- a/neutron/files/pike/ml2_conf.ini
-+++ b/neutron/files/pike/ml2_conf.ini
-@@ -134,7 +134,8 @@ tenant_network_types = {{ server.backend.tenant_network_types }}
- {%- for mechanism_name, mechanism in server.get('backend', {}).get('mechanism', []).items() %}
- {%- do mechanism_drivers.append(mechanism.get('driver')) if 'driver' in mechanism %}
- {%- endfor %}
--{%- if "vxlan" in server.backend.tenant_network_types %}
-+{%- set opendaylight_enabled = true if 'opendaylight' in mechanism_drivers|join else false %}
-+{%- if "vxlan" in server.backend.tenant_network_types and not opendaylight_enabled %}
- {%- do mechanism_drivers.append('l2population') %}
- {%- endif %}
- mechanism_drivers = {{ ','.join(mechanism_drivers) }}
-@@ -311,3 +312,11 @@ ovn_nb_connection = tcp:{{ server.controller_vip }}:6641
- ovn_sb_connection = tcp:{{ server.controller_vip }}:6642
- ovn_l3_scheduler = leastloaded
- {%- endif %}
-+
-+{%- if opendaylight_enabled %}
-+[ml2_odl]
-+port_binding_controller = pseudo-agentdb-binding
-+url = http://{{ server.backend.host }}:{{ server.backend.rest_api_port }}/controller/nb/v2/neutron
-+username = {{ server.backend.user }}
-+password = {{ server.backend.password }}
-+{%- endif %}
-diff --git a/neutron/files/pike/neutron-generic.conf.Debian b/neutron/files/pike/neutron-generic.conf.Debian
-index 123386d..d77f6c8 100644
---- a/neutron/files/pike/neutron-generic.conf.Debian
-+++ b/neutron/files/pike/neutron-generic.conf.Debian
-@@ -37,7 +37,7 @@ auth_strategy = keystone
-
- core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
-
--service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin
-+service_plugins = {{ neutron.backend.get('router', 'router')}}, metering
-
- {% endif %}
-
-@@ -668,7 +668,7 @@ root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
- # needs to execute commands in Dom0 in the hypervisor of XenServer, this item
- # should be set to 'xenapi_root_helper', so that it will keep a XenAPI session
- # to pass commands to Dom0. (string value)
--root_helper_daemon = sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
-+#root_helper_daemon = <None>
-
- # Seconds between nodes reporting state to server; should be less than
- # agent_down_time, best if it is half or less than agent_down_time. (floating
-@@ -2092,3 +2092,8 @@ heartbeat_rate = 2
- # Sets the list of available ciphers. value should be a string in the OpenSSL
- # cipher list format. (string value)
- #ciphers = <None>
-+
-+{%- if neutron.backend.ovsdb_connection is defined %}
-+[ovs]
-+ovsdb_connection = {{ neutron.backend.ovsdb_connection }}
-+{%- endif %}
-diff --git a/neutron/files/pike/neutron-server.conf.Debian b/neutron/files/pike/neutron-server.conf.Debian
-index 79376a2..a7a4645 100644
---- a/neutron/files/pike/neutron-server.conf.Debian
-+++ b/neutron/files/pike/neutron-server.conf.Debian
-@@ -50,7 +50,7 @@ core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
- {% set l3_plugin = 'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin' %}
- {% endif %}
-
--service_plugins ={{ l3_plugin }}, neutron.services.metering.metering_plugin.MeteringPlugin
-+service_plugins = {{ server.backend.get('router', l3_plugin)}}, metering
- {%- if server.lbaas is defined -%},lbaasv2{%- endif -%}
- {%- if fwaas.get('enabled', False) -%},{{ fwaas[fwaas.api_version]['service_plugin'] }}{%- endif -%}
- {%- if server.get('qos', 'True') -%},neutron.services.qos.qos_plugin.QoSPlugin{%- endif -%}
-@@ -703,7 +703,7 @@ root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
- # needs to execute commands in Dom0 in the hypervisor of XenServer, this item
- # should be set to 'xenapi_root_helper', so that it will keep a XenAPI session
- # to pass commands to Dom0. (string value)
--root_helper_daemon = sudo neutron-rootwrap-daemon /etc/neutron/rootwrap.conf
-+#root_helper_daemon = <None>
-
- # Seconds between nodes reporting state to server; should be less than
- # agent_down_time, best if it is half or less than agent_down_time. (floating
-@@ -2245,3 +2245,8 @@ username = {{ server.identity.user }}
- password = {{ server.identity.password }}
- auth_url=http://{{ server.identity.host }}:35357
- {%- endif %}
-+
-+{%- if server.backend.ovsdb_connection is defined %}
-+[ovs]
-+ovsdb_connection = {{ server.backend.ovsdb_connection }}
-+{%- endif %}
-diff --git a/neutron/gateway.sls b/neutron/gateway.sls
-index 81513d8..7ec9b91 100644
---- a/neutron/gateway.sls
-+++ b/neutron/gateway.sls
-@@ -32,6 +32,7 @@ neutron_gateway_packages:
- /etc/neutron/dhcp_agent.ini:
- file.managed:
- - source: salt://neutron/files/{{ gateway.version }}/dhcp_agent.ini
-+ - template: jinja
- - require:
- - pkg: neutron_gateway_packages
-
diff --git a/mcp/patches/0002-maas-region-skip-credentials-update.patch b/mcp/patches/0002-maas-region-skip-credentials-update.patch
index 11e8befb8..1d226e4cd 100644
--- a/mcp/patches/0002-maas-region-skip-credentials-update.patch
+++ b/mcp/patches/0002-maas-region-skip-credentials-update.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/0003-maas-region-force-artifact-download.patch b/mcp/patches/0003-maas-region-force-artifact-download.patch
index 6e6c18fba..b61a3d1b8 100644
--- a/mcp/patches/0003-maas-region-force-artifact-download.patch
+++ b/mcp/patches/0003-maas-region-force-artifact-download.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch b/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch
deleted file mode 100644
index a4fb44b05..000000000
--- a/mcp/patches/0004-maas-region-use-authorized_keys-1st-entry.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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: Charalampos Kominos <Charalampos.Kominos@enea.com>
-Date: Sat, 5 Aug 2017 02:03:01 +0200
-Subject: [PATCH] maas: region: use authorized_keys 1st entry
-
-MaaS custom py modules accepts the "sshprefs" variable via pillar,
-however we want to read it from ~ubuntu/.ssh/authorized_keys.
-
-Bypass the py module and call MaaS CLI directly, passing the first
-authorized key, which should be mcp.rsa.pub.
-
-Signed-off-by: Charalampos Kominos <Charalampos.Kominos@enea.com>
----
-
-diff --git a/maas/region.sls b/maas/region.sls
---- a/maas/region.sls
-+++ b/maas/region.sls
-@@ -242,12 +242,16 @@
- - require:
- - module: maas_config
-
--{%- if region.get('sshprefs', False) %}
- maas_sshprefs:
-- module.run:
-- - name: maas.process_sshprefs
-+# NOTE(armband): maas.process_sshprefs also works, but we need to read the key
-+# from authorized_keys. Should be reworked at some point.
-+# module.run:
-+# - name: maas.process_sshprefs
-+# - require:
-+ cmd.run:
-+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && SSH_KEY=$(cat authorized_keys | head -1) && (maas opnfv sshkeys read | grep -q \"$SSH_KEY\" || maas opnfv sshkeys create \"key=$SSH_KEY\")"
-+ - cwd: "/home/ubuntu/.ssh"
- - require:
- - module: maas_config
--{%- endif %}
-
- {%- endif %}
diff --git a/mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch b/mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch
new file mode 100644
index 000000000..180a9ddee
--- /dev/null
+++ b/mcp/patches/0004-network.dpdk-Move-ifcfg-br-prv-to-interfaces.u.patch
@@ -0,0 +1,41 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Sun, 25 Feb 2018 03:43:49 +0100
+Subject: [PATCH] network.dpdk: Move ifcfg-br-prv to interfaces.u
+
+Workaround for Upstream-Bug:
+https://github.com/saltstack/salt/issues/40262
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ linux/network/dpdk.sls | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
+index 05fe05f..cc0ff9e 100644
+--- a/linux/network/dpdk.sls
++++ b/linux/network/dpdk.sls
+@@ -128,7 +128,7 @@ linux_network_dpdk_bridge_interface_{{ interface_name }}:
+ After=openvswitch-switch.service
+
+ {# enforce ip address and mtu for ovs dpdk br-prv #}
+-/etc/network/interfaces.d/ifcfg-{{ interface_name }}:
++/etc/network/interfaces.u/ifcfg-{{ interface_name }}:
+ file.managed:
+ - contents: |
+ auto {{ interface_name }}
+@@ -138,6 +138,7 @@ linux_network_dpdk_bridge_interface_{{ interface_name }}:
+ {%- if interface.mtu is defined %}
+ mtu {{ interface.mtu }}
+ {%- endif %}
++ - makedirs: True
+ - require:
+ - file: /etc/systemd/system/ifup@{{ interface_name }}.service.d/override.conf
+
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
index 4c626badf..4a81786b2 100644
--- a/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
+++ b/mcp/patches/0005-maas-module-Obtain-fabric-ID-from-CIDR.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/0006-maas-module-Add-VLAN-DHCP-enable-support.patch b/mcp/patches/0006-maas-module-Add-VLAN-DHCP-enable-support.patch
index 8d4a72c9a..d2f531168 100644
--- a/mcp/patches/0006-maas-module-Add-VLAN-DHCP-enable-support.patch
+++ b/mcp/patches/0006-maas-module-Add-VLAN-DHCP-enable-support.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/0007-network.interface-Fix-ifup-OVS-port-with-route.patch b/mcp/patches/0007-network.interface-Fix-ifup-OVS-port-with-route.patch
index 49b2b88cc..2a5e29e9e 100644
--- a/mcp/patches/0007-network.interface-Fix-ifup-OVS-port-with-route.patch
+++ b/mcp/patches/0007-network.interface-Fix-ifup-OVS-port-with-route.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/0008-Handle-extra-environment-variables.patch b/mcp/patches/0008-Handle-extra-environment-variables.patch
new file mode 100644
index 000000000..8df3227f2
--- /dev/null
+++ b/mcp/patches/0008-Handle-extra-environment-variables.patch
@@ -0,0 +1,25 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Mon, 12 Mar 2018 17:43:09 +0400
+Subject: [PATCH] Handle extra environment variables
+
+Change-Id: Ieae46ac65041630759c82238a8a5ce0535c454b2
+
+diff --git a/keystone/files/keystonercv3 b/keystone/files/keystonercv3
+index 1b7f378..984c8a2 100644
+--- a/keystone/files/keystonercv3
++++ b/keystone/files/keystonercv3
+@@ -11,3 +11,6 @@ export OS_REGION_NAME={{ server.region }}
+ export OS_INTERFACE=internal
+ export OS_ENDPOINT_TYPE="internal"
+ export OS_CACERT="{{ server.cacert }}"
++{%- for opt, value in server.get('openrc_extra', {}).iteritems() %}
++{{ "export %s=%s"|format(opt|upper, value) }}
++{%- endfor %}
diff --git a/mcp/patches/0008-Handle-kernel-boot-options.patch b/mcp/patches/0008-Handle-kernel-boot-options.patch
deleted file mode 100644
index f5198a2ab..000000000
--- a/mcp/patches/0008-Handle-kernel-boot-options.patch
+++ /dev/null
@@ -1,69 +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: Michael Polenchuk <mpolenchuk@mirantis.com>
-Date: Thu, 25 Jan 2018 13:22:39 +0400
-Subject: [PATCH] Handle kernel boot options
-
-The 'system.kernel.elevator' and 'system.kernel.isolcpu' options
-have been kept for backward compatibility and should be used in new
-fashion way with system.kernel.boot_options parameter.
-
-Change-Id: I51f7167b8b8946500df2065ee6b02bcf21809bc9
-
-diff --git a/linux/system/kernel.sls b/linux/system/kernel.sls
-index 59b7177..b1c3f3b 100644
---- a/linux/system/kernel.sls
-+++ b/linux/system/kernel.sls
-@@ -3,39 +3,24 @@
-
- {%- if system.kernel is defined %}
-
--{%- if system.kernel.isolcpu is defined or system.kernel.elevator is defined %}
-+{%- set kernel_boot_opts = [] %}
-+{%- do kernel_boot_opts.append('isolcpus=' ~ system.kernel.isolcpu) if system.kernel.isolcpu is defined %}
-+{%- do kernel_boot_opts.append('elevator=' ~ system.kernel.elevator) if system.kernel.elevator is defined %}
-+{%- do kernel_boot_opts.extend(system.kernel.boot_options) if system.kernel.boot_options is defined %}
-
-+{%- if kernel_boot_opts %}
- include:
- - linux.system.grub
-
--{%- if system.kernel.isolcpu is defined %}
--
--/etc/default/grub.d/90-isolcpu.cfg:
-- file.managed:
-- - contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT isolcpus={{ system.kernel.isolcpu }}"'
-- - require:
-- - file: grub_d_directory
--{%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
-- - watch_in:
-- - cmd: grub_update
--
--{%- endif %}
--{%- endif %}
--
--{%- if system.kernel.elevator is defined %}
--
--/etc/default/grub.d/91-elevator.cfg:
-+/etc/default/grub.d/99-custom-settings.cfg:
- file.managed:
-- - contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT elevator={{ system.kernel.elevator }}"'
-+ - contents: 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT {{ kernel_boot_opts|join(' ') }}"'
- - require:
- - file: grub_d_directory
- {%- if grains.get('virtual_subtype', None) not in ['Docker', 'LXC'] %}
- - watch_in:
- - cmd: grub_update
--
--{%- endif %}
- {%- endif %}
--
- {%- endif %}
-
- {%- if system.kernel.version is defined %}
diff --git a/mcp/patches/0009-controller-Use-keystoneclient-to-check-project-ID.patch b/mcp/patches/0009-controller-Use-keystoneclient-to-check-project-ID.patch
deleted file mode 100644
index ed34e0646..000000000
--- a/mcp/patches/0009-controller-Use-keystoneclient-to-check-project-ID.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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: Wed, 3 Jan 2018 00:50:50 +0100
-Subject: [PATCH] controller: Use keystoneclient to check project ID
-
-Port fix from [1] for using the internal network when connecting
-to keystone during project ID validation in nova, instead of
-going through public endpoint (and using SSL).
-
-[1] https://bugs.launchpad.net/nova/+bug/1716344
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- nova/controller.sls | 10 ++
- ...keystoneclient-to-check-project-ID-exists.patch | 116 +++++++++++++++++++++
- 2 files changed, 126 insertions(+)
- create mode 100644 nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch
-
-diff --git a/nova/controller.sls b/nova/controller.sls
-index a55d037..59af945 100644
---- a/nova/controller.sls
-+++ b/nova/controller.sls
-@@ -71,6 +71,16 @@ contrail_nova_packages:
-
- {%- endif %}
-
-+nova-api-openstack-identity-patch:
-+ file.patch:
-+ - name: /usr/lib/python2.7/dist-packages
-+ - source: salt://nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch
-+ - hash: False
-+ - options: '-p1'
-+ - unless: 'test -f /var/cache/salt/minion/files/base/nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch && cd /usr/lib/python2.7/dist-packages && patch -p1 -R --dry-run /var/cache/salt/minion/files/base/nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch'
-+ - require:
-+ - pkg: nova_controller_packages
-+
- /etc/nova/nova.conf:
- file.managed:
- - source: salt://nova/files/{{ controller.version }}/nova-controller.conf.{{ grains.os_family }}
-diff --git a/nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch b/nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch
-new file mode 100644
-index 0000000..58d027e
---- /dev/null
-+++ b/nova/files/0001-Use-keystoneclient-to-check-project-ID-exists.patch
-@@ -0,0 +1,116 @@
-+From: Christoph Fiehe <fiehe@gmx.de>
-+Date: Wed, 3 Jan 2018 00:11:20 +0100
-+Subject: [PATCH] Use keystoneclient to check project ID exists
-+
-+Based on Christoph's implementation proposed in [1].
-+
-+[1] https://bugs.launchpad.net/nova/+bug/1716344
-+
-+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+---
-+ nova/api/openstack/identity.py | 81 ++++++++++++++++--------------------------
-+ 1 file changed, 30 insertions(+), 51 deletions(-)
-+
-+diff --git a/nova/api/openstack/identity.py b/nova/api/openstack/identity.py
-+index 833d3b5..3269cec 100644
-+--- a/nova/api/openstack/identity.py
-++++ b/nova/api/openstack/identity.py
-+@@ -12,16 +12,15 @@
-+ # License for the specific language governing permissions and limitations
-+ # under the License.
-+
-+-from keystoneauth1 import exceptions as kse
-+-from keystoneauth1 import loading as ks_loading
-++from keystoneauth1 import session
-++from keystoneclient import exceptions as kse
-++from keystoneclient.v3 import client
-+ from oslo_log import log as logging
-+ import webob
-+
-+-import nova.conf
-+ from nova.i18n import _
-+
-+
-+-CONF = nova.conf.CONF
-+ LOG = logging.getLogger(__name__)
-+
-+
-+@@ -32,51 +31,31 @@ def verify_project_id(context, project_id):
-+ an HTTPBadRequest is emitted.
-+
-+ """
-+- sess = ks_loading.load_session_from_conf_options(
-+- CONF, 'keystone', auth=context.get_auth_plugin())
-+-
-+- failure = webob.exc.HTTPBadRequest(
-+- explanation=_("Project ID %s is not a valid project.") %
-+- project_id)
-++ auth = context.get_auth_plugin()
-++ sess = session.Session(auth=auth)
-++ keystone = client.Client(session=sess)
-+ try:
-+- resp = sess.get('/projects/%s' % project_id,
-+- endpoint_filter={
-+- 'service_type': 'identity',
-+- 'version': (3, 0)
-+- },
-+- raise_exc=False)
-+- except kse.EndpointNotFound:
-+- LOG.error(
-+- "Keystone identity service version 3.0 was not found. This might "
-+- "be because your endpoint points to the v2.0 versioned endpoint "
-+- "which is not supported. Please fix this.")
-+- raise failure
-+- except kse.ClientException:
-+- # something is wrong, like there isn't a keystone v3 endpoint,
-+- # we'll take the pass and default to everything being ok.
-+- LOG.exception("Unable to contact keystone to verify project_id")
-+- return True
-+-
-+- if resp:
-+- # All is good with this 20x status
-+- return True
-+- elif resp.status_code == 404:
-+- # we got access, and we know this project is not there
-+- raise failure
-+- elif resp.status_code == 403:
-+- # we don't have enough permission to verify this, so default
-+- # to "it's ok".
-+- LOG.info(
-+- "Insufficient permissions for user %(user)s to verify "
-+- "existence of project_id %(pid)s",
-+- {"user": context.user_id, "pid": project_id})
-+- return True
-+- else:
-+- LOG.warning(
-+- "Unexpected response from keystone trying to "
-+- "verify project_id %(pid)s - resp: %(code)s %(content)s",
-+- {"pid": project_id,
-+- "code": resp.status_code,
-+- "content": resp.content})
-+- # realize we did something wrong, but move on with a warning
-+- return True
-++ project = keystone.projects.get(project_id)
-++ except kse.ClientException as e:
-++ if e.http_status == 404:
-++ # we got access, and we know this project is not there
-++ raise webob.exc.HTTPBadRequest(
-++ explanation=_("Project ID %s is not a valid project.") %
-++ project_id)
-++ elif e.http_status == 403:
-++ # we don't have enough permission to verify this, so default
-++ # to "it's ok".
-++ LOG.info(
-++ "Insufficient permissions for user %(user)s to verify "
-++ "existence of project_id %(pid)s",
-++ {"user": context.user_id, "pid": project_id})
-++ return True
-++ else:
-++ LOG.warning(
-++ "Unexpected response from keystone trying to "
-++ "verify project_id %(pid)s - resp: %(code)s %(content)s",
-++ {"pid": project_id,
-++ "code": resp.status_code,
-++ "content": resp.content})
-++ # realize we did something wrong, but move on with a warning
-++ return True
diff --git a/mcp/patches/0010-maas-region-allow-timeout-override.patch b/mcp/patches/0010-maas-region-allow-timeout-override.patch
index 5b8d5a1fe..c6f9e3a52 100644
--- a/mcp/patches/0010-maas-region-allow-timeout-override.patch
+++ b/mcp/patches/0010-maas-region-allow-timeout-override.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
@@ -31,6 +31,11 @@ reserved range, but instead DHCP will assign them *inside* the range.
One alternative would be to handle this via API calls, for each
node's PXE physical interface, but that overcomplicates things.
+3. MaaS blocksize: For some reason the python library behind tftp forces ip
+blocksize to be 1008. We can force it to be 1464 and gain some performance due
+to MTU beeing 1500 (i.e. allow bigger packets).
+
+
JIRA: FUEL-316
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
@@ -39,7 +44,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
diff --git a/maas/region.sls b/maas/region.sls
--- a/maas/region.sls
+++ b/maas/region.sls
-@@ -19,6 +19,36 @@
+@@ -19,6 +19,46 @@
- require:
- pkg: maas_region_packages
@@ -63,6 +68,16 @@ diff --git a/maas/region.sls b/maas/region.sls
+ - require_in:
+ - service: maas_region_services
+
++maas_ip_blksize_force:
++ file.replace:
++ - name: "/usr/lib/python3/dist-packages/tftp/bootstrap.py"
++ - pattern: 'int_blksize = min\(\(int_blksize, MAX_BLOCK_SIZE\)\)'
++ - repl: 'int_blksize = 1464'
++ - require:
++ - pkg: maas_region_packages
++ - require_in:
++ - service: maas_region_services
++
+maas_interface_default_mode_dhcp:
+ file.replace:
+ - name: "/usr/lib/python3/dist-packages/maasserver/models/node.py"
diff --git a/mcp/patches/0011-system.repo-Debian-Add-keyserver-proxy-support.patch b/mcp/patches/0011-system.repo-Debian-Add-keyserver-proxy-support.patch
index fdf84dcd1..48e945acd 100644
--- a/mcp/patches/0011-system.repo-Debian-Add-keyserver-proxy-support.patch
+++ b/mcp/patches/0011-system.repo-Debian-Add-keyserver-proxy-support.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
@@ -31,6 +31,11 @@ When the new http(s) proxy param is set:
If linux:system:proxy:keyserver is not defined, the behavior is
unchanged for backwards compatibility.
+To allow runtime decisions whether the keyserver proxy should be used
+add an additional condition for it to match the first nameserver.
+This allows us to mix virtual nodes with MaaS-provisioned nodes in
+Fuel@OPNFV, while keeping the ext_pillar common.
+
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
README.rst | 16 ++++++++++++++++
@@ -38,14 +43,13 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2 files changed, 56 insertions(+)
diff --git a/linux/system/repo.sls b/linux/system/repo.sls
-index 5d4d059..724db5a 100644
--- a/linux/system/repo.sls
+++ b/linux/system/repo.sls
@@ -96,13 +96,50 @@ linux_repo_{{ name }}_key:
- name: "curl -s {{ repo.key_url }} | apt-key add -"
- watch:
- file: default_repo_list
-+{%- if system.proxy.keyserver is defined %}
++{%- if system.proxy.keyserver is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.http %}
+ - env:
+ - http_proxy: {{ system.proxy.get('keyserver', {}).get('http', '') }}
+ - https_proxy: {{ system.proxy.get('keyserver', {}).get('https', '') }}
@@ -58,7 +62,7 @@ index 5d4d059..724db5a 100644
{%- if repo.get('enabled', True) %}
-+{%- if system.proxy.keyserver is defined %}
++{%- if system.proxy.keyserver is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.http %}
+
+{%- if repo.get('key') %}
+
@@ -96,7 +100,7 @@ index 5d4d059..724db5a 100644
{%- endif %}
- file: /etc/apt/sources.list.d/{{ name }}.list
- clean_file: {{ repo.clean|default(True) }}
-+ {%- if system.proxy.keyserver is not defined %}
++ {%- if system.proxy.keyserver is not defined or grains['dns']['nameservers'][0] not in system.proxy.keyserver.http %}
{%- if repo.key_id is defined %}
- keyid: {{ repo.key_id }}
{%- endif %}
diff --git a/mcp/patches/0012-linux.storage.lvm-Disable-filter.patch b/mcp/patches/0012-linux.storage.lvm-Disable-filter.patch
deleted file mode 100644
index de74fadcd..000000000
--- a/mcp/patches/0012-linux.storage.lvm-Disable-filter.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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, 18 Nov 2017 22:03:01 +0200
-Subject: [PATCH] linux.storage.lvm: Disable filter
-
-Due to upstream bug [1], mixing OS-managed LVM volumes with Cinder
-LVM volumes leads to a broken filter value in lvm.conf.
-Temporarily disable the filter (whitelisting all devices, similar
-to no-Cinder use-cases) until upstream bug is fixed.
-
-[1] https://github.com/salt-formulas/salt-formula-linux/issues/127
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
-
-diff --git a/linux/files/lvm.conf b/linux/files/lvm.conf
---- a/linux/files/lvm.conf
-+++ b/linux/files/lvm.conf
-@@ -129,7 +129,8 @@
- # Example
- # Accept every block device:
-
-- filter = [ {%- for vgname, vg in storage.lvm.iteritems() %}{%- if vg.get('enabled', True) %}{%- for dev in vg.devices %}"a|{{ dev }}*|"{%- if not loop.last %},{%- endif %}{%- endfor %}{%- endif %}{%- endfor %}, "r|.*|" ]
-+ # NOTE(opnfv): https://github.com/salt-formulas/salt-formula-linux/issues/127
-+ # filter = [ {%- for vgname, vg in storage.lvm.iteritems() %}{%- if vg.get('enabled', True) %}{%- for dev in vg.devices %}"a|{{ dev }}*|"{%- if not loop.last %},{%- endif %}{%- endfor %}{%- endif %}{%- endfor %}, "r|.*|" ]
-
- # filter = [ "a|.*/|" ]
- # Reject the cdrom drive:
diff --git a/mcp/patches/0012-routes-Skip-network-restart-on-noifupdown.patch b/mcp/patches/0012-routes-Skip-network-restart-on-noifupdown.patch
new file mode 100644
index 000000000..fb42512ea
--- /dev/null
+++ b/mcp/patches/0012-routes-Skip-network-restart-on-noifupdown.patch
@@ -0,0 +1,37 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Mon, 8 Jan 2018 05:09:11 +0100
+Subject: [PATCH] routes: Skip network restart on 'noifupdown'
+
+Previously, setting up routes did not allow passing 'require_reboot',
+so each route change would lead to a networking service restart,
+rendering interface configuration options like 'noifupdown' useless.
+Allow disabling network restart per-interface using the existing
+'noifupdown' option.
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ linux/network/interface.sls | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/linux/network/interface.sls b/linux/network/interface.sls
+index 921ceac..6ebc670 100644
+--- a/linux/network/interface.sls
++++ b/linux/network/interface.sls
+@@ -338,6 +338,9 @@ linux_network_{{ interface_name }}_routes:
+ gateway: {{ route.gateway }}
+ {%- endif %}
+ {%- endfor %}
++ {%- if interface.noifupdown is defined %}
++ - require_reboot: {{ interface.noifupdown }}
++ {%- endif %}
+
+ {%- endif %}
+
diff --git a/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch b/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch
deleted file mode 100644
index f73931ea8..000000000
--- a/mcp/patches/0013-dpdk-Support-ovs-bridge-tagging.patch
+++ /dev/null
@@ -1,30 +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: Michael Polenchuk <mpolenchuk@mirantis.com>
-Date: Mon, 22 Jan 2018 15:22:47 +0400
-Subject: [PATCH] [dpdk] Support ovs bridge tagging
-
-Bring in "tag" option for dpdk/ovs bridges
-to support vlan-tagged vxlan mode.
-
-Change-Id: I7f1f88233694f2c8b968a6cf55584f32879ec042
-
-diff --git a/linux/network/dpdk.sls b/linux/network/dpdk.sls
-index 1ac9e25..05fe05f 100644
---- a/linux/network/dpdk.sls
-+++ b/linux/network/dpdk.sls
-@@ -110,7 +110,7 @@ linux_network_dpdk_bond_mode_{{ interface_name }}:
-
- linux_network_dpdk_bridge_interface_{{ interface_name }}:
- cmd.run:
-- - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev"
-+ - name: "ovs-vsctl add-br {{ interface_name }} -- set bridge {{ interface_name }} datapath_type=netdev{% if interface.tag is defined %} -- set port {{ interface_name }} tag={{ interface.tag }}{% endif %}"
- - unless: "ovs-vsctl show | grep {{ interface_name }}"
-
- {# OVS dpdk needs ip address for vxlan termination on bridge br-prv #}
diff --git a/mcp/patches/0014-reclass.storage.node-Merge-duplicate-nodes.patch b/mcp/patches/0014-reclass.storage.node-Merge-duplicate-nodes.patch
new file mode 100644
index 000000000..a9d5b6589
--- /dev/null
+++ b/mcp/patches/0014-reclass.storage.node-Merge-duplicate-nodes.patch
@@ -0,0 +1,44 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Sun, 03 Dec 2017 22:03:01 +0200
+Subject: [PATCH] reclass.storage.node: Merge duplicate nodes
+
+Reclass does not support duplicate nodes in top pillar, so merge all
+nodes with the same name into a single node, inheriting classes from
+all instances.
+
+This allows using multiple "system.reclass.storage.system.*_cluster"
+classes for the same node, based on re-using the name (hostname).
+
+NOTE: defaults.merge module does not merge lists (e.g. for classes),
+so handle that case separately.
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+
+diff --git a/reclass/storage/node.sls b/reclass/storage/node.sls
+--- a/reclass/storage/node.sls
++++ b/reclass/storage/node.sls
+@@ -1,7 +1,15 @@
+ {%- from "reclass/map.jinja" import storage with context %}
+ {%- if storage.enabled %}
+
++{%- set storage_by_name = {} %}
+ {%- for node_name, node in storage.get('node', {}).iteritems() %}
++{%- set new_node_name = node.get('name', node_name) %}
++{%- set new_node = storage_by_name.get(new_node_name, {'classes': []}) %}
++{%- do salt['defaults.merge'](node, {'classes': new_node.classes + node.classes}) %}
++{%- do salt['defaults.merge'](storage_by_name, {new_node_name: node}) %}
++{%- endfor %}
++
++{%- for node_name, node in storage_by_name.iteritems() %}
+
+ {%- if node.repeat is defined %}
+
diff --git a/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch b/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch
new file mode 100644
index 000000000..c55a3727c
--- /dev/null
+++ b/mcp/patches/0015-Set-ovs-bridges-as-L3-interfaces.patch
@@ -0,0 +1,86 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Wed, 28 Feb 2018 17:54:28 +0400
+Subject: [PATCH] Set ovs bridges as L3 interfaces
+
+Change-Id: I1e83129cc184cf481bea21d7aa452bf60d9e0499
+
+diff --git a/linux/files/ovs_bridge b/linux/files/ovs_bridge
+new file mode 100644
+index 0000000..c609e45
+--- /dev/null
++++ b/linux/files/ovs_bridge
+@@ -0,0 +1,13 @@
++auto {{ bridge_name }}
++allow-ovs {{ bridge_name }}
++iface {{ bridge_name }} inet static
++ ovs_type OVSBridge
++ address {{ bridge.address }}
++ netmask {{ bridge.netmask }}
++ mtu {{ bridge.get('mtu', '1500') }}
++ {%- if bridge.use_interfaces is defined %}
++ ovs_ports {{ bridge.use_interfaces|join(' ') }}
++ {%- endif %}
++ {%- if bridge.datapath_type is defined %}
++ ovs_extra set Bridge ${IFACE} datapath_type={{ bridge.datapath_type }}
++ {%- endif %}
+diff --git a/linux/files/ovs_port b/linux/files/ovs_port
+index 222ca8e..efb0307 100644
+--- a/linux/files/ovs_port
++++ b/linux/files/ovs_port
+@@ -1,6 +1,9 @@
+ auto {{ port_name }}
+ allow-{{ port.bridge }} {{ port_name }}
+ iface {{ port_name }} inet {{ port.get('proto', 'manual') }}
++{%- if '.' in port_name %}
++vlan-raw-device {{ port_name.split('.')[0] }}
++{%- endif %}
+ ovs_type {{ port.get('ovs_port_type', 'OVSIntPort') }}
+ mtu {{ port.get('mtu', '1500') }}
+ ovs_bridge {{ port.bridge }}
+diff --git a/linux/network/interface.sls b/linux/network/interface.sls
+index 180f912..dcb295b 100644
+--- a/linux/network/interface.sls
++++ b/linux/network/interface.sls
+@@ -91,6 +91,34 @@ add_int_{{ int_name }}_to_ovs_dpdk_bridge_{{ interface_name }}:
+ ovs_bridge_{{ interface_name }}:
+ openvswitch_bridge.present:
+ - name: {{ interface_name }}
++{%- if interface.get('proto', 'manual') == 'static' %}
++ file.managed:
++ - name: /etc/network/interfaces.u/ifcfg-{{ interface_name }}
++ - makedirs: True
++ - source: salt://linux/files/ovs_bridge
++ - defaults:
++ bridge: {{ interface|yaml }}
++ bridge_name: {{ interface_name }}
++ - template: jinja
++
++linux_interfaces_include_{{ interface_name }}:
++ file.prepend:
++ - name: /etc/network/interfaces
++ - text: |
++ source /etc/network/interfaces.d/*
++ # Workaround for Upstream-Bug: https://github.com/saltstack/salt/issues/40262
++ source /etc/network/interfaces.u/*
++
++ovs_bridge_up_{{ interface_name }}:
++ cmd.run:
++ - name: ifup {{ interface_name }}
++ - require:
++ - file: ovs_bridge_{{ interface_name }}
++ - openvswitch_bridge: ovs_bridge_{{ interface_name }}
++ - file: linux_interfaces_final_include
++ - unless:
++ - ip link show {{ interface_name }} | grep -q '\<UP\>'
++{%- endif %}
+
+ {# add linux network interface into OVS bridge #}
+ {%- for int_name, int in network.interface.items() %}
diff --git a/mcp/patches/0016-Set-boot-source-selections.patch b/mcp/patches/0016-Set-boot-source-selections.patch
new file mode 100644
index 000000000..ff52681d2
--- /dev/null
+++ b/mcp/patches/0016-Set-boot-source-selections.patch
@@ -0,0 +1,31 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Thu, 26 Apr 2018 16:29:02 +0400
+Subject: [PATCH] Set boot source selections
+
+Change-Id: I8dc738b3e6e6f1bfcc1348873f162651aff8bbdf
+
+diff --git a/maas/region.sls b/maas/region.sls
+--- a/maas/region.sls
++++ b/maas/region.sls
+@@ -171,6 +171,13 @@ maas_login_admin:
+ cmd.run:
+ - name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+
++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 }}'"
++ - 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 }}"
++
+ maas_force_artifact_sync:
+ cmd.script:
+ - name: salt://maas/files/maas-artifact-sync.sh
diff --git a/mcp/patches/fuel-patch-copyright.template b/mcp/patches/fuel-patch-copyright.template
index 6c52af768..e92458082 100644
--- a/mcp/patches/fuel-patch-copyright.template
+++ b/mcp/patches/fuel-patch-copyright.template
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/patch.sh b/mcp/patches/patch.sh
index 1da3bc597..bb48dcd07 100755
--- a/mcp/patches/patch.sh
+++ b/mcp/patches/patch.sh
@@ -11,10 +11,9 @@ CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
if [ -r "$1" ]; then
while IFS=': ' read -r p_dest p_file; do
- if [[ ! "${p_dest}" =~ '^#' ]] && [[ "${p_dest}" =~ $2 ]] && \
- ! patch --dry-run -Rd "${p_dest}" -r - -s -p1 < \
- "/root/fuel/mcp/patches/${p_file}" > /dev/null; then
- patch -d "${p_dest}" -p1 < "/root/fuel/mcp/patches/${p_file}"
+ if ! patch --dry-run -Rd "${p_dest}" -r - -s -p1 < \
+ "/root/fuel/mcp/patches/${p_file}" > /dev/null; then
+ patch -d "${p_dest}" -p1 < "/root/fuel/mcp/patches/${p_file}"
fi
- done < "$1"
+ done < <(grep -vE '^#' "${1}" | grep -E "^.*${2}.*: ")
fi
diff --git a/mcp/patches/patches.list b/mcp/patches/patches.list
index 2eb45b272..6a6e7a361 100644
--- a/mcp/patches/patches.list
+++ b/mcp/patches/patches.list
@@ -1,20 +1,19 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
-/usr/share/salt-formulas/env: 0001-opendaylight-formula-neutron.patch
/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-maas-region-use-authorized_keys-1st-entry.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-kernel-boot-options.patch
-/usr/share/salt-formulas/env: 0009-controller-Use-keystoneclient-to-check-project-ID.patch
+/usr/share/salt-formulas/env: 0008-Handle-extra-environment-variables.patch
/usr/share/salt-formulas/env: 0010-maas-region-allow-timeout-override.patch
/usr/share/salt-formulas/env: 0011-system.repo-Debian-Add-keyserver-proxy-support.patch
-/usr/share/salt-formulas/env: 0012-linux.storage.lvm-Disable-filter.patch
-/usr/share/salt-formulas/env: 0013-dpdk-Support-ovs-bridge-tagging.patch
+/usr/share/salt-formulas/env: 0012-routes-Skip-network-restart-on-noifupdown.patch
+/usr/share/salt-formulas/env: 0015-Set-ovs-bridges-as-L3-interfaces.patch
+/usr/share/salt-formulas/env: 0016-Set-boot-source-selections.patch
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/init.yml b/mcp/patches/patches_init.list
index 8ae660706..94488cf9a 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/init.yml
+++ b/mcp/patches/patches_init.list
@@ -5,6 +5,4 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
----
-classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_init
+/usr/share/salt-formulas/env: 0014-reclass.storage.node-Merge-duplicate-nodes.patch
diff --git a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch b/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch
deleted file mode 100644
index c7ba5a740..000000000
--- a/mcp/patches/reclass-system-salt-model/0001-Bring-in-opendaylight-support.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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: Michael Polenchuk <mpolenchuk@mirantis.com>
-Date: Thu, 29 Jun 2017 12:22:42 +0400
-Subject: [PATCH] Bring in opendaylight support
-
-Change-Id: I3efec9a8b586a6c75b1c1635ad2a7024d73d9ad2
----
- neutron/control/opendaylight/cluster.yml | 17 +++++++++++++++++
- neutron/control/opendaylight/single.yml | 15 +++++++++++++++
- neutron/gateway/opendaylight/single.yml | 7 +++++++
- opendaylight/server/single.yml | 2 ++
- reclass/storage/system/opendaylight_control_single.yml | 13 +++++++++++++
- 5 files changed, 54 insertions(+)
- create mode 100644 neutron/control/opendaylight/cluster.yml
- create mode 100644 neutron/control/opendaylight/single.yml
- create mode 100644 neutron/gateway/opendaylight/single.yml
- create mode 100644 opendaylight/server/single.yml
- create mode 100644 reclass/storage/system/opendaylight_control_single.yml
-
-diff --git a/neutron/control/opendaylight/cluster.yml b/neutron/control/opendaylight/cluster.yml
-new file mode 100644
-index 0000000..a32e7ab
---- /dev/null
-+++ b/neutron/control/opendaylight/cluster.yml
-@@ -0,0 +1,17 @@
-+classes:
-+- service.keepalived.cluster.single
-+- service.haproxy.proxy.single
-+- service.neutron.control.cluster
-+- system.neutron.control.openvswitch.cluster
-+parameters:
-+ neutron:
-+ server:
-+ backend:
-+ host: ${_param:opendaylight_service_host}
-+ rest_api_port: 8282
-+ user: admin
-+ password: admin
-+ ovsdb_connection: tcp:127.0.0.1:6639
-+ mechanism:
-+ ovs:
-+ driver: opendaylight_v2
-diff --git a/neutron/control/opendaylight/single.yml b/neutron/control/opendaylight/single.yml
-new file mode 100644
-index 0000000..053f14d
---- /dev/null
-+++ b/neutron/control/opendaylight/single.yml
-@@ -0,0 +1,15 @@
-+classes:
-+- service.neutron.control.single
-+- system.neutron.control.openvswitch.single
-+parameters:
-+ neutron:
-+ server:
-+ backend:
-+ host: ${_param:opendaylight_service_host}
-+ rest_api_port: 8282
-+ user: admin
-+ password: admin
-+ ovsdb_connection: tcp:127.0.0.1:6639
-+ mechanism:
-+ ovs:
-+ driver: opendaylight_v2
-diff --git a/neutron/gateway/opendaylight/single.yml b/neutron/gateway/opendaylight/single.yml
-new file mode 100644
-index 0000000..2169001
---- /dev/null
-+++ b/neutron/gateway/opendaylight/single.yml
-@@ -0,0 +1,7 @@
-+classes:
-+- service.neutron.gateway.single
-+parameters:
-+ neutron:
-+ gateway:
-+ backend:
-+ ovsdb_connection: tcp:127.0.0.1:6639
-diff --git a/opendaylight/server/single.yml b/opendaylight/server/single.yml
-new file mode 100644
-index 0000000..3d11872
---- /dev/null
-+++ b/opendaylight/server/single.yml
-@@ -0,0 +1,2 @@
-+classes:
-+- service.opendaylight.server.single
-diff --git a/reclass/storage/system/opendaylight_control_single.yml b/reclass/storage/system/opendaylight_control_single.yml
-new file mode 100644
-index 0000000..ad809f5
---- /dev/null
-+++ b/reclass/storage/system/opendaylight_control_single.yml
-@@ -0,0 +1,13 @@
-+parameters:
-+ _param:
-+ opendaylight_control_hostname: odl01
-+ reclass:
-+ storage:
-+ node:
-+ opendaylight_control_node01:
-+ name: ${_param:opendaylight_control_hostname}
-+ domain: ${_param:cluster_domain}
-+ params:
-+ salt_master_host: ${_param:reclass_config_master}
-+ linux_system_codename: ${_param:linux_system_codename}
-+ single_address: ${_param:opendaylight_service_host}
diff --git a/mcp/patches/reclass-system-salt-model/0003-Use-keystone-v3-endpoints-by-default.patch b/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch
index 6f860bcce..514ea59e4 100644
--- a/mcp/patches/reclass-system-salt-model/0003-Use-keystone-v3-endpoints-by-default.patch
+++ b/mcp/patches/reclass-system-salt-model/0001-Use-keystone-v3-endpoints-by-default.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
@@ -20,7 +20,7 @@ Change-Id: I7e9a1b180f4e0ddb24ec72ed9f08c9e2580c7897
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/keystone/client/single.yml b/keystone/client/single.yml
-index ebf5b5f..8007710 100644
+index a79ed7ec..86b4e09e 100644
--- a/keystone/client/single.yml
+++ b/keystone/client/single.yml
@@ -4,7 +4,7 @@ classes:
@@ -31,4 +31,4 @@ index ebf5b5f..8007710 100644
+- system.keystone.client.service.keystone3
- system.keystone.client.service.neutron
parameters:
- linux:
+ _param:
diff --git a/mcp/patches/reclass-system-salt-model/0004-Revert-Admin-endpoint-for-keystone-v3.patch b/mcp/patches/reclass-system-salt-model/0002-Revert-Admin-endpoint-for-keystone-v3.patch
index 00b4cf34b..00b4cf34b 100644
--- a/mcp/patches/reclass-system-salt-model/0004-Revert-Admin-endpoint-for-keystone-v3.patch
+++ b/mcp/patches/reclass-system-salt-model/0002-Revert-Admin-endpoint-for-keystone-v3.patch
diff --git a/mcp/patches/reclass-system-salt-model/0002-mongodb-Parameterize-cluster-hostnames.patch b/mcp/patches/reclass-system-salt-model/0002-mongodb-Parameterize-cluster-hostnames.patch
deleted file mode 100644
index b75044b16..000000000
--- a/mcp/patches/reclass-system-salt-model/0002-mongodb-Parameterize-cluster-hostnames.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 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: Sun, 10 Dec 2017 21:58:52 +0100
-Subject: [PATCH] mongodb: Parameterize cluster hostnames
-
-Replace mdb{01,02,03} with reclass params, similar to prev commit.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- mongodb/server/cluster.yml | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/mongodb/server/cluster.yml b/mongodb/server/cluster.yml
-index f3c16d6..1d1e397 100644
---- a/mongodb/server/cluster.yml
-+++ b/mongodb/server/cluster.yml
-@@ -3,9 +3,9 @@ classes:
- parameters:
- _param:
- mongodb_server_replica_set: mongodb
-- mongodb_master: mdb01
-+ mongodb_master: ${_param:openstack_telemetry_node01_hostname}
- mongodb_server_members:
-- - host: mdb01
-+ - host: ${_param:openstack_telemetry_node01_hostname}
- priority: 2
-- - host: mdb02
-- - host: mdb03
-+ - host: ${_param:openstack_telemetry_node02_hostname}
-+ - host: ${_param:openstack_telemetry_node03_hostname}
diff --git a/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch
index 8d0c46c92..498743b77 100644
--- a/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch
+++ b/mcp/patches/scripts/0001-salt-master-setup.sh-Allow-arm64-salt-bootstrap.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
diff --git a/mcp/patches/scripts/0002-salt-master-init.sh-Apply-OPNFV-Fuel-patches.patch b/mcp/patches/scripts/0002-salt-master-init.sh-Apply-OPNFV-Fuel-patches.patch
new file mode 100644
index 000000000..6c7cbb6e8
--- /dev/null
+++ b/mcp/patches/scripts/0002-salt-master-init.sh-Apply-OPNFV-Fuel-patches.patch
@@ -0,0 +1,35 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: 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: Fri, 8 Dec 2017 20:30:46 +0100
+Subject: [PATCH] salt-master-init.sh: Apply OPNFV Fuel patches
+
+Some of Fuel@OPNFV patches need to be applied before the reclass
+storage.node state is ran for Salt Master, i.e. between installing
+salt-formula-* packages and configuring the Salt Master salt services.
+
+JIRA: FUEL-310
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ salt-master-init.sh | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/salt-master-init.sh b/salt-master-init.sh
+index 343324c..a4ec138 100755
+--- a/salt-master-init.sh
++++ b/salt-master-init.sh
+@@ -284,6 +284,7 @@ options
+ system_config
+
+ saltmaster_bootstrap &&\
++ /root/fuel/mcp/patches/patch.sh /root/fuel/mcp/patches/patches_init.list formulas &&\
+ saltmaster_init &&\
+
+ verify_salt_minions
diff --git a/mcp/patches/scripts/0002-salt-master-setup-Group-APT-install-formulas.patch b/mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch
index 71632681e..d5a9bf3c4 100644
--- a/mcp/patches/scripts/0002-salt-master-setup-Group-APT-install-formulas.patch
+++ b/mcp/patches/scripts/0003-salt-master-setup-Group-APT-install-formulas.patch
@@ -1,5 +1,5 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+: 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
@@ -23,7 +23,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/salt-master-init.sh b/salt-master-init.sh
-index 343324c..48a05b9 100755
+index a4ec138..db90a22 100755
--- a/salt-master-init.sh
+++ b/salt-master-init.sh
@@ -24,6 +24,12 @@ options() {
diff --git a/mcp/reclass/classes/cluster/.gitignore b/mcp/reclass/classes/cluster/.gitignore
index 496fab912..a6b1b7d56 100644
--- a/mcp/reclass/classes/cluster/.gitignore
+++ b/mcp/reclass/classes/cluster/.gitignore
@@ -1 +1,17 @@
**/*_pdf.yml
+mcp-pike-common-ha/infra/init.yml
+mcp-pike-common-ha/openstack_control.yml
+mcp-pike-common-ha/openstack_init.yml
+mcp-pike-common-ha/openstack_interface_vcp_biport.yml
+mcp-pike-common-ha/openstack_interface_vcp_triport.yml
+mcp-pike-common-ha/openstack_proxy.yml
+mcp-pike-ovs-ha/infra/init_vcp.yml
+mcp-pike-ovs-ha/infra/kvm.yml
+mcp-pike-ovs-dpdk-ha/infra/init_vcp.yml
+mcp-pike-ovs-dpdk-ha/infra/kvm.yml
+mcp-pike-odl-ha/infra/init_vcp.yml
+mcp-pike-odl-ha/infra/kvm.yml
+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
diff --git a/mcp/reclass/classes/cluster/README.rst b/mcp/reclass/classes/cluster/README.rst
index dc09cfbac..69234043a 100644
--- a/mcp/reclass/classes/cluster/README.rst
+++ b/mcp/reclass/classes/cluster/README.rst
@@ -8,16 +8,16 @@ Fuel@OPNFV Cluster Reclass Models
Overview
--------
-#. Common classes (baremetal + virtual)
+#. Common classes (HA + noHA)
- all-mcp-arch-common
-#. Common classes (specific to either baremetal or virtual deploys)
+#. Common classes (HA baremetal/virtual, noHA virtual)
- - baremetal-mcp-<release>-common-ha
- - virtual-mcp-<release>-common-noha
+ - mcp-<release>-common-ha
+ - mcp-<release>-common-noha
#. Cluster specific classes
- - baremetal-mcp-<release>-*-{ha,noha}
- - virtual-mcp-<release>-*-{ha,noha}
+ - mcp-<release>-*-{ha,noha}
+ - mcp-<release>-*-{ha,noha}
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/aarch64/init.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/aarch64/init.yml
index 3b333ed7c..a44475b49 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/aarch64/init.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/aarch64/init.yml
@@ -8,6 +8,7 @@
---
parameters:
_param:
+ salt_control_trusty_image: '' # Dummy value, to keep reclass 1.5.2 happy
salt_control_xenial_image: salt://salt/files/control/images/base_image_opnfv_fuel_vcp.img
# VMs spawned on Foundation Node / Jump Host net ifaces (max 4)
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_dpdk_pdf.yml.j2 b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_dpdk_pdf.yml.j2
new file mode 100644
index 000000000..703d5350e
--- /dev/null
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_dpdk_pdf.yml.j2
@@ -0,0 +1,42 @@
+##############################################################################
+# 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:
+ reclass:
+ storage:
+ node:
+ # NOTE: Until SDF is in place, assume all computes are identical
+ openstack_compute_node01: &openstack_compute_node01
+ params:
+{#- No partial defaults, all or nothing. Defaults tuned for lf-pod2. #}
+{%- if conf.idf.fuel.reclass is defined %}
+{%- if conf.idf.fuel.reclass.node[nm.cmp001.idx].compute_params.dpdk is defined %}
+{#- Can't dump json here due to dpdk0_* below, explicitly create yaml #}
+{%- set _dpdk = conf.idf.fuel.reclass.node[nm.cmp001.idx].compute_params.dpdk %}
+{%- for _i in _dpdk %}
+ {{ _i }}: '"{{ _dpdk[_i] }}"'
+{%- endfor %}
+{%- endif %}
+{%- else %}
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 8192
+ compute_hugepages_mount: /mnt/hugepages_2M
+ compute_kernel_isolcpu: 2,3,10,11
+ compute_dpdk_driver: uio
+ compute_ovs_pmd_cpu_mask: '"0xc04"'
+ compute_ovs_dpdk_socket_mem: '"2048,2048"'
+ compute_ovs_dpdk_lcore_mask: '"0x8"'
+ compute_ovs_memory_channels: '"2"'
+ dpdk0_driver: igb_uio
+ dpdk0_n_rxq: 2
+{%- endif %}
+ dpdk0_name: {{ nm.cmp001.nic_private }}
+ dpdk0_pci: '"{{ nm.cmp001.bus_private }}"'
+ openstack_compute_node02:
+ <<: *openstack_compute_node01
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_pdf.yml.j2 b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_pdf.yml.j2
new file mode 100644
index 000000000..fb25cc617
--- /dev/null
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/config_pdf.yml.j2
@@ -0,0 +1,33 @@
+##############################################################################
+# 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:
+ reclass:
+ storage:
+ node:
+ # NOTE: Until SDF is in place, assume all computes are identical
+ openstack_compute_node01: &openstack_compute_node01
+ params:
+{#- No partial defaults, all or nothing. Defaults tuned for lf-pod2. #}
+{%- if conf.idf.fuel.reclass is defined %}
+{%- if conf.idf.fuel.reclass.node[nm.cmp001.idx].compute_params.common is defined %}
+{%- set _common = conf.idf.fuel.reclass.node[nm.cmp001.idx].compute_params.common %}
+{%- for _i in _common %}
+ {{ _i }}: '"{{ _common[_i] }}"'
+{%- endfor %}
+{%- else %}
+ dummy_value: ~
+{%- endif %}
+{%- else %}
+ compute_hugepages_size: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+{%- endif %}
+ openstack_compute_node02:
+ <<: *openstack_compute_node01
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml
index f09ee5db1..f9aeb71ad 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/init.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/init.yml
index 28dcdcd5b..9a47b1c63 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/init.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example
deleted file mode 100644
index 628aeba83..000000000
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml.example
+++ /dev/null
@@ -1,111 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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:
-
- opnfv_infra_config_address: 10.167.4.100
- opnfv_infra_config_pxe_address: 192.168.11.2
- opnfv_infra_maas_node01_address: 10.167.4.3
- opnfv_infra_maas_node01_deploy_address: 192.168.11.3
- opnfv_infra_kvm_address: 10.167.4.140
- opnfv_infra_kvm_node01_address: 10.167.4.141
- opnfv_infra_kvm_node02_address: 10.167.4.142
- opnfv_infra_kvm_node03_address: 10.167.4.143
-
- opnfv_infra_maas_pxe_network_address: 192.168.11.0
- opnfv_infra_maas_pxe_start_address: 192.168.11.4
- opnfv_infra_maas_pxe_end_address: 192.168.11.100
-
- opnfv_openstack_gateway_node01_address: 10.167.4.124
- opnfv_openstack_gateway_node02_address: 10.167.4.125
- opnfv_openstack_gateway_node03_address: 10.167.4.126
- opnfv_openstack_gateway_node01_tenant_address: 10.1.0.6
- opnfv_openstack_gateway_node02_tenant_address: 10.1.0.7
- opnfv_openstack_gateway_node03_tenant_address: 10.1.0.9
- opnfv_openstack_proxy_address: 172.30.10.103
- opnfv_openstack_proxy_node01_address: 172.30.10.104
- opnfv_openstack_proxy_node02_address: 172.30.10.105
- opnfv_openstack_proxy_control_address: 10.167.4.103
- opnfv_openstack_proxy_node01_control_address: 10.167.4.104
- opnfv_openstack_proxy_node02_control_address: 10.167.4.105
- opnfv_openstack_control_address: 10.167.4.10
- opnfv_openstack_control_node01_address: 10.167.4.11
- opnfv_openstack_control_node02_address: 10.167.4.12
- opnfv_openstack_control_node03_address: 10.167.4.13
- opnfv_openstack_database_address: 10.167.4.50
- opnfv_openstack_database_node01_address: 10.167.4.51
- opnfv_openstack_database_node02_address: 10.167.4.52
- opnfv_openstack_database_node03_address: 10.167.4.53
- opnfv_openstack_message_queue_address: 10.167.4.40
- opnfv_openstack_message_queue_node01_address: 10.167.4.41
- opnfv_openstack_message_queue_node02_address: 10.167.4.42
- opnfv_openstack_message_queue_node03_address: 10.167.4.43
- opnfv_openstack_telemetry_address: 10.167.4.75
- opnfv_openstack_telemetry_node01_address: 10.167.4.76
- opnfv_openstack_telemetry_node02_address: 10.167.4.77
- opnfv_openstack_telemetry_node03_address: 10.167.4.78
- opnfv_openstack_compute_node01_single_address: 10.167.4.101
- opnfv_openstack_compute_node02_single_address: 10.167.4.102
- opnfv_openstack_compute_node03_single_address: 10.167.4.103
- opnfv_openstack_compute_node01_control_address: 10.167.4.101
- opnfv_openstack_compute_node02_control_address: 10.167.4.102
- opnfv_openstack_compute_node03_control_address: 10.167.4.103
- opnfv_openstack_compute_node01_tenant_address: 10.1.0.101
- opnfv_openstack_compute_node02_tenant_address: 10.1.0.102
- opnfv_openstack_compute_node03_tenant_address: 10.1.0.103
- opnfv_openstack_compute_node01_external_address: 172.30.10.101
- opnfv_openstack_compute_node02_external_address: 172.30.10.102
-
- opnfv_opendaylight_server_node01_single_address: 10.167.4.111
-
- opnfv_net_public: 172.30.10.0/24
- opnfv_net_public_mask: 255.255.255.0
- opnfv_net_public_gw: 172.30.10.1
- opnfv_net_public_pool_start: 172.30.10.80
- opnfv_net_public_pool_end: 172.30.10.100
- opnfv_name_servers: ['8.8.8.8', '8.8.4.4']
- opnfv_dns_server01: '8.8.8.8'
-
- opnfv_net_mgmt_vlan: 300
- opnfv_net_tenant_vlan: 1000
-
- opnfv_maas_node01_architecture: 'amd64/generic'
- opnfv_maas_node01_power_address: 172.30.8.75
- opnfv_maas_node01_power_type: ipmi
- opnfv_maas_node01_power_user: admin
- opnfv_maas_node01_power_password: octopus
- opnfv_maas_node01_interface_mac: '00:25:b5:a0:00:2a'
-
- opnfv_maas_node02_architecture: 'amd64/generic'
- opnfv_maas_node02_power_address: 172.30.8.65
- opnfv_maas_node02_power_type: ipmi
- opnfv_maas_node02_power_user: admin
- opnfv_maas_node02_power_password: octopus
- opnfv_maas_node02_interface_mac: '00:25:b5:a0:00:3a'
-
- opnfv_maas_node03_architecture: 'amd64/generic'
- opnfv_maas_node03_power_address: 172.30.8.74
- opnfv_maas_node03_power_type: ipmi
- opnfv_maas_node03_power_user: admin
- opnfv_maas_node03_power_password: octopus
- opnfv_maas_node03_interface_mac: '00:25:b5:a0:00:4a'
-
- opnfv_maas_node04_architecture: 'amd64/generic'
- opnfv_maas_node04_power_address: 172.30.8.73
- opnfv_maas_node04_power_type: ipmi
- opnfv_maas_node04_power_user: admin
- opnfv_maas_node04_power_password: octopus
- opnfv_maas_node04_interface_mac: '00:25:b5:a0:00:5a'
-
- opnfv_maas_node05_architecture: 'amd64/generic'
- opnfv_maas_node05_power_address: 172.30.8.72
- opnfv_maas_node05_power_type: ipmi
- opnfv_maas_node05_power_user: admin
- opnfv_maas_node05_power_password: octopus
- opnfv_maas_node05_interface_mac: '00:25:b5:a0:00:6a'
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml
deleted file mode 100644
index 387b57f8b..000000000
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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:
- opnfv_salt_master_ip: 10.20.0.2
- opnfv_maas_mcp_address: 10.20.0.3
- opnfv_net_mcpcontrol: 10.20.0.0
- opnfv_net_mcpcontrol_mask: 255.255.255.0
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.j2
index d72df2eb6..d6f5aa965 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/pod_config.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.j2
@@ -1,12 +1,15 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{#- conf.MCPCONTROL_NET & co are mandatory, defaults are set via globals.sh #}
parameters:
_param:
- # NOTE: This file is overwritten at runtime by parsing the PDF.
- opnfv_use_pod_descriptor_file: true
+ opnfv_salt_master_ip: {{ conf.SALT_MASTER }}
+ opnfv_maas_mcp_address: {{ conf.MAAS_IP }}
+ opnfv_net_mcpcontrol: {{ conf.MCPCONTROL_NET }}
+ opnfv_net_mcpcontrol_mask: {{ conf.MCPCONTROL_PREFIX | netmask }}
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.template b/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.template
deleted file mode 100644
index 64f75350c..000000000
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/opnfv/runtime.yml.template
+++ /dev/null
@@ -1,14 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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:
- opnfv_salt_master_ip: ${SALT_MASTER}
- opnfv_maas_mcp_address: ${MAAS_IP}
- opnfv_net_mcpcontrol: ${SALT_MASTER%.*}.0
- opnfv_net_mcpcontrol_mask: 255.255.255.0
diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/x86_64/init.yml b/mcp/reclass/classes/cluster/all-mcp-arch-common/x86_64/init.yml
index a7e469b57..a62dd04e0 100644
--- a/mcp/reclass/classes/cluster/all-mcp-arch-common/x86_64/init.yml
+++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/x86_64/init.yml
@@ -8,6 +8,7 @@
---
parameters:
_param:
+ salt_control_trusty_image: '' # Dummy value, to keep reclass 1.5.2 happy
salt_control_xenial_image: salt://salt/files/control/images/base_image_opnfv_fuel_vcp.img
# VMs spawned on Foundation Node / Jump Host net ifaces (max 4)
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
deleted file mode 100644
index 0aab6cbc0..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm_pdf.yml.j2
+++ /dev/null
@@ -1,98 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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 #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set node = conf['idf']['fuel']['network']['node'][0] -%}
- {%- set nic_admin = node['interfaces'][idx_admin] -%}
- {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%}
- {%- set nic_private = node['interfaces'][idx_private] -%}
- {%- set nic_public = node['interfaces'][idx_public] -%}
-
- {#- PCI addresses (only for DPDK on private) -#}
- {%- set bus_private = node['busaddr'][idx_private] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_admin: True, nic_mgmt: True, nic_public: True } -%}
-
-{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt, vlan_public: nic_public } -%}
----
-parameters:
- linux:
- network:
- interface:
-{%- for nic in nics %}
- {{ nic }}:
- enabled: true
- type: eth
- proto: manual
- address: 0.0.0.0
- netmask: 255.255.255.0
- name: {{ nic }}
- noifupdown: true
-{%- endfor %}
-
-{%- for vlan in vlans %}
- {%- if vlan and vlan != 'native' %}
- {{ vlans[vlan] }}.{{ vlan }}:
- enabled: true
- proto: manual
- type: vlan
- name: {{ vlans[vlan] }}.{{ vlan }}
- use_interfaces:
- - {{ vlans[vlan] }}
- {%- endif %}
-{%- endfor %}
-
- br-mgmt:
- enabled: true
- proto: dhcp
- type: bridge
- use_interfaces:
- - {{ nic_admin }}{% if vlan_admin and vlan_admin != 'native' %}.{{ vlan_admin }}{% endif %}
- noifupdown: true
- br-ctl:
- enabled: true
- type: bridge
- proto: static
- address: ${_param:single_address}
- netmask: 255.255.255.0
- use_interfaces:
- - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %}
- br-ex:
- enabled: true
- proto: manual
- address: 0.0.0.0
- netmask: ${_param:opnfv_net_public_mask}
- type: bridge
- use_interfaces:
- - {{ nic_public }}{% if vlan_public and vlan_public != 'native' %}.{{ vlan_public }}{% endif %}
- noifupdown: true
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
deleted file mode 100644
index 2e9466980..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute_pdf.yml.j2
+++ /dev/null
@@ -1,118 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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 #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set iface_names = conf['idf']['fuel']['network']['node'][3]['interfaces'] -%}
- {%- set nic_admin = iface_names[idx_admin] -%}
- {%- set nic_mgmt = iface_names[idx_mgmt] -%}
- {%- set nic_private = iface_names[idx_private] -%}
- {%- set nic_public = iface_names[idx_public] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_admin: True, nic_mgmt: True } -%}
-
-{%- set vlans = { vlan_admin: nic_admin, vlan_mgmt: nic_mgmt } -%}
----
-parameters:
- linux:
- network:
- bridge: openvswitch
- interface:
-{%- for nic in nics %}
- {%- if nic == nic_admin %}
- {{ nic }}:
- enabled: true
- type: eth
- proto: dhcp
- name: {{ nic }}
- {%- else %}
- {{ nic }}:
- enabled: true
- type: eth
- proto: manual
- address: 0.0.0.0
- {%- if nic == nic_public %}
- netmask: ${_param:opnfv_net_public_mask}
- {%- else %}
- netmask: 255.255.255.0
- {%- endif %}
- mtu: ${_param:interface_mtu}
- name: {{ nic }}
- {%- endif %}
-{%- endfor %}
-
-{%- for vlan in vlans %}
- {%- if vlan and vlan != 'native' %}
- {{ vlans[vlan] }}.{{ vlan }}:
- enabled: true
- proto: manual
- type: vlan
- name: {{ vlans[vlan] }}.{{ vlan }}
- use_interfaces:
- - {{ vlans[vlan] }}
- {%- endif %}
-{%- endfor %}
-
- br-ctl:
- enabled: true
- type: bridge
- proto: static
- address: ${_param:single_address}
- netmask: 255.255.255.0
- use_interfaces:
- - {{ nic_mgmt }}{% if vlan_mgmt and vlan_mgmt != 'native' %}.{{ vlan_mgmt }}{% endif %}
- br-floating:
- enabled: true
- type: ovs_bridge
- mtu: ${_param:interface_mtu}
- br-ex:
- enabled: true
- type: ovs_port
- bridge: br-floating
- proto: static
- {%- if vlan_public and vlan_public != 'native' %}
- ovs_options: tag={{ vlan_public }}
- {%- endif %}
- address: ${_param:external_address}
- netmask: 255.255.255.0
- route:
- public:
- address: 0.0.0.0
- netmask: 0.0.0.0
- gateway: ${_param:opnfv_net_public_gw}
- {{ nic_public }}:
- enabled: true
- proto: manual
- ovs_port_type: OVSPort
- type: ovs_port
- ovs_bridge: br-floating
- bridge: br-floating
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_proxy.yml
deleted file mode 100644
index f83590ced..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_proxy.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.nginx.server.single
- - system.nginx.server.proxy.openstack_api
- - system.nginx.server.proxy.openstack_vnc
- - system.nginx.server.proxy.openstack_web
- - system.nginx.server.proxy.openstack.aodh
- - system.nginx.server.proxy.openstack.ceilometer
- - system.horizon.server.single
- - system.salt.minion.cert.proxy
- - system.sphinx.server.doc.reclass
- - service.keepalived.cluster.single
- - system.keepalived.cluster.instance.openstack_web_public_vip
-parameters:
- _param:
- cluster_vip_address: ${_param:openstack_proxy_address}
- keepalived_openstack_web_public_vip_address: ${_param:cluster_vip_address}
- keepalived_openstack_web_public_vip_interface: ${_param:single_nic}
- keepalived_vip_address: ${_param:openstack_proxy_control_address}
- keepalived_vip_interface: ${_param:control_nic}
- keepalived_vip_virtual_router_id: 240
- nginx_proxy_ssl:
- enabled: true
- authority: ${_param:salt_minion_ca_authority}
- engine: salt
- mode: secure
- salt_minion_ca_host: cfg01.${_param:cluster_domain}
- linux:
- system:
- package:
- libapache2-mod-wsgi:
- version: latest
- salt:
- minion:
- cert:
- proxy:
- alternative_names: "IP:${_param:openstack_proxy_address}"
- key_usage: 'digitalSignature, keyEncipherment'
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute.yml
deleted file mode 100644
index 473b3ff48..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_compute
- - cluster.baremetal-mcp-pike-odl-ha.openstack.compute_pdf
- - cluster.baremetal-mcp-pike-odl-ha.infra
- - system.neutron.gateway.opendaylight.single
-parameters:
- _param:
- neutron_agents:
- - neutron-dhcp-agent
- - neutron-metadata-agent
- opendaylight:
- client:
- ovsdb_server_iface: ptcp:6639:127.0.0.1
- ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
- tunnel_ip: ${_param:tenant_address}
- provider_mappings: physnet1:br-floating
- neutron:
- gateway:
- agent_mode: ${_param:neutron_gateway_agent_mode}
- pkgs: ${_param:neutron_agents}
- services: ${_param:neutron_agents}
- backend:
- router: ${_param:opendaylight_router}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
deleted file mode 100644
index 52090cc0a..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
+++ /dev/null
@@ -1,83 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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 #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set node = conf['idf']['fuel']['network']['node'][1] -%}
- {%- set nic_admin = node['interfaces'][idx_admin] -%}
- {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%}
- {%- set nic_private = node['interfaces'][idx_private] -%}
- {%- set nic_public = node['interfaces'][idx_public] -%}
-
- {#- PCI addresses (only for DPDK on private) -#}
- {%- set bus_private = node['busaddr'][idx_private] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_private: True } -%}
-
-{%- set vlans = { vlan_private: nic_private } -%}
----
-parameters:
- linux:
- network:
- interface:
-{%- for nic in nics %}
- {{ nic }}:
- enabled: true
- type: eth
- {%- if nic == nic_admin %}
- proto: dhcp
- {%- else %}
- proto: manual
- {%- endif %}
- name: {{ nic }}
-{%- endfor %}
-
-{%- for vlan in vlans %}
- {%- if vlan and vlan != 'native' %}
- {{ vlans[vlan] }}.{{ vlan }}:
- enabled: true
- proto: manual
- type: vlan
- name: {{ vlans[vlan] }}.{{ vlan }}
- use_interfaces:
- - {{ vlans[vlan] }}
- {%- endif %}
-{%- endfor %}
-
- br-mesh:
- enabled: true
- type: bridge
- address: ${_param:tenant_address}
- netmask: 255.255.255.0
- mtu: 1500
- use_interfaces:
- - {{ nic_private }}{% if vlan_private and vlan_private != 'native' %}.{{ vlan_private }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/database.yml
deleted file mode 100644
index 8585c6915..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/database.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_database
- - cluster.baremetal-mcp-pike-odl-ha
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/telemetry.yml
deleted file mode 100644
index 83d1be89a..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/telemetry.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_telemetry
- - cluster.baremetal-mcp-pike-odl-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config.yml
deleted file mode 100644
index 3b7ba99e0..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.infra.config
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra.config_pdf
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config_pdf.yml.j2
deleted file mode 100644
index 08e8ab717..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/config_pdf.yml.j2
+++ /dev/null
@@ -1,54 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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 #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set node = conf['idf']['fuel']['network']['node'][0] -%}
- {%- set nic_admin = node['interfaces'][idx_admin] -%}
- {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%}
- {%- set nic_private = node['interfaces'][idx_private] -%}
- {%- set nic_public = node['interfaces'][idx_public] -%}
-
- {#- PCI addresses (only for DPDK on private) -#}
- {%- set bus_private = node['busaddr'][idx_private] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
----
-parameters:
- reclass:
- storage:
- node:
- openstack_compute_node01:
- params:
- dpdk0_name: {{ nic_private }}
- dpdk0_pci: '"{{ bus_private }}"'
- openstack_compute_node02:
- params:
- dpdk0_name: {{ nic_private }}
- dpdk0_pci: '"{{ bus_private }}"'
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/maas.yml
deleted file mode 100644
index fb55539f5..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/maas.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.infra.maas
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2
deleted file mode 100644
index 76fa17946..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/compute.yml.j2
+++ /dev/null
@@ -1,47 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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
-##############################################################################
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
-{%- else -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
----
-classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_compute
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
- - system.neutron.compute.nfv.dpdk
-parameters:
- neutron:
- gateway:
- dpdk: 'True'
- vhost_socket_dir: ${_param:compute_ovs_vhost_socket_dir}
- backend:
- tenant_vlan_range: ${_param:neutron_tenant_vlan_range}
- nova:
- compute:
- libvirt_service: libvirtd
- libvirt_bin: /etc/default/libvirtd
- linux:
- network:
- interface:
- dpdk0:
- name: ${_param:dpdk0_name}
- pci: ${_param:dpdk0_pci}
- driver: igb_uio
- enabled: true
- bridge: br-prv
- type: dpdk_ovs_port
- n_rxq: 2
- br-prv:
- enabled: true
- type: dpdk_ovs_bridge
- address: ${_param:tenant_address}
- netmask: 255.255.255.0
- {%- if vlan_private and vlan_private != 'native' %}
- tag: {{ vlan_private }}
- {%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/database.yml
deleted file mode 100644
index 86b4038c2..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/database.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_database
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
deleted file mode 100644
index 49af851cc..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/init.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_init
-parameters:
- _param:
- neutron_tenant_network_types: "flat,vxlan"
- neutron_tenant_vlan_range: "1000:1030"
- nova_cpu_pinning: "5-7,13-15"
- compute_hugepages_size: 2M
- compute_hugepages_count: 8192
- compute_hugepages_mount: /mnt/hugepages_2M
- compute_kernel_isolcpu: 2,3,5,6,7,10,11,13,14,15
- compute_dpdk_driver: uio
- compute_ovs_pmd_cpu_mask: "0xc04"
- compute_ovs_dpdk_socket_mem: "2048,2048"
- compute_ovs_dpdk_lcore_mask: "0x8"
- compute_ovs_memory_channels: "2"
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/proxy.yml
deleted file mode 100644
index de960d976..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/proxy.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_triport
- - cluster.baremetal-mcp-pike-common-ha.openstack_proxy
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml
deleted file mode 100644
index 680efa871..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_telemetry
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/maas.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/maas.yml
deleted file mode 100644
index 4bb3d74f7..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/maas.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.infra.maas
- - cluster.baremetal-mcp-pike-ovs-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
deleted file mode 100644
index 7b90c727a..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
+++ /dev/null
@@ -1,83 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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 #}
-{%- if conf.idf is defined and conf.idf.net_config is defined -%}
- {#- NOTE: Currently, we assume all cluster nodes use the same mapping -#}
-
- {#- Determine interface index for each network (plumbing vars) -#}
- {%- set idx_admin = conf['idf']['net_config']['admin']['interface'] -%}
- {%- set idx_mgmt = conf['idf']['net_config']['mgmt']['interface'] -%}
- {%- set idx_private = conf['idf']['net_config']['private']['interface'] -%}
- {%- set idx_public = conf['idf']['net_config']['public']['interface'] -%}
-
- {#- Physical interface OS name for each network (e.g. em1, enp1s0f1) -#}
- {%- set node = conf['idf']['fuel']['network']['node'][0] -%}
- {%- set nic_admin = node['interfaces'][idx_admin] -%}
- {%- set nic_mgmt = node['interfaces'][idx_mgmt] -%}
- {%- set nic_private = node['interfaces'][idx_private] -%}
- {%- set nic_public = node['interfaces'][idx_public] -%}
-
- {#- PCI addresses (only for DPDK on private) -#}
- {%- set bus_private = node['busaddr'][idx_private] -%}
-
- {#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) -#}
- {%- set vlan_admin = conf['idf']['net_config']['admin']['vlan'] -%}
- {%- set vlan_mgmt = conf['idf']['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['idf']['net_config']['private']['vlan'] -%}
- {%- set vlan_public = conf['idf']['net_config']['public']['vlan'] -%}
-{%- else -%}
- {%- set nic_admin = 'enp6s0' -%}
- {%- set nic_mgmt = 'enp6s0' -%}
- {%- set nic_private = None -%}
- {%- set nic_public = None -%}
- {%- set vlan_admin = 'native' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
-{%- endif -%}
-
-{#- Filter-out NIC duplicates by constructing a dict (used NICs only) -#}
-{%- set nics = { nic_private: True } -%}
-
-{%- set vlans = { vlan_private: nic_private } -%}
----
-parameters:
- linux:
- network:
- interface:
-{%- for nic in nics %}
- {{ nic }}:
- enabled: true
- type: eth
- {%- if nic == nic_admin %}
- proto: dhcp
- {%- else %}
- proto: manual
- {%- endif %}
- name: {{ nic }}
-{%- endfor %}
-
-{%- for vlan in vlans %}
- {%- if vlan and vlan != 'native' %}
- {{ vlans[vlan] }}.{{ vlan }}:
- enabled: true
- proto: manual
- type: vlan
- name: {{ vlans[vlan] }}.{{ vlan }}
- use_interfaces:
- - {{ vlans[vlan] }}
- {%- endif %}
-{%- endfor %}
-
- br-mesh:
- enabled: true
- type: bridge
- address: ${_param:tenant_address}
- netmask: 255.255.255.0
- mtu: 1500
- use_interfaces:
- - {{ nic_private }}{% if vlan_private and vlan_private != 'native' %}.{{ vlan_private }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/database.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/database.yml
deleted file mode 100644
index 85f5ebcab..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/database.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_database
- - cluster.baremetal-mcp-pike-ovs-ha
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/init.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/init.yml
deleted file mode 100644
index f1c8b93a4..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/init.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_init
-parameters:
- _param:
- neutron_tenant_network_types: "flat,vxlan"
- nova_cpu_pinning: "1,2,3,4,5,7,8,9,10,11"
- compute_hugepages_size: 1G
- compute_hugepages_count: 16
- compute_hugepages_mount: /mnt/hugepages_1G
- compute_kernel_isolcpu: ${_param:nova_cpu_pinning}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/proxy.yml
deleted file mode 100644
index 5c91f605f..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/proxy.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_triport
- - cluster.baremetal-mcp-pike-common-ha.openstack_proxy
- - cluster.baremetal-mcp-pike-ovs-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/telemetry.yml
deleted file mode 100644
index c6b111939..000000000
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/telemetry.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_telemetry
- - cluster.baremetal-mcp-pike-ovs-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/lab_proxy_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/include/lab_proxy_pdf.yml.j2
index 0e95d2d1d..0e95d2d1d 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/lab_proxy_pdf.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/include/lab_proxy_pdf.yml.j2
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/include/proxy.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/include/maas_proxy.yml
index 3c324db8b..11878ff2d 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/include/proxy.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/include/maas_proxy.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml
index 4d7fa1eb1..bd75e7b72 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -25,7 +25,7 @@ classes:
# - system.reclass.storage.system.stacklight_monitor_cluster
# - system.reclass.storage.system.stacklight_telemetry_cluster
- system.reclass.storage.system.infra_maas_single
- - cluster.baremetal-mcp-pike-common-ha.infra.lab_proxy_pdf
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
parameters:
_param:
salt_master_base_environment: prd
@@ -117,18 +117,22 @@ parameters:
# - system.kibana.client.single
openstack_control_node01:
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_control_init
+ - cluster.mcp-pike-common-ha.openstack_control_init
params:
linux_system_codename: xenial
+ # NOTE: When VCP is present, external_address is not used
+ external_address: ${_param:openstack_proxy_node01_address}
openstack_control_node02:
params:
linux_system_codename: xenial
+ external_address: 0.0.0.0
openstack_control_node03:
params:
linux_system_codename: xenial
+ external_address: ${_param:openstack_proxy_node02_address}
openstack_database_node01:
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_database_init
+ - cluster.mcp-pike-common-ha.openstack_database_init
params:
linux_system_codename: xenial
openstack_database_node02:
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/init.yml.j2
index 7d513e9bf..7f3839e82 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/init.yml.j2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,11 +9,11 @@
classes:
- system.linux.system.single
- cluster.all-mcp-arch-common
- # - cluster.baremetal-mcp-pike-common-ha.stacklight
- # - cluster.baremetal-mcp-pike-common-ha.stacklight.client
+ # - cluster.mcp-pike-common-ha.stacklight
+ # - cluster.mcp-pike-common-ha.stacklight.client
parameters:
_param:
- apt_mk_version: stable
+ apt_mk_version: nightly
mcp_repo_version: 1.1
salt_version: 2016.11
cluster_domain: ${_param:cluster_name}.local
@@ -31,9 +31,16 @@ parameters:
infra_maas_node01_deploy_address: ${_param:opnfv_infra_maas_node01_deploy_address}
infra_kvm_address: ${_param:opnfv_infra_kvm_address}
+{%- if conf.MCP_VCP %}
infra_kvm_node01_address: ${_param:opnfv_infra_kvm_node01_address}
infra_kvm_node02_address: ${_param:opnfv_infra_kvm_node02_address}
infra_kvm_node03_address: ${_param:opnfv_infra_kvm_node03_address}
+{%- else %}
+ # For NOVCP, we override kvm addresses to overlap with ctl
+ infra_kvm_node01_address: ${_param:openstack_control_node01_address}
+ infra_kvm_node02_address: ${_param:openstack_control_node02_address}
+ infra_kvm_node03_address: ${_param:openstack_control_node03_address}
+{%- endif %}
infra_maas_node01_hostname: mas01
infra_kvm_node01_hostname: kvm01
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm.yml
index 1e6b3bd0d..df2304521 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/kvm.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -21,8 +21,9 @@ classes:
# - system.salt.control.cluster.stacklight_server_cluster
# - system.salt.control.cluster.stacklight_log_cluster
# - system.salt.control.cluster.stacklight_telemetry_cluster
- - cluster.baremetal-mcp-pike-common-ha.infra.kvm_pdf
- - cluster.baremetal-mcp-pike-common-ha.include.proxy
+ - cluster.mcp-pike-common-ha.infra.kvm_pdf
+ - cluster.mcp-pike-common-ha.include.maas_proxy
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
parameters:
_param:
linux_system_codename: xenial
@@ -34,9 +35,6 @@ parameters:
keepalived_vip_interface: br-ctl
keepalived_vip_virtual_router_id: 69
linux:
- network:
- remove_iface_files:
- - '/etc/network/interfaces.d/50-cloud-init.cfg'
system:
kernel:
boot_options:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm_pdf.yml.j2
new file mode 100644
index 000000000..97166c62c
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm_pdf.yml.j2
@@ -0,0 +1,66 @@
+##############################################################################
+# 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 %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.ctl01.nic_admin: True, nm.ctl01.nic_mgmt: True, nm.ctl01.nic_public: True } %}
+{%- set vlans = { nm.vlan_admin: nm.ctl01.nic_admin, nm.vlan_mgmt: nm.ctl01.nic_mgmt, nm.vlan_public: nm.ctl01.nic_public } %}
+---
+parameters:
+ linux:
+ network:
+ interface:
+{%- for nic in nics %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ proto: manual
+ address: 0.0.0.0
+ netmask: 255.255.255.0
+ name: {{ nic }}
+ noifupdown: true
+{%- endfor %}
+
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: manual
+ type: vlan
+ name: {{ vlans[vlan] }}.{{ vlan }}
+ use_interfaces:
+ - {{ vlans[vlan] }}
+ noifupdown: true
+ {%- endif %}
+{%- endfor %}
+
+ br-mgmt:
+ enabled: true
+ proto: dhcp
+ type: bridge
+ use_interfaces:
+ - {{ nm.ctl01.nic_admin }}{% if nm.vlan_admin | int > 0 %}.{{ nm.vlan_admin }}{% endif %}
+ noifupdown: true
+ br-ctl:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - {{ nm.ctl01.nic_mgmt }}{% if nm.vlan_mgmt | int > 0 %}.{{ nm.vlan_mgmt }}{% endif %}
+ noifupdown: true
+ br-ex:
+ enabled: true
+ proto: manual
+ address: 0.0.0.0
+ netmask: ${_param:opnfv_net_public_mask}
+ type: bridge
+ use_interfaces:
+ - {{ nm.ctl01.nic_public }}{% if nm.vlan_public | int > 0 %}.{{ nm.vlan_public }}{% endif %}
+ noifupdown: true
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml
index da28abf06..e83de35cd 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,7 +9,8 @@
classes:
- system.maas.region.single
- service.maas.cluster.single
- - cluster.baremetal-mcp-pike-common-ha.infra.lab_proxy_pdf
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
+ - cluster.mcp-pike-common-ha.infra.maas_pdf
parameters:
_param:
dhcp_interface: ${_param:opnfv_fn_vm_primary_interface}
@@ -24,7 +25,7 @@ parameters:
maas_db_password: opnfv_secret
dns_server01: ${_param:opnfv_dns_server01}
single_address: ${_param:infra_maas_node01_deploy_address}
- hwe_kernel: 'ga-16.04'
+ hwe_kernel: 'hwe-16.04'
maas:
region:
salt_master_ip: ${_param:reclass_config_master}
@@ -54,62 +55,6 @@ parameters:
vid: 0
dhcp_on: true
primary_rack: ${_param:infra_maas_node01_hostname}
- machines:
- kvm01:
- interface:
- mac: ${_param:opnfv_maas_node01_interface_mac}
- power_parameters:
- power_address: ${_param:opnfv_maas_node01_power_address}
- power_password: ${_param:opnfv_maas_node01_power_password}
- power_type: ${_param:opnfv_maas_node01_power_type}
- power_user: ${_param:opnfv_maas_node01_power_user}
- architecture: ${_param:opnfv_maas_node01_architecture}
- distro_series: xenial
- hwe_kernel: ${_param:hwe_kernel}
- kvm02:
- interface:
- mac: ${_param:opnfv_maas_node02_interface_mac}
- power_parameters:
- power_address: ${_param:opnfv_maas_node02_power_address}
- power_password: ${_param:opnfv_maas_node02_power_password}
- power_type: ${_param:opnfv_maas_node02_power_type}
- power_user: ${_param:opnfv_maas_node02_power_user}
- architecture: ${_param:opnfv_maas_node02_architecture}
- distro_series: xenial
- hwe_kernel: ${_param:hwe_kernel}
- kvm03:
- interface:
- mac: ${_param:opnfv_maas_node03_interface_mac}
- power_parameters:
- power_address: ${_param:opnfv_maas_node03_power_address}
- power_password: ${_param:opnfv_maas_node03_power_password}
- power_type: ${_param:opnfv_maas_node03_power_type}
- power_user: ${_param:opnfv_maas_node03_power_user}
- architecture: ${_param:opnfv_maas_node03_architecture}
- distro_series: xenial
- hwe_kernel: ${_param:hwe_kernel}
- cmp001:
- interface:
- mac: ${_param:opnfv_maas_node04_interface_mac}
- power_parameters:
- power_address: ${_param:opnfv_maas_node04_power_address}
- power_password: ${_param:opnfv_maas_node04_power_password}
- power_type: ${_param:opnfv_maas_node04_power_type}
- power_user: ${_param:opnfv_maas_node04_power_user}
- architecture: ${_param:opnfv_maas_node04_architecture}
- distro_series: xenial
- hwe_kernel: ${_param:hwe_kernel}
- cmp002:
- interface:
- mac: ${_param:opnfv_maas_node05_interface_mac}
- power_parameters:
- power_address: ${_param:opnfv_maas_node05_power_address}
- power_password: ${_param:opnfv_maas_node05_power_password}
- power_type: ${_param:opnfv_maas_node05_power_type}
- power_user: ${_param:opnfv_maas_node05_power_user}
- architecture: ${_param:opnfv_maas_node05_architecture}
- distro_series: xenial
- hwe_kernel: ${_param:hwe_kernel}
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
new file mode 100644
index 000000000..cff6d9b30
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/maas_pdf.yml.j2
@@ -0,0 +1,32 @@
+##############################################################################
+# 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:
+ maas:
+ region:
+ sshprefs:
+ - '{{ conf.MAAS_SSH_KEY }}'
+ machines:
+ {%- set pxe_interface = conf.idf.net_config.admin.interface %}
+ {#- We only support exactly 5 nodes for now, hardcoded order #}
+ {%- set node_roles = ['kvm01', 'kvm02', 'kvm03', 'cmp001', 'cmp002'] %}
+ {%- for node in conf.nodes %}
+ {%- if node.node.type == 'baremetal' %}
+ {{ node_roles[loop.index0] }}:
+ interface:
+ mac: {{ node.interfaces[pxe_interface].mac_address }}
+ power_parameters:
+ power_address: {{ node.remote_management.address.rsplit('/')[0] }}
+ power_password: {{ node.remote_management.pass }}
+ power_type: {{ node.remote_management.type }}
+ power_user: {{ node.remote_management.user }}
+ architecture: {{ node.node.arch | dpkg_arch }}/generic
+ distro_series: xenial
+ hwe_kernel: ${_param:hwe_kernel}
+ {%- endif %}
+ {%- endfor %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml
index a0cdd98c8..24acbacf1 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,18 +7,18 @@
##############################################################################
---
classes:
+ - system.linux.system.repo.mcp.openstack
- system.linux.system.repo.glusterfs
- - system.linux.storage.loopback
- system.glusterfs.client.cluster
- system.nova.compute.cluster
- system.nova.compute.nfv.hugepages
- - system.nova.compute.nfv.cpu_pinning
- system.neutron.gateway.cluster
- system.cinder.volume.single
- system.cinder.volume.backend.lvm
- system.ceilometer.agent.cluster
- - cluster.baremetal-mcp-pike-common-ha.openstack_compute_pdf
- - cluster.baremetal-mcp-pike-common-ha.include.proxy
+ - 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
parameters:
_param:
cluster_vip_address: ${_param:openstack_control_address}
@@ -33,7 +33,6 @@ parameters:
interface_mtu: 1500
keepalived_vip_interface: br-ctl
keepalived_vip_virtual_router_id: 69
- loopback_device_size: 20
linux_system_codename: xenial
glusterfs_version: '3.13'
glusterfs:
@@ -44,10 +43,18 @@ parameters:
server: ${_param:glusterfs_service_host}
# yamllint disable-line rule:line-length
opts: "defaults,backup-volfile-servers=${_param:cluster_node01_address}:${_param:cluster_node02_address}:${_param:cluster_node03_address}"
+ cinder:
+ volume:
+ backend:
+ lvm-driver:
+ # Align system.cinder.volume.backend.lvm and MaaS data
+ volume_group: ${linux:storage:lvm:cinder-vg:name}
linux:
- network:
- remove_iface_files:
- - '/etc/network/interfaces.d/50-cloud-init.cfg'
+ storage:
+ lvm:
+ # Align with both system.cinder.volume.backend.lvm and MaaS data
+ cinder-vg:
+ name: vgroot
system:
kernel:
sysctl:
@@ -59,3 +66,7 @@ parameters:
neutron:
gateway:
vlan_aware_vms: true
+ root_helper_daemon: false
+ nova:
+ compute:
+ disk_cachemodes: file=directsync,block=none
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2
new file mode 100644
index 000000000..fd51f5fea
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_compute_pdf.yml.j2
@@ -0,0 +1,93 @@
+##############################################################################
+# 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 %}
+{#- Filter-out NIC duplicates by constructing a dict (used NICs only) #}
+{%- set nics = { nm.cmp001.nic_admin: True, nm.cmp001.nic_mgmt: True } %}
+{%- set vlans = { nm.vlan_admin: nm.cmp001.nic_admin, nm.vlan_mgmt: nm.cmp001.nic_mgmt } %}
+---
+parameters:
+ _param:
+ # Should later be determined via PDF/IDF, AArch64 has ESP on /dev/sda1
+{%- 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 %}
+ linux:
+ network:
+ bridge: openvswitch
+ interface:
+{%- for nic in nics %}
+ {%- if nic == nm.cmp001.nic_admin %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ proto: dhcp
+ name: {{ nic }}
+ {%- else %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ proto: manual
+ address: 0.0.0.0
+ {%- if nic == nm.cmp001.nic_public %}
+ netmask: ${_param:opnfv_net_public_mask}
+ {%- else %}
+ netmask: 255.255.255.0
+ {%- endif %}
+ mtu: ${_param:interface_mtu}
+ name: {{ nic }}
+ {%- endif %}
+{%- endfor %}
+
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: manual
+ type: vlan
+ name: {{ vlans[vlan] }}.{{ vlan }}
+ use_interfaces:
+ - {{ vlans[vlan] }}
+ {%- endif %}
+{%- endfor %}
+
+ br-ctl:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - {{ nm.cmp001.nic_mgmt }}{% if nm.vlan_mgmt | int > 0 %}.{{ nm.vlan_mgmt }}{% endif %}
+ br-floating:
+ enabled: true
+ type: ovs_bridge
+ mtu: ${_param:interface_mtu}
+ proto: static
+ address: ${_param:external_address}
+ netmask: ${_param:opnfv_net_public_mask}
+ use_interfaces:
+ - {{ nm.cmp001.nic_public }}{% if nm.vlan_public | int > 0 %}.{{ nm.vlan_public }}{% endif %}
+ route:
+ public:
+ address: 0.0.0.0
+ netmask: 0.0.0.0
+ gateway: ${_param:opnfv_net_public_gw}
+ ovs_port_{{ nm.cmp001.nic_public }}:
+ enabled: true
+ name: {{ nm.cmp001.nic_public }}{% if nm.vlan_public | int > 0 %}.{{ nm.vlan_public }}{% endif %}
+ proto: manual
+ ovs_port_type: OVSPort
+ type: ovs_port
+ ovs_bridge: br-floating
+ bridge: br-floating
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2
index cf09a4123..6f7b33e3d 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control.yml.j2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -25,8 +25,36 @@ classes:
- system.glusterfs.client.cluster
- system.glusterfs.client.volume.glance
- system.glusterfs.client.volume.keystone
+{%- if not conf.MCP_VCP %}
+ # sync from kvm
+ - service.keepalived.cluster.single
+ - system.glusterfs.server.volume.glance
+ - system.glusterfs.server.volume.keystone
+ - system.glusterfs.server.cluster
+ # NOTE(armband): Disabled for novcp
+ # - system.salt.control.virt
+ # - system.salt.control.cluster.openstack_control_cluster
+ # - system.salt.control.cluster.openstack_proxy_cluster
+ # - system.salt.control.cluster.openstack_database_cluster
+ # - system.salt.control.cluster.openstack_message_queue_cluster
+ # - system.salt.control.cluster.openstack_telemetry_cluster
+ # - system.salt.control.cluster.stacklight_server_cluster
+ # - system.salt.control.cluster.stacklight_log_cluster
+ # - system.salt.control.cluster.stacklight_telemetry_cluster
+ - cluster.mcp-pike-common-ha.infra.kvm_pdf
+ - cluster.mcp-pike-common-ha.include.maas_proxy
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
+{%- endif %}
parameters:
_param:
+{%- if not conf.MCP_VCP %}
+ linux_system_codename: xenial # sync from kvm
+ # For NOVCP, we switch keepalived VIPs, to keep cluster_vip_address in ctl
+ single_nic: br-ctl # for keepalive_vip_interface interpolation
+ control_nic: ~ # Dummy value to keep reclass 1.5.2 happy
+ keepalived_openstack_web_public_vip_address: ${_param:openstack_proxy_address}
+ keepalived_openstack_web_public_vip_interface: br-ex
+{%- endif %}
keepalived_vip_interface: ${_param:single_nic}
keepalived_vip_virtual_router_id: 50
cluster_vip_address: ${_param:openstack_control_address}
@@ -39,6 +67,7 @@ parameters:
cluster_node03_address: ${_param:openstack_control_node03_address}
nova_vncproxy_url: https://${_param:cluster_public_host}:6080
glusterfs_version: '3.13'
+{%- if conf.MCP_VCP %}
heat:
server:
metadata:
@@ -62,12 +91,55 @@ parameters:
- nova-novncproxy
- nova-scheduler
- python-novaclient
+{%- else %}
+ libvirt:
+ server:
+ service: libvirtd
+ config_sys: /etc/default/libvirtd
+ unix_sock_group: libvirt
+ linux:
+ network:
+ # Add public IPs here as overrides, no need to fork another kvm_pdf.j2
+ interface:
+ br-ex:
+ address: ${_param:external_address}
+ proto: static
+ apache:
+ server:
+ bind:
+ ~ports: ~
+ ~modules:
+ - rewrite
+ - wsgi
+ # sync from common-ha kvm role
+ glusterfs:
+ server:
+ service: glusterd
+ volumes:
+ nova_instances:
+ storage: /srv/glusterfs/nova_instances
+ replica: 3
+ bricks:
+ - ${_param:cluster_node01_address}:/srv/glusterfs/nova_instances
+ - ${_param:cluster_node02_address}:/srv/glusterfs/nova_instances
+ - ${_param:cluster_node03_address}:/srv/glusterfs/nova_instances
+ options:
+ cluster.readdir-optimize: 'True'
+ nfs.disable: 'True'
+ network.remote-dio: 'True'
+ cluster.favorite-child-policy: mtime
+ diagnostics.client-log-level: WARNING
+ diagnostics.brick-log-level: WARNING
+{%- endif %}
neutron:
server:
vlan_aware_vms: true
+ root_helper_daemon: false
keystone:
server:
cacert: /etc/ssl/certs/mcp_os_cacert
+ openrc_extra:
+ volume_device_name: vdc
bind:
server:
control:
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml
index deb4cd7e9..7c1fac5f9 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_control_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml
index 17c4e1cf6..221c84f6c 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database_init.yml
index 731fe6ed6..b7d09cfff 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_database_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_database_init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2
index 8f4edefea..f6533855b 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init.yml.j2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -12,35 +12,56 @@ parameters:
openstack_version: pike
# openstack service addresses
+{%- if conf.MCP_VCP %}
openstack_proxy_control_address: ${_param:opnfv_openstack_proxy_control_address}
openstack_proxy_node01_control_address: ${_param:opnfv_openstack_proxy_node01_control_address}
openstack_proxy_node02_control_address: ${_param:opnfv_openstack_proxy_node02_control_address}
+{%- else %}
+ openstack_proxy_control_address: ${_param:opnfv_openstack_control_address}
+ openstack_proxy_node01_control_address: ${_param:opnfv_openstack_control_node01_address}
+ openstack_proxy_node02_control_address: ${_param:opnfv_openstack_control_node03_address}
+{%- endif %}
+
openstack_proxy_address: ${_param:opnfv_openstack_proxy_address}
openstack_proxy_node01_address: ${_param:opnfv_openstack_proxy_node01_address}
openstack_proxy_node02_address: ${_param:opnfv_openstack_proxy_node02_address}
+
openstack_control_address: ${_param:opnfv_openstack_control_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}
+
+{%- if conf.MCP_VCP %}
openstack_database_address: ${_param:opnfv_openstack_database_address}
openstack_database_node01_address: ${_param:opnfv_openstack_database_node01_address}
openstack_database_node02_address: ${_param:opnfv_openstack_database_node02_address}
openstack_database_node03_address: ${_param:opnfv_openstack_database_node03_address}
+
openstack_message_queue_address: ${_param:opnfv_openstack_message_queue_address}
openstack_message_queue_node01_address: ${_param:opnfv_openstack_message_queue_node01_address}
openstack_message_queue_node02_address: ${_param:opnfv_openstack_message_queue_node02_address}
openstack_message_queue_node03_address: ${_param:opnfv_openstack_message_queue_node03_address}
-
- openstack_telemetry_hostname: mdb
- openstack_telemetry_node01_hostname: mdb01
- openstack_telemetry_node02_hostname: mdb02
- openstack_telemetry_node03_hostname: mdb03
-
openstack_telemetry_address: ${_param:opnfv_openstack_telemetry_address}
openstack_telemetry_node01_address: ${_param:opnfv_openstack_telemetry_node01_address}
openstack_telemetry_node02_address: ${_param:opnfv_openstack_telemetry_node02_address}
openstack_telemetry_node03_address: ${_param:opnfv_openstack_telemetry_node03_address}
+{%- else %}
+ openstack_database_address: ${_param:openstack_control_address}
+ openstack_database_node01_address: ${_param:openstack_control_node01_address}
+ openstack_database_node02_address: ${_param:openstack_control_node02_address}
+ openstack_database_node03_address: ${_param:openstack_control_node03_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_telemetry_address: ${_param:openstack_control_address}
+ openstack_telemetry_node01_address: ${_param:openstack_control_node01_address}
+ openstack_telemetry_node02_address: ${_param:openstack_control_node02_address}
+ openstack_telemetry_node03_address: ${_param:openstack_control_node03_address}
+{%- endif %}
# OpenStack Compute
openstack_compute_node01_single_address: ${_param:opnfv_openstack_compute_node01_single_address}
@@ -56,6 +77,7 @@ parameters:
openstack_compute_node02_external_address: ${_param:opnfv_openstack_compute_node02_external_address}
# openstack service hostnames
+{%- if conf.MCP_VCP %}
openstack_proxy_hostname: prx
openstack_proxy_node01_hostname: prx01
openstack_proxy_node02_hostname: prx02
@@ -71,16 +93,50 @@ parameters:
openstack_message_queue_node01_hostname: msg01
openstack_message_queue_node02_hostname: msg02
openstack_message_queue_node03_hostname: msg03
+ openstack_telemetry_hostname: mdb
+ openstack_telemetry_node01_hostname: mdb01
+ openstack_telemetry_node02_hostname: mdb02
+ openstack_telemetry_node03_hostname: mdb03
+{%- else %}
+ openstack_proxy_hostname: ${_param:openstack_control_hostname}
+ openstack_proxy_node01_hostname: ${_param:openstack_control_node01_hostname}
+ openstack_proxy_node02_hostname: ${_param:openstack_control_node03_hostname}
+ openstack_control_hostname: kvm
+ openstack_control_node01_hostname: kvm01
+ openstack_control_node02_hostname: kvm02
+ openstack_control_node03_hostname: kvm03
+ openstack_database_hostname: ${_param:openstack_control_hostname}
+ openstack_database_node01_hostname: ${_param:openstack_control_node01_hostname}
+ openstack_database_node02_hostname: ${_param:openstack_control_node02_hostname}
+ openstack_database_node03_hostname: ${_param:openstack_control_node03_hostname}
+ openstack_message_queue_hostname: ${_param:openstack_control_hostname}
+ openstack_message_queue_node01_hostname: ${_param:openstack_control_node01_hostname}
+ openstack_message_queue_node02_hostname: ${_param:openstack_control_node02_hostname}
+ openstack_message_queue_node03_hostname: ${_param:openstack_control_node03_hostname}
+ openstack_telemetry_hostname: ${_param:openstack_control_hostname}
+ openstack_telemetry_node01_hostname: ${_param:openstack_control_node01_hostname}
+ openstack_telemetry_node02_hostname: ${_param:openstack_control_node02_hostname}
+ openstack_telemetry_node03_hostname: ${_param:openstack_control_node03_hostname}
+{%- endif %}
# openstack compute
openstack_compute_node01_hostname: cmp001
openstack_compute_node02_hostname: cmp002
+ # opendaylight options
+{%- if conf.MCP_VCP %}
+ opendaylight_server_node01_hostname: odl01
+ opendaylight_server_node01_single_address: ${_param:opnfv_opendaylight_server_node01_single_address}
+{%- else %}
+ opendaylight_control_hostname: ${_param:openstack_control_node02_hostname}
+ opendaylight_server_node01_hostname: ${_param:opendaylight_control_hostname}
+ opendaylight_server_node01_single_address: ${_param:opnfv_openstack_control_node02_address}
+{%- endif %}
+
openstack_region: RegionOne
admin_email: root@localhost
# Neutron osv/nodvr
neutron_control_dvr: 'False'
- neutron_l3_ha: 'True'
neutron_global_physnet_mtu: 1500
neutron_external_mtu: 1500
neutron_gateway_dvr: 'False'
@@ -110,7 +166,11 @@ parameters:
nova_service_host: ${_param:openstack_control_address}
neutron_version: ${_param:openstack_version}
neutron_service_host: ${_param:openstack_control_address}
+{%- if conf.MCP_VCP %}
glusterfs_service_host: ${_param:infra_kvm_address}
+{%- else %}
+ glusterfs_service_host: ${_param:openstack_control_address}
+{%- endif %}
mysql_admin_user: root
mysql_admin_password: opnfv_secret
mysql_cinder_password: opnfv_secret
@@ -188,9 +248,12 @@ 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"
- architectures: amd64
key_id: EC4926EA
key_server: keyserver.ubuntu.com
kernel:
@@ -200,6 +263,7 @@ parameters:
net.ipv4.tcp_fin_timeout: 30
network:
host:
+{%- if conf.MCP_VCP %}
prx:
address: ${_param:openstack_proxy_control_address}
names:
@@ -295,6 +359,28 @@ parameters:
names:
- ${_param:openstack_telemetry_node03_hostname}
- ${_param:openstack_telemetry_node03_hostname}.${_param:cluster_domain}
+{%- else %}
+ kvm:
+ address: ${_param:openstack_control_address}
+ names:
+ - ${_param:openstack_control_hostname}
+ - ${_param:openstack_control_hostname}.${_param:cluster_domain}
+ kvm01:
+ address: ${_param:openstack_control_node01_address}
+ names:
+ - ${_param:openstack_control_node01_hostname}
+ - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
+ kvm02:
+ address: ${_param:openstack_control_node02_address}
+ names:
+ - ${_param:openstack_control_node02_hostname}
+ - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
+ kvm03:
+ address: ${_param:openstack_control_node03_address}
+ names:
+ - ${_param:openstack_control_node03_hostname}
+ - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
+{%- endif %}
cmp001:
address: ${_param:openstack_compute_node01_control_address}
names:
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_biport.yml.j2
index f0fabbafa..cc92e5df9 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_biport.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_biport.yml.j2
@@ -1,13 +1,15 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
classes:
- - cluster.baremetal-mcp-pike-common-ha.include.proxy
+ - cluster.mcp-pike-common-ha.include.maas_proxy
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
parameters:
_param:
dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface}
@@ -27,3 +29,4 @@ parameters:
name: ${_param:single_nic}
address: ${_param:single_address}
netmask: ${_param:opnfv_net_public_mask}
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_triport.yml.j2
index 47f2f76f4..7fef8ae9f 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_interface_vcp_triport.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_interface_vcp_triport.yml.j2
@@ -1,13 +1,15 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
classes:
- - cluster.baremetal-mcp-pike-common-ha.include.proxy
+ - cluster.mcp-pike-common-ha.include.maas_proxy
+ - cluster.mcp-pike-common-ha.include.lab_proxy_pdf
parameters:
_param:
dhcp_nic: ${_param:opnfv_vcp_vm_primary_interface}
@@ -40,3 +42,4 @@ parameters:
name: ${_param:control_nic}
address: ${_param:control_address}
netmask: 255.255.255.0
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_message_queue.yml
index 13f8e5a13..be6c5a311 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_message_queue.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_message_queue.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
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
new file mode 100644
index 000000000..26943b7b6
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_proxy.yml.j2
@@ -0,0 +1,98 @@
+##############################################################################
+# 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.nginx.server.single
+ - system.nginx.server.proxy.openstack_api
+ - system.nginx.server.proxy.openstack_vnc
+ - system.nginx.server.proxy.openstack_web
+ - system.nginx.server.proxy.openstack.aodh
+ - system.nginx.server.proxy.openstack.ceilometer
+ - system.horizon.server.single
+ - system.salt.minion.cert.proxy
+ - system.sphinx.server.doc.reclass
+ - service.keepalived.cluster.single
+ - system.keepalived.cluster.instance.openstack_web_public_vip
+parameters:
+ _param:
+ cluster_vip_address: ${_param:openstack_proxy_address}
+ keepalived_openstack_web_public_vip_address: ${_param:cluster_vip_address}
+ keepalived_openstack_web_public_vip_interface: ${_param:single_nic}
+ keepalived_vip_address: ${_param:openstack_proxy_control_address}
+ keepalived_vip_interface: ${_param:control_nic}
+ keepalived_vip_virtual_router_id: 240
+ nginx_proxy_ssl:
+ enabled: true
+ authority: ${_param:salt_minion_ca_authority}
+ engine: salt
+ mode: secure
+ salt_minion_ca_host: cfg01.${_param:cluster_domain}
+ linux:
+ system:
+ package:
+ libapache2-mod-wsgi:
+ version: latest
+{%- if not conf.MCP_VCP %}
+ # Set up routes similar to prx*ovs-ha
+ network:
+ interface:
+ br-ex:
+ route:
+ public:
+ address: 0.0.0.0
+ netmask: 0.0.0.0
+ gateway: ${_param:opnfv_net_public_gw}
+ nginx:
+ server:
+ # NOTE(armband): Define host.address for all proxies for uniformity
+ site:
+ nginx_proxy_novnc: &nginx_openstack_proxy_address
+ host:
+ address: ${_param:openstack_proxy_address}
+ nginx_proxy_openstack_api_aodh:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_ceilometer:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_cinder:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_glance:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_heat:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_heat_cfn:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_heat_cloudwatch:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_keystone:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_keystone_private:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_neutron:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_nova:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_api_nova_ec2:
+ <<: *nginx_openstack_proxy_address
+ nginx_proxy_openstack_web:
+ <<: *nginx_openstack_proxy_address
+ nginx_ssl_redirect_openstack_web:
+ <<: *nginx_openstack_proxy_address
+ nginx_static_reclass_doc:
+ <<: *nginx_openstack_proxy_address
+{%- endif %}
+ salt:
+ minion:
+ cert:
+ proxy:
+ alternative_names: "IP:${_param:openstack_proxy_address}"
+ key_usage: 'digitalSignature, keyEncipherment'
+ keepalived:
+ cluster:
+ vrrp_scripts:
+ check_pidof:
+ args: 'nginx'
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_telemetry.yml b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml
index 94c0ce468..a42189a80 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-common-ha/openstack_telemetry.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_telemetry.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/haproxy_openstack_api.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml
index 649b75c8c..21653d7cb 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/haproxy_openstack_api.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/haproxy_openstack_api.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/config.yml
index 7e3a49491..8a620fa83 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -21,10 +21,10 @@ parameters:
_param:
openstack_control_node01_hostname: ctl01
reclass_data_repository: local
- reclass_config_master: ${_param:opnfv_salt_master_ip}
+ reclass_config_master: ${_param:opnfv_infra_config_pxe_address}
salt_master_environment_repository: "https://github.com/tcpcloud"
salt_master_environment_revision: master
- single_address: 172.16.10.100
+ single_address: ${_param:opnfv_infra_config_address}
salt_master_host: 127.0.0.1
salt_master_base_environment: prd
salt_minion_ca_host: ${linux:network:fqdn}
@@ -33,6 +33,11 @@ parameters:
linux:
network:
interface:
+ dhcp:
+ enabled: true
+ type: eth
+ proto: dhcp
+ name: ${_param:opnfv_fn_vm_primary_interface}
single_int:
enabled: true
name: ${_param:opnfv_fn_vm_secondary_interface}
@@ -40,6 +45,13 @@ parameters:
proto: static
address: ${_param:single_address}
netmask: 255.255.255.0
+ pxe:
+ enabled: true
+ type: eth
+ proto: static
+ name: ${_param:opnfv_fn_vm_tertiary_interface}
+ address: ${_param:opnfv_infra_config_pxe_address}
+ netmask: 255.255.255.0
salt:
master:
file_recv: true
@@ -59,11 +71,11 @@ parameters:
single_address: ${_param:openstack_control_node01_address}
openstack_compute_node01:
params:
- single_address: 172.16.10.105
- tenant_address: 10.1.0.105
- external_address: 10.16.0.105
+ single_address: ${_param:opnfv_openstack_compute_node01_control_address}
+ tenant_address: ${_param:opnfv_openstack_compute_node01_tenant_address}
+ external_address: ${_param:opnfv_openstack_compute_node01_external_address}
openstack_compute_node02:
params:
- single_address: 172.16.10.106
- tenant_address: 10.1.0.106
- external_address: 10.16.0.106
+ single_address: ${_param:opnfv_openstack_compute_node02_control_address}
+ tenant_address: ${_param:opnfv_openstack_compute_node02_tenant_address}
+ external_address: ${_param:opnfv_openstack_compute_node02_external_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/init.yml
index 464048396..ede41940a 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/infra/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/init_options.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/init_options.yml
index 9540b9436..69aba92ad 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/init_options.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/init_options.yml
@@ -1,26 +1,28 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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:
# infra service addresses
- infra_config_address: 172.16.10.100
+ infra_config_address: ${_param:opnfv_infra_config_address}
# openstack service addresses
- openstack_control_address: 172.16.10.101
- openstack_control_node01_address: 172.16.10.101
- openstack_control_node02_address: 172.16.10.102
- openstack_control_node03_address: 172.16.10.103
+ 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: 172.16.10.110
+ openstack_gateway_address: ${_param:opnfv_openstack_gateway_node01_address}
control_address: ${_param:openstack_control_address}
ntp_strata_host1: 1.se.pool.ntp.org
ntp_strata_host2: 0.se.pool.ntp.org
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml
index da933dc27..3d84e6c18 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,7 +7,6 @@
##############################################################################
---
classes:
- - system.linux.storage.loopback
- service.nfs.client
- system.nova.compute.single
- service.cinder.volume.single
@@ -15,19 +14,21 @@ classes:
- system.ceilometer.agent.cluster
- system.ceilometer.client.nova_compute
- system.ceilometer.client.cinder_volume
+ - system.linux.system.repo.mcp.openstack
+ - cluster.mcp-pike-common-noha.openstack_compute_pdf
parameters:
_param:
- primary_interface: ${_param:opnfv_fn_vm_secondary_interface}
- tenant_interface: ${_param:opnfv_fn_vm_tertiary_interface}
- external_interface: ${_param:opnfv_fn_vm_quaternary_interface}
interface_mtu: 9000
linux_system_codename: xenial
- loopback_device_size: 20
+ ~cinder_lvm_devices: ['/dev/vdb']
nova:
compute:
libvirt_service: libvirtd
libvirt_bin: /etc/default/libvirtd
+ disk_cachemodes: file=directsync,block=none
vncproxy_url: http://${_param:cluster_vip_address}:6080
+ bind:
+ vnc_address: ${_param:single_address}
network:
region: ${_param:openstack_region}
user: neutron
@@ -37,6 +38,7 @@ parameters:
compute:
notification: true
vlan_aware_vms: true
+ root_helper_daemon: false
agent_mode: ${_param:neutron_compute_agent_mode}
message_queue:
host: ${_param:openstack_control_address}
@@ -65,31 +67,3 @@ parameters:
sysctl:
vm.dirty_ratio: 10
vm.dirty_background_ratio: 5
- network:
- bridge: openvswitch
- interface:
- dhcp_int:
- enabled: true
- name: ${_param:opnfv_fn_vm_primary_interface}
- proto: dhcp
- type: eth
- mtu: ${_param:interface_mtu}
- primary_interface:
- enabled: true
- name: ${_param:primary_interface}
- proto: manual
- type: eth
- tenant_interface:
- enabled: true
- name: ${_param:tenant_interface}
- mtu: ${_param:interface_mtu}
- proto: manual
- type: eth
- br-mgmt:
- enabled: true
- type: bridge
- proto: static
- address: ${_param:single_address}
- netmask: 255.255.255.0
- use_interfaces:
- - ${_param:primary_interface}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute_pdf.yml.j2
new file mode 100644
index 000000000..64af148fd
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_compute_pdf.yml.j2
@@ -0,0 +1,44 @@
+##############################################################################
+# 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 %}
+---
+parameters:
+ _param:
+ primary_interface: {{ nm.cmp001.nic_mgmt }}
+ tenant_interface: {{ nm.cmp001.nic_private }}
+ external_interface: {{ nm.cmp001.nic_public }}
+ linux:
+ network:
+ bridge: openvswitch
+ interface:
+ dhcp_int:
+ enabled: true
+ name: {{ nm.cmp001.nic_admin }}
+ proto: dhcp
+ type: eth
+ mtu: ${_param:interface_mtu}
+ primary_interface:
+ enabled: true
+ name: ${_param:primary_interface}
+ proto: manual
+ type: eth
+ tenant_interface:
+ enabled: true
+ name: ${_param:tenant_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ br-mgmt:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - ${_param:primary_interface}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml
index 98256745f..01b320973 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -43,7 +43,8 @@ classes:
- system.aodh.server.single
- system.horizon.server.single
- service.haproxy.proxy.single
- - cluster.virtual-mcp-pike-common-noha.haproxy_openstack_api
+ - cluster.mcp-pike-common-noha.haproxy_openstack_api
+ - cluster.mcp-pike-common-noha.openstack_control_pdf
parameters:
_param:
linux_system_codename: xenial
@@ -52,25 +53,11 @@ parameters:
package:
python-msgpack:
version: latest
- network:
- interface:
- single_int:
- enabled: true
- name: ${_param:opnfv_fn_vm_secondary_interface}
- type: eth
- proto: static
- address: ${_param:single_address}
- netmask: 255.255.255.0
- public_int:
- enabled: true
- name: ${_param:opnfv_fn_vm_quaternary_interface}
- type: eth
- proto: static
- address: ${_param:cluster_public_host}
- netmask: 255.255.255.0
keystone:
server:
admin_email: ${_param:admin_email}
+ openrc_extra:
+ volume_device_name: vdc
glance:
server:
storage:
@@ -140,3 +127,4 @@ parameters:
neutron:
server:
vlan_aware_vms: true
+ root_helper_daemon: false
diff --git a/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control_pdf.yml.j2
new file mode 100644
index 000000000..8219637dc
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_control_pdf.yml.j2
@@ -0,0 +1,32 @@
+##############################################################################
+# 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:
+ linux:
+ network:
+ interface:
+ dhcp_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_admin }}
+ proto: dhcp
+ type: eth
+ single_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_mgmt }}
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ public_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_public }}
+ type: eth
+ proto: static
+ address: ${_param:cluster_public_host}
+ netmask: 255.255.255.0
diff --git a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-dpdk-ha.local.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml
index df38d09b8..8061bb1fe 100644
--- a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-dpdk-ha.local.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,12 +7,14 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra.config
+ - cluster.mcp-pike-common-noha.openstack_gateway_pdf
parameters:
_param:
+ interface_mtu: 9000
linux_system_codename: xenial
- reclass_data_revision: master
- linux:
- system:
- name: cfg01
- domain: baremetal-mcp-pike-ovs-dpdk-ha.local
+ neutron:
+ gateway:
+ notification: true
+ agent_mode: ${_param:neutron_gateway_agent_mode}
+ vlan_aware_vms: true
+ root_helper_daemon: false
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway_pdf.yml.j2
index 9822de7d3..7067d59a4 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_gateway_pdf.yml.j2
@@ -1,30 +1,24 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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:
- primary_interface: ${_param:opnfv_fn_vm_secondary_interface}
- tenant_interface: ${_param:opnfv_fn_vm_tertiary_interface}
- external_interface: ${_param:opnfv_fn_vm_quaternary_interface}
- interface_mtu: 9000
- linux_system_codename: xenial
- neutron:
- gateway:
- notification: true
- agent_mode: ${_param:neutron_gateway_agent_mode}
- vlan_aware_vms: true
+ primary_interface: {{ nm.ctl01.nic_mgmt }}
+ tenant_interface: {{ nm.ctl01.nic_private }}
+ external_interface: {{ nm.ctl01.nic_public }}
linux:
network:
bridge: openvswitch
interface:
dhcp_int:
enabled: true
- name: ${_param:opnfv_fn_vm_primary_interface}
+ name: {{ nm.ctl01.nic_admin }}
proto: dhcp
type: eth
mtu: ${_param:interface_mtu}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml
index d5606b594..7c6ce90b7 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-common-noha/openstack_init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,12 +9,12 @@
parameters:
_param:
openstack_version: pike
- apt_mk_version: stable
+ apt_mk_version: nightly
mcp_repo_version: 1.1
openstack_region: RegionOne
admin_email: root@localhost
cluster_public_protocol: http
- cluster_public_host: 10.16.0.101
+ cluster_public_host: ${_param:opnfv_openstack_control_node01_external_address}
neutron_public_protocol: http
neutron_control_dvr: 'False'
neutron_l3_ha: 'False'
@@ -31,11 +31,11 @@ parameters:
cluster_vip_address: ${_param:cluster_public_host}
cluster_local_address: ${_param:openstack_control_address}
cluster_node01_hostname: ctl01
- cluster_node01_address: 172.16.10.101
+ cluster_node01_address: ${_param:opnfv_openstack_control_node01_address}
cluster_node02_hostname: ctl02
- cluster_node02_address: 172.16.10.102
+ cluster_node02_address: ${_param:opnfv_openstack_control_node02_address}
cluster_node03_hostname: ctl03
- cluster_node03_address: 172.16.10.103
+ cluster_node03_address: ${_param:opnfv_openstack_control_node03_address}
rabbitmq_secret_key: opnfv_secret
rabbitmq_admin_password: opnfv_secret
rabbitmq_openstack_password: opnfv_secret
@@ -52,8 +52,6 @@ parameters:
ceilometer_database_host: ${_param:cluster_local_address}
cinder_version: ${_param:openstack_version}
cinder_service_host: ${_param:cluster_local_address}
- ceilometer_graphite_publisher_host: 172.16.10.107
- ceilometer_graphite_publisher_port: 2013
nova_version: ${_param:openstack_version}
nova_service_host: ${_param:cluster_local_address}
nova_vncproxy_url: http://${_param:cluster_vip_address}:8060
@@ -96,9 +94,14 @@ parameters:
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"
- architectures: amd64
key_id: EC4926EA
key_server: keyserver.ubuntu.com
kernel:
@@ -124,12 +127,12 @@ parameters:
- gtw01
- gtw01.${_param:cluster_domain}
cmp01:
- address: 172.16.10.105
+ address: ${_param:opnfv_openstack_compute_node01_control_address}
names:
- cmp01
- cmp01.${_param:cluster_domain}
cmp02:
- address: 172.16.10.106
+ address: ${_param:opnfv_openstack_compute_node02_control_address}
names:
- cmp02
- cmp02.${_param:cluster_domain}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/config.yml
index d9f723a7c..b812dea89 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,8 +8,9 @@
---
classes:
- system.reclass.storage.system.opendaylight_control_single
- - cluster.baremetal-mcp-pike-common-ha.infra.config
- - cluster.baremetal-mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-common-ha.infra.config
+ - cluster.mcp-pike-odl-ha.infra
+ - cluster.all-mcp-arch-common.infra.config_pdf
parameters:
reclass:
storage:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init.yml
new file mode 100644
index 000000000..419c05947
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init.yml
@@ -0,0 +1,14 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra
+ - cluster.mcp-pike-odl-ha.openstack
+parameters:
+ _param:
+ cluster_name: mcp-pike-odl-ha
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init_vcp.yml.j2
index b4c2a67ac..385326561 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/kvm.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/init_vcp.yml.j2
@@ -1,11 +1,12 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra.kvm
- - cluster.baremetal-mcp-pike-ovs-ha.infra
+ - cluster.mcp-pike-odl-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/kvm.yml.j2
index bbc80e271..5fc4776d9 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/kvm.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/kvm.yml.j2
@@ -1,14 +1,16 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
+# NOTE(armband): we don't want to pull in salt.control for novcp
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra.kvm
- - cluster.baremetal-mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-common-ha.infra.kvm
+ - cluster.mcp-pike-odl-ha.infra
parameters:
salt:
control:
@@ -16,7 +18,7 @@ parameters:
# Default production sizing
opendaylight.server:
cpu: 4
- ram: 6144
+ ram: 8192
disk_profile: small
net_profile: default
cluster:
@@ -27,3 +29,4 @@ parameters:
provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
image: ${_param:salt_control_xenial_image}
size: opendaylight.server
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/maas.yml
index 50676fc2c..6662f1fad 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/infra/maas.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,8 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.infra
-
+ - cluster.mcp-pike-common-ha.infra.maas
+ - cluster.mcp-pike-odl-ha.infra
parameters:
_param:
- cluster_name: virtual-mcp-pike-ovs-dpdk-noha
+ hwe_kernel: 'ga-16.04'
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/init.yml
index e0d15e607..80942c27f 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,5 +8,5 @@
---
classes:
- cluster.all-mcp-arch-common
- - cluster.baremetal-mcp-pike-odl-ha.infra
- - cluster.baremetal-mcp-pike-odl-ha.openstack
+ - cluster.mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-odl-ha.openstack
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/opendaylight/control.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/opendaylight/control.yml.j2
index 50eb342e5..a5db82387 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/opendaylight/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/opendaylight/control.yml.j2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,9 +7,11 @@
##############################################################################
---
classes:
- - system.opendaylight.server.single
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-odl-ha
+ - service.opendaylight.server.single
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+{%- if conf.MCP_VCP %}
+ - cluster.mcp-pike-odl-ha
+{%- endif %}
parameters:
_param:
linux_system_codename: xenial
@@ -17,14 +19,12 @@ parameters:
server:
odl_bind_ip: ${_param:single_address}
odl_rest_port: 8282
- java_min_mem: 4g
- java_max_mem: 4g
+ java_min_mem: 6g
+ java_max_mem: 6g
router_enabled: true
karaf_features:
odl_default:
- odl-restconf-all
- odl-aaa-authn
- - odl-dlux-all
- - odl-mdsal-apidocs
netvirt:
- odl-netvirt-openstack
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute.yml
new file mode 100644
index 000000000..6c3e0d04c
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute.yml
@@ -0,0 +1,17 @@
+##############################################################################
+# 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.neutron.gateway.opendaylight.single
+ - cluster.mcp-pike-common-ha.openstack_compute
+ - cluster.mcp-pike-odl-ha.openstack.compute_pdf
+ - cluster.mcp-pike-odl-ha.infra
+parameters:
+ neutron:
+ gateway:
+ agent_mode: ${_param:neutron_gateway_agent_mode}
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
new file mode 100644
index 000000000..912537f8f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/compute_pdf.yml.j2
@@ -0,0 +1,49 @@
+##############################################################################
+# 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 %}
+{#- 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 vlans = { vlan_private_start: nm.cmp001.nic_private } %}
+---
+parameters:
+ linux:
+ network:
+ interface:
+{%- for nic in nics %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ {%- if nic == nm.cmp001.nic_admin %}
+ proto: dhcp
+ {%- else %}
+ proto: manual
+ {%- endif %}
+ name: {{ nic }}
+{%- endfor %}
+
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: manual
+ type: vlan
+ name: {{ vlans[vlan] }}.{{ vlan }}
+ use_interfaces:
+ - {{ vlans[vlan] }}
+ {%- endif %}
+{%- endfor %}
+
+ br-mesh:
+ enabled: true
+ type: bridge
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ mtu: 1500
+ use_interfaces:
+ - {{ nm.cmp001.nic_private }}{% if vlan_private_start | int > 0 %}.{{ vlan_private_start }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/control.yml
index 2cbb8cae9..e907e3d4c 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,11 +8,14 @@
---
classes:
- system.neutron.control.opendaylight.cluster
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_control
- - cluster.baremetal-mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_control
+ - cluster.mcp-pike-odl-ha.infra
parameters:
- neutron:
+ keystone:
server:
- backend:
- router: ${_param:opendaylight_router}
+ openrc_extra:
+ # For HA, all public services are available through nginx on prx
+ sdn_controller_ip: ${_param:cluster_public_host}
+ sdn_username: admin # Hardcoded to default ODL values for now
+ sdn_password: admin
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/database.yml
new file mode 100644
index 000000000..69cb24dbf
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/database.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_database
+ - cluster.mcp-pike-odl-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/init.yml.j2
index 0859dc9f0..5a3b36fb1 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/init.yml.j2
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,21 +7,14 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_init
+ - cluster.mcp-pike-common-ha.openstack_init
parameters:
_param:
# opendaylight options
- opendaylight_server_node01_single_address: ${_param:opnfv_opendaylight_server_node01_single_address}
opendaylight_service_host: ${_param:opendaylight_server_node01_single_address}
- opendaylight_server_node01_hostname: odl01
- opendaylight_router: odl-router_v2
neutron_tenant_network_types: "flat,vxlan"
- nova_cpu_pinning: "1,2,3,4,5,7,8,9,10,11"
- compute_hugepages_size: 1G
- compute_hugepages_count: 16
- compute_hugepages_mount: /mnt/hugepages_1G
- compute_kernel_isolcpu: ${_param:nova_cpu_pinning}
+{%- if conf.MCP_VCP %}
linux:
network:
host:
@@ -30,3 +23,4 @@ parameters:
names:
- ${_param:opendaylight_server_node01_hostname}
- ${_param:opendaylight_server_node01_hostname}.${_param:cluster_domain}
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/message_queue.yml
new file mode 100644
index 000000000..604728da1
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/message_queue.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_message_queue
+ - cluster.mcp-pike-odl-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml
index 023ffd484..3c6b3a2cf 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/proxy.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/proxy.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,25 +7,13 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_triport
- - cluster.baremetal-mcp-pike-common-ha.openstack_proxy
- - cluster.baremetal-mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_triport
+ - cluster.mcp-pike-common-ha.openstack_proxy
+ - cluster.mcp-pike-odl-ha.infra.init_vcp
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-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/telemetry.yml
new file mode 100644
index 000000000..20df2aab6
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-ha/openstack/telemetry.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_telemetry
+ - cluster.mcp-pike-odl-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml
index 8e38ff81d..b63ac68b5 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,8 +9,9 @@
classes:
- system.reclass.storage.system.opendaylight_control_single
- system.reclass.storage.system.openstack_gateway_single
- - cluster.virtual-mcp-pike-common-noha.infra.config
- - cluster.virtual-mcp-pike-odl-noha
+ - cluster.mcp-pike-common-noha.infra.config
+ - cluster.mcp-pike-odl-noha
+ - cluster.all-mcp-arch-common.infra.config_pdf
parameters:
reclass:
storage:
@@ -23,5 +24,5 @@ parameters:
single_address: ${_param:opendaylight_service_host}
openstack_gateway_node01:
params:
- tenant_address: 10.1.0.110
- external_address: 10.16.0.110
+ tenant_address: ${_param:opnfv_openstack_gateway_node01_tenant_address}
+ external_address: ${_param:opnfv_openstack_gateway_node01_external_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/init.yml
index 2cf01eeec..1bdcbd225 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/infra/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,8 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.infra
+ - cluster.mcp-pike-common-noha.infra
parameters:
_param:
- cluster_name: virtual-mcp-pike-odl-noha
+ cluster_name: mcp-pike-odl-noha
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/init.yml
index 7575d89b8..d770e7895 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,11 +8,10 @@
---
classes:
- system.linux.system.single
- - cluster.all-mcp-arch-common
- - cluster.virtual-mcp-pike-common-noha.init_options
- - cluster.virtual-mcp-pike-odl-noha.infra
- - cluster.virtual-mcp-pike-odl-noha.openstack
+ - cluster.mcp-pike-common-noha.init_options
+ - cluster.mcp-pike-odl-noha.infra
+ - cluster.mcp-pike-odl-noha.openstack
parameters:
_param:
- opendaylight_service_host: 172.16.10.111
+ opendaylight_service_host: ${_param:opnfv_opendaylight_server_node01_single_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control.yml
index f4404a69b..8854fc2bf 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/opendaylight/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -9,21 +9,12 @@
classes:
- system.linux.system.repo.mcp.openstack
- system.linux.system.repo.mcp.extra
- - system.opendaylight.server.single
- - cluster.virtual-mcp-pike-odl-noha
+ - service.opendaylight.server.single
+ - cluster.mcp-pike-odl-noha
+ - cluster.mcp-pike-odl-noha.opendaylight.control_pdf
parameters:
_param:
linux_system_codename: xenial
- linux:
- network:
- interface:
- single_int:
- enabled: true
- name: ${_param:opnfv_fn_vm_secondary_interface}
- type: eth
- proto: static
- address: ${_param:single_address}
- netmask: 255.255.255.0
opendaylight:
server:
odl_bind_ip: ${_param:single_address}
@@ -35,7 +26,5 @@ parameters:
odl_default:
- odl-restconf-all
- odl-aaa-authn
- - odl-dlux-all
- - odl-mdsal-apidocs
netvirt:
- odl-netvirt-openstack
diff --git a/mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2
new file mode 100644
index 000000000..fbb7de8b3
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/opendaylight/control_pdf.yml.j2
@@ -0,0 +1,25 @@
+##############################################################################
+# 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:
+ linux:
+ network:
+ interface:
+ dhcp_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_admin }}
+ proto: dhcp
+ type: eth
+ single_int:
+ enabled: true
+ name: {{ nm.ctl01.nic_mgmt }}
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml
index 4c42b585b..b0690167f 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,32 +8,25 @@
---
classes:
- service.neutron.compute.single
- - cluster.virtual-mcp-pike-common-noha.openstack_compute
- - cluster.virtual-mcp-pike-odl-noha
+ - service.neutron.compute.opendaylight.single
+ - cluster.mcp-pike-common-noha.openstack_compute
+ - cluster.mcp-pike-odl-noha
parameters:
- opendaylight:
- client:
- ovsdb_server_iface: ptcp:6639:127.0.0.1
- ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
- tunnel_ip: ${_param:tenant_address}
- provider_mappings: physnet1:br-floating
linux:
network:
- gateway: ${_param:openstack_gateway_address}
interface:
external_interface:
enabled: true
+ type: eth
name: ${_param:external_interface}
mtu: ${_param:interface_mtu}
proto: manual
- type: eth
br-mesh:
enabled: true
type: bridge
proto: static
address: ${_param:tenant_address}
netmask: 255.255.255.0
- gateway: 10.1.0.110
use_interfaces:
- ${_param:tenant_interface}
br-floating:
@@ -50,7 +43,7 @@ parameters:
type: bridge
mtu: ${_param:interface_mtu}
address: ${_param:external_address}
- netmask: 255.255.255.0
+ netmask: ${_param:opnfv_net_public_mask}
use_interfaces:
- ${_param:external_interface}
use_ovs_ports:
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml
index ede9d4c5d..4c48d0798 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,27 +8,12 @@
---
classes:
- system.neutron.control.opendaylight.single
- - cluster.virtual-mcp-pike-common-noha.openstack_control
- - cluster.virtual-mcp-pike-odl-noha
+ - cluster.mcp-pike-common-noha.openstack_control
+ - cluster.mcp-pike-odl-noha
parameters:
- neutron:
- server:
- backend:
- router: ${_param:opendaylight_router}
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
@@ -40,3 +25,10 @@ parameters:
host: ${_param:opendaylight_service_host}
port: 8282
params: ${_param:haproxy_check}
+ keystone:
+ server:
+ openrc_extra:
+ # For noHA, all public services are available through haproxy on ctl
+ sdn_controller_ip: ${_param:cluster_vip_address}
+ sdn_username: admin # Hardcoded to default ODL values for now
+ sdn_password: admin
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/gateway.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/gateway.yml
index 47d11cd5d..f4f646160 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/gateway.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/gateway.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,26 +7,10 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_gateway
- - system.neutron.gateway.opendaylight.single
- - cluster.virtual-mcp-pike-odl-noha
+ - cluster.mcp-pike-common-noha.openstack_gateway
+ - service.neutron.gateway.opendaylight.single
+ - cluster.mcp-pike-odl-noha
parameters:
- _param:
- neutron_agents:
- - neutron-dhcp-agent
- - neutron-metadata-agent
- neutron:
- gateway:
- pkgs: ${_param:neutron_agents}
- services: ${_param:neutron_agents}
- backend:
- router: ${_param:opendaylight_router}
- opendaylight:
- client:
- ovsdb_server_iface: ptcp:6639:127.0.0.1
- ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
- tunnel_ip: ${_param:tenant_address}
- provider_mappings: physnet1:br-floating
linux:
network:
interface:
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/init.yml
index cbf4e692e..2cd3083ff 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-odl-noha/openstack/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-odl-noha/openstack/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_init
+ - cluster.mcp-pike-common-noha.openstack_init
parameters:
_param:
neutron_tenant_network_types: "flat,vxlan"
@@ -16,7 +16,7 @@ parameters:
network:
host:
odl01:
- address: 172.16.10.111
+ address: ${_param:opnfv_opendaylight_server_node01_single_address}
names:
- odl01
- odl01.${_param:cluster_domain}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/config.yml
index 1a55d7807..ca7491a02 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,5 +7,6 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra.config
- - cluster.baremetal-mcp-pike-ovs-ha.infra
+ - cluster.mcp-pike-common-ha.infra.config
+ - cluster.mcp-pike-ovn-ha.infra
+ - cluster.all-mcp-arch-common.infra.config_pdf
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init.yml
new file mode 100644
index 000000000..5c7438ab4
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init.yml
@@ -0,0 +1,14 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra
+ - cluster.mcp-pike-ovn-ha.openstack
+parameters:
+ _param:
+ cluster_name: mcp-pike-ovn-ha
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init_vcp.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init_vcp.yml.j2
new file mode 100644
index 000000000..46acb7d2d
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/init_vcp.yml.j2
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- if conf.MCP_VCP %}
+classes:
+ - cluster.mcp-pike-ovn-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/kvm.yml.j2
index dfe1e28ca..4a2355bf1 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/openstack/message_queue.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/kvm.yml.j2
@@ -1,12 +1,14 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
+# NOTE(armband): we don't want to pull in salt.control for novcp
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_message_queue
- - cluster.baremetal-mcp-pike-odl-ha
+ - cluster.mcp-pike-common-ha.infra.kvm
+ - cluster.mcp-pike-ovn-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/maas.yml
new file mode 100644
index 000000000..398768e08
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/infra/maas.yml
@@ -0,0 +1,11 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra.maas
+ - cluster.mcp-pike-ovn-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/init.yml
index 12a3ea211..69e8033c1 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,5 +8,5 @@
---
classes:
- cluster.all-mcp-arch-common
- - cluster.baremetal-mcp-pike-ovs-ha.infra
- - cluster.baremetal-mcp-pike-ovs-ha.openstack
+ - cluster.mcp-pike-ovn-ha.infra
+ - cluster.mcp-pike-ovn-ha.openstack
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute.yml
index 5914f50be..36073827a 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,9 +7,9 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_compute
- - cluster.baremetal-mcp-pike-ovs-ha.openstack.compute_pdf
- - cluster.baremetal-mcp-pike-ovs-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_compute
+ - cluster.mcp-pike-ovn-ha.openstack.compute_pdf
+ - cluster.mcp-pike-ovn-ha.infra
parameters:
nova:
compute:
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
new file mode 100644
index 000000000..912537f8f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/compute_pdf.yml.j2
@@ -0,0 +1,49 @@
+##############################################################################
+# 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 %}
+{#- 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 vlans = { vlan_private_start: nm.cmp001.nic_private } %}
+---
+parameters:
+ linux:
+ network:
+ interface:
+{%- for nic in nics %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ {%- if nic == nm.cmp001.nic_admin %}
+ proto: dhcp
+ {%- else %}
+ proto: manual
+ {%- endif %}
+ name: {{ nic }}
+{%- endfor %}
+
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: manual
+ type: vlan
+ name: {{ vlans[vlan] }}.{{ vlan }}
+ use_interfaces:
+ - {{ vlans[vlan] }}
+ {%- endif %}
+{%- endfor %}
+
+ br-mesh:
+ enabled: true
+ type: bridge
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ mtu: 1500
+ use_interfaces:
+ - {{ nm.cmp001.nic_private }}{% if vlan_private_start | int > 0 %}.{{ vlan_private_start }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/control.yml
index 43bec6bcc..96ea48ea2 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,6 +8,6 @@
---
classes:
- system.neutron.control.openvswitch.cluster
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_control
- - cluster.baremetal-mcp-pike-ovs-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_control
+ - cluster.mcp-pike-ovn-ha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/database.yml
new file mode 100644
index 000000000..2ed79ab3b
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/database.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_database
+ - cluster.mcp-pike-ovn-ha.infra_vcp
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/init.yml
index 19126f89d..02cd14adb 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_init
+ - cluster.mcp-pike-common-ha.openstack_init
parameters:
_param:
neutron_tenant_network_types: "flat,vxlan"
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/message_queue.yml
new file mode 100644
index 000000000..db587ac94
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/message_queue.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_message_queue
+ - cluster.mcp-pike-ovn-ha.infra_vcp
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/proxy.yml
index f58e632c7..49fec8246 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/maas.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/proxy.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,5 +7,6 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra.maas
- - cluster.baremetal-mcp-pike-odl-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_triport
+ - cluster.mcp-pike-common-ha.openstack_proxy
+ - cluster.mcp-pike-ovn-ha.infra_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/telemetry.yml
new file mode 100644
index 000000000..4b9d9acc2
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-ha/openstack/telemetry.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_telemetry
+ - cluster.mcp-pike-ovn-ha.infra_vcp
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/config.yml
index 4d0a77241..399ffc21a 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,5 +7,5 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.infra.config
- - cluster.virtual-mcp-pike-ovn-noha
+ - cluster.mcp-pike-common-noha.infra.config
+ - cluster.mcp-pike-ovn-noha
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/init.yml
index 5a79adddf..cf43fa8e3 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/infra/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,8 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.infra
+ - cluster.mcp-pike-common-noha.infra
parameters:
_param:
- cluster_name: virtual-mcp-pike-ovn-noha
+ cluster_name: mcp-pike-ovn-noha
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/init.yml
new file mode 100644
index 000000000..b3aa40415
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/init.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.single
+ - cluster.mcp-pike-common-noha.init_options
+ - cluster.mcp-pike-ovn-noha.infra
+ - cluster.mcp-pike-ovn-noha.openstack
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/compute.yml
index a08c65217..ad8658518 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,9 +8,12 @@
---
classes:
- service.neutron.compute.ovn.single
- - cluster.virtual-mcp-pike-common-noha.openstack_compute
- - cluster.virtual-mcp-pike-ovn-noha
+ - cluster.mcp-pike-common-noha.openstack_compute
+ - cluster.mcp-pike-ovn-noha
parameters:
+ neutron:
+ compute:
+ controller_vip: ${_param:cluster_local_address}
linux:
network:
interface:
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/control.yml
index 59c000746..3d120ca9f 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,5 +8,5 @@
---
classes:
- system.neutron.control.ovn.single
- - cluster.virtual-mcp-pike-common-noha.openstack_control
- - cluster.virtual-mcp-pike-ovn-noha
+ - cluster.mcp-pike-common-noha.openstack_control
+ - cluster.mcp-pike-ovn-noha
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/init.yml
new file mode 100644
index 000000000..03d46ef91
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovn-noha/openstack/init.yml
@@ -0,0 +1,10 @@
+##############################################################################
+# 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.mcp-pike-common-noha.openstack_init
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/config.yml
new file mode 100644
index 000000000..0b0632609
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/config.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra.config
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
+ - cluster.all-mcp-arch-common.infra.config_dpdk_pdf
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init.yml
index e3dd53629..5b49f2572 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,11 +7,11 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.openstack
+ - cluster.mcp-pike-common-ha.infra
+ - cluster.mcp-pike-ovs-dpdk-ha.openstack
parameters:
_param:
- cluster_name: baremetal-mcp-pike-ovs-dpdk-ha
+ cluster_name: mcp-pike-ovs-dpdk-ha
linux:
system:
service:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init_vcp.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init_vcp.yml.j2
new file mode 100644
index 000000000..9e85995bc
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/init_vcp.yml.j2
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- if conf.MCP_VCP %}
+classes:
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/kvm.yml.j2
index ad9336faa..b62118d4a 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/kvm.yml.j2
@@ -1,12 +1,14 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
+# NOTE(armband): we don't want to pull in salt.control for novcp
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_message_queue
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha
+ - cluster.mcp-pike-common-ha.infra.kvm
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/maas.yml
new file mode 100644
index 000000000..f472885e2
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/infra/maas.yml
@@ -0,0 +1,11 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra.maas
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/init.yml
index ab450e045..07ad6734c 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,5 +8,5 @@
---
classes:
- cluster.all-mcp-arch-common
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.openstack
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
+ - cluster.mcp-pike-ovs-dpdk-ha.openstack
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute.yml
new file mode 100644
index 000000000..d121c0807
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute.yml
@@ -0,0 +1,28 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_compute
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
+ - cluster.mcp-pike-ovs-dpdk-ha.openstack.compute_pdf
+ - system.neutron.compute.nfv.dpdk
+parameters:
+ neutron:
+ gateway:
+ dpdk: 'True'
+ vhost_socket_dir: ${_param:compute_ovs_vhost_socket_dir}
+ backend:
+ tenant_vlan_range: ${_param:neutron_tenant_vlan_range}
+ nova:
+ compute:
+ libvirt_service: libvirtd
+ libvirt_bin: /etc/default/libvirtd
+ linux:
+ system:
+ kernel:
+ isolcpu: ${_param:compute_kernel_isolcpu}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute_pdf.yml.j2
new file mode 100644
index 000000000..cf9a0b302
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/compute_pdf.yml.j2
@@ -0,0 +1,27 @@
+##############################################################################
+# 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:
+ linux:
+ network:
+ ovs_nowait: true
+ interface:
+ 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
+ br-floating:
+ datapath_type: netdev
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/control.yml
index 82db9be87..e0423c33b 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,9 +8,9 @@
---
classes:
- system.neutron.control.openvswitch.cluster
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_control
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_control
+ - cluster.mcp-pike-ovs-dpdk-ha.infra
parameters:
neutron:
server:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/database.yml
new file mode 100644
index 000000000..324ec3f84
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/database.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_database
+ - cluster.mcp-pike-ovs-dpdk-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/init.yml
index 2f62c0165..1f8ff4b9e 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,8 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra
- - cluster.baremetal-mcp-pike-ovs-ha.openstack
+ - cluster.mcp-pike-common-ha.openstack_init
parameters:
_param:
- cluster_name: baremetal-mcp-pike-ovs-ha
+ neutron_tenant_network_types: "flat,vlan"
+ neutron_tenant_vlan_range: ${_param:opnfv_net_tenant_vlan}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml
new file mode 100644
index 000000000..f15e4310a
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/message_queue.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_message_queue
+ - cluster.mcp-pike-ovs-dpdk-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/proxy.yml
new file mode 100644
index 000000000..09eda53c0
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/proxy.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_triport
+ - cluster.mcp-pike-common-ha.openstack_proxy
+ - cluster.mcp-pike-ovs-dpdk-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml
index 014c57ffa..68d437864 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-odl-ha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-ha/openstack/telemetry.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,6 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra
- - cluster.baremetal-mcp-pike-odl-ha.openstack
-parameters:
- _param:
- cluster_name: baremetal-mcp-pike-odl-ha
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_telemetry
+ - cluster.mcp-pike-ovs-dpdk-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/config.yml
index e80c442ef..baf072fd8 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,21 +8,14 @@
---
classes:
- system.reclass.storage.system.openstack_gateway_single
- - cluster.virtual-mcp-pike-common-noha.infra.config
- - cluster.virtual-mcp-pike-ovs-dpdk-noha
+ - cluster.mcp-pike-common-noha.infra.config
+ - cluster.mcp-pike-ovs-dpdk-noha
+ - cluster.all-mcp-arch-common.infra.config_dpdk_pdf
parameters:
reclass:
storage:
node:
- openstack_compute_node01:
- params:
- dpdk0_name: ${_param:opnfv_fn_vm_tertiary_interface}
- dpdk0_pci: '"0000:00:05.0"'
- openstack_compute_node02:
- params:
- dpdk0_name: ${_param:opnfv_fn_vm_tertiary_interface}
- dpdk0_pci: '"0000:00:05.0"'
openstack_gateway_node01:
params:
- tenant_address: 10.1.0.110
- external_address: 10.16.0.110
+ tenant_address: ${_param:opnfv_openstack_gateway_node01_tenant_address}
+ external_address: ${_param:opnfv_openstack_gateway_node01_external_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/init.yml
index 0f21b9161..d8cb01596 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/infra/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,8 +7,8 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.infra
+ - cluster.mcp-pike-common-noha.infra
parameters:
_param:
- cluster_name: virtual-mcp-pike-ovs-noha
+ cluster_name: mcp-pike-ovs-dpdk-noha
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/init.yml
index 0fd6fa790..8d3a7a588 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovn-noha/init.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/init.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,7 +8,6 @@
---
classes:
- system.linux.system.single
- - cluster.all-mcp-arch-common
- - cluster.virtual-mcp-pike-common-noha.init_options
- - cluster.virtual-mcp-pike-ovn-noha.infra
- - cluster.virtual-mcp-pike-ovn-noha.openstack
+ - cluster.mcp-pike-common-noha.init_options
+ - cluster.mcp-pike-ovs-dpdk-noha.infra
+ - cluster.mcp-pike-ovs-dpdk-noha.openstack
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/compute.yml
index c59cdaade..53ba74592 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -10,8 +10,8 @@ classes:
- system.nova.compute.nfv.hugepages
- system.neutron.compute.nfv.dpdk
- service.neutron.compute.single
- - cluster.virtual-mcp-pike-common-noha.openstack_compute
- - cluster.virtual-mcp-pike-ovs-dpdk-noha
+ - cluster.mcp-pike-common-noha.openstack_compute
+ - cluster.mcp-pike-ovs-dpdk-noha
parameters:
neutron:
compute:
@@ -23,11 +23,13 @@ parameters:
dpdk0:
name: ${_param:dpdk0_name}
pci: ${_param:dpdk0_pci}
- driver: igb_uio
+ driver: ${_param:dpdk0_driver}
enabled: true
bridge: br-prv
type: dpdk_ovs_port
- n_rxq: 2
+ n_rxq: ${_param:dpdk0_n_rxq}
br-prv:
enabled: true
type: dpdk_ovs_bridge
+ tenant_interface:
+ type: dpdk # Not a meaningful type, just match 'dpdk' for filtering
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/control.yml
index 4dbaae829..4be308d0e 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,10 +8,10 @@
---
classes:
- system.neutron.control.openvswitch.single
- - cluster.virtual-mcp-pike-common-noha.openstack_control
- - cluster.virtual-mcp-pike-ovs-dpdk-noha
+ - cluster.mcp-pike-common-noha.openstack_control
+ - cluster.mcp-pike-ovs-dpdk-noha
parameters:
neutron:
server:
backend:
- tenant_vlan_range: 1000:1999
+ tenant_vlan_range: ${_param:opnfv_net_tenant_vlan}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/gateway.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/gateway.yml
index ec943a857..e7c077528 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/gateway.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/gateway.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,9 +7,9 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_gateway
+ - cluster.mcp-pike-common-noha.openstack_gateway
- service.neutron.gateway.single
- - cluster.virtual-mcp-pike-ovs-dpdk-noha
+ - cluster.mcp-pike-ovs-dpdk-noha
parameters:
neutron:
gateway:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/init.yml
new file mode 100644
index 000000000..9ef4b1b31
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-dpdk-noha/openstack/init.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.mcp-pike-common-noha.openstack_init
+parameters:
+ _param:
+ neutron_tenant_network_types: "flat,vlan"
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/kvm.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/config.yml
index bb2087d70..cab196d12 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-dpdk-ha/infra/kvm.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,5 +7,6 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-common-ha.infra.kvm
- - cluster.baremetal-mcp-pike-ovs-dpdk-ha.infra
+ - cluster.mcp-pike-common-ha.infra.config
+ - cluster.mcp-pike-ovs-ha.infra
+ - cluster.all-mcp-arch-common.infra.config_pdf
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init.yml
new file mode 100644
index 000000000..c0c873c00
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init.yml
@@ -0,0 +1,14 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra
+ - cluster.mcp-pike-ovs-ha.openstack
+parameters:
+ _param:
+ cluster_name: mcp-pike-ovs-ha
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init_vcp.yml.j2 b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init_vcp.yml.j2
new file mode 100644
index 000000000..74023ce14
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/init_vcp.yml.j2
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+---
+{%- if conf.MCP_VCP %}
+classes:
+ - cluster.mcp-pike-ovs-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/kvm.yml.j2
index 745fd6fd8..0d49e5d10 100644
--- a/mcp/reclass/classes/cluster/baremetal-mcp-pike-ovs-ha/openstack/message_queue.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/kvm.yml.j2
@@ -1,12 +1,14 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
##############################################################################
---
+{%- if conf.MCP_VCP %}
+# NOTE(armband): we don't want to pull in salt.control for novcp
classes:
- - cluster.baremetal-mcp-pike-common-ha.openstack_interface_vcp_biport
- - cluster.baremetal-mcp-pike-common-ha.openstack_message_queue
- - cluster.baremetal-mcp-pike-ovs-ha
+ - cluster.mcp-pike-common-ha.infra.kvm
+ - cluster.mcp-pike-ovs-ha.infra
+{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/maas.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/maas.yml
new file mode 100644
index 000000000..d0aabd90f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/infra/maas.yml
@@ -0,0 +1,11 @@
+##############################################################################
+# 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.mcp-pike-common-ha.infra.maas
+ - cluster.mcp-pike-ovs-ha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/init.yml
new file mode 100644
index 000000000..a603c8450
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/init.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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
+ - cluster.mcp-pike-ovs-ha.infra
+ - cluster.mcp-pike-ovs-ha.openstack
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute.yml
new file mode 100644
index 000000000..fa815e8be
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute.yml
@@ -0,0 +1,17 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_compute
+ - cluster.mcp-pike-ovs-ha.openstack.compute_pdf
+ - cluster.mcp-pike-ovs-ha.infra
+parameters:
+ nova:
+ compute:
+ libvirt_service: libvirtd
+ libvirt_bin: /etc/default/libvirtd
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
new file mode 100644
index 000000000..912537f8f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/compute_pdf.yml.j2
@@ -0,0 +1,49 @@
+##############################################################################
+# 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 %}
+{#- 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 vlans = { vlan_private_start: nm.cmp001.nic_private } %}
+---
+parameters:
+ linux:
+ network:
+ interface:
+{%- for nic in nics %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ {%- if nic == nm.cmp001.nic_admin %}
+ proto: dhcp
+ {%- else %}
+ proto: manual
+ {%- endif %}
+ name: {{ nic }}
+{%- endfor %}
+
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: manual
+ type: vlan
+ name: {{ vlans[vlan] }}.{{ vlan }}
+ use_interfaces:
+ - {{ vlans[vlan] }}
+ {%- endif %}
+{%- endfor %}
+
+ br-mesh:
+ enabled: true
+ type: bridge
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ mtu: 1500
+ use_interfaces:
+ - {{ nm.cmp001.nic_private }}{% if vlan_private_start | int > 0 %}.{{ vlan_private_start }}{% endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/control.yml
new file mode 100644
index 000000000..a70a8a07f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/control.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.neutron.control.openvswitch.cluster
+ - cluster.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_control
+ - cluster.mcp-pike-ovs-ha.infra
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/database.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/database.yml
new file mode 100644
index 000000000..33c86e8c1
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/database.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_database
+ - cluster.mcp-pike-ovs-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/init.yml
new file mode 100644
index 000000000..02cd14adb
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/init.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_init
+parameters:
+ _param:
+ neutron_tenant_network_types: "flat,vxlan"
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/message_queue.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/message_queue.yml
new file mode 100644
index 000000000..629b2794b
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/message_queue.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_message_queue
+ - cluster.mcp-pike-ovs-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/proxy.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/proxy.yml
new file mode 100644
index 000000000..3698965f6
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/proxy.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_triport
+ - cluster.mcp-pike-common-ha.openstack_proxy
+ - cluster.mcp-pike-ovs-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/telemetry.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/telemetry.yml
new file mode 100644
index 000000000..26341ea7b
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-ha/openstack/telemetry.yml
@@ -0,0 +1,12 @@
+##############################################################################
+# 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.mcp-pike-common-ha.openstack_interface_vcp_biport
+ - cluster.mcp-pike-common-ha.openstack_telemetry
+ - cluster.mcp-pike-ovs-ha.infra.init_vcp
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/config.yml
index 66c246859..4f7428207 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/infra/config.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/config.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,13 +8,14 @@
---
classes:
- system.reclass.storage.system.openstack_gateway_single
- - cluster.virtual-mcp-pike-common-noha.infra.config
- - cluster.virtual-mcp-pike-ovs-noha
+ - cluster.mcp-pike-common-noha.infra.config
+ - cluster.mcp-pike-ovs-noha
+ - cluster.all-mcp-arch-common.infra.config_pdf
parameters:
reclass:
storage:
node:
openstack_gateway_node01:
params:
- tenant_address: 10.1.0.110
- external_address: 10.16.0.110
+ tenant_address: ${_param:opnfv_openstack_gateway_node01_tenant_address}
+ external_address: ${_param:opnfv_openstack_gateway_node01_external_address}
diff --git a/mcp/config/states/networking_gw b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/init.yml
index ea7c87b01..54b50d2a8 100755..100644
--- a/mcp/config/states/networking_gw
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/infra/init.yml
@@ -1,4 +1,3 @@
-#!/bin/bash -e
##############################################################################
# Copyright (c) 2018 Mirantis Inc., Enea AB and others.
# All rights reserved. This program and the accompanying materials
@@ -6,7 +5,10 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+---
+classes:
+ - cluster.mcp-pike-common-noha.infra
-CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
-
-salt -I 'neutron:gateway' cmd.run 'ifup --force --ignore-errors br-ex'
+parameters:
+ _param:
+ cluster_name: mcp-pike-ovs-noha
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/init.yml
new file mode 100644
index 000000000..94267fad4
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/init.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.single
+ - cluster.mcp-pike-common-noha.init_options
+ - cluster.mcp-pike-ovs-noha.infra
+ - cluster.mcp-pike-ovs-noha.openstack
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/compute.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/compute.yml
index 52edf879f..1a8bbd801 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/compute.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/compute.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,8 +8,8 @@
---
classes:
- service.neutron.compute.single
- - cluster.virtual-mcp-pike-common-noha.openstack_compute
- - cluster.virtual-mcp-pike-ovs-noha
+ - cluster.mcp-pike-common-noha.openstack_compute
+ - cluster.mcp-pike-ovs-noha
parameters:
linux:
network:
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/control.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/control.yml
index 4e03c4b7e..9b699b6b1 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/control.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/control.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,5 +8,5 @@
---
classes:
- system.neutron.control.openvswitch.single
- - cluster.virtual-mcp-pike-common-noha.openstack_control
- - cluster.virtual-mcp-pike-ovs-noha
+ - cluster.mcp-pike-common-noha.openstack_control
+ - cluster.mcp-pike-ovs-noha
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/gateway.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/gateway.yml
index 0eec95cc4..ff0b79a1f 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/openstack/gateway.yml
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/gateway.yml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -7,9 +7,9 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-common-noha.openstack_gateway
+ - cluster.mcp-pike-common-noha.openstack_gateway
- service.neutron.gateway.single
- - cluster.virtual-mcp-pike-ovs-noha
+ - cluster.mcp-pike-ovs-noha
parameters:
linux:
network:
diff --git a/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/init.yml b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/init.yml
new file mode 100644
index 000000000..e94c4a00d
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-pike-ovs-noha/openstack/init.yml
@@ -0,0 +1,13 @@
+##############################################################################
+# 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.mcp-pike-common-noha.openstack_init
+parameters:
+ _param:
+ neutron_tenant_network_types: "flat,vxlan"
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/init.yml
deleted file mode 100644
index 07e3ef2ca..000000000
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/init.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.single
- - cluster.all-mcp-arch-common
- - cluster.virtual-mcp-pike-common-noha.init_options
- - cluster.virtual-mcp-pike-ovs-dpdk-noha.infra
- - cluster.virtual-mcp-pike-ovs-dpdk-noha.openstack
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/init.yml
deleted file mode 100644
index 5445a07ea..000000000
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-dpdk-noha/openstack/init.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.virtual-mcp-pike-common-noha.openstack_init
-parameters:
- _param:
- neutron_tenant_network_types: "flat,vlan"
- compute_hugepages_size: 2M
- compute_hugepages_count: 2048
- compute_hugepages_mount: /mnt/hugepages_2M
- compute_dpdk_driver: uio
- compute_ovs_pmd_cpu_mask: "0x6"
- compute_ovs_dpdk_socket_mem: "1024"
- compute_ovs_dpdk_lcore_mask: "0x8"
- compute_ovs_memory_channels: "2"
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/init.yml
deleted file mode 100644
index b29ac95ca..000000000
--- a/mcp/reclass/classes/cluster/virtual-mcp-pike-ovs-noha/init.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.single
- - cluster.all-mcp-arch-common
- - cluster.virtual-mcp-pike-common-noha.init_options
- - cluster.virtual-mcp-pike-ovs-noha.infra
- - cluster.virtual-mcp-pike-ovs-noha.openstack
diff --git a/mcp/reclass/classes/system b/mcp/reclass/classes/system
-Subproject 86594f66eb239eda9424b58c96914fdb27e3e7f
+Subproject 198b5b7459c9f602ded773e966888705d866f6d
diff --git a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-odl-ha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-odl-ha.local.yml
index fb067f038..cbab34b45 100644
--- a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-odl-ha.local.yml
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-odl-ha.local.yml
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-odl-ha.infra.config
+ - cluster.mcp-pike-odl-ha.infra.config
parameters:
_param:
linux_system_codename: xenial
@@ -15,4 +15,4 @@ parameters:
linux:
system:
name: cfg01
- domain: baremetal-mcp-pike-odl-ha.local
+ domain: mcp-pike-odl-ha.local
diff --git a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovn-noha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-odl-noha.local.yml
index fb40f6545..a4a21ba6a 100644
--- a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovn-noha.local.yml
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-odl-noha.local.yml
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-ovn-noha.infra.config
+ - cluster.mcp-pike-odl-noha.infra.config
parameters:
_param:
linux_system_codename: xenial
@@ -15,4 +15,4 @@ parameters:
linux:
system:
name: cfg01
- domain: virtual-mcp-pike-ovn-noha.local
+ domain: mcp-pike-odl-noha.local
diff --git a/mcp/reclass/nodes/cfg01.mcp-pike-ovn-ha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovn-ha.local.yml
new file mode 100644
index 000000000..2c370db60
--- /dev/null
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovn-ha.local.yml
@@ -0,0 +1,18 @@
+##############################################################################
+# 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.mcp-pike-ovn-ha.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: mcp-pike-ovn-ha.local
diff --git a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-ha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovn-noha.local.yml
index dc9c8c748..0df357a26 100644
--- a/mcp/reclass/nodes/cfg01.baremetal-mcp-pike-ovs-ha.local.yml
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovn-noha.local.yml
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.baremetal-mcp-pike-ovs-ha.infra.config
+ - cluster.mcp-pike-ovn-noha.infra.config
parameters:
_param:
linux_system_codename: xenial
@@ -15,4 +15,4 @@ parameters:
linux:
system:
name: cfg01
- domain: baremetal-mcp-pike-ovs-ha.local
+ domain: mcp-pike-ovn-noha.local
diff --git a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-odl-noha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-ha.local.yml
index 8828a9312..c31233bb5 100644
--- a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-odl-noha.local.yml
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-ha.local.yml
@@ -7,7 +7,7 @@
##############################################################################
---
classes:
- - cluster.virtual-mcp-pike-odl-noha.infra.config
+ - cluster.mcp-pike-ovs-dpdk-ha.infra.config
parameters:
_param:
linux_system_codename: xenial
@@ -15,4 +15,4 @@ parameters:
linux:
system:
name: cfg01
- domain: virtual-mcp-pike-odl-noha.local
+ domain: mcp-pike-ovs-dpdk-ha.local
diff --git a/mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-noha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-noha.local.yml
new file mode 100644
index 000000000..394a9f6b6
--- /dev/null
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-dpdk-noha.local.yml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 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.mcp-pike-ovs-dpdk-noha.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: mcp-pike-ovs-dpdk-noha.local
diff --git a/mcp/reclass/nodes/cfg01.mcp-pike-ovs-ha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-ha.local.yml
new file mode 100644
index 000000000..5e3cb0186
--- /dev/null
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-ha.local.yml
@@ -0,0 +1,18 @@
+##############################################################################
+# 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.mcp-pike-ovs-ha.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: mcp-pike-ovs-ha.local
diff --git a/mcp/reclass/nodes/cfg01.mcp-pike-ovs-noha.local.yml b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-noha.local.yml
new file mode 100644
index 000000000..793e7c0d4
--- /dev/null
+++ b/mcp/reclass/nodes/cfg01.mcp-pike-ovs-noha.local.yml
@@ -0,0 +1,18 @@
+##############################################################################
+# Copyright (c) 2017 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.mcp-pike-ovs-noha.infra.config
+parameters:
+ _param:
+ linux_system_codename: xenial
+ reclass_data_revision: master
+ linux:
+ system:
+ name: cfg01
+ domain: mcp-pike-ovs-noha.local
diff --git a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-dpdk-noha.local.yml b/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-dpdk-noha.local.yml
deleted file mode 100644
index 4c435f873..000000000
--- a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-dpdk-noha.local.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.virtual-mcp-pike-ovs-dpdk-noha.infra.config
-parameters:
- _param:
- linux_system_codename: xenial
- reclass_data_revision: master
- linux:
- system:
- name: cfg01
- domain: virtual-mcp-pike-ovs-dpdk-noha.local
diff --git a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-noha.local.yml b/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-noha.local.yml
deleted file mode 100644
index 7a715cfb8..000000000
--- a/mcp/reclass/nodes/cfg01.virtual-mcp-pike-ovs-noha.local.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 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.virtual-mcp-pike-ovs-noha.infra.config
-parameters:
- _param:
- linux_system_codename: xenial
- reclass_data_revision: master
- linux:
- system:
- name: cfg01
- domain: virtual-mcp-pike-ovs-noha.local
diff --git a/mcp/salt-formulas/maas/machines/delete.sls b/mcp/salt-formulas/maas/machines/delete.sls
index dbb625a02..2903f9226 100644
--- a/mcp/salt-formulas/maas/machines/delete.sls
+++ b/mcp/salt-formulas/maas/machines/delete.sls
@@ -10,6 +10,7 @@
maas_login_admin:
cmd.run:
- name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+ - unless: 'test -e /var/lib/maas/.maas_credentials'
# TODO: implement delete_machine via _modules/maas.py
delete_machine:
diff --git a/mcp/salt-formulas/maas/machines/mark_broken_fixed.sls b/mcp/salt-formulas/maas/machines/mark_broken_fixed.sls
index 17a7df8d8..46691bb09 100644
--- a/mcp/salt-formulas/maas/machines/mark_broken_fixed.sls
+++ b/mcp/salt-formulas/maas/machines/mark_broken_fixed.sls
@@ -10,10 +10,11 @@
maas_login_admin:
cmd.run:
- name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+ - unless: 'test -e /var/lib/maas/.maas_credentials'
# TODO: implement mark_broken_fixed_machine via _modules/maas.py
mark_broken_fixed_machine:
cmd.run:
- - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine mark-broken {{ pillar['system_id'] }} && sleep 10 && maas opnfv machine mark-fixed {{ pillar['system_id'] }}"
+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine mark-broken {{ pillar['system_id'] }} && sleep 10 && maas opnfv machine mark-fixed {{ pillar['system_id'] }} && maas opnfv machine test {{ pillar['system_id'] }} testing_scripts=fio"
- require:
- cmd: maas_login_admin
diff --git a/mcp/salt-formulas/maas/machines/override_failed_testing.sls b/mcp/salt-formulas/maas/machines/override_failed_testing.sls
new file mode 100644
index 000000000..e7fe1d267
--- /dev/null
+++ b/mcp/salt-formulas/maas/machines/override_failed_testing.sls
@@ -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
+##############################################################################
+{%- from "maas/map.jinja" import region with context %}
+
+maas_login_admin:
+ cmd.run:
+ - name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+ - unless: 'test -e /var/lib/maas/.maas_credentials'
+
+# TODO: implement override_failed_testing via _modules/maas.py
+mark_broken_fixed_machine:
+ cmd.run:
+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine override-failed-testing {{ pillar['system_id'] }}"
+ - require:
+ - cmd: maas_login_admin
diff --git a/mcp/salt-formulas/maas/machines/set_storage_layout.sls b/mcp/salt-formulas/maas/machines/set_storage_layout.sls
new file mode 100644
index 000000000..0b7e37153
--- /dev/null
+++ b/mcp/salt-formulas/maas/machines/set_storage_layout.sls
@@ -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
+##############################################################################
+{%- from "maas/map.jinja" import region with context %}
+
+maas_login_admin:
+ cmd.run:
+ - name: "maas-region apikey --username {{ region.admin.username }} > /var/lib/maas/.maas_credentials"
+ - unless: 'test -e /var/lib/maas/.maas_credentials'
+
+# TODO: implement set_storage_layout via _modules/maas.py
+set_storage_layout:
+ cmd.run:
+ - name: "maas login {{ region.admin.username }} http://{{ region.bind.host }}:5240/MAAS/api/2.0 - < /var/lib/maas/.maas_credentials && maas opnfv machine set-storage-layout {{ pillar['system_id'] }} storage_layout={{ pillar['storage_layout'] | default('lvm') }} lv_size={{ pillar['lv_size'] | default('100%') }}"
+ - require:
+ - cmd: maas_login_admin
diff --git a/mcp/salt-formulas/maas/pxe_nat.sls b/mcp/salt-formulas/maas/pxe_nat.sls
new file mode 100644
index 000000000..701bae07a
--- /dev/null
+++ b/mcp/salt-formulas/maas/pxe_nat.sls
@@ -0,0 +1,37 @@
+##############################################################################
+# Copyright (c) 2017 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
+##############################################################################
+net.ipv4.ip_forward:
+ sysctl.present:
+ - value: 1
+
+iptables_pxe_nat:
+ iptables.append:
+ - table: nat
+ - chain: POSTROUTING
+ - jump: MASQUERADE
+ - destination: 0/0
+ - source: {{ salt['pillar.get']('_param:single_address') }}/24
+ - save: True
+
+iptables_pxe_source:
+ iptables.append:
+ - table: filter
+ - chain: INPUT
+ - jump: ACCEPT
+ - destination: 0/0
+ - source: {{ salt['pillar.get']('_param:single_address') }}/24
+ - save: True
+
+iptables_pxe_destination:
+ iptables.append:
+ - table: filter
+ - chain: INPUT
+ - jump: ACCEPT
+ - destination: {{ salt['pillar.get']('_param:single_address') }}/24
+ - source: 0/0
+ - save: True
diff --git a/mcp/salt-formulas/opendaylight/client.sls b/mcp/salt-formulas/opendaylight/client.sls
deleted file mode 100644
index dba51b399..000000000
--- a/mcp/salt-formulas/opendaylight/client.sls
+++ /dev/null
@@ -1,38 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 Mirantis Inc. 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 "opendaylight/map.jinja" import client with context %}
-{%- if client.get('enabled', True) %}
-
-opendaylight_client_packages:
- pkg.installed:
- - pkgs: {{ client.pkgs }}
-
-{%- if pillar.linux.network.bridge is defined and pillar.linux.network.bridge == 'openvswitch' %}
-ovs_set_manager:
- cmd.run:
- - name: "ovs-vsctl set-manager {{ client.ovsdb_server_iface }} {{ client.ovsdb_odl_iface }}"
- - unless: "ovs-vsctl get-manager | grep -Fx {{ client.ovsdb_odl_iface }}"
-
-ovs_set_tunnel_endpoint:
- cmd.run:
- - name: "ovs-vsctl set Open_vSwitch . other_config:local_ip={{ client.tunnel_ip }}"
- - unless: "ovs-vsctl get Open_vSwitch . other_config | fgrep local_ip"
- - require:
- - cmd: ovs_set_manager
-
-{%- if client.provider_mappings is defined %}
-ovs_set_provider_mapping:
- cmd.run:
- - name: "ovs-vsctl set Open_vSwitch . other_config:provider_mappings={{ client.provider_mappings }}"
- - unless: "ovs-vsctl get Open_vSwitch . other_config | fgrep provider_mappings"
- - require:
- - cmd: ovs_set_manager
-{%- endif %}
-
-{%- endif %}
-{%- endif %}
diff --git a/mcp/salt-formulas/opendaylight/files/jetty.xml b/mcp/salt-formulas/opendaylight/files/jetty.xml
index e6371883a..de2ac677d 100644
--- a/mcp/salt-formulas/opendaylight/files/jetty.xml
+++ b/mcp/salt-formulas/opendaylight/files/jetty.xml
@@ -84,7 +84,7 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Property name="jetty.host"/>
</Set>
<Set name="port">
- <Property name="jetty.port" default="8181"/>
+ <Property name="jetty.port" default="{{ server.odl_rest_port }}"/>
</Set>
<Set name="idleTimeout">
<Property name="http.timeout" default="300000"/>
@@ -94,37 +94,6 @@ DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
</Arg>
</Call>
- <Call name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.ServerConnector">
- <Arg name="server">
- <Ref refid="Server" />
- </Arg>
- <Arg name="factories">
- <Array type="org.eclipse.jetty.server.ConnectionFactory">
- <Item>
- <New class="org.eclipse.jetty.server.HttpConnectionFactory">
- <Arg name="config">
- <Ref refid="http-legacy" />
- </Arg>
- </New>
- </Item>
- </Array>
- </Arg>
- <Set name="host">{{ server.odl_bind_ip }}
- <Property name="jetty.host"/>
- </Set>
- <Set name="port">
- <Property name="jetty.port" default="{{ server.odl_rest_port }}"/>
- </Set>
- <Set name="idleTimeout">
- <Property name="http.timeout" default="300000"/>
- </Set>q
- <Set name="name">jetty-legacy</Set>
- </New>
- </Arg>
- </Call>
-
<!-- =========================================================== -->
<!-- Configure Authentication Realms -->
<!-- Realms may be configured for the entire server here, or -->
diff --git a/mcp/salt-formulas/opendaylight/files/setenv.shell b/mcp/salt-formulas/opendaylight/files/setenv.shell
index d7dfbd96c..2921ade14 100644
--- a/mcp/salt-formulas/opendaylight/files/setenv.shell
+++ b/mcp/salt-formulas/opendaylight/files/setenv.shell
@@ -19,4 +19,3 @@ export EXTRA_JAVA_OPTS='{{ server.java_extra_opts }}' # Additional JVM options
# export KARAF_OPTS # Additional available Karaf options
# export KARAF_DEBUG # Enable debug mode
# export KARAF_REDIRECT # Enable/set the std/err redirection when using bin/start
-
diff --git a/mcp/salt-formulas/opendaylight/map.jinja b/mcp/salt-formulas/opendaylight/map.jinja
index 9e9df1dc1..38575111e 100644
--- a/mcp/salt-formulas/opendaylight/map.jinja
+++ b/mcp/salt-formulas/opendaylight/map.jinja
@@ -11,7 +11,7 @@
'karaf_features': {'default': ['standard', 'wrap', 'ssh']},
'odl_rest_port': '8282',
'odl_bind_ip': '0.0.0.0',
- 'repo': 'odl-team/nitrogen',
+ 'repo': 'odl-team/oxygen',
'log_levels': {},
'enable_ha': false,
'ha_node_ips': [],
@@ -26,9 +26,3 @@
'repo': 'opendaylight-6-testing'
},
}, merge=salt['pillar.get']('opendaylight:server')) %}
-
-{%- set client = salt['grains.filter_by']({
- 'Debian': {
- 'pkgs': ['python-networking-odl'],
- },
-}, merge=salt['pillar.get']('opendaylight:client')) %}
diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls
index f953cddc0..51a4d9f95 100644
--- a/mcp/salt-formulas/opendaylight/server.sls
+++ b/mcp/salt-formulas/opendaylight/server.sls
@@ -15,10 +15,10 @@ opendaylight_repo_key:
- name: "apt-key adv --keyserver keyserver.ubuntu.com --recv 44C05248"
{%- if system.proxy is defined and system.proxy.keyserver is defined %}
- env:
-{%- if system.proxy.keyserver.http is defined %}
+{%- if system.proxy.keyserver.http is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.http %}
- http_proxy: {{ system.proxy.keyserver.http }}
{%- endif %}
-{%- if system.proxy.keyserver.https is defined %}
+{%- if system.proxy.keyserver.https is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.https %}
- https_proxy: {{ system.proxy.keyserver.https }}
{%- endif %}
{%- endif %}
@@ -29,8 +29,8 @@ opendaylight_repo:
# https://github.com/saltstack/salt/pull/45224
# - ppa: {{ server.repo }}
- human_name: opendaylight-ppa
- - name: deb http://ppa.launchpad.net/odl-team/nitrogen/ubuntu xenial main
- - file: /etc/apt/sources.list.d/odl-team-ubuntu-nitrogen-xenial.list
+ - name: deb http://ppa.launchpad.net/odl-team/{{ server.version }}/ubuntu xenial main
+ - file: /etc/apt/sources.list.d/odl-team-ubuntu-{{ server.version }}-xenial.list
opendaylight:
pkg.installed:
@@ -49,6 +49,13 @@ opendaylight:
- ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
- ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
+# TODO: use service.masked state once salt get updated to 2017.7.0+
+service.mask:
+ module.run:
+ - m_name: opendaylight
+ - require_in:
+ - pkg: opendaylight
+
/opt/opendaylight/etc/jetty.xml:
file.managed:
- source: salt://opendaylight/files/jetty.xml
@@ -78,6 +85,7 @@ opendaylight:
ini.options_present:
- sections:
org.ops4j.pax.web.listening.addresses: {{ server.odl_bind_ip }}
+ org.osgi.service.http.port: {{ server.odl_rest_port }}
{%- if server.get('router_enabled', false) %}
/opt/opendaylight/etc/custom.properties:
diff --git a/mcp/salt-formulas/opnfv/route_wrapper.sls b/mcp/salt-formulas/opnfv/route_wrapper.sls
new file mode 100644
index 000000000..6132f317e
--- /dev/null
+++ b/mcp/salt-formulas/opnfv/route_wrapper.sls
@@ -0,0 +1,27 @@
+##############################################################################
+# 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
+##############################################################################
+/usr/local/sbin/route:
+ file.managed:
+ - contents: |
+ #!/bin/sh
+
+ # Workaround salt-managed routes breaking ifup when route already exists
+ route_binary='/sbin/route'
+ route_output=$("${route_binary}" "$@" 2>&1)
+ route_return=$?
+
+ if [ -n "${route_output}" ]; then
+ if echo "${route_output}" | grep -q 'SIOCADDRT: File exists'; then
+ exit 0
+ fi
+ echo "${route_output}"
+ fi
+ exit "${route_return}"
+ - user: root
+ - group: root
+ - mode: 755
diff --git a/mcp/scripts/.gitignore b/mcp/scripts/.gitignore
new file mode 100644
index 000000000..a7f658e4e
--- /dev/null
+++ b/mcp/scripts/.gitignore
@@ -0,0 +1,3 @@
+mcp.rsa*
+user-data.*.sh
+xdf_data.sh
diff --git a/mcp/scripts/globals.sh b/mcp/scripts/globals.sh
index fe8d7a3f9..54f015cf6 100644
--- a/mcp/scripts/globals.sh
+++ b/mcp/scripts/globals.sh
@@ -12,8 +12,45 @@ export CI_DEBUG=${CI_DEBUG:-0}; [[ "${CI_DEBUG}" =~ (false|0) ]] || set -x
export SSH_KEY=${SSH_KEY:-"/var/lib/opnfv/mcp.rsa"}
export SALT_MASTER=${INSTALLER_IP:-10.20.0.2}
export SALT_MASTER_USER=${SALT_MASTER_USER:-ubuntu}
+
+# Derived from INSTALLER_IP
+export MCPCONTROL_NET=${MCPCONTROL_NET:-${SALT_MASTER%.*}.0}
+export MCPCONTROL_PREFIX=${MCPCONTROL_PREFIX:-24}
export MAAS_IP=${MAAS_IP:-${SALT_MASTER%.*}.3}
-# Derivated from above global vars
+# Derived from above global vars, not overideable
export SSH_OPTS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ${SSH_KEY}"
export SSH_SALT="${SALT_MASTER_USER}@${SALT_MASTER}"
+
+##############################################################################
+# BEGIN of colored notification wrappers
+#
+
+# same as `notify_i` + trailing '\n';
+function notify() {
+ local msg=${1}; shift
+ notify_i "${msg}\n" "$@"
+}
+
+# Inline (no newline added) colored output notification wrapper
+function notify_i() {
+ tput setaf "${2:-1}" || true
+ echo -en "${1:-"[WARN] Unsupported opt arg: $3\\n"}"
+ tput sgr0
+}
+
+# same as `notify` + extra '\n' before and after;
+function notify_n() {
+ local msg=${1}; shift
+ notify_i "\n${msg}\n\n" "$@"
+}
+
+# same as `notify` + stderr output + exit;
+function notify_e() {
+ local msg=${1}; shift
+ notify_i "\n${msg}\n\n" "$@" 1>&2
+ exit 1
+}
+#
+# END of colored notification wrapper
+##############################################################################
diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh
index d91dcc3e1..ce5db251f 100644
--- a/mcp/scripts/lib.sh
+++ b/mcp/scripts/lib.sh
@@ -1,7 +1,7 @@
#!/bin/bash -e
-# shellcheck disable=SC2155,SC1001
+# shellcheck disable=SC2155,SC1001,SC2015,SC2128
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -38,10 +38,11 @@ function get_base_image {
function __kernel_modules {
# Load mandatory kernel modules: loop, nbd
local image_dir=$1
- sudo modprobe loop
+ test -e /dev/loop-control || sudo modprobe loop
if sudo modprobe nbd max_part=8 || sudo modprobe -f nbd max_part=8; then
return 0
fi
+ if [ -e /dev/nbd0 ]; then return 0; fi # nbd might be inbuilt
# CentOS (or RHEL family in general) do not provide 'nbd' out of the box
echo "[WARN] 'nbd' kernel module cannot be loaded!"
if [ ! -e /etc/redhat-release ]; then
@@ -120,7 +121,7 @@ function mount_image {
break
fi
done
- OPNFV_LOOP_DEV=$(losetup -f)
+ OPNFV_LOOP_DEV=$(sudo losetup -f)
OPNFV_MAP_DEV=/dev/mapper/$(basename "${OPNFV_NBD_DEV}")p1
export OPNFV_MNT_DIR OPNFV_LOOP_DEV
[ -n "${OPNFV_NBD_DEV}" ] && [ -n "${OPNFV_LOOP_DEV}" ] || exit 1
@@ -213,7 +214,7 @@ function cleanup_mounts {
fi
fi
if [ -n "${OPNFV_LOOP_DEV}" ] && \
- losetup "${OPNFV_LOOP_DEV}" 1>&2 > /dev/null; then
+ sudo losetup "${OPNFV_LOOP_DEV}" 1>&2 > /dev/null; then
sudo losetup -d "${OPNFV_LOOP_DEV}"
fi
if [ -n "${OPNFV_NBD_DEV}" ]; then
@@ -225,6 +226,7 @@ function cleanup_mounts {
function cleanup_uefi {
# Clean up Ubuntu boot entry if cfg01, kvm nodes online from previous deploy
local cmd_str="ssh ${SSH_OPTS} ${SSH_SALT}"
+ ping -c 1 -w 1 "${SALT_MASTER}" || return 0
[ ! "$(hostname)" = 'cfg01' ] || cmd_str='eval'
${cmd_str} "sudo salt -C 'kvm* or cmp*' cmd.run \
\"which efibootmgr > /dev/null 2>&1 && \
@@ -282,14 +284,21 @@ function prepare_vms {
ln -sf "${image_dir}/${_tmp}" "${image_dir}/${image}"
fi
- envsubst < user-data.template > user-data.sh # CWD should be <mcp/scripts>
-
# Create config ISO and resize OS disk image for each foundation node VM
for node in "${vnodes[@]}"; do
- ./create-config-drive.sh -k "$(basename "${SSH_KEY}").pub" -u user-data.sh \
- -h "${node}" "${image_dir}/mcp_${node}.iso"
+ if [[ "${node}" =~ ^(cfg01|mas01) ]]; then
+ user_data='user-data.mcp.sh'
+ else
+ user_data='user-data.admin.sh'
+ fi
+ ./create-config-drive.sh -k "$(basename "${SSH_KEY}").pub" \
+ -u "${user_data}" -h "${node}" "${image_dir}/mcp_${node}.iso"
cp "${image_dir}/${image}" "${image_dir}/mcp_${node}.qcow2"
qemu-img resize "${image_dir}/mcp_${node}.qcow2" 100G
+ # Prepare dedicated drive for cinder on cmp nodes
+ if [[ "${node}" =~ ^(cmp) ]]; then
+ qemu-img create "${image_dir}/mcp_${node}_storage.qcow2" 100G
+ fi
done
# VCP VMs base image specific changes
@@ -310,19 +319,72 @@ function prepare_vms {
fi
}
+function jumpserver_pkg_install {
+ if [ -n "$(command -v apt-get)" ]; then
+ pkg_type='deb'; pkg_cmd='sudo apt-get install -y'
+ else
+ pkg_type='rpm'; pkg_cmd='sudo yum install -y --skip-broken'
+ fi
+ eval "$(parse_yaml "./requirements_${pkg_type}.yaml")"
+ for section in 'common' "$(uname -i)"; do
+ section_var="requirements_pkg_${section}[*]"
+ pkg_list+=" ${!section_var}"
+ done
+ # shellcheck disable=SC2086
+ ${pkg_cmd} ${pkg_list}
+}
+
+function jumpserver_check_requirements {
+ # shellcheck disable=SC2178
+ local vnodes=$1; shift
+ local br=("$@")
+ local err_br_not_found='Linux bridge not found!'
+ local err_br_virsh_net='is a virtual network, Linux bridge expected!'
+ local warn_br_endpoint="Endpoints might be inaccessible from external hosts!"
+ # MaaS requires a Linux bridge for PXE/admin
+ if [[ "${vnodes}" =~ mas01 ]]; then
+ if ! brctl showmacs "${br[0]}" >/dev/null 2>&1; then
+ notify_e "[ERROR] PXE/admin (${br[0]}) ${err_br_not_found}"
+ fi
+ # Assume virsh network name matches bridge name (true if created by us)
+ if virsh net-info "${br[0]}" >/dev/null 2>&1; then
+ notify_e "[ERROR] ${br[0]} ${err_br_virsh_net}"
+ fi
+ fi
+ # If virtual nodes are present, public should be a Linux bridge
+ if [ "$(echo "${vnodes}" | wc -w)" -gt 2 ]; then
+ if ! brctl showmacs "${br[3]}" >/dev/null 2>&1; then
+ if [[ "${vnodes}" =~ mas01 ]]; then
+ # Baremetal nodes *require* a proper public network
+ notify_e "[ERROR] Public (${br[3]}) ${err_br_not_found}"
+ else
+ notify_n "[WARN] Public (${br[3]}) ${err_br_not_found}" 3
+ notify_n "[WARN] ${warn_br_endpoint}" 3
+ fi
+ fi
+ if virsh net-info "${br[3]}" >/dev/null 2>&1; then
+ if [[ "${vnodes}" =~ mas01 ]]; then
+ notify_e "[ERROR] ${br[3]} ${err_br_virsh_net}"
+ else
+ notify_n "[WARN] ${br[3]} ${err_br_virsh_net}" 3
+ notify_n "[WARN] ${warn_br_endpoint}" 3
+ fi
+ fi
+ fi
+}
+
function create_networks {
local vnode_networks=("$@")
# create required networks, including constant "mcpcontrol"
- # FIXME(alav): since we renamed "pxe" to "mcpcontrol", we need to make sure
- # we delete the old "pxe" virtual network, or it would cause IP conflicts.
- for net in "pxe" "mcpcontrol" "${vnode_networks[@]}"; do
+ for net in "mcpcontrol" "${vnode_networks[@]}"; do
if virsh net-info "${net}" >/dev/null 2>&1; then
virsh net-destroy "${net}" || true
virsh net-undefine "${net}"
fi
# in case of custom network, host should already have the bridge in place
- if [ -f "net_${net}.xml" ] && [ ! -d "/sys/class/net/${net}/bridge" ]; then
- virsh net-define "net_${net}.xml"
+ if [ -f "virsh_net/net_${net}.xml" ] && \
+ [ ! -d "/sys/class/net/${net}/bridge" ]; then
+ virsh net-define "virsh_net/net_${net}.xml"
virsh net-autostart "${net}"
virsh net-start "${net}"
fi
@@ -334,7 +396,6 @@ function create_vms {
# vnode data should be serialized with the following format:
# '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
IFS='|' read -r -a vnodes <<< "$1"; shift
- local vnode_networks=("$@")
# AArch64: prepare arch specific arguments
local virt_extra_args=""
@@ -348,20 +409,30 @@ function create_vms {
IFS=',' read -r -a vnode_data <<< "${serialized_vnode_data}"
# prepare network args
- net_args=" --network network=mcpcontrol,model=virtio"
- if [ "${DEPLOY_TYPE:-}" = 'baremetal' ]; then
+ local vnode_networks=("$@")
+ if [[ "${vnode_data[0]}" =~ ^(cfg01|mas01) ]]; then
+ net_args=" --network network=mcpcontrol,model=virtio"
# 3rd interface gets connected to PXE/Admin Bridge (cfg01, mas01)
vnode_networks[2]="${vnode_networks[0]}"
+ else
+ net_args=" --network bridge=${vnode_networks[0]},model=virtio"
fi
for net in "${vnode_networks[@]:1}"; do
net_args="${net_args} --network bridge=${net},model=virtio"
done
+ # dedicated storage drive for cinder on cmp nodes
+ virt_extra_storage=
+ if [[ "${vnode_data[0]}" =~ ^(cmp) ]]; then
+ virt_extra_storage="--disk path=${image_dir}/mcp_${vnode_data[0]}_storage.qcow2,format=qcow2,bus=virtio,cache=none,io=native"
+ fi
+
# shellcheck disable=SC2086
virt-install --name "${vnode_data[0]}" \
--ram "${vnode_data[1]}" --vcpus "${vnode_data[2]}" \
--cpu host-passthrough --accelerate ${net_args} \
--disk path="${image_dir}/mcp_${vnode_data[0]}.qcow2",format=qcow2,bus=virtio,cache=none,io=native \
+ ${virt_extra_storage} \
--os-type linux --os-variant none \
--boot hd --vnc --console pty --autostart --noreboot \
--disk path="${image_dir}/mcp_${vnode_data[0]}.iso",device=cdrom \
@@ -443,12 +514,11 @@ function wait_for {
for attempt in $(seq "${total_attempts}"); do
echo "[wait_for] Attempt ${attempt}/${total_attempts%.*} for: ${cmdstr}"
if [ "${total_attempts%.*}" = "${total_attempts}" ]; then
- # shellcheck disable=SC2015
eval "${cmdstr}" && echo "[wait_for] OK: ${cmdstr}" && return 0 || true
else
- !(eval "${cmdstr}" || echo __fuel_wf_failure__) |& tee /dev/stderr | \
- grep -Eq '(Not connected|No response|__fuel_wf_failure__)' && \
- echo "[wait_for] OK: ${cmdstr}" && return 0 || true
+ ! (eval "${cmdstr}" || echo 'No response') |& tee /dev/stderr | \
+ grep -Eq '(Not connected|No response)' && \
+ echo "[wait_for] OK: ${cmdstr}" && return 0 || true
fi
sleep "${sleep_time}"
done
@@ -460,15 +530,18 @@ function wait_for {
function do_sysctl_cfg {
local _conf='/etc/sysctl.d/99-opnfv-fuel-bridge.conf'
# https://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf
- echo 'net.bridge.bridge-nf-call-arptables = 0' |& sudo tee "${_conf}"
- echo 'net.bridge.bridge-nf-call-iptables = 0' |& sudo tee -a "${_conf}"
- echo 'net.bridge.bridge-nf-call-ip6tables = 0' |& sudo tee -a "${_conf}"
- sudo sysctl -q -p "${_conf}"
+ if modprobe br_netfilter bridge; then
+ echo 'net.bridge.bridge-nf-call-arptables = 0' |& sudo tee "${_conf}"
+ echo 'net.bridge.bridge-nf-call-iptables = 0' |& sudo tee -a "${_conf}"
+ echo 'net.bridge.bridge-nf-call-ip6tables = 0' |& sudo tee -a "${_conf}"
+ # Some distros / sysadmins explicitly blacklist br_netfilter
+ sudo sysctl -q -p "${_conf}" || true
+ fi
}
function get_nova_compute_pillar_data {
local value=$(salt -C 'I@nova:compute and *01*' pillar.get _param:"${1}" --out yaml | cut -d ' ' -f2)
if [ "${value}" != "''" ]; then
- echo ${value}
+ echo "${value}"
fi
}
diff --git a/mcp/scripts/lib_template.sh b/mcp/scripts/lib_template.sh
new file mode 100644
index 000000000..0fbe628b7
--- /dev/null
+++ b/mcp/scripts/lib_template.sh
@@ -0,0 +1,88 @@
+#!/bin/bash -e
+# shellcheck disable=SC2155,SC1001,SC2015,SC2128
+##############################################################################
+# 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
+##############################################################################
+#
+# Library of shell functions dedicated to j2 template handling
+#
+
+PHAROS_GEN_CFG='./pharos/config/utils/generate_config.py'
+PHAROS_IA='./pharos/config/installers/fuel/pod_config.yml.j2'
+PHAROS_VALIDATE_SCHEMA_SCRIPT='./pharos/config/utils/validate_schema.py'
+PHAROS_SCHEMA_PDF='./pharos/config/pdf/pod1.schema.yaml'
+PHAROS_SCHEMA_IDF='./pharos/config/pdf/idf-pod1.schema.yaml'
+
+# Handles pod_config and scenarios only
+function do_templates_scenario {
+ local image_dir=$1; shift
+ local target_lab=$1; shift
+ local target_pod=$1; shift
+ local lab_config_uri=$1; shift
+ local scenario_dir=$1
+
+ BASE_CONFIG_PDF="${lab_config_uri}/labs/${target_lab}/${target_pod}.yaml"
+ BASE_CONFIG_IDF="${lab_config_uri}/labs/${target_lab}/idf-${target_pod}.yaml"
+ LOCAL_PDF="${image_dir}/$(basename "${BASE_CONFIG_PDF}")"
+ LOCAL_IDF="${image_dir}/$(basename "${BASE_CONFIG_IDF}")"
+
+ # Make sample PDF/IDF available via default lab-config (pharos submodule)
+ ln -sf "$(readlink -f "../config/labs/local")" "./pharos/labs/"
+
+ # Expand scenario file and main reclass input (pod_config.yaml) based on PDF
+ if ! curl --create-dirs -o "${LOCAL_PDF}" "${BASE_CONFIG_PDF}"; then
+ notify_e "[ERROR] Could not retrieve PDF (Pod Descriptor File)!"
+ elif ! curl -o "${LOCAL_IDF}" "${BASE_CONFIG_IDF}"; then
+ notify_e "[ERROR] Could not retrieve IDF (Installer Descriptor File)!"
+ fi
+ # Check first if configuration files are valid
+ if [[ ! "$target_pod" =~ "virtual" ]]; then
+ if ! "${PHAROS_VALIDATE_SCHEMA_SCRIPT}" -y "${LOCAL_PDF}" \
+ -s "${PHAROS_SCHEMA_PDF}"; then
+ notify_e "[ERROR] PDF does not match yaml schema!"
+ elif ! "${PHAROS_VALIDATE_SCHEMA_SCRIPT}" -y "${LOCAL_IDF}" \
+ -s "${PHAROS_SCHEMA_IDF}"; then
+ notify_e "[ERROR] IDF does not match yaml schema!"
+ fi
+ fi
+ if ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" \
+ -j "${PHAROS_IA}" -v > "${image_dir}/pod_config.yml"; then
+ notify_e "[ERROR] Could not convert PDF+IDF to reclass model input!"
+ fi
+ printenv | \
+ awk '/^(SALT|MCP|MAAS).*=/ { gsub(/=/,": "); print }' >> "${LOCAL_PDF}"
+ j2args=$(find "${scenario_dir}" -name '*.j2' -exec echo -j {} \;)
+ # shellcheck disable=SC2086
+ if ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" ${j2args} -b -v \
+ -i "$(dirname "$(readlink -f "${PHAROS_IA}")")"; then
+ notify_e '[ERROR] Could not convert j2 scenario definitions!'
+ fi
+}
+
+# Expand reclass and virsh network templates based on PDF + IDF + others
+function do_templates_cluster {
+ local image_dir=$1; shift
+ local target_lab=$1; shift
+ local target_pod=$1; shift
+ local git_repo_root=$1; shift
+ local extra_yaml=("$@")
+
+ RECLASS_CLUSTER_DIR=$(cd "${git_repo_root}/mcp/reclass/classes/cluster"; pwd)
+ LOCAL_PDF="${image_dir}/${target_pod}.yaml"
+
+ for _yaml in "${extra_yaml[@]}"; do
+ awk '/^---$/{f=1;next;}f' "${_yaml}" >> "${LOCAL_PDF}"
+ done
+ # shellcheck disable=SC2046
+ j2args=$(find "${RECLASS_CLUSTER_DIR}" "$(readlink -f virsh_net)" $(readlink -f ./*j2) \
+ -name '*.j2' -exec echo -j {} \;)
+ # shellcheck disable=SC2086
+ if ! "${PHAROS_GEN_CFG}" -y "${LOCAL_PDF}" ${j2args} -b -v \
+ -i "$(dirname "$(readlink -f "${PHAROS_IA}")")"; then
+ notify_e '[ERROR] Could not convert PDF to network definitions!'
+ fi
+}
diff --git a/mcp/scripts/net_public.xml b/mcp/scripts/net_public.xml
deleted file mode 100644
index d6df4aa30..000000000
--- a/mcp/scripts/net_public.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<!--
- Copyright (c) 2017 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
--->
-<network>
- <name>public</name>
- <bridge name="public"/>
- <forward mode="nat"/>
- <ip address="10.16.0.1" netmask="255.255.255.0" />
-</network>
diff --git a/mcp/scripts/pharos b/mcp/scripts/pharos
-Subproject 77b600ef0d64210c1b5fd72581cfe7752fa00c8
+Subproject 68dc60c1aa7199279995c1fee59ad151b5012af
diff --git a/mcp/scripts/requirements_deb.yaml b/mcp/scripts/requirements_deb.yaml
index 9a6ec8273..04ddcf631 100644
--- a/mcp/scripts/requirements_deb.yaml
+++ b/mcp/scripts/requirements_deb.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -23,15 +23,14 @@ requirements_pkg:
- rsync
- uuid-runtime
- virtinst
+ # python is indirectly required for PDF parsing
+ - python
+ - python-ipaddress
+ - python-jinja2
+ - python-yaml
+ - python-jsonschema
# Optional, arch-specific requirements, matched by key name = $(uname -m)
aarch64:
# AArch64 VMs use AAVMF (guest UEFI)
- ipxe-qemu
- qemu-efi
- # Optional, deploy-type-specific requirements
- baremetal:
- # For baremetal, python is indirectly required for PDF parsing
- - python
- - python-ipaddress
- - python-jinja2
- - python-yaml
diff --git a/mcp/scripts/requirements_rpm.yaml b/mcp/scripts/requirements_rpm.yaml
index ebd7e85dc..3df4d0a80 100644
--- a/mcp/scripts/requirements_rpm.yaml
+++ b/mcp/scripts/requirements_rpm.yaml
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -16,6 +16,8 @@ requirements_pkg:
- elfutils-libelf-devel
- e2fsprogs
- genisoimage
+ - gcc
+ - gdisk
- git
- kpartx
- libvirt
@@ -27,14 +29,13 @@ requirements_pkg:
- util-linux
- virt-install
- wget
- # Optional, arch-specific requirements, matched by key name = $(uname -m)
- aarch64:
- # AArch64 VMs use AAVMF (guest UEFI)
- - AAVMF
- # Optional, deploy-type-specific requirements
- baremetal:
- # For baremetal, python is indirectly required for PDF parsing
+ # For python is indirectly required for PDF parsing
- python
- python-ipaddress
- python-jinja2
- python-yaml
+ - python-jsonschema
+ # Optional, arch-specific requirements, matched by key name = $(uname -m)
+ aarch64:
+ # AArch64 VMs use AAVMF (guest UEFI)
+ - AAVMF
diff --git a/mcp/scripts/salt.sh b/mcp/scripts/salt.sh
index 03218e27f..aecfecea4 100755
--- a/mcp/scripts/salt.sh
+++ b/mcp/scripts/salt.sh
@@ -16,15 +16,15 @@ F_GIT_DIR=$(cd "${F_GIT_ROOT}/mcp" && git rev-parse --git-dir)
F_GIT_SUBD=${F_GIT_ROOT#${F_GIT_DIR%%/.git*}}
OPNFV_TMP_DIR="/home/${SALT_MASTER_USER}/opnfv"
OPNFV_GIT_DIR="/root/opnfv"
-OPNFV_FUEL_DIR="/root/fuel"
+OPNFV_FUEL_DIR="/root/fuel" # Should be in sync with patch.sh, scripts patches
OPNFV_RDIR="reclass/classes/cluster/all-mcp-arch-common"
OPNFV_VCP_IMG="mcp/scripts/base_image_opnfv_fuel_vcp.img"
OPNFV_VCP_DIR="/srv/salt/env/prd/salt/files/control/images"
LOCAL_GIT_DIR="${F_GIT_ROOT%${F_GIT_SUBD}}"
-LOCAL_PDF_RECLASS=$1
-NODE_MASK='*'
-
-[[ "${CLUSTER_DOMAIN}" =~ virtual ]] || NODE_MASK='mas01*'
+LOCAL_PDF_RECLASS=$1; shift
+# shellcheck disable=SC2116,SC2086
+LOCAL_VIRT_NODES=$(echo ${*//cfg01/}) # unquoted to filter space
+NODE_MASK="${LOCAL_VIRT_NODES// /|}"
# push to cfg01 current git repo first (including submodules), at ~ubuntu/opnfv
# later we move it to ~root/opnfv (and ln as ~root/fuel); delete the temp clone
@@ -63,18 +63,25 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
ln -sf ${OPNFV_GIT_DIR}${F_GIT_SUBD} ${OPNFV_FUEL_DIR}
ln -sf ${OPNFV_FUEL_DIR}/mcp/reclass /srv/salt
ln -sf ${OPNFV_FUEL_DIR}/mcp/deploy/scripts /srv/salt
+ ln -sf ${OPNFV_FUEL_DIR}/mcp/scripts/mcp.rsa $(dirname "${OPNFV_FUEL_DIR}")
cd /srv/salt/${OPNFV_RDIR} && rm -f arch && ln -sf "\$(uname -i)" arch
cp -r ${OPNFV_FUEL_DIR}/mcp/metadata/service /usr/share/salt-formulas/reclass
cd /srv/salt/reclass/classes/service && \
ln -sf /usr/share/salt-formulas/reclass/service/opendaylight
+ # Armband APT-MK nightly/extra repo for forked & extended reclass
+ wget -qO - https://linux.enea.com/apt-mk/public.gpg | apt-key add -
+ echo 'deb http://linux.enea.com/apt-mk/xenial nightly extra' > \
+ '/etc/apt/sources.list.d/armband_mcp_extra.list'
+ apt-get update
+
cd /srv/salt/scripts
export DEBIAN_FRONTEND=noninteractive
echo 'Dpkg::Use-Pty "0";' > /etc/apt/apt.conf.d/90silence-dpkg
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=stable \
+ MASTER_HOSTNAME=cfg01.${CLUSTER_DOMAIN} DISTRIB_REVISION=nightly \
EXTRA_FORMULAS="nfs" \
./salt-master-init.sh
salt-key -Ay
@@ -96,21 +103,26 @@ ssh ${SSH_OPTS} "${SSH_SALT}" bash -s -e << SALT_INSTALL_END
fi
# Init specific to VMs on FN (all for virtual, cfg|mas for baremetal)
- salt -C "${NODE_MASK} or cfg01*" saltutil.sync_all
- wait_for 3.0 'salt -C "${NODE_MASK} or cfg01*" state.apply salt'
wait_for 3.0 'salt -C "cfg01*" state.apply linux'
+ if [[ "${LOCAL_VIRT_NODES}" =~ mas ]]; then
+ wait_for 3.0 'salt -C "mas*" test.ping'
+ else
+ wait_for 3.0 '(for n in ${LOCAL_VIRT_NODES}; do salt -C \${n}.* test.ping || exit; done)'
+ fi
+ wait_for 3.0 'salt -C "E@^(${NODE_MASK}|cfg01).*" saltutil.sync_all'
+ wait_for 3.0 'salt -C "E@^(${NODE_MASK}|cfg01).*" state.apply salt'
- salt -C "${NODE_MASK} and not cfg01*" state.sls linux || true
- salt -C "${NODE_MASK} and not cfg01*" pkg.upgrade refresh=False
+ wait_for 3.0 'salt -C "E@^(${NODE_MASK}).*" state.sls linux.system,linux.storage'
+ wait_for 2.0 'salt -C "E@^(${NODE_MASK}).*" state.sls linux.network' || true
+ salt -C "E@^(${NODE_MASK}).*" state.sls opnfv.route_wrapper
+ salt -C "E@^(${NODE_MASK}).*" system.reboot
+ wait_for 90.0 'salt -C "E@^(${NODE_MASK}).*" test.ping'
+ wait_for 3.0 'salt -C "E@^(${NODE_MASK}).*" pkg.upgrade refresh=False dist_upgrade=True'
- salt -C "${NODE_MASK} or cfg01*" state.sls ntp
+ wait_for 3.0 'salt -C "E@^(${NODE_MASK}|cfg01).*" state.sls ntp'
if [ -f "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" ]; then
mkdir -p "${OPNFV_VCP_DIR}"
mv "${OPNFV_FUEL_DIR}/${OPNFV_VCP_IMG}" "${OPNFV_VCP_DIR}/"
fi
-
- # symlink manually until package with required commit is available
- cd /usr/share/salt-formulas/env/aodh/files
- ln -sf ocata pike
SALT_INSTALL_END
diff --git a/mcp/scripts/sysinfo_print.sh b/mcp/scripts/sysinfo_print.sh
index bff36aff4..49ed8247c 100755
--- a/mcp/scripts/sysinfo_print.sh
+++ b/mcp/scripts/sysinfo_print.sh
@@ -10,9 +10,19 @@
# Collect jump server system information for deploy debugging
#
+# HW info
+cat /proc/cpuinfo
+free -mh
+df -h
+
# Network info
brctl show
+ip a
+route -n
# Distro & pkg info
cat /etc/*-release
uname -a
+
+# Misc info
+sudo losetup -a
diff --git a/mcp/scripts/user-data.admin.sh.j2 b/mcp/scripts/user-data.admin.sh.j2
new file mode 100644
index 000000000..d9b86c79c
--- /dev/null
+++ b/mcp/scripts/user-data.admin.sh.j2
@@ -0,0 +1,14 @@
+#!/bin/bash
+##############################################################################
+# 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
+##############################################################################
+rm /etc/salt/minion_id
+rm -f /etc/salt/pki/minion/minion_master.pub
+echo "id: $(hostname).{{ conf.cluster.domain }}" > /etc/salt/minion
+{#- should be in sync with 'opnfv_infra_config_pxe_address' in 'pharos/config/installers/fuel/pod_config.yml.j2 #}
+echo "master: {{ conf.idf.net_config.admin.network | ipaddr_index(2) }}" >> /etc/salt/minion
+service salt-minion restart
diff --git a/mcp/scripts/user-data.template b/mcp/scripts/user-data.mcp.sh.j2
index 189310be4..bd80961e6 100644
--- a/mcp/scripts/user-data.template
+++ b/mcp/scripts/user-data.mcp.sh.j2
@@ -1,6 +1,6 @@
#!/bin/bash
##############################################################################
-# Copyright (c) 2017 Mirantis Inc., Enea AB and others.
+# 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
@@ -8,6 +8,6 @@
##############################################################################
rm /etc/salt/minion_id
rm -f /etc/salt/pki/minion/minion_master.pub
-echo "id: $(hostname).${CLUSTER_DOMAIN}" > /etc/salt/minion
-echo "master: ${SALT_MASTER}" >> /etc/salt/minion
+echo "id: $(hostname).{{ conf.cluster.domain }}" > /etc/salt/minion
+echo "master: {{ conf.SALT_MASTER }}" >> /etc/salt/minion
service salt-minion restart
diff --git a/mcp/scripts/net_internal.xml b/mcp/scripts/virsh_net/net_internal.xml
index 8cf875e7c..8cf875e7c 100644
--- a/mcp/scripts/net_internal.xml
+++ b/mcp/scripts/virsh_net/net_internal.xml
diff --git a/mcp/scripts/net_mcpcontrol.xml.template b/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2
index e0034fd16..95424db4e 100644
--- a/mcp/scripts/net_mcpcontrol.xml.template
+++ b/mcp/scripts/virsh_net/net_mcpcontrol.xml.j2
@@ -6,13 +6,14 @@
which accompanies this distribution, and is available at
http://www.apache.org/licenses/LICENSE-2.0
-->
+{#- conf.MCPCONTROL_NET & co are mandatory, defaults are set via globals.sh #}
<network>
<name>mcpcontrol</name>
<bridge name="mcpcontrol"/>
<forward mode="nat"/>
- <ip address="${SALT_MASTER%.*}.1" netmask="255.255.255.0">
+ <ip address="{{ conf.MCPCONTROL_NET | ipaddr_index(1) }}" netmask="{{ conf.MCPCONTROL_PREFIX | netmask }}">
<dhcp>
- <range start="${SALT_MASTER%.*}.2" end="${SALT_MASTER%.*}.254"/>
+ <range start="{{ conf.MCPCONTROL_NET | ipaddr_index(2) }}" end="{{ conf.MCPCONTROL_NET | ipaddr_index(254) }}"/>
</dhcp>
</ip>
</network>
diff --git a/mcp/scripts/net_mgmt.xml b/mcp/scripts/virsh_net/net_mgmt.xml.j2
index 4fbec712a..a558293fa 100644
--- a/mcp/scripts/net_mgmt.xml
+++ b/mcp/scripts/virsh_net/net_mgmt.xml.j2
@@ -6,8 +6,15 @@
which accompanies this distribution, and is available at
http://www.apache.org/licenses/LICENSE-2.0
-->
+{%- if conf.idf.net_config.mgmt is defined %}
+ {%- set mgmt_network = conf.idf.net_config.mgmt.network %}
+ {%- set mgmt_prefix = conf.idf.net_config.mgmt.mask %}
+{%- else %}
+ {%- set mgmt_network = '172.16.10.0' %}
+ {%- set mgmt_prefix = '24' %}
+{%- endif %}
<network>
<name>mgmt</name>
<bridge name="mgmt"/>
- <ip address="172.16.10.1" netmask="255.255.255.0"/>
+ <ip address="{{ mgmt_network | ipaddr_index(1) }}" netmask="{{ mgmt_prefix | netmask }}"/>
</network>
diff --git a/mcp/scripts/virsh_net/net_public.xml.j2 b/mcp/scripts/virsh_net/net_public.xml.j2
new file mode 100644
index 000000000..737b638b3
--- /dev/null
+++ b/mcp/scripts/virsh_net/net_public.xml.j2
@@ -0,0 +1,32 @@
+<!--
+ 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
+-->
+{%- set cluster = {'has_virtual_nodes': False} %}
+{%- for node in conf.nodes %}
+ {%- if not cluster.has_virtual_nodes and node.node.type == 'virtual' %}
+ {%- do cluster.update({'has_virtual_nodes': True}) %}
+ {%- endif %}
+{%- endfor %}
+{%- if conf.idf.net_config.public is defined %}
+ {%- set public_network = conf.idf.net_config.public.network %}
+ {%- set public_prefix = conf.idf.net_config.public.mask %}
+{%- else %}
+ {%- set public_network = '10.16.0.0' %}
+ {%- set public_prefix = '24' %}
+{%- endif %}
+<network>
+ <name>public</name>
+ <bridge name="public"/>
+{%- if cluster.has_virtual_nodes %}
+{#- Ideally, jumpserver would have a real Linux bridge we will hook to.
+ In case it doesn't, we use this virsh network as a *mock* public.
+ The *mock* public should NOT overlap with the real public in any way. #}
+ <forward mode="nat"/>
+ <ip address="{{ public_network | ipaddr_index(1) }}" netmask="{{ public_prefix | netmask }}"/>
+{%- endif %}
+</network>
diff --git a/mcp/scripts/virsh_net/net_pxebr.xml.j2 b/mcp/scripts/virsh_net/net_pxebr.xml.j2
new file mode 100644
index 000000000..f82780cf7
--- /dev/null
+++ b/mcp/scripts/virsh_net/net_pxebr.xml.j2
@@ -0,0 +1,26 @@
+<!--
+ 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
+-->
+{%- if conf.idf.net_config.admin is defined %}
+ {%- set pxebr_network = conf.idf.net_config.admin.network %}
+ {%- set pxebr_prefix = conf.idf.net_config.admin.mask %}
+{%- else %}
+ {%- set pxebr_network = '192.168.11.0' %}
+ {%- set pxebr_prefix = '24' %}
+{%- endif %}
+<network>
+ <name>pxebr</name>
+ <forward mode="nat"/>
+ <bridge name="pxebr"/>
+ <ip address="{{ pxebr_network | ipaddr_index(1) }}" netmask="{{ pxebr_prefix | netmask }}">
+ <!-- NOTE: .254 is harcoded for now (for /24 prefix), should be computed instead. -->
+ <dhcp>
+ <range start="{{ pxebr_network | ipaddr_index(4) }}" end="{{ pxebr_network | ipaddr_index(254) }}"/>
+ </dhcp>
+ </ip>
+</network>
diff --git a/mcp/scripts/xdf_data.sh.j2 b/mcp/scripts/xdf_data.sh.j2
new file mode 100644
index 000000000..8c9d5d969
--- /dev/null
+++ b/mcp/scripts/xdf_data.sh.j2
@@ -0,0 +1,71 @@
+#!/bin/bash -e
+# shellcheck disable=SC2034
+##############################################################################
+# 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
+##############################################################################
+#
+# Data derived from XDF (PDF/IDF/SDF/etc), used as input in deploy.sh
+#
+
+{%- set arch = conf[conf.MCP_JUMP_ARCH] -%}
+
+{%- macro bash_arr(_l) -%}
+ ({%- for n in _l -%}'{{ n }}' {% endfor -%})
+{%- endmacro -%}
+
+{#- Pack list as `sep`-separated string, replacing spaces with '|' -#}
+{%- macro pack(x = [], sep = ',') -%}
+ {{ x | join(sep) | replace(' ', '|') }}
+{%- endmacro -%}
+
+{#- Pack all vnode data as string -#}
+{%- macro serialize_vnodes() -%}
+ {%- set V = conf.virtual -%}
+ {%- set arr = [] -%}
+ {%- for n in V.nodes -%}
+ {%- if n not in V -%}{%- do V.update({n: {}}) -%}{%- endif -%}
+ {%- do arr.append(pack([n, V[n].ram or arch.default.ram,
+ V[n].vcpus or arch.default.vcpus])) -%}
+ {%- endfor -%}
+ '{{ pack(arr, '|') }}'
+{%- endmacro -%}
+
+{#- Pack apt_pkg data as string -#}
+{%- macro serialize_apt_pkg() -%}
+ {%- set arr = [] -%}
+ {%- set sections = [arch.common] -%}
+ {%- if conf.MCP_VCP -%}
+ {%- do sections.append(arch.control) -%}
+ {%- endif -%}
+ {%- for c in sections -%}
+ {%- do arr.append(pack([pack(c.apt['keys']), pack(c.apt.repos),
+ pack(c.pkg.install), pack(c.pkg.remove)], '^')) -%}
+ {%- endfor -%}
+ '{{ pack(arr, '^') }}'
+{%- endmacro -%}
+
+{%- set bridges = conf.idf.fuel.jumphost.bridges %}
+# Determine bridge names based on IDF, where all bridges are now mandatory
+OPNFV_BRIDGES=(
+ '{{ bridges.admin or "pxebr" }}'
+ '{{ bridges.mgmt or "mgmt" }}'
+ '{{ bridges.private or "internal" }}'
+ '{{ bridges.public or "public" }}'
+)
+
+export CLUSTER_DOMAIN={{ conf.cluster.domain }}
+cluster_states={{ bash_arr(conf.cluster.states) }}
+virtual_nodes={{ bash_arr(conf.virtual.nodes) }}
+base_image={{ arch.base_image }}
+
+# Serialize vnode data as '<name0>,<ram0>,<vcpu0>|<name1>,<ram1>,<vcpu1>[...]'
+virtual_nodes_data={{ serialize_vnodes() }}
+
+# Serialize repos, packages to (pre-)install/remove for:
+# - foundation node VM base image (virtual: all VMs, baremetal: cfg01|mas01)
+# - virtualized control plane VM base image (only when VCP is used)
+virtual_repos_pkgs={{ serialize_apt_pkg() }}