aboutsummaryrefslogtreecommitdiffstats
path: root/mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2018-11-08 19:06:46 +0100
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>2019-01-10 15:22:59 +0100
commit6eaeafea81f30ee66f2c187596815a0166f1132b (patch)
treeab296858aac68b09b2a905486aa072dc8c304e0c /mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml
parent920d7ef405e9fed9af7b0576b94f6d19fe265c81 (diff)
[noha] Bring in FDIO (VPP+DPDK) scenario
- cmp, gtw: bump RAM allocation to accomodate hugepages/VPP; for now we overcommit, gtw01 resources can probably be lowered; - submodule: add salt-formula-neutron so we can locally patch it; - repo: * FD.IO repos for VPP packages; * networking-vpp PPA for python-networking-vpp Neutron driver; - use vpp-router for L3, disable neutron-l3-agent; - baremetal_init: apply repo config before network (otherwise UCA repo is missing when trying to install DPDK on baremetal nodes); - arm64: iommu.passthrough=1 is required on ThunderX for VPP on newer kernels; Design quirks: - vpp service runs as 'neutron' user, which does not exist at the time VPP is installed and initially started, hence the need to restart it before starting the vpp-agent service; - gtw01 node has DPDK, yet to configure it via IDF we use the compute-specific OVS-targeted parameters like `compute_ovs_dpdk_socket_mem`, which is a bit misleading; - vpp-agent requires ml2_conf.ini on ALL compute AND network nodes to parse per-node physnet-to-real interface names; - vpp process is bound to core '1' (not parameterized via IDF); Change-Id: I659f7dbebcab7b154e7b1fb829cd7159b4372ec8 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> (cherry picked from commit 455b46a6be4bca145c047ed6957727c119285796)
Diffstat (limited to 'mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml')
-rw-r--r--mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml64
1 files changed, 64 insertions, 0 deletions
diff --git a/mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml b/mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml
new file mode 100644
index 000000000..3fbec1bcd
--- /dev/null
+++ b/mcp/reclass/classes/cluster/mcp-fdio-noha/openstack/gateway.yml
@@ -0,0 +1,64 @@
+##############################################################################
+# 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-common-noha.openstack_gateway
+ - service.neutron.gateway.single
+ - cluster.mcp-fdio-noha
+parameters:
+ _param:
+ compute_hugepages_size: 1G
+ compute_hugepages_mount: /mnt/hugepages_1G
+ neutron:
+ gateway:
+ agents:
+ l3:
+ interface_driver: neutron.agent.linux.interface.BridgeInterfaceDriver
+ dhcp:
+ interface_driver: neutron.agent.linux.interface.BridgeInterfaceDriver
+ backend:
+ router: 'vpp-router'
+ tenant_network_types: "${_param:neutron_tenant_network_types}"
+ ~mechanism:
+ vpp:
+ driver: vpp
+ etcd_port: ${_param:node_port}
+ etcd_host: ${_param:node_address}
+ l3_hosts: ${_param:openstack_gateway_node01_hostname}
+ physnets:
+ physnet1:
+ vpp_interface: ${_param:external_vpp_tap}
+ physnet2:
+ vpp_interface: ${_param:dpdk0_vpp}
+ linux:
+ system:
+ kernel:
+ hugepages:
+ large:
+ default: true
+ size: ${_param:compute_hugepages_size}
+ count: ${_param:compute_hugepages_count}
+ mount_point: ${_param:compute_hugepages_mount}
+ isolcpu: 1 # NOTE: Hardcoded for now
+ boot_options:
+ - spectre_v2=off
+ - nopti
+ - intel_iommu=on
+ - iommu=pt
+ - nohz_full=${linux:system:kernel:isolcpu}
+ - rcu_nocbs=${linux:system:kernel:isolcpu}
+ - iommu.passthrough=1
+ network:
+ interface:
+ dpdk0:
+ name: ${_param:dpdk0_name}
+ pci: ${_param:dpdk0_pci}
+ driver: ${_param:dpdk0_driver}
+ enabled: true
+ type: dpdk_vpp_port
+ mtu: ${_param:interface_mtu}