2.4. Configure Controller-0

Acquire admin credentials:

sysadmin@controller-0:~$ source /etc/platform/openrc

Configure the OAM interface of controller-0 and specify the attached network as “oam”:

[sysadmin@controller-0 ~(keystone_admin)]$ OAM_IF=<OAM-PORT>
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-modify controller-0 $OAM_IF -c platform
[sysadmin@controller-0 ~(keystone_admin)]$ system interface-network-assign controller-0 $OAM_IF oam

Note

use OAM port name that is applicable to your deployment environment

Configure NTP servers for network time synchronization:

[sysadmin@controller-0 ~(keystone_admin)]$ system ntp-modify ntpservers=0.pool.ntp.org,1.pool.ntp.org

Configure PCI-SRIOV Interfaces:

[sysadmin@controller-0 ~(keystone_admin)]$ export NODE=controller-0

List inventoried host’s ports and identify ports to be used as ‘pci-sriov’ interfaces, based on displayed linux port name, pci address and device type.

[sysadmin@controller-0 ~(keystone_admin)]$ system host-port-list ${NODE}

List host’s auto-configured ‘ethernet’ interfaces. Find the interfaces corresponding to the ports identified in previous step, and take note of their UUID.

[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-list -a ${NODE}

Modify the configuration for these interfaces. Configuring them as ‘pci-sriov’ class interfaces, MTU of 1500 and named sriov.

[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-modify -m 1500 -n sriov0 -c pci-sriov ${NODE} <sriov0-if-uuid> -N <num_vfs>
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-modify -m 1500 -n sriov1 -c pci-sriov ${NODE} <sriov1-if-uuid> -N <num_vfs>

Create Data Networks that the ‘pci-sriov’ interfaces will be connected to.

[sysadmin@controller-0 ~(keystone_admin)]$ DATANET0='datanet0'
[sysadmin@controller-0 ~(keystone_admin)]$ DATANET1='datanet1'
[sysadmin@controller-0 ~(keystone_admin)]$ system datanetwork-add ${DATANET0} vlan
[sysadmin@controller-0 ~(keystone_admin)]$ system datanetwork-add ${DATANET1} vlan

Assign Data Networks to PCI-SRIOV Interfaces.

[sysadmin@controller-0 ~(keystone_admin)]$ system interface-datanetwork-assign ${NODE} <sriov0-if-name> ${DATANET0}
[sysadmin@controller-0 ~(keystone_admin)]$ system interface-datanetwork-assign ${NODE} <sriov1-if-name> ${DATANET1}

Configure the Kubernetes SR-IOV device plugin.

[sysadmin@controller-0 ~(keystone_admin)]$ system host-label-assign ${NODE} sriovdp=enabled

Configure Huge pages:

To set the huge pages, run the following command for each NUMA node:

[sysadmin@controller-0 ~(keystone_admin)]$ system host-memory-modify ${NODE} 0 -2M 16000
[sysadmin@controller-0 ~(keystone_admin)]$ system host-memory-modify ${NODE} 1 -2M 16000

Install the license file:

[sysadmin@controller-0 ~(keystone_admin)]$ system license-install <license_file_path>

Unlock controller-0:

Unlock controller-0 to bring it into service:

[sysadmin@controller-0 ~(keystone_admin)]$ system host-unlock controller-0

Controller-0 will reboot in order to apply configuration changes and come into service. This can take 5-10 minutes, depending on the performance of the host machine.

Apply a workaround about |sr-iov| device plugin

At the time we write this document, in the Wind River Cloud Platform, and so in the 22.12 release, there is no way to specify the needVhostNet parameter in the SR-IOV Network Device Plugin configuration file.

As a workaround, update the file /etc/pcidp/config.json by adding the following line in the ‘resourceList’ section of this file: “needVhostNet”: true

Then, in order for this change to be taken into account, restart the kube-sriov-device-plugin pod in the kube-system namespace.

sysadmin@controller-0:~$ kubectl delete pod -n kube-system kube-sriov-device-plugin-xxx

Note

This point will be fixed in Wind River Cloud Platform next release.

Once the configuration is completed, you should have similar outputs.

[sysadmin@controller-0 ~(keystone_admin)]$ system host-list
+----+--------------+-------------+----------------+-------------+--------------+
| id | hostname     | personality | administrative | operational | availability |
+----+--------------+-------------+----------------+-------------+--------------+
| 1  | controller-0 | controller  | unlocked       | enabled     | available    |
+----+--------------+-------------+----------------+-------------+--------------+
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-list controller-0
+--------------------------------------+---------+-----------+----------+------+---------------+------+--------+------------+
| uuid                                 | name    | class     | type     | vlan | ports         | uses | used   | attributes |
|                                      |         |           |          | id   |               | i/f  | by i/f |            |
+--------------------------------------+---------+-----------+----------+------+---------------+------+--------+------------+
| 2ec34ff5-af9d-4ad2-bbf3-328f78bf6c80 | sriov1  | pci-sriov | ethernet | None | ['enp75s0f1'] | []   | []     | MTU=1500   |
| 470cc290-e072-4f2b-8ae3-f515c55c2a39 | eno8303 | platform  | ethernet | None | ['eno8303']   | []   | []     | MTU=1500   |
| bc68527a-0811-4abd-9997-39e03054308a | sriov0  | pci-sriov | ethernet | None | ['enp75s0f0'] | []   | []     | MTU=1500   |
| e207eb31-a468-4b33-b516-90fb66b55cbb | lo      | platform  | virtual  | None | []            | []   | []     | MTU=1500   |
+--------------------------------------+---------+-----------+----------+------+---------------+------+--------+------------+
[sysadmin@controller-0 ~(keystone_admin)]$ system datanetwork-list
+--------------------------------------+----------+--------------+------+
| uuid                                 | name     | network_type | mtu  |
+--------------------------------------+----------+--------------+------+
| 8e0f8618-f557-44d4-9160-b57eee0d8750 | datanet0 | vlan         | 1500 |
| a1b64581-c64f-4589-8053-ee1413019687 | datanet1 | vlan         | 1500 |
+--------------------------------------+----------+--------------+------+
[sysadmin@controller-0 ~(keystone_admin)]$ system kube-cluster-list
+--------------+-----------------+--------------------------+
| cluster_name | cluster_version | cluster_api_endpoint     |
+--------------+-----------------+--------------------------+
| kubernetes   | v1.24.4         | https://x.x.x.x:6443 |
+--------------+-----------------+--------------------------+