Skip to content
This repository was archived by the owner on Jun 25, 2024. It is now read-only.

Commit d2e37c1

Browse files
author
Jaganathan Palanisamy
committed
Example OVS DPDK SRIOV EDPM CR
This change is to add example EDPM CR for OVS DPDK SRIOV nodeset.
1 parent 24a9fad commit d2e37c1

File tree

2 files changed

+224
-0
lines changed

2 files changed

+224
-0
lines changed
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
apiVersion: kustomize.config.k8s.io/v1alpha1
2+
kind: Component
3+
4+
namespace: openstack
5+
nameSuffix: -ovs-dpdk-sriov
6+
7+
components:
8+
- ../baremetal
9+
10+
resources:
11+
- values.yaml
12+
13+
replacements:
14+
# OpenStackDataPlaneNodeSet customizations
15+
- source:
16+
kind: DataPlaneConfig
17+
name: edpm-ovs-dpdk-sriov-values
18+
fieldPath: data.nodeset.nodetemplate.ansible.vars
19+
targets:
20+
- select:
21+
kind: OpenStackDataPlaneNodeSet
22+
fieldPaths:
23+
- spec.nodeTemplate.ansible.ansibleVars
24+
options:
25+
create: true
26+
- source:
27+
kind: DataPlaneConfig
28+
name: edpm-ovs-dpdk-sriov-values
29+
fieldPath: data.nodeset.services
30+
targets:
31+
- select:
32+
kind: OpenStackDataPlaneNodeSet
33+
fieldPaths:
34+
- spec.services
35+
options:
36+
create: true
37+
- source:
38+
kind: DataPlaneConfig
39+
name: edpm-ovs-dpdk-sriov-values
40+
fieldPath: data.nodeset.nodes
41+
targets:
42+
- select:
43+
kind: OpenStackDataPlaneNodeSet
44+
fieldPaths:
45+
- spec.nodes
46+
options:
47+
create: true
48+
- source:
49+
kind: DataPlaneConfig
50+
name: edpm-ovs-dpdk-sriov-values
51+
fieldPath: data.nodeset.baremetalsettemplate
52+
targets:
53+
- select:
54+
kind: OpenStackDataPlaneNodeSet
55+
fieldPaths:
56+
- spec.baremetalSetTemplate
57+
options:
58+
create: true
59+
- source:
60+
kind: DataPlaneConfig
61+
name: edpm-ovs-dpdk-sriov-values
62+
fieldPath: data.preProvisioned
63+
targets:
64+
- select:
65+
kind: OpenStackDataPlaneNodeSet
66+
fieldPaths:
67+
- spec.preProvisioned
68+
options:
69+
create: true
70+
- source:
71+
kind: DataPlaneConfig
72+
name: edpm-ovs-dpdk-sriov-values
73+
fieldPath: data.nodeset.nodetemplate.networks
74+
targets:
75+
- select:
76+
kind: OpenStackDataPlaneNodeSet
77+
fieldPaths:
78+
- spec.nodeTemplate.networks
79+
options:
80+
create: true

examples/ovs_dpdk_sriov/values.yaml

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# local-config: referenced, but not emitted by kustomize
2+
apiVersion: v1
3+
kind: DataPlaneConfig
4+
metadata:
5+
name: edpm-ovs-dpdk-sriov-values
6+
annotations:
7+
config.kubernetes.io/local-config: "true"
8+
data:
9+
preProvisioned: false
10+
nodeset:
11+
baremetalsettemplate:
12+
bmhLabelSelector:
13+
app: openstack
14+
ctlplaneInterface: enp1s0
15+
cloudUserName: cloud-admin
16+
nodetemplate:
17+
ansible:
18+
vars:
19+
# CHANGEME -- see https://access.redhat.com/solutions/253273
20+
# edpm_bootstrap_command: |
21+
# subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }}
22+
# podman login -u {{ registry_username }} -p {{ registry_password }} registry.redhat.io
23+
edpm_network_config_hide_sensitive_logs: false
24+
edpm_network_config_template: |
25+
---
26+
{% set mtu_list = [ctlplane_mtu] %}
27+
{% for network in nodeset_networks %}
28+
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
29+
{%- endfor %}
30+
{% set min_viable_mtu = mtu_list | max %}
31+
network_config:
32+
- type: ovs_bridge
33+
name: {{ neutron_physical_bridge_name }}
34+
mtu: {{ min_viable_mtu }}
35+
use_dhcp: false
36+
dns_servers: {{ ctlplane_dns_nameservers }}
37+
domain: {{ dns_search_domains }}
38+
addresses:
39+
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
40+
routes: {{ ctlplane_host_routes }}
41+
members:
42+
- type: interface
43+
name: nic1
44+
mtu: {{ min_viable_mtu }}
45+
# force the MAC address of the bridge to this interface
46+
primary: true
47+
{% for network in nodeset_networks if network not in ["external", "tenant"] %}
48+
- type: vlan
49+
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
50+
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
51+
addresses:
52+
- ip_netmask:
53+
{{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
54+
routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
55+
{% endfor %}
56+
- type: ovs_user_bridge
57+
name: br-link1
58+
use_dhcp: false
59+
ovs_extra: "set port br-link1 tag={{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}"
60+
addresses:
61+
- ip_netmask: {{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr') }}
62+
63+
mtu: {{ lookup('vars', networks_lower['tenant'] ~ '_mtu') }}
64+
members:
65+
- type: ovs_dpdk_port
66+
name: dpdk1
67+
members:
68+
- type: interface
69+
name: nic3
70+
- type: ovs_user_bridge
71+
name: br-link2
72+
use_dhcp: false
73+
mtu: 9000
74+
members:
75+
- type: ovs_dpdk_port
76+
name: dpdk2
77+
members:
78+
- type: interface
79+
name: nic4
80+
- type: sriov_pf
81+
name: nic5
82+
numvfs: 10
83+
mtu: 9000
84+
use_dhcp: false
85+
promisc: true
86+
- type: sriov_pf
87+
name: nic6
88+
numvfs: 10
89+
mtu: 9000
90+
use_dhcp: false
91+
promisc: true
92+
neutron_physical_bridge_name: br-ex
93+
# edpm_nodes_validation
94+
edpm_nodes_validation_validate_controllers_icmp: false
95+
edpm_nodes_validation_validate_gateway_icmp: false
96+
# edpm nfv ovs dpdk config
97+
edpm_kernel_args: "default_hugepagesz=1GB hugepagesz=1G hugepages=64 iommu=pt intel_iommu=on tsx=off isolcpus=2-11,14-23"
98+
edpm_tuned_profile: "cpu-partitioning"
99+
edpm_nova_libvirt_qemu_group: "hugetlbfs"
100+
edpm_tuned_isolated_cores: "2-11,14-23"
101+
edpm_ovs_dpdk_pmd_core_list: "1,13,2,14,3,15"
102+
edpm_ovs_dpdk_socket_memory: "4096"
103+
edpm_ovs_dpdk_memory_channels: "4"
104+
edpm_ovs_dpdk_vhost_postcopy_support: "true"
105+
edpm_ovn_bridge_mappings: ['dpdk2:br-link2','dpdk1:br-link1']
106+
# edpm nfv sriov config
107+
edpm_neutron_sriov_agent_SRIOV_NIC_physical_device_mappings: 'sriov1:eno5,sriov2:eno6'
108+
gather_facts: false
109+
enable_debug: false
110+
edpm_sshd_allowed_ranges: ['192.168.122.0/24']
111+
networks:
112+
- defaultRoute: true
113+
name: ctlplane
114+
subnetName: subnet1
115+
- name: internalapi
116+
subnetName: subnet1
117+
- name: storage
118+
subnetName: subnet1
119+
- name: tenant
120+
subnetName: subnet1
121+
nodes:
122+
edpm-compute-0:
123+
hostName: edpm-compute-0
124+
edpm-compute-1:
125+
hostName: edpm-compute-1
126+
services:
127+
- bootstrap
128+
- download-cache
129+
- reboot-os
130+
- configure-ovs-dpdk
131+
- configure-network
132+
- validate-network
133+
- install-os
134+
- configure-os
135+
- ssh-known-hosts
136+
- run-os
137+
- install-certs
138+
- ovn
139+
- neutron-ovn
140+
- neutron-metadata
141+
- neutron-sriov
142+
- libvirt
143+
- nova
144+
- telemetry

0 commit comments

Comments
 (0)