From cefce150621699e9d9d3ac5c884a28ee4766c24d Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Sat, 27 Jan 2018 23:59:50 +0100 Subject: [virtual] PDF-based network defs for cluster nodes Decouple virtual cluster nodes (ctl, gtw etc.) from opnfv_fn_* vars in favor of parsing PDF/IDF. This is the first step towards unifying baremetal and virtual network definition templates, as well as allowing virtual nodes to run on a remote hypervisor (and eventually with a different arch). opnfv_fn_* vars will still be used for infra VMs spawned on FN (cfg01 and optionally mas01). Adopt new 'net_map.j2' from Pharos submodule for new templates (virt), as well as old ones (baremetal). JIRA: FUEL-322 Change-Id: I150c2416566bbe42ea11cd00f12a8a7bf96776c2 Signed-off-by: Alexandru Avadanii --- .../openstack_compute.yml | 34 +---------- .../openstack_compute_pdf.yml.j2 | 44 ++++++++++++++ .../openstack_control.yml | 22 +------ .../openstack_control_pdf.yml.j2 | 32 ++++++++++ .../openstack_gateway.yml | 63 +------------------ .../openstack_gateway_pdf.yml.j2 | 70 ++++++++++++++++++++++ 6 files changed, 152 insertions(+), 113 deletions(-) create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute_pdf.yml.j2 create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control_pdf.yml.j2 create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway_pdf.yml.j2 (limited to 'mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha') diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml index da933dc27..0f89d50d6 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute.yml +++ b/mcp/reclass/classes/cluster/virtual-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 @@ -15,11 +15,9 @@ classes: - system.ceilometer.agent.cluster - system.ceilometer.client.nova_compute - system.ceilometer.client.cinder_volume + - cluster.virtual-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 @@ -65,31 +63,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/virtual-mcp-pike-common-noha/openstack_compute_pdf.yml.j2 b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_compute_pdf.yml.j2 new file mode 100644 index 000000000..64af148fd --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-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/virtual-mcp-pike-common-noha/openstack_control.yml index 9defb0070..30e880f1e 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control.yml @@ -44,6 +44,7 @@ classes: - system.horizon.server.single - service.haproxy.proxy.single - cluster.virtual-mcp-pike-common-noha.haproxy_openstack_api + - cluster.virtual-mcp-pike-common-noha.openstack_control_pdf parameters: _param: linux_system_codename: xenial @@ -52,27 +53,6 @@ parameters: package: python-msgpack: version: latest - network: - interface: - dhcp_int: - enabled: true - name: ${_param:opnfv_fn_vm_primary_interface} - proto: dhcp - type: eth - 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} diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control_pdf.yml.j2 b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_control_pdf.yml.j2 new file mode 100644 index 000000000..8219637dc --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-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/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml index 9822de7d3..6c10bf897 100644 --- a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml +++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway.yml @@ -1,16 +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 ############################################################################## --- +classes: + - cluster.virtual-mcp-pike-common-noha.openstack_gateway_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 neutron: @@ -18,59 +17,3 @@ parameters: notification: true agent_mode: ${_param:neutron_gateway_agent_mode} vlan_aware_vms: true - linux: - 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} - mtu: ${_param:interface_mtu} - proto: manual - type: eth - tenant_interface: - enabled: true - name: ${_param:tenant_interface} - mtu: ${_param:interface_mtu} - proto: manual - type: eth - external_interface: - enabled: true - name: ${_param:external_interface} - mtu: ${_param:interface_mtu} - proto: manual - type: eth - br-floating: - enabled: true - type: ovs_bridge - mtu: ${_param:interface_mtu} - br-mgmt: - enabled: true - type: bridge - proto: static - address: ${_param:single_address} - netmask: 255.255.255.0 - mtu: ${_param:interface_mtu} - use_interfaces: - - ${_param:primary_interface} - float-to-ex: - enabled: true - type: ovs_port - mtu: ${_param:interface_mtu} - bridge: br-floating - br-ex: - enabled: true - type: bridge - mtu: ${_param:interface_mtu} - address: ${_param:external_address} - netmask: 255.255.255.0 - use_interfaces: - - ${_param:external_interface} - use_ovs_ports: - - float-to-ex diff --git a/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway_pdf.yml.j2 b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway_pdf.yml.j2 new file mode 100644 index 000000000..7067d59a4 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-pike-common-noha/openstack_gateway_pdf.yml.j2 @@ -0,0 +1,70 @@ +############################################################################## +# 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: {{ 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: {{ nm.ctl01.nic_admin }} + proto: dhcp + type: eth + mtu: ${_param:interface_mtu} + primary_interface: + enabled: true + name: ${_param:primary_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + tenant_interface: + enabled: true + name: ${_param:tenant_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + external_interface: + enabled: true + name: ${_param:external_interface} + mtu: ${_param:interface_mtu} + proto: manual + type: eth + br-floating: + enabled: true + type: ovs_bridge + mtu: ${_param:interface_mtu} + br-mgmt: + enabled: true + type: bridge + proto: static + address: ${_param:single_address} + netmask: 255.255.255.0 + mtu: ${_param:interface_mtu} + use_interfaces: + - ${_param:primary_interface} + float-to-ex: + enabled: true + type: ovs_port + mtu: ${_param:interface_mtu} + bridge: br-floating + br-ex: + enabled: true + type: bridge + mtu: ${_param:interface_mtu} + address: ${_param:external_address} + netmask: 255.255.255.0 + use_interfaces: + - ${_param:external_interface} + use_ovs_ports: + - float-to-ex -- cgit 1.2.3-korg