From 2328370b0e493672eed2dd3fabd90f84cdca5191 Mon Sep 17 00:00:00 2001 From: davidplunkett Date: Fri, 22 Nov 2019 07:36:45 +0000 Subject: [PATCH] update calico, neutron and nova settings Signed-off-by: davidplunkett Change-Id: I28abdbc28dbf89c21de20d2c3315e195b82f024e --- .../kubernetes/container-networking/calico.j2 | 60 +++++++++ .../charts/osh/openstack-compute-kit/neutron.j2 | 146 +++++++++++++-------- .../charts/osh/openstack-compute-kit/nova.j2 | 88 ++++++------- 3 files changed, 191 insertions(+), 103 deletions(-) create mode 100644 site_type/sriov-a13/templates/software/charts/kubernetes/container-networking/calico.j2 diff --git a/site_type/sriov-a13/templates/software/charts/kubernetes/container-networking/calico.j2 b/site_type/sriov-a13/templates/software/charts/kubernetes/container-networking/calico.j2 new file mode 100644 index 0000000..c4930ba --- /dev/null +++ b/site_type/sriov-a13/templates/software/charts/kubernetes/container-networking/calico.j2 @@ -0,0 +1,60 @@ +--- +############################################################################## +# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); you may # +# not use this file except in compliance with the License. # +# # +# You may obtain a copy of the License at # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +############################################################################## +schema: armada/Chart/v1 +metadata: + schema: metadata/Document/v1 + name: kubernetes-calico-site + layeringDefinition: + abstract: false + layer: site + parentSelector: + name: kubernetes-calico-global + actions: + - method: merge + path: . + storagePolicy: cleartext + +data: + values: + networking: + settings: +{% if ('peers' in yaml.networks.ksn and yaml.networks.ksn.peers is not none and yaml.networks.ksn.peers is iterable ) %} + mesh: "off" + ippool: + ipip: + enabled: "false" +{% endif %} + bgp: + asnumber: {{yaml.networks.ksn.local_asnumber}} + ipv4: + additional_cidrs: +{% for add_cidr in yaml.networks.ksn.additional_cidrs %} + - {{add_cidr}} +{% endfor %} +{% if ('peers' in yaml.networks.ksn and yaml.networks.ksn.peers is not none and yaml.networks.ksn.peers is iterable ) %} + peers: +{% for peer in yaml.networks.ksn.peers %} + - apiVersion: projectcalico.org/v3 + kind: BGPPeer + metadata: + name: peer-{{loop.index-1}} + spec: + peerIP: {{peer.ip}} + asnumber: {{peer.asnumber}} +{% endfor %} +{% endif %} +... diff --git a/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/neutron.j2 b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/neutron.j2 index 1c610a1..fe58681 100644 --- a/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/neutron.j2 +++ b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/neutron.j2 @@ -21,10 +21,14 @@ # 1. logical network interface names # 2. physical device mappigns # TODO: Should move to global layer and become tied to the hardware profile + schema: armada/Chart/v1 metadata: schema: metadata/Document/v1 - name: neutron-fixme + name: neutron + replacement: true + labels: + component: neutron layeringDefinition: abstract: false layer: site @@ -34,61 +38,87 @@ metadata: - method: merge path: . storagePolicy: cleartext -data: {} -#data: -# values: -# labels: -# agent: -# sriov: -# node_selector_key: sriov -# node_selector_value: enabled -# network: -# backend: -# - openvswitch -# - sriov -# interface: -# tunnel_device: '{{yaml.networks.neutron.interface}}' -# sriov: -#{% for sriovnet in yaml.sriov.nets %} -# - device: {{sriovnet.interface}} -# num_vfs: 32 -# mtu: 9000 -# promisc: false -#{% endfor %} -# # auto_bridge_add: -# # br-ex: {{yaml.networks.neutron.interface}} -# conf: -# plugins: -# openvswitch_agent: -# ovs: -# bridge_mappings: "bond0:br-ex" -# sriov_agent: -# securitygroup: -# firewall_driver: neutron.agent.firewall.NoopFirewallDriver -# sriov_nic: -# exclude_devices: "" -# physical_device_mappings: ' -#{%- for sriovnet in yaml.sriov.nets -%} -#{%- if loop.index > 1 -%},{%- endif -%} -#{{sriovnet.physical}}:{{sriovnet.interface}} -#{%- endfor -%}' -# ml2_conf: -# ml2: -# mechanism_drivers: openvswitch,l2population,sriovnicswitch -# # type_drivers: flat,vlan -# # tenant_network_types: vlan -# ml2_type_vlan: -# network_vlan_ranges: bond0:46:300 -#{%- for sriovnet in yaml.sriov.nets -%} -#,{{sriovnet.physical}}:{{sriovnet.vlan_start}}:{{sriovnet.vlan_end}} -#{%- endfor %} -# -# # ml2_type_flat: -# # flat_networks: public -# ml2_conf_sriov: null -# paste: -# app:neutronversions: -# paste.app_factory: neutron.pecan_wsgi.app:versions_factory -# dependencies: -# - openstack-neutron-helm-toolkit + +data: + values: + labels: + agent: + sriov: + node_selector_key: sriov + node_selector_value: enabled + network: + auto_bridge_add: {br-ex: bond0} + backend: + - openvswitch + - sriov + interface: + tunnel_device: '{{yaml.networks.neutron.interface}}' + sriov: +{% for sriovnet in yaml.sriov.nets %} + - device: {{sriovnet.interface}} + num_vfs: 32 + mtu: 9000 + promisc: false +{% endfor %} + conf: + # auto_bridge_add: + # br-ex: {{yaml.networks.neutron.interface}} + dhcp_lease_duration: = 86400 + plugins: + openvswitch_agent: + agent: + tunnel_types: vxlan + ovs: + bridge_mappings: "bond0:br-ex" + sriov_agent: + securitygroup: + firewall_driver: neutron.agent.firewall.NoopFirewallDriver + sriov_nic: + exclude_devices: "" + physical_device_mappings: ' +{%- for sriovnet in yaml.sriov.nets -%} +{%- if loop.index > 1 -%},{%- endif -%} +{{sriovnet.physical}}:{{sriovnet.interface}} +{%- endfor -%}' + ml2_conf: + ml2: + mechanism_drivers: openvswitch,l2population,sriovnicswitch + # type_drivers: flat,vlan + # tenant_network_types: vlan + ml2_type_vlan: + network_vlan_ranges: bond0:46:300 +{%- for sriovnet in yaml.sriov.nets -%} +,{{sriovnet.physical}}:{{sriovnet.vlan_start}}:{{sriovnet.vlan_end}} +{%- endfor %} + + # ml2_type_flat: + # flat_networks: public + ml2_conf_sriov: null + paste: + app:neutronversions: + paste.app_factory: neutron.pecan_wsgi.app:versions_factory + dependencies: + - openstack-neutron-helm-toolkit +--- +schema: armada/Chart/v1 +metadata: + schema: metadata/Document/v1 + name: openstack-neutron-helm-toolkit + layeringDefinition: + abstract: false + layer: global + storagePolicy: cleartext + substitutions: + - src: + schema: pegleg/SoftwareVersions/v1 + name: software-versions + path: .charts.osh.neutron-htk + dest: + path: .source +data: + chart_name: openstack-neutron-helm-toolkit + release: openstack-neutron-helm-toolkit + namespace: helm-toolkit + values: {} + dependencies: [] ... diff --git a/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/nova.j2 b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/nova.j2 index 80268a6..87b5331 100644 --- a/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/nova.j2 +++ b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/nova.j2 @@ -28,6 +28,8 @@ schema: armada/Chart/v1 metadata: schema: metadata/Document/v1 name: nova + labels: + component: nova layeringDefinition: abstract: false layer: site @@ -37,49 +39,45 @@ metadata: - method: merge path: . storagePolicy: cleartext -data: {} -#data: -# values: -# network: -# backend: -# - openvswitch -#{% if 'sriov' in yaml %} -# - sriov -#{% endif %} -# conf: -# nova: -# filter_scheduler: -# enabled_filters: "RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter, PciPassthroughFilter, NUMATopologyFilter, DifferentHostFilter, SameHostFilter" -# libvirt: -# virt_type: kvm -# DEFAULT: -# vcpu_pin_set: {% if 'platform' in yaml and 'vcpu_pin_set' in yaml.platform %}"{{yaml.platform.vcpu_pin_set}}" -#{% else %}"4-21,26-43,48-65,72-87" -#{% endif %} -# vif_plugging_is_fatal: False -# vif_plugging_timeout: 30 -# pci: -#{% if 'gpu' in yaml or 'sriov' in yaml %} -# alias: | -# {% if 'sriov' in yaml and 'alias' in yaml.sriov %} -# {% for alias in yaml.sriov.alias %} -# '{"name": "{{alias.name}}", "vendor_id": "{{alias.vendor_id}}", "product_id": "{{alias.product_id}}", "capability_type": "pci", "device_type": "type-PCI", "numa_policy": "required"}' -# {% endfor %} -# {% endif %} -# {% if 'gpu' in yaml and 'alias' in yaml.gpu %} -# {% for alias in yaml.gpu.alias %} -# '{"name":"{{alias.name}}", "vendor_id":"{{alias.vendor_id}}", "product_id":"{{alias.product_id}}", "device_type":"type-PCI"}' -# {% endfor %} -# {% endif %} -# passthrough_whitelist: | -# [ -# {%- if 'sriov' in yaml and 'nets' in yaml.sriov %} -# {% for sriovnet in yaml.sriov.nets %} -# {%- for vf in sriovnet.whitelists -%}{"address":"{{vf["address"]}}","physical_network":"{{sriovnet.physical}}"}{{',' if not loop.last else ''}}{% endfor %}{{',' if not loop.last else '' -}} -# {%- endfor -%} -# {%- if 'gpu' in yaml and 'sriov' in yaml %},{% endif -%} -# {%- for alias in yaml.gpu.alias %}{"vendor_id": "{{alias.vendor_id}}", "product_id": "{{alias.product_id}}"}{{',' if not loop.last else ''}}{% endfor -%} -# ] -# {% endif %} -#{% endif %} +#data: {} +data: + values: + network: + backend: + - openvswitch +{% if 'sriov' in yaml %} + - sriov +{% endif %} + conf: + nova: + filter_scheduler: + enabled_filters: "RetryFilter, AvailabilityZoneFilter, RamFilter, ComputeFilter, ComputeCapabilitiesFilter, ImagePropertiesFilter, ServerGroupAntiAffinityFilter, ServerGroupAffinityFilter, PciPassthroughFilter, NUMATopologyFilter, DifferentHostFilter, SameHostFilter" + DEFAULT: + vcpu_pin_set: {% if 'platform' in yaml and 'vcpu_pin_set' in yaml.platform %}"{{yaml.platform.vcpu_pin_set}}" +{% else %}"4-21,26-43,48-65,72-87" +{% endif %} + pci: +{% if 'gpu' in yaml or 'sriov' in yaml %} + alias: | + {% if 'sriov' in yaml and 'alias' in yaml.sriov %} + {% for alias in yaml.sriov.alias %} + '{"name": "{{alias.name}}", "vendor_id": "{{alias.vendor_id}}", "product_id": "{{alias.product_id}}", "capability_type": "pci", "device_type": "type-PCI", "numa_policy": "required"}' + {% endfor %} + {% endif %} + {% if 'gpu' in yaml and 'alias' in yaml.gpu %} + {% for alias in yaml.gpu.alias %} + '{"name":"{{alias.name}}", "vendor_id":"{{alias.vendor_id}}", "product_id":"{{alias.product_id}}", "device_type":"type-PCI"}' + {% endfor %} + {% endif %} + passthrough_whitelist: | + [ + {%- if 'sriov' in yaml and 'nets' in yaml.sriov %} + {% for sriovnet in yaml.sriov.nets %} + {%- for vf in sriovnet.whitelists -%}{"address":"{{vf["address"]}}","physical_network":"{{sriovnet.physical}}"}{{',' if not loop.last else ''}}{% endfor %}{{',' if not loop.last else '' -}} + {%- endfor -%} + {%- if 'gpu' in yaml and 'sriov' in yaml %},{% endif -%} + {%- for alias in yaml.gpu.alias %}{"vendor_id": "{{alias.vendor_id}}", "product_id": "{{alias.product_id}}"}{{',' if not loop.last else ''}}{% endfor -%} + ] + {% endif %} +{% endif %} ... -- 2.16.6