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

Example OVS DPDK SRIOV EDPM CR #826

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading