Updates Kuberef to use BMRA v21.08
[kuberef.git] / playbooks / roles / bmra-config / templates / kube-node.j2
index 302fa8f..51c4112 100644 (file)
@@ -1,59 +1,61 @@
-##
-##   Copyright (c) 2020 Intel Corporation.
-##
-##   Licensed under the Apache License, Version 2.0 (the "License");
-##   you may not use this file except in compliance with the License.
-##   You may obtain a copy of the License at
-##
-##       http://www.apache.org/licenses/LICENSE-2.0
-##
-##   Unless required by applicable law or agreed to in writing, software
-##   distributed under the License is distributed on an "AS IS" BASIS,
-##   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-##   See the License for the specific language governing permissions and
-##   limitations under the License.
-##
+{#
+SPDX-FileCopyrightText: 2021 Intel Corporation
+
+SPDX-License-Identifier: Apache-2.0
+#}
+
 ---
 # Kubernetes node configuration
 
-# Enable SR-IOV networking related setup
-sriov_enabled: {{ bmra.features.sriov.enable }}
+# Enable IOMMU (required for SR-IOV networking)
+iommu_enabled: {{ bmra.features.sriov.enable }}
 
-# SR-IOV PF specific configuration list
-sriov_nics:
+# 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.bus_info }}"
-    device_info: "{{ intf.device_info }}"
+    bus_info: "{{ intf.pci }}"
+    pf_driver: {{ intf.pf_driver }}
+    default_vf_driver: "{{ intf.vf_driver }}"
     sriov_numvfs: {{ bmra.features.sriov.sriov_vfs_per_port }}
-    vf_driver: {{ intf.driver }}
 {% endfor %}
 {% for intf in bmra.network_roles.sriov_dpdk %}
   - name: {{ intf.name }}
-    bus_info: "{{ intf.bus_info }}"
-    device_info: "{{ intf.device_info }}"
+    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 }}
-    vf_driver: {{ intf.driver }}
 {% endfor %}
+{% else %}
+dataplane_interface: []
+{% endif %}
 
 sriov_cni_enabled: {{ bmra.features.sriov_cni }}
 
 # Bond CNI
-bond_cni_enabled: false
+bond_cni_enabled: {{ bmra.features.bond_cni }}
+
+# Install DPDK (required for SR-IOV networking)
+install_dpdk: true
+
+# DPDK version
+dpdk_version: "21.05"
 
-# install DPDK
-install_dpdk: true # DPDK installation is required for sriov_enabled:true; default to false
+# 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 hugepages required
+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 fron node 0 on a single socket board, e.g. in a VM
+# 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 hugepages required
+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
@@ -62,16 +64,33 @@ update_nic_drivers: false
 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 "sriov_nics[*].name"
-firmware_update_nics:
-  - intf1
-  - intf2
+# 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 %}
 
-# set how many VFs per single QAT device PF should be created
-qat_sriov_numvfs: 16
+# 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 }}
@@ -79,21 +98,30 @@ hugepages_enabled: {{ bmra.features.hugepages.enable }}
 # Hugepage sizes available: 2M, 1G
 default_hugepage_size: {{ bmra.features.hugepages.default }}
 
-# Sets how many hugepages of each size should be created
-hugepages_1G: {{ bmra.features.hugepages.hugepages_1G }}
-hugepages_2M: {{ bmra.features.hugepages.hugepages_2M }}
+# 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 }}
-isolcpus: "{{ bmra.features.isolcpus.cpus }}" # Update to match group_vars requested exclusive/shared cores
-
-# Max number of processors to support (physical & logical cores)
-cpu_count: 144
+# 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: true
+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: disable
+intel_pstate: hwp_only
 # Enable/Disable Intel Turbo Boost PState attribute
 turbo_boost_enabled: false
 
@@ -109,9 +137,55 @@ sst_bf_configuration_enabled: false
 # [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