Updates Kuberef to use BMRA v21.08
[kuberef.git] / playbooks / roles / bmra-config / templates / kube-node.j2
1 {#
2 SPDX-FileCopyrightText: 2021 Intel Corporation
3
4 SPDX-License-Identifier: Apache-2.0
5 #}
6
7 ---
8 # Kubernetes node configuration
9
10 # Enable IOMMU (required for SR-IOV networking)
11 iommu_enabled: {{ bmra.features.sriov.enable }}
12
13 # dataplane interface configuration list
14 {% if bmra.network_roles.sriov is defined or bmra.network_roles.sriov_dpdk is defined %}
15 dataplane_interfaces:
16 {% for intf in bmra.network_roles.sriov %}
17   - name: {{ intf.name }}
18     bus_info: "{{ intf.pci }}"
19     pf_driver: {{ intf.pf_driver }}
20     default_vf_driver: "{{ intf.vf_driver }}"
21     sriov_numvfs: {{ bmra.features.sriov.sriov_vfs_per_port }}
22 {% endfor %}
23 {% for intf in bmra.network_roles.sriov_dpdk %}
24   - name: {{ intf.name }}
25     bus_info: "{{ intf.pci }}"
26     pf_driver: {{ intf.pf_driver }}
27     default_vf_driver: "{{ intf.vf_driver }}"
28     sriov_numvfs: {{ bmra.features.sriov.sriov_dpdk_vfs_per_port }}
29 {% endfor %}
30 {% else %}
31 dataplane_interface: []
32 {% endif %}
33
34 sriov_cni_enabled: {{ bmra.features.sriov_cni }}
35
36 # Bond CNI
37 bond_cni_enabled: {{ bmra.features.bond_cni }}
38
39 # Install DPDK (required for SR-IOV networking)
40 install_dpdk: true
41
42 # DPDK version
43 dpdk_version: "21.05"
44
45 # Custom DPDK patches local path
46 # dpdk_local_patches_dir: "/tmp/patches/dpdk-20.11"
47
48 # Userspace networking
49 userspace_cni_enabled: false
50 ovs_dpdk_enabled: false # Should be enabled with Userspace CNI, when VPP is set to "false"; 1G default_hugepage_size required
51 ovs_version: "v2.15.0"
52 # CPU mask for OVS-DPDK PMD threads
53 ovs_dpdk_lcore_mask: 0x1
54 # Huge memory pages allocated by OVS-DPDK per NUMA node in megabytes
55 # example 1: "256,512" will allocate 256MB from node 0 abd 512MB from node 1
56 # example 2: "1024" will allocate 1GB from node 0 on a single socket board, e.g. in a VM
57 ovs_dpdk_socket_mem: "256,0"
58 vpp_enabled: false # Should be enabled with Userspace CNI, when ovs_dpdk is set to "false"; 2M default_hugepage_size required
59
60 # Set to 'true' to update i40e, ice and iavf kernel modules
61 update_nic_drivers: false
62
63 # Set 'true' to update NIC firmware
64 update_nic_firmware: false
65
66 # Additional list of NIC interfaces that the FW update will be executed on
67 # NOTE: FW update will be also executed on all NICs listed in "dataplane_interfaces[*].name"
68 firmware_update_nics: []
69 #  - enp24s0f0
70 #  - enp24s0f1
71
72 # install Intel x700 & x800 series NICs DDP packages
73 install_ddp_packages: false
74 # set 'true' to enable custom ddp package to be loaded after reboot
75 enable_ice_systemd_service: false
76 # Enabling this feature will install QAT drivers + services
77 update_qat_drivers: {{ bmra.features.qat.update_drivers }}
78
79 # qat interface configuration list
80 {% if bmra.device_roles.qat is defined %}
81 qat_devices:
82 {% for dev in bmra.device_roles.qat %}
83   - qat_dev: {{ dev.name }}
84     qat_id: "{{ dev.pci }}"
85     qat_pci_type: {{ dev.pci_type }}
86     qat_sriov_numvfs: {{ dev.vfs }}
87 {% endfor %}
88 {% else %}
89 qat_devices: []
90 {% endif %}
91
92 # Install and configure OpenSSL cryptography
93 openssl_install: {{ bmra.features.qat.update_drivers }} # This requires update_qat_drivers set to 'true' in host vars
94
95 # Enables hugepages support
96 hugepages_enabled: {{ bmra.features.hugepages.enable }}
97
98 # Hugepage sizes available: 2M, 1G
99 default_hugepage_size: {{ bmra.features.hugepages.default }}
100
101 # Sets how many hugepages of 'default_hugepage_size' size should be created
102 number_of_hugepages: {{ bmra.features.hugepages.amount }}
103
104 # CPU isolation from Linux scheduler
105 isolcpus_enabled: {{ bmra.features.isolcpus.enable }}
106 # Disable CMKs autogenerate_isolcpus in group_vars to set custom isolcpus range; Otherwise this range will be automatically generated
107 # If defining range and using CMK you must account group_vars requested exclusive/shared cores
108 isolcpus: "{{ bmra.features.isolcpus.cpus }}"
109
110 # Native CPU Manager (Kubernetes built-in)
111 # These settings are relevant only if in group_vars native_cpu_manager_enabled: true
112 # Amount of CPU cores that will be reserved for the housekeeping (2000m = 2000 millicores = 2 cores)
113 native_cpu_manager_system_reserved_cpus: 2000m
114 # Amount of CPU cores that will be reserved for Kubelet
115 native_cpu_manager_kube_reserved_cpus: 1000m
116 # Explicit list of the CPUs reserved from pods scheduling.
117 # Note: Supported only with kube_version 1.17 and newer, overrides native_cpu_manager_system_reserved_cpus and native_cpu_manager_kube_reserved_cpus.
118 #native_cpu_manager_reserved_cpus: "0,1,2"
119 # Note: All remaining unreserved CPU cores will be consumed by the workloads.
120
121 # Enable/Disable Intel PState scaling driver
122 intel_pstate_enabled: false
123 # Config options for intel_pstate: disable, passive, force, no_hwp, hwp_only, support_acpi_ppc, per_cpu_perf_limits
124 intel_pstate: hwp_only
125 # Enable/Disable Intel Turbo Boost PState attribute
126 turbo_boost_enabled: false
127
128 # Intel Speed Select Base-Frequency configuration.
129 sst_bf_configuration_enabled: false
130
131 # Intel Speed Select Base-Frequency configuration for Cascade Lake (CLX) Platforms.
132 # CLX support of SST-BF requires 'intel_pstate' to be 'enabled'
133 # Option clx_sst_bf_mode requires sst_bf_configuration_enabled to be set to 'true'.
134 # There are three configuration modes:
135 # [s] Set SST-BF config (set min/max to 2700/2700 and 2100/2100)
136 # [m] Set P1 on all cores (set min/max to 2300/2300)
137 # [r] Revert cores to min/Turbo (set min/max to 800/3900)
138 clx_sst_bf_mode: s
139
140 # Intel Speed Select Base-Frequency configuration for Ice Lake (ICX) Platforms.
141 # [true] Enable Intel Speed Select Base Frequency (SST-BF)
142 # [false] Disable Intel Speed Select Base Frequency (SST-BF)
143 # Requires `sst_bf_configuration_enabled` variable to be 'true'
144 icx_sst_bf_enabled: false
145 # Prioritze (SST-CP) power flow to high frequency cores in case of CPU power constraints.
146 icx_sst_bf_with_core_priority: false
147
148 # SST CP config
149 # Variables are only examples.
150 # For more information, please visit:
151 # https://www.kernel.org/doc/html/latest/admin-guide/pm/intel-speed-select.html#enable-clos-based-prioritization
152 # Enabling this configuration overrides `icx_sst_bf_with_core_priority`.
153 sst_cp_configuration_enabled: false
154 sst_cp_priority_type: 0 # 0 - Proportional, 1 - Ordered
155 sst_cp_clos_groups: # configure up to 4 CLOS groups
156   - id: 0
157     frequency_weight: 0 # used only with Proportional type
158     min_MHz: 0
159     max_MHz: 25500
160   - id: 1
161     frequency_weight: 0 # used only with Proportional type
162     min_MHz: 0
163     max_MHz: 25500
164   - id: 2
165     frequency_weight: 0 # used only with Proportional type
166     min_MHz: 0
167     max_MHz: 25500
168   - id: 3
169     frequency_weight: 0 # used only with Proportional type
170     min_MHz: 0
171     max_MHz: 25500
172 sst_cp_cpu_clos:
173   - clos: 0
174     cpus: 1,2,4..6,8-10
175   - clos: 1
176     cpus: 3,7
177
178 # Intel(R) SST-TF (feature turbo-freq) configuration for Ice Lake (ICX) Platforms.
179 # [true] Enable Intel Speed Select Turbo Frequency (SST-TF)
180 # [false] Disable Intel Speed Select Base Frequency (SST-TF)
181 sst_tf_configuration_enabled: false
182
183 # (CentOS 7 only) install real time kernel and related packages for flexran
184 install_real_time_package: false
185
186 # Intel Software Guard Extensions (SGX)
187 sgx_enabled: false
188
189 # Telemetry configuration
190 # intel_pmu plugin collects information provided by Linux perf interface.
191 enable_intel_pmu_plugin: false
192 # CPU Threads to be monitored by Intel PMU Plugin.
193 # If the field is empty, all available cores will be monitored.
194 # Please refer to https://collectd.org/wiki/index.php/Plugin:Intel_PMU for configuration details.
195 intel_pmu_plugin_monitored_cores: ""
196 # CPU Threads to be monitored by Intel RDT Plugin.
197 # If the field is empty, all available cores will be monitored.
198 # Please refer to https://collectd.org/wiki/index.php/Plugin:IntelRDT for configuration details.
199 intel_rdt_plugin_monitored_cores: ""
200
201 # Additional list of plugins that will be excluded from collectd deployment.
202 exclude_collectd_plugins: []