From 4f46211cc43745923628a68a93832bb93822af2c Mon Sep 17 00:00:00 2001 From: davidplunkett Date: Sat, 16 Nov 2019 01:22:07 +0000 Subject: [PATCH] updated templates for sriov-a13 site type Signed-off-by: davidplunkett Change-Id: Ic62bf3b4e65af09ddb92aa87e93a2bdf9a52cc70 --- dellgen10-sriov-a13.yaml | 55 ++++++----- site_type/sriov-a13/templates/baremetal/nodes.j2 | 8 ++ .../templates/networks/physical/networks.j2 | 42 ++++++++ .../sriov-a13/templates/profiles/host/cp_r720.j2 | 88 +++++------------ .../sriov-a13/templates/profiles/host/dp_r720.j2 | 9 +- .../charts/osh/openstack-compute-kit/neutron.j2 | 61 +++++++++--- .../charts/osh/openstack-compute-kit/nova.j2 | 2 + .../osh/openstack-compute-kit/openvswitch.j2 | 85 ++++++++++++++++ .../software/charts/ucp/divingbell/divingbell.j2 | 6 ++ .../templates/software/config/versions.j2 | 108 +++++++++++++++++++++ 10 files changed, 361 insertions(+), 103 deletions(-) create mode 100644 site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 create mode 100644 site_type/sriov-a13/templates/software/config/versions.j2 diff --git a/dellgen10-sriov-a13.yaml b/dellgen10-sriov-a13.yaml index b7d8ea9..d21c32b 100644 --- a/dellgen10-sriov-a13.yaml +++ b/dellgen10-sriov-a13.yaml @@ -98,10 +98,10 @@ networks: additional_cidrs: - 172.29.1.128/29 ingress_vip: 172.29.1.129/32 - peers: - - ip: 172.29.1.1 - scope: global - asnumber: 65001 +# peers: +# - ip: 172.29.1.1 +# scope: global +# asnumber: 65001 # keep peers ip address in case of only peer. vrrp_ip: 172.29.1.1 neutron: @@ -118,9 +118,7 @@ networks: dns: upstream_servers: - 192.168.2.85 - - 192.168.1.85 - #- 8.8.8.8 - #- 8.8.4.4 + - 192.168.2.85 ingress_domain: dellgen10.lab.akraino.org domain: dellgen10.lab.akraino.org gpu: @@ -139,7 +137,7 @@ gpu: vendor_id: "10de" sriov: alias: - - name: "numa0" + - name: "sriov0" product_id: "158b" vendor_id: "8086" nets: @@ -220,23 +218,23 @@ masters: # ksn: 172.29.1.43 # neutron: 10.0.102.43 platform: - vcpu_pin_set: "4-21,26-43,48-65,72-87" + vcpu_pin_set: "6-21,28-43,50-65,74-87" kernel_params: - kernel_package: 'linux-image-4.15.0-66-generic' +# kernel_package: 'linux-image-4.15.0-66-generic' hugepagesz: '1G' hugepages: 32 # default_hugepagesz: '1G' - transparent_hugepage: 'never' +# transparent_hugepage: 'never' iommu: 'pt' intel_iommu: 'on' - amd_iommu: 'on' +# amd_iommu: 'on' # console: 'ttyS1,115200n8' hardware: vendor: DELL generation: '10' hw_version: '3' bios_version: '2.8' - bios_template: + bios_template: dell_r740_g14_uefi_base.xml.template boot_template: dell_r740_g14_uefi_httpboot.xml.template http_boot_device: NIC.Slot.2-1-1 device_aliases: @@ -256,6 +254,16 @@ hardware: address: '0000:5e:00.1' dev_type: 'Ethernet 10G 2P X520 Adapter' bus_type: 'pci' + - name: enp135s0f0 + key: sriov_nic01 + address: '0000:87:00.0' + dev_type: 'Ethernet 10G 2P X520 Adapter' + bus_type: 'pci' + - name: enp135s0f1 + key: sriov_nic02 + address: '0000:87:00.1' + dev_type: 'Ethernet 10G 2P X520 Adapter' + bus_type: 'pci' ## storage - use "dmesg | grep -Pe 'sd \d:\d'" to find address of drives - name: /dev/sdg key: bootdisk @@ -267,17 +275,16 @@ hardware: address: '0:2.1.0' dev_type: 'PERC H730P' bus_type: 'scsi' - - name: /dev/sdi - key: cephjournal2 - address: '0:2.2.0' - dev_type: 'PERC H730P' - bus_type: 'scsi' - - name: /dev/sdj - key: ephemeral - address: '0:2.3.0' - dev_type: 'PERC H730P' - bus_type: 'scsi' - +# - name: /dev/sdi +# key: cephjournal2 +# address: '0:2.2.0' +# dev_type: 'PERC H730P' +# bus_type: 'scsi' +# - name: /dev/sdj +# key: ephemeral +# address: '0:2.3.0' +# dev_type: 'PERC H730P' +# bus_type: 'scsi' disks: # - name : sdg - name : bootdisk diff --git a/site_type/sriov-a13/templates/baremetal/nodes.j2 b/site_type/sriov-a13/templates/baremetal/nodes.j2 index 20f978b..df0ab54 100644 --- a/site_type/sriov-a13/templates/baremetal/nodes.j2 +++ b/site_type/sriov-a13/templates/baremetal/nodes.j2 @@ -142,6 +142,10 @@ data: address: {{server.neutron}} - network: calico address: {{server.ksn}} +{% if 'dpdk' in yaml %} + - network: dpdk + address: {{server.vxlan}} +{% endif %} # NEWSITE-CHANGEME: The next node's host profile {% if loop.index < 3 %} host_profile: cp_r720-primary @@ -192,6 +196,10 @@ data: address: {{server.neutron}} - network: calico address: {{server.ksn}} +{% if 'dpdk' in yaml %} + - network: dpdk + address: {{server.vxlan}} +{% endif %} # NEWSITE-CHANGEME: The next node's host profile # This is the third "primary" control plane profile after genesis host_profile: dp_r720 diff --git a/site_type/sriov-a13/templates/networks/physical/networks.j2 b/site_type/sriov-a13/templates/networks/physical/networks.j2 index 22b8682..07f99ea 100644 --- a/site_type/sriov-a13/templates/networks/physical/networks.j2 +++ b/site_type/sriov-a13/templates/networks/physical/networks.j2 @@ -306,3 +306,45 @@ data: start: {{yaml.networks.ksn.ranges.static.start}} end: {{yaml.networks.ksn.ranges.static.end}} ... +{% if 'dpdk' in yaml %} +--- +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}} +... +{% endif %} diff --git a/site_type/sriov-a13/templates/profiles/host/cp_r720.j2 b/site_type/sriov-a13/templates/profiles/host/cp_r720.j2 index 3322a0f..3a1270f 100644 --- a/site_type/sriov-a13/templates/profiles/host/cp_r720.j2 +++ b/site_type/sriov-a13/templates/profiles/host/cp_r720.j2 @@ -41,6 +41,15 @@ data: - storage - overlay - calico +{% if 'dpdk' in yaml %} + dpdk: + device_link: dpdk + slaves: + - dpdk_nic01 + networks: + - dpdk +{% endif %} +{% if 'sriov' in yaml %} p1p1: slaves: - 'sriov_nic01' @@ -53,7 +62,7 @@ data: sriov: vf_count: 32 # Currently ignored trustedmode: false - +{% endif %} storage: physical_devices: {% for disk in yaml.disks %} @@ -98,65 +107,8 @@ data: metadata: owner_data: - control-plane: enabled - ucp-control-plane: enabled - openstack-control-plane: enabled - openstack-heat: enabled - openstack-keystone: enabled - openstack-rabbitmq: enabled - openstack-dns-helper: enabled - openstack-mariadb: enabled - openstack-nova-control: enabled - # openstack-etcd: enabled - openstack-mistral: enabled - openstack-memcached: enabled - openstack-glance: enabled - openstack-horizon: enabled - openstack-cinder-control: enabled - openstack-cinder-volume: control - openstack-neutron: enabled - openvswitch: enabled - ucp-barbican: enabled - ceph-mon: enabled - ceph-mgr: enabled - ceph-osd: enabled - ceph-mds: enabled - ceph-rgw: enabled - ucp-maas: enabled - kube-dns: enabled - tenant-ceph-control-plane: enabled - tenant-ceph-mon: enabled tenant-ceph-osd: enabled - tenant-ceph-rgw: enabled - tenant-ceph-mgr: enabled - kubernetes-apiserver: enabled - kubernetes-controller-manager: enabled - kubernetes-etcd: enabled - kubernetes-scheduler: enabled - tiller-helm: enabled - kube-etcd: enabled - calico-policy: enabled - calico-node: enabled - calico-etcd: enabled - ucp-armada: enabled - ucp-drydock: enabled - ucp-deckhand: enabled - ucp-shipyard: enabled - IAM: enabled - ucp-promenade: enabled - prometheus-server: enabled - prometheus-client: enabled - fluentd: enabled - fluentbit: enabled - influxdb: enabled - kibana: enabled - elasticsearch-client: enabled - elasticsearch-master: enabled - elasticsearch-data: enabled - postgresql: enabled - kube-ingress: enabled - beta.kubernetes.io/fluentd-ds-ready: 'true' - node-exporter: enabled + ucp-maas: enabled openstack-nova-compute: enabled openstack-libvirt: kernel sriov: enabled @@ -202,6 +154,15 @@ data: - storage - overlay - calico +{% if 'dpdk' in yaml %} + dpdk: + device_link: dpdk + slaves: + - dpdk_nic01 + networks: + - dpdk +{% endif %} +{% if 'sriov' in yaml %} p1p1: slaves: - 'sriov_nic01' @@ -214,7 +175,7 @@ data: sriov: vf_count: 32 # Currently ignored trustedmode: false - +{% endif %} storage: physical_devices: {% for disk in yaml.disks %} @@ -259,10 +220,11 @@ data: metadata: owner_data: - openstack-nova-compute: enabled - openvswitch: enabled + ceph-mon: disabled + tenant-ceph-mon: disabled tenant-ceph-osd: enabled + ucp-maas: enabled + openstack-nova-compute: enabled openstack-libvirt: kernel sriov: enabled - beta.kubernetes.io/fluentd-ds-ready: 'true' ... diff --git a/site_type/sriov-a13/templates/profiles/host/dp_r720.j2 b/site_type/sriov-a13/templates/profiles/host/dp_r720.j2 index b32c0e2..cff401c 100644 --- a/site_type/sriov-a13/templates/profiles/host/dp_r720.j2 +++ b/site_type/sriov-a13/templates/profiles/host/dp_r720.j2 @@ -40,7 +40,14 @@ data: - storage - overlay - calico - +{% if 'dpdk' in yaml %} + dpdk: + device_link: dpdk + slaves: + - dpdk_nic01 + networks: + - dpdk +{% endif %} storage: physical_devices: {% for disk in yaml.disks %} 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 5af8e8c..31a24bb 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 @@ -38,6 +38,7 @@ metadata: - method: merge path: . storagePolicy: cleartext + data: values: labels: @@ -50,40 +51,70 @@ data: - openvswitch - sriov interface: - #tunnel_device: '{{yaml.networks.neutron.interface}}' - sriov: + tunnel_device: '{{yaml.networks.neutron.interface}}' + sriov: {% for sriovnet in yaml.sriov.nets %} - - device: {{sriovnet.interface}} - num_vfs: 32 - promisc: false + - device: {{sriovnet.interface}} + num_vfs: 32 + mtu: 9000 + promisc: false {% endfor %} - auto_bridge_add: - br-bond0: {{yaml.networks.neutron.interface}} + # auto_bridge_add: + # br-ex: {{yaml.networks.neutron.interface}} conf: plugins: openvswitch_agent: ovs: - bridge_mappings: bond0:br-bond0 + bridge_mappings: "bond0:br-ex" sriov_agent: securitygroup: firewall_driver: neutron.agent.firewall.NoopFirewallDriver sriov_nic: - exclude_devices: null + exclude_devices: "" physical_device_mappings: ' {%- for sriovnet in yaml.sriov.nets -%} -{%- if loop.index > 1 -%} -, -{%- endif -%} +{%- if loop.index > 1 -%},{%- endif -%} {{sriovnet.physical}}:{{sriovnet.interface}} -{%- endfor %}' +{%- endfor -%}' ml2_conf: ml2: - mechanism_drivers: l2population,openvswitch,sriovnicswitch + 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 44909af..80f5cde 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 @@ -44,7 +44,9 @@ data: network: backend: - openvswitch +{% if 'sriov' in yaml %} - sriov +{% endif %} conf: nova: filter_scheduler: diff --git a/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 new file mode 100644 index 0000000..9245b32 --- /dev/null +++ b/site_type/sriov-a13/templates/software/charts/osh/openstack-compute-kit/openvswitch.j2 @@ -0,0 +1,85 @@ +--- +############################################################################## +# 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 +{% if 'dpdk' in yaml %} + ovs: + vswitchd: + requests: + memory: "8Gi" + cpu: "4000m" + limits: + memory: "8Gi" + cpu: "4000m" + hugepages-1Gi: "8Gi" + conf: + ovs_dpdk: + enabled: true + hugepages_mountpath: /dev/hugepages_1G + socket_memory: '4096,4096' + pmd_cpu_mask: '0xF' + vhostuser_socket_dir: vhostuser +{% endif %} + 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: [] +... diff --git a/site_type/sriov-a13/templates/software/charts/ucp/divingbell/divingbell.j2 b/site_type/sriov-a13/templates/software/charts/ucp/divingbell/divingbell.j2 index d375f4a..98d6506 100644 --- a/site_type/sriov-a13/templates/software/charts/ucp/divingbell/divingbell.j2 +++ b/site_type/sriov-a13/templates/software/charts/ucp/divingbell/divingbell.j2 @@ -47,4 +47,10 @@ data: - user_name: localadmin user_sudo: true user_sshkeys: [] + mounts: + mnt1: + mnt_tgt: /dev/hugepages_1G + device: none + type: hugetlbfs + options: 'mode=775,pagesize=1G' ... diff --git a/site_type/sriov-a13/templates/software/config/versions.j2 b/site_type/sriov-a13/templates/software/config/versions.j2 new file mode 100644 index 0000000..47e1e5d --- /dev/null +++ b/site_type/sriov-a13/templates/software/config/versions.j2 @@ -0,0 +1,108 @@ +--- +schema: pegleg/SoftwareVersions/v1 +metadata: + schema: metadata/Document/v1 + replacement: true + name: software-versions + layeringDefinition: + abstract: false + layer: site + parentSelector: + name: software-versions-global + actions: + - method: merge + path: . + storagePolicy: cleartext +data: + charts: + osh: + neutron: + location: https://opendev.org/openstack/openstack-helm + reference: 05bff26162cc05286ba563d6e8cec82a36031b7d + subpath: neutron + type: git + neutron-htk: + location: https://opendev.org/openstack/openstack-helm-infra + reference: d0b32ed88ad652d9c2226466a13bac8b28038399 + subpath: helm-toolkit + type: git + nova: + location: https://opendev.org/openstack/openstack-helm + reference: d2abe39d498f48c4721e26aca19e81189bc8891b + subpath: nova + type: git + nova-htk: + location: https://opendev.org/openstack/openstack-helm-infra + reference: d0b32ed88ad652d9c2226466a13bac8b28038399 + subpath: helm-toolkit + type: git + openvswitch: + location: https://opendev.org/openstack/openstack-helm-infra + reference: e4538f714a5dfd8a6b6bf2910d2b56f257f9889c + subpath: openvswitch + type: git + openvswitch-htk: + location: https://opendev.org/openstack/openstack-helm-infra + reference: d0b32ed88ad652d9c2226466a13bac8b28038399 + subpath: helm-toolkit + type: git + images_refs: + images: + dep_check: &dep_check quay.io/stackanetes/kubernetes-entrypoint:v0.3.1 + heat: &heat docker.io/openstackhelm/heat:rocky-ubuntu_bionic + neutron: &neutron docker.io/openstackhelm/neutron:rocky-ubuntu_bionic + horizon: &horizon docker.io/openstackhelm/horizon:rocky-ubuntu_bionic + cinder: &cinder docker.io/openstackhelm/cinder:rocky-ubuntu_bionic + keystone: &keystone docker.io/openstackhelm/keystone:rocky-ubuntu_bionic + nova: &nova docker.io/openstackhelm/nova:rocky-ubuntu_bionic + glance: &glance docker.io/openstackhelm/glance:rocky-ubuntu_bionic + openvswitch: &openvswitch docker.io/openstackhelm/openvswitch:latest-ubuntu_bionic + os_barbican: &os_barbican docker.io/openstackhelm/barbican:rocky-ubuntu_bionic + libvirt: &libvirt docker.io/openstackhelm/libvirt:latest-ubuntu_bionic + images: + osh: + openvswitch: + openvswitch_db_server: "docker.io/openstackhelm/openvswitch:latest-ubuntu_bionic" + openvswitch_vswitchd: "docker.io/openstackhelm/openvswitch:latest-ubuntu_bionic" + neutron: + bootstrap: *heat + db_init: *heat + neutron_db_sync: *neutron + db_drop: *heat + ks_user: *heat + ks_service: *heat + ks_endpoints: *heat + neutron_server: *neutron + neutron_dhcp: *neutron + neutron_metadata: *neutron + neutron_l3: *neutron + neutron_l2gw: *neutron + neutron_openvswitch_agent: *neutron + neutron_linuxbridge_agent: *neutron + neutron_bagpipe_bgp: *neutron + nova: + bootstrap: *heat + db_drop: *heat + db_init: *heat + ks_user: *heat + ks_service: *heat + ks_endpoints: *heat + nova_api: *nova + nova_cell_setup: *nova + nova_cell_setup_init: *heat + nova_compute: *nova + nova_compute_ssh: *nova + nova_conductor: *nova + nova_consoleauth: *nova + nova_db_sync: *nova + nova_novncproxy: *nova + nova_novncproxy_assets: *nova + nova_placement: *nova + nova_scheduler: *nova + nova_spiceproxy: *nova + nova_spiceproxy_assets: *nova + nova_service_cleaner: "docker.io/openstackhelm/ceph-config-helper:latest-ubuntu_xenial" + openvswitch: + openvswitch_db_server: *openvswitch + openvswitch_vswitchd: *openvswitch +... -- 2.16.6