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

Commit

Permalink
Example OVS DPDK SRIOV EDPM CR
Browse files Browse the repository at this point in the history
This change is to add example EDPM CR for OVS DPDK SRIOV
nodeset.
  • Loading branch information
Jaganathan Palanisamy committed Apr 23, 2024
1 parent 24a9fad commit d2e37c1
Show file tree
Hide file tree
Showing 2 changed files with 224 additions and 0 deletions.
80 changes: 80 additions & 0 deletions examples/ovs_dpdk_sriov/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
apiVersion: kustomize.config.k8s.io/v1alpha1
kind: Component

namespace: openstack
nameSuffix: -ovs-dpdk-sriov

components:
- ../baremetal

resources:
- values.yaml

replacements:
# OpenStackDataPlaneNodeSet customizations
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.nodeset.nodetemplate.ansible.vars
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.nodeTemplate.ansible.ansibleVars
options:
create: true
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.nodeset.services
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.services
options:
create: true
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.nodeset.nodes
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.nodes
options:
create: true
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.nodeset.baremetalsettemplate
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.baremetalSetTemplate
options:
create: true
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.preProvisioned
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.preProvisioned
options:
create: true
- source:
kind: DataPlaneConfig
name: edpm-ovs-dpdk-sriov-values
fieldPath: data.nodeset.nodetemplate.networks
targets:
- select:
kind: OpenStackDataPlaneNodeSet
fieldPaths:
- spec.nodeTemplate.networks
options:
create: true
144 changes: 144 additions & 0 deletions examples/ovs_dpdk_sriov/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# local-config: referenced, but not emitted by kustomize
apiVersion: v1
kind: DataPlaneConfig
metadata:
name: edpm-ovs-dpdk-sriov-values
annotations:
config.kubernetes.io/local-config: "true"
data:
preProvisioned: false
nodeset:
baremetalsettemplate:
bmhLabelSelector:
app: openstack
ctlplaneInterface: enp1s0
cloudUserName: cloud-admin
nodetemplate:
ansible:
vars:
# CHANGEME -- see https://access.redhat.com/solutions/253273
# edpm_bootstrap_command: |
# subscription-manager register --username {{ subscription_manager_username }} --password {{ subscription_manager_password }}
# podman login -u {{ registry_username }} -p {{ registry_password }} registry.redhat.io
edpm_network_config_hide_sensitive_logs: false
edpm_network_config_template: |
---
{% set mtu_list = [ctlplane_mtu] %}
{% for network in nodeset_networks %}
{{ mtu_list.append(lookup('vars', networks_lower[network] ~ '_mtu')) }}
{%- endfor %}
{% set min_viable_mtu = mtu_list | max %}
network_config:
- type: ovs_bridge
name: {{ neutron_physical_bridge_name }}
mtu: {{ min_viable_mtu }}
use_dhcp: false
dns_servers: {{ ctlplane_dns_nameservers }}
domain: {{ dns_search_domains }}
addresses:
- ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
routes: {{ ctlplane_host_routes }}
members:
- type: interface
name: nic1
mtu: {{ min_viable_mtu }}
# force the MAC address of the bridge to this interface
primary: true
{% for network in nodeset_networks if network not in ["external", "tenant"] %}
- type: vlan
mtu: {{ lookup('vars', networks_lower[network] ~ '_mtu') }}
vlan_id: {{ lookup('vars', networks_lower[network] ~ '_vlan_id') }}
addresses:
- ip_netmask:
{{ lookup('vars', networks_lower[network] ~ '_ip') }}/{{ lookup('vars', networks_lower[network] ~ '_cidr') }}
routes: {{ lookup('vars', networks_lower[network] ~ '_host_routes') }}
{% endfor %}
- type: ovs_user_bridge
name: br-link1
use_dhcp: false
ovs_extra: "set port br-link1 tag={{ lookup('vars', networks_lower['tenant'] ~ '_vlan_id') }}"
addresses:
- ip_netmask: {{ lookup('vars', networks_lower['tenant'] ~ '_ip') }}/{{ lookup('vars', networks_lower['tenant'] ~ '_cidr') }}
mtu: {{ lookup('vars', networks_lower['tenant'] ~ '_mtu') }}
members:
- type: ovs_dpdk_port
name: dpdk1
members:
- type: interface
name: nic3
- type: ovs_user_bridge
name: br-link2
use_dhcp: false
mtu: 9000
members:
- type: ovs_dpdk_port
name: dpdk2
members:
- type: interface
name: nic4
- type: sriov_pf
name: nic5
numvfs: 10
mtu: 9000
use_dhcp: false
promisc: true
- type: sriov_pf
name: nic6
numvfs: 10
mtu: 9000
use_dhcp: false
promisc: true
neutron_physical_bridge_name: br-ex
# edpm_nodes_validation
edpm_nodes_validation_validate_controllers_icmp: false
edpm_nodes_validation_validate_gateway_icmp: false
# edpm nfv ovs dpdk config
edpm_kernel_args: "default_hugepagesz=1GB hugepagesz=1G hugepages=64 iommu=pt intel_iommu=on tsx=off isolcpus=2-11,14-23"
edpm_tuned_profile: "cpu-partitioning"
edpm_nova_libvirt_qemu_group: "hugetlbfs"
edpm_tuned_isolated_cores: "2-11,14-23"
edpm_ovs_dpdk_pmd_core_list: "1,13,2,14,3,15"
edpm_ovs_dpdk_socket_memory: "4096"
edpm_ovs_dpdk_memory_channels: "4"
edpm_ovs_dpdk_vhost_postcopy_support: "true"
edpm_ovn_bridge_mappings: ['dpdk2:br-link2','dpdk1:br-link1']
# edpm nfv sriov config
edpm_neutron_sriov_agent_SRIOV_NIC_physical_device_mappings: 'sriov1:eno5,sriov2:eno6'
gather_facts: false
enable_debug: false
edpm_sshd_allowed_ranges: ['192.168.122.0/24']
networks:
- defaultRoute: true
name: ctlplane
subnetName: subnet1
- name: internalapi
subnetName: subnet1
- name: storage
subnetName: subnet1
- name: tenant
subnetName: subnet1
nodes:
edpm-compute-0:
hostName: edpm-compute-0
edpm-compute-1:
hostName: edpm-compute-1
services:
- bootstrap
- download-cache
- reboot-os
- configure-ovs-dpdk
- configure-network
- validate-network
- install-os
- configure-os
- ssh-known-hosts
- run-os
- install-certs
- ovn
- neutron-ovn
- neutron-metadata
- neutron-sriov
- libvirt
- nova
- telemetry

0 comments on commit d2e37c1

Please sign in to comment.