Updated templates for ovs-dpdk site type 14/814/10
authorGeorg Kunz <georg.kunz@ericsson.com>
Thu, 23 May 2019 23:01:32 +0000 (01:01 +0200)
committerGeorg Kunz <georg.kunz@ericsson.com>
Fri, 24 May 2019 21:40:34 +0000 (23:40 +0200)
Including the DPDK-specific configuration in the templates of the
ovs-dpdk site type.

Change-Id: I47c5fa1779d535acfb46572fcd28dffbcba3bb27

site_type/ovsdpdk/airship-treasuremap/global/v4.0/software/charts/ucp/divingbell/divingbell.yaml
site_type/ovsdpdk/airship-treasuremap/global/v4.0/software/config/versions.yaml
site_type/ovsdpdk/templates/baremetal/rack.j2
site_type/ovsdpdk/templates/networks/physical/rack.j2
site_type/ovsdpdk/templates/profiles/host/compute-r01.j2
site_type/ovsdpdk/templates/profiles/host/cp-r01.j2
site_type/ovsdpdk/templates/software/charts/osh/openstack-compute-kit/neutron.j2
site_type/ovsdpdk/templates/software/charts/osh/openstack-compute-kit/nova.j2
site_type/ovsdpdk/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 [new file with mode: 0644]

index 2e30ea9..b43ea59 100644 (file)
@@ -76,6 +76,14 @@ data:
         # were restarted. "Failed to add /run/systemd/ask-password to directory
         # watch: No space left on device". https://bit.ly/2Mj5qn2 TDP bug 427616
         fs.inotify.max_user_watches: '1048576'
+      manifests:
+        daemonset_mounts: true
+      mounts:
+        mnt1:
+          mnt_tgt: /dev/hugepages_1G
+          device: none
+          type: hugetlbfs
+          options: 'mode=775,pagesize=1G'
   dependencies:
     - ucp-divingbell-htk
 ---
index 858cd6f..0a52db9 100644 (file)
@@ -229,7 +229,7 @@ data:
         type: git
         location: https://review.opendev.org/openstack/openstack-helm
         subpath: neutron
-        reference: refs/changes/84/643284/9
+        reference: refs/changes/84/643284/10
       neutron-htk:
         type: git
         location: https://git.openstack.org/openstack/openstack-helm-infra
@@ -244,10 +244,10 @@ data:
         type: git
         location: https://review.opendev.org/openstack/openstack-helm-infra
         subpath: openvswitch
-        reference: refs/changes/94/626894/22
+        reference: refs/changes/94/626894/24
       openvswitch-htk:
         location: https://review.opendev.org/openstack/openstack-helm-infra
-        reference: refs/changes/94/626894/22
+        reference: refs/changes/94/626894/24
         subpath: helm-toolkit
         type: git
       rabbitmq:
index d265d78..085420f 100644 (file)
@@ -44,20 +44,20 @@ data:
       address: {{server.neutron}}
     - network: calico
       address: {{server.ksn}}
+    - network: dpdk
+      address: {{server.vxlan}}
   metadata:
     rack: RACK01
     tags:
       - 'masters'
-{% if 'platform' in yaml %}
   platform:
     kernel_params:
-{% for key, value in yaml.platform.kernel_params.items() %}
-      {{key}}: '{{value}}'
-{% endfor %}
-{% if 'vcpu_pin_set' in yaml.platform %}
-      isolcpus: '{{yaml.platform.vcpu_pin_set}}'
-{% endif %}
-{% endif %}
+      hugepagesz: '1G'
+      hugepages: 32
+      default_hugepagesz: '1G'
+      iommu: 'pt'
+      intel_iommu: 'on'
+...
 {% endfor %}
 {% if 'workers' in yaml %}{% for server in yaml.workers %}
 ---
@@ -90,19 +90,18 @@ data:
       address: {{server.neutron}}
     - network: calico
       address: {{server.ksn}}
+    - network: dpdk
+      address: {{server.vxlan}}
   metadata:
     rack: RACK01
     tags:
       - 'workers'
-{% if 'platform' in yaml %}
   platform:
     kernel_params:
-{% for key, value in yaml.platform.kernel_params.items() %}
-      {{key}}: '{{value}}'
-{% endfor %}
-{% if 'vcpu_pin_set' in yaml.platform %}
-      isolcpus: '{{yaml.platform.vcpu_pin_set}}'
-{% endif %}
-{% endif %}
-{% endfor %}{% endif %}
+      hugepagesz: '1G'
+      hugepages: 32
+      default_hugepagesz: '1G'
+      iommu: 'pt'
+      intel_iommu: 'on'
 ...
+{% endfor %}{% endif %}
index 86e4441..6a2287a 100644 (file)
@@ -219,3 +219,43 @@ data:
     start: {{yaml.networks.ksn.ranges.static.start}}
     end: {{yaml.networks.ksn.ranges.static.end}}
 ...
+---
+schema: 'drydock/NetworkLink/v1'
+metadata:
+  schema: 'metadata/Document/v1'
+  name: dpdk
+  layeringDefinition:
+    abstract: false
+    layer: site
+  storagePolicy: cleartext
+data:
+  bonding:
+    mode: disabled
+  mtu: 1500
+  linkspeed: auto
+  trunking:
+    mode: disabled
+    default_network: dpdk
+  allowed_networks:
+    - dpdk
+...
+---
+schema: 'drydock/Network/v1'
+metadata:
+  schema: 'metadata/Document/v1'
+  name: dpdk
+  layeringDefinition:
+    abstract: false
+    layer: site
+  storagePolicy: cleartext
+data:
+  mtu: 1500
+  cidr: {{yaml.networks.vxlan.cidr}}
+  ranges:
+    - type: reserved
+      start: {{yaml.networks.vxlan.ranges.reserved.start}}
+      end: {{yaml.networks.vxlan.ranges.reserved.end}}
+    - type: static
+      start: {{yaml.networks.vxlan.ranges.static.start}}
+      end: {{yaml.networks.vxlan.ranges.static.end}}
+...
index fcaa3e1..55387a5 100644 (file)
@@ -58,18 +58,12 @@ data:
         - 'storage'
         - 'overlay'
         - 'calico'
-    p1p1:
+    dpdk:
+      device_link: dpdk
       slaves:
-        - 'sriov_nic01'
-      sriov:
-        vf_count: 32 # Currently ignored
-        trustedmode: false
-    p3p2:
-      slaves:
-        - 'sriov_nic02'
-      sriov:
-        vf_count: 32 # Currently ignored
-        trustedmode: false
+        - '{{yaml.networks.vxlan.interface}}'
+      networks:
+        - dpdk
   storage:
     physical_devices:
 {% for disk in yaml.disks_compute %}
index b88d621..f715ccb 100644 (file)
@@ -57,18 +57,12 @@ data:
         - 'storage'
         - 'overlay'
         - 'calico'
-    p1p1:
+    dpdk:
+      device_link: dpdk
       slaves:
-        - 'sriov_nic01'
-      sriov:
-        vf_count: 32 # Currently ignored
-        trustedmode: false
-    p3p2:
-      slaves:
-        - 'sriov_nic02'
-      sriov:
-        vf_count: 32 # Currently ignored
-        trustedmode: false
+        - '{{yaml.networks.vxlan.interface}}'
+      networks:
+        - dpdk
   storage:
     physical_devices:
 {% for disk in yaml.disks %}
index f18b53a..30a615c 100644 (file)
@@ -33,46 +33,70 @@ metadata:
   storagePolicy: cleartext
 data:
   values:
-    labels:
-      agent:
-        sriov:
-          node_selector_key: sriov
-          node_selector_value: enabled
     network:
-      backend:
-        - openvswitch
-        - sriov
       interface:
-        sriov:
-{% for sriovnet in yaml.sriov.nets %}
-          - device: {{sriovnet.interface}}
-            num_vfs: 32
-            promisc: false
-{% endfor %}
+        tunnel: br-phy
+    endpoints:
+      identity:
+        port:
+          api:
+            default: 80
+            internal: 35357
     conf:
+      logging:
+        logger_root:
+          level: WARNING
+          handlers: stdout
       plugins:
         openvswitch_agent:
           ovs:
-            bridge_mappings: bond0:br-bond0
-        sriov_agent:
-          securitygroup:
-            firewall_driver: neutron.agent.firewall.NoopFirewallDriver
-          sriov_nic:
-            exclude_devices: null
-            physical_device_mappings: ' 
-{%- for sriovnet in yaml.sriov.nets -%}
-{%- if loop.index > 1 -%}
-,
-{%- endif -%}
-{{sriovnet.physical}}:{{sriovnet.interface}}
-{%- endfor %}'
+            bridge_mappings: external:br-phy
         ml2_conf:
           ml2:
-            mechanism_drivers: l2population,openvswitch,sriovnicswitch
+            mechanism_drivers: openvswitch
+            type_drivers: flat,vlan,vxlan
+            tenant_network_types: vxlan
           ml2_type_vlan:
-            network_vlan_ranges: bond0:46:300
-{%- for sriovnet in yaml.sriov.nets -%}
-,{{sriovnet.physical}}:{{sriovnet.vlan_start}}:{{sriovnet.vlan_end}}
-{%- endfor %}
-
+            network_vlan_ranges: "external:1100:1110"
+          ml2_type_flat:
+            flat_networks: public
+        openvswitch_agent:
+          agent:
+            tunnel_types: vxlan
+          ovs:
+            bridge_mappings: external:br-phy
+      ovs_dpdk:
+        enabled: true
+        driver: vfio-pci
+        nics:
+{% for nic in yaml.dpdk.nics %}
+          - name: {{ nic.name }}
+            pci_id: '{{ nic.pci_id }}'
+            bridge: {{ nic.bridge }}
+            migrate_ip: {{ nic.migrate_ip }}
+{% endfor %}
+  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: []
 ...
index 89c935f..8864bd6 100644 (file)
@@ -35,7 +35,6 @@ data:
     network:
       backend:
         - openvswitch
-        - sriov
     conf:
       nova:
         filter_scheduler:
diff --git a/site_type/ovsdpdk/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 b/site_type/ovsdpdk/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2
new file mode 100644 (file)
index 0000000..917edbd
--- /dev/null
@@ -0,0 +1,81 @@
+---
+##############################################################################
+# Copyright (c) 2018 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: openvswitch
+  replacement: true
+  labels:
+    name: openvswitch-global
+  layeringDefinition:
+    abstract: false
+    layer: site
+    parentSelector:
+      name: openvswitch-global
+    actions:
+      - method: merge
+        path: .
+  storagePolicy: cleartext
+data:
+  values:
+    pod:
+      resources:
+        enabled: true
+        ovs:
+          vswitchd:
+            requests:
+              memory: "8Gi"
+              cpu: "4000m"
+            limits:
+              memory: "8Gi"
+              cpu: "4000m"
+              hugepages-1Gi: "8Gi"
+    conf:
+      dpdk:
+        enabled: true
+        hugepages_mountpath: /dev/hugepages_1G
+        socket_memory: '4096,4096'
+        pmd_cpu_mask: '0xF'
+  dependencies:
+    - openstack-openvswitch-helm-toolkit
+...
+---
+schema: armada/Chart/v1
+metadata:
+  schema: metadata/Document/v1
+  name: openstack-openvswitch-helm-toolkit
+  layeringDefinition:
+    abstract: false
+    layer: global
+  storagePolicy: cleartext
+  substitutions:
+    # Chart source
+    - src:
+        schema: pegleg/SoftwareVersions/v1
+        name: software-versions
+        path: .charts.osh.openvswitch-htk
+      dest:
+        path: .source
+
+data:
+  chart_name: openstack-openvswitch-helm-toolkit
+  release: openstack-openvswitch-helm-toolkit
+  namespace: helm-toolkit
+  values: {}
+  dependencies: []
+...