summaryrefslogtreecommitdiffstats
path: root/playbooks/roles/bmra-config/templates/kube-node.j2
blob: 51c41122411e084b89c6806f1010eddc65033e96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
{#
SPDX-FileCopyrightText: 2021 Intel Corporation

SPDX-License-Identifier: Apache-2.0
#}

---
# Kubernetes node configuration

# Enable IOMMU (required for SR-IOV networking)
iommu_enabled: {{ bmra.features.sriov.enable }}

# dataplane interface configuration list
{% if bmra.network_roles.sriov is defined or bmra.network_roles.sriov_dpdk is defined %}
dataplane_interfaces:
{% for intf in bmra.network_roles.sriov %}
  - name: {{ intf.name }}
    bus_info: "{{ intf.pci }}"
    pf_driver: {{ intf.pf_driver }}
    default_vf_driver: "{{ intf.vf_driver }}"
    sriov_numvfs: {{ bmra.features.sriov.sriov_vfs_per_port }}
{% endfor %}
{% for intf in bmra.network_roles.sriov_dpdk %}
  - name: {{ intf.name }}
    bus_info: "{{ intf.pci }}"
    pf_driver: {{ intf.pf_driver }}
    default_vf_driver: "{{ intf.vf_driver }}"
    sriov_numvfs: {{ bmra.features.sriov.sriov_dpdk_vfs_per_port }}
{% endfor %}
{% else %}
dataplane_interface: []
{% endif %}

sriov_cni_enabled: {{ bmra.features.sriov_cni }}

# Bond CNI
bond_cni_enabled: {{ bmra.features.bond_cni }}

# Install DPDK (required for SR-IOV networking)
install_dpdk: true

# DPDK version
dpdk_version: "21.05"

# Custom DPDK patches local path
# dpdk_local_patches_dir: "/tmp/patches/dpdk-20.11"

# Userspace networking
userspace_cni_enabled: false
ovs_dpdk_enabled: false # Should be enabled with Userspace CNI, when VPP is set to "false"; 1G default_hugepage_size required
ovs_version: "v2.15.0"
# CPU mask for OVS-DPDK PMD threads
ovs_dpdk_lcore_mask: 0x1
# Huge memory pages allocated by OVS-DPDK per NUMA node in megabytes
# example 1: "256,512" will allocate 256MB from node 0 abd 512MB from node 1
# example 2: "1024" will allocate 1GB from node 0 on a single socket board, e.g. in a VM
ovs_dpdk_socket_mem: "256,0"
vpp_enabled: false # Should be enabled with Userspace CNI, when ovs_dpdk is set to "false"; 2M default_hugepage_size required

# Set to 'true' to update i40e, ice and iavf kernel modules
update_nic_drivers: false

# Set 'true' to update NIC firmware
update_nic_firmware: false

# Additional list of NIC interfaces that the FW update will be executed on
# NOTE: FW update will be also executed on all NICs listed in "dataplane_interfaces[*].name"
firmware_update_nics: []
#  - enp24s0f0
#  - enp24s0f1

# install Intel x700 & x800 series NICs DDP packages
install_ddp_packages: false
# set 'true' to enable custom ddp package to be loaded after reboot
enable_ice_systemd_service: false
# Enabling this feature will install QAT drivers + services
update_qat_drivers: {{ bmra.features.qat.update_drivers }}

# qat interface configuration list
{% if bmra.device_roles.qat is defined %}
qat_devices:
{% for dev in bmra.device_roles.qat %}
  - qat_dev: {{ dev.name }}
    qat_id: "{{ dev.pci }}"
    qat_pci_type: {{ dev.pci_type }}
    qat_sriov_numvfs: {{ dev.vfs }}
{% endfor %}
{% else %}
qat_devices: []
{% endif %}

# Install and configure OpenSSL cryptography
openssl_install: {{ bmra.features.qat.update_drivers }} # This requires update_qat_drivers set to 'true' in host vars

# Enables hugepages support
hugepages_enabled: {{ bmra.features.hugepages.enable }}

# Hugepage sizes available: 2M, 1G
default_hugepage_size: {{ bmra.features.hugepages.default }}

# Sets how many hugepages of 'default_hugepage_size' size should be created
number_of_hugepages: {{ bmra.features.hugepages.amount }}

# CPU isolation from Linux scheduler
isolcpus_enabled: {{ bmra.features.isolcpus.enable }}
# Disable CMKs autogenerate_isolcpus in group_vars to set custom isolcpus range; Otherwise this range will be automatically generated
# If defining range and using CMK you must account group_vars requested exclusive/shared cores
isolcpus: "{{ bmra.features.isolcpus.cpus }}"

# Native CPU Manager (Kubernetes built-in)
# These settings are relevant only if in group_vars native_cpu_manager_enabled: true
# Amount of CPU cores that will be reserved for the housekeeping (2000m = 2000 millicores = 2 cores)
native_cpu_manager_system_reserved_cpus: 2000m
# Amount of CPU cores that will be reserved for Kubelet
native_cpu_manager_kube_reserved_cpus: 1000m
# Explicit list of the CPUs reserved from pods scheduling.
# Note: Supported only with kube_version 1.17 and newer, overrides native_cpu_manager_system_reserved_cpus and native_cpu_manager_kube_reserved_cpus.
#native_cpu_manager_reserved_cpus: "0,1,2"
# Note: All remaining unreserved CPU cores will be consumed by the workloads.

# Enable/Disable Intel PState scaling driver
intel_pstate_enabled: false
# Config options for intel_pstate: disable, passive, force, no_hwp, hwp_only, support_acpi_ppc, per_cpu_perf_limits
intel_pstate: hwp_only
# Enable/Disable Intel Turbo Boost PState attribute
turbo_boost_enabled: false

# Intel Speed Select Base-Frequency configuration.
sst_bf_configuration_enabled: false

# Intel Speed Select Base-Frequency configuration for Cascade Lake (CLX) Platforms.
# CLX support of SST-BF requires 'intel_pstate' to be 'enabled'
# Option clx_sst_bf_mode requires sst_bf_configuration_enabled to be set to 'true'.
# There are three configuration modes:
# [s] Set SST-BF config (set min/max to 2700/2700 and 2100/2100)
# [m] Set P1 on all cores (set min/max to 2300/2300)
# [r] Revert cores to min/Turbo (set min/max to 800/3900)
clx_sst_bf_mode: s

# Intel Speed Select Base-Frequency configuration for Ice Lake (ICX) Platforms.
# [true] Enable Intel Speed Select Base Frequency (SST-BF)
# [false] Disable Intel Speed Select Base Frequency (SST-BF)
# Requires `sst_bf_configuration_enabled` variable to be 'true'
icx_sst_bf_enabled: false
# Prioritze (SST-CP) power flow to high frequency cores in case of CPU power constraints.
icx_sst_bf_with_core_priority: false

# SST CP config
# Variables are only examples.
# For more information, please visit:
# https://www.kernel.org/doc/html/latest/admin-guide/pm/intel-speed-select.html#enable-clos-based-prioritization
# Enabling this configuration overrides `icx_sst_bf_with_core_priority`.
sst_cp_configuration_enabled: false
sst_cp_priority_type: 0 # 0 - Proportional, 1 - Ordered
sst_cp_clos_groups: # configure up to 4 CLOS groups
  - id: 0
    frequency_weight: 0 # used only with Proportional type
    min_MHz: 0
    max_MHz: 25500
  - id: 1
    frequency_weight: 0 # used only with Proportional type
    min_MHz: 0
    max_MHz: 25500
  - id: 2
    frequency_weight: 0 # used only with Proportional type
    min_MHz: 0
    max_MHz: 25500
  - id: 3
    frequency_weight: 0 # used only with Proportional type
    min_MHz: 0
    max_MHz: 25500
sst_cp_cpu_clos:
  - clos: 0
    cpus: 1,2,4..6,8-10
  - clos: 1
    cpus: 3,7

# Intel(R) SST-TF (feature turbo-freq) configuration for Ice Lake (ICX) Platforms.
# [true] Enable Intel Speed Select Turbo Frequency (SST-TF)
# [false] Disable Intel Speed Select Base Frequency (SST-TF)
sst_tf_configuration_enabled: false

# (CentOS 7 only) install real time kernel and related packages for flexran
install_real_time_package: false

# Intel Software Guard Extensions (SGX)
sgx_enabled: false

# Telemetry configuration
# intel_pmu plugin collects information provided by Linux perf interface.
enable_intel_pmu_plugin: false
# CPU Threads to be monitored by Intel PMU Plugin.
# If the field is empty, all available cores will be monitored.
# Please refer to https://collectd.org/wiki/index.php/Plugin:Intel_PMU for configuration details.
intel_pmu_plugin_monitored_cores: ""
# CPU Threads to be monitored by Intel RDT Plugin.
# If the field is empty, all available cores will be monitored.
# Please refer to https://collectd.org/wiki/index.php/Plugin:IntelRDT for configuration details.
intel_rdt_plugin_monitored_cores: ""

# Additional list of plugins that will be excluded from collectd deployment.
exclude_collectd_plugins: []