1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/ibm-z-configure-devices-mco.adoc
2024-11-21 16:09:58 +00:00

264 lines
7.8 KiB
Plaintext

// Module included in the following assemblies:
//
// * installing/installing_ibm_z/ibmz-post-install.adoc
:_mod-docs-content-type: PROCEDURE
[id="configure-additional-devices-using-mco_{context}"]
= Configuring additional devices using the Machine Config Operator (MCO)
Tasks in this section describe how to use features of the Machine Config Operator (MCO) to configure additional devices in an {ibm-z-name} or {ibm-linuxone-name} environment. Configuring devices with the MCO is persistent but only allows specific configurations for compute nodes. MCO does not allow control plane nodes to have different configurations.
.Prerequisites
* You are logged in to the cluster as a user with administrative privileges.
* The device must be available to the z/VM guest.
* The device is already attached.
* The device is not included in the `cio_ignore` list, which can be set in the kernel parameters.
* You have created a `MachineConfig` object file with the following YAML:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
name: worker0
spec:
machineConfigSelector:
matchExpressions:
- {key: machineconfiguration.openshift.io/role, operator: In, values: [worker,worker0]}
nodeSelector:
matchLabels:
node-role.kubernetes.io/worker0: ""
----
[id="configuring-fcp-host"]
== Configuring a Fibre Channel Protocol (FCP) host
The following is an example of how to configure an FCP host adapter with N_Port Identifier Virtualization (NPIV) by adding a udev rule.
.Procedure
. Take the following sample udev rule `441-zfcp-host-0.0.8000.rules`:
+
[source,terminal]
----
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.8000", DRIVER=="zfcp", GOTO="cfg_zfcp_host_0.0.8000"
ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="zfcp", TEST=="[ccw/0.0.8000]", GOTO="cfg_zfcp_host_0.0.8000"
GOTO="end_zfcp_host_0.0.8000"
LABEL="cfg_zfcp_host_0.0.8000"
ATTR{[ccw/0.0.8000]online}="1"
LABEL="end_zfcp_host_0.0.8000"
----
. Convert the rule to Base64 encoded by running the following command:
+
[source,terminal]
----
$ base64 /path/to/file/
----
. Copy the following MCO sample profile into a YAML file:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker0 <1>
name: 99-worker0-devices
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- contents:
source: data:text/plain;base64,<encoded_base64_string> <2>
filesystem: root
mode: 420
path: /etc/udev/rules.d/41-zfcp-host-0.0.8000.rules <3>
----
<1> The role you have defined in the machine config file.
<2> The Base64 encoded string that you have generated in the previous step.
<3> The path where the udev rule is located.
[id="configuring-fcp-lun"]
== Configuring an FCP LUN
The following is an example of how to configure an FCP LUN by adding a udev rule. You can add new FCP LUNs or add additional paths to LUNs that are already configured with multipathing.
.Procedure
. Take the following sample udev rule `41-zfcp-lun-0.0.8000:0x500507680d760026:0x00bc000000000000.rules`:
+
[source,terminal]
----
ACTION=="add", SUBSYSTEMS=="ccw", KERNELS=="0.0.8000", GOTO="start_zfcp_lun_0.0.8207"
GOTO="end_zfcp_lun_0.0.8000"
LABEL="start_zfcp_lun_0.0.8000"
SUBSYSTEM=="fc_remote_ports", ATTR{port_name}=="0x500507680d760026", GOTO="cfg_fc_0.0.8000_0x500507680d760026"
GOTO="end_zfcp_lun_0.0.8000"
LABEL="cfg_fc_0.0.8000_0x500507680d760026"
ATTR{[ccw/0.0.8000]0x500507680d760026/unit_add}="0x00bc000000000000"
GOTO="end_zfcp_lun_0.0.8000"
LABEL="end_zfcp_lun_0.0.8000"
----
. Convert the rule to Base64 encoded by running the following command:
+
[source,terminal]
----
$ base64 /path/to/file/
----
. Copy the following MCO sample profile into a YAML file:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker0 <1>
name: 99-worker0-devices
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- contents:
source: data:text/plain;base64,<encoded_base64_string> <2>
filesystem: root
mode: 420
path: /etc/udev/rules.d/41-zfcp-lun-0.0.8000:0x500507680d760026:0x00bc000000000000.rules <3>
----
<1> The role you have defined in the machine config file.
<2> The Base64 encoded string that you have generated in the previous step.
<3> The path where the udev rule is located.
[id="configuring-dasd"]
== Configuring DASD
The following is an example of how to configure a DASD device by adding a udev rule.
.Procedure
. Take the following sample udev rule `41-dasd-eckd-0.0.4444.rules`:
+
[source,terminal]
----
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.4444", DRIVER=="dasd-eckd", GOTO="cfg_dasd_eckd_0.0.4444"
ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="dasd-eckd", TEST=="[ccw/0.0.4444]", GOTO="cfg_dasd_eckd_0.0.4444"
GOTO="end_dasd_eckd_0.0.4444"
LABEL="cfg_dasd_eckd_0.0.4444"
ATTR{[ccw/0.0.4444]online}="1"
LABEL="end_dasd_eckd_0.0.4444"
----
. Convert the rule to Base64 encoded by running the following command:
+
[source,terminal]
----
$ base64 /path/to/file/
----
. Copy the following MCO sample profile into a YAML file:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker0 <1>
name: 99-worker0-devices
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- contents:
source: data:text/plain;base64,<encoded_base64_string> <2>
filesystem: root
mode: 420
path: /etc/udev/rules.d/41-dasd-eckd-0.0.4444.rules <3>
----
<1> The role you have defined in the machine config file.
<2> The Base64 encoded string that you have generated in the previous step.
<3> The path where the udev rule is located.
[id="configuring-qeth"]
== Configuring qeth
The following is an example of how to configure a qeth device by adding a udev rule.
.Procedure
. Take the following sample udev rule `41-qeth-0.0.1000.rules`:
+
[source,terminal]
----
ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", GOTO="group_qeth_0.0.1000"
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1000", DRIVER=="qeth", GOTO="group_qeth_0.0.1000"
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1001", DRIVER=="qeth", GOTO="group_qeth_0.0.1000"
ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="0.0.1002", DRIVER=="qeth", GOTO="group_qeth_0.0.1000"
ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="0.0.1000", DRIVER=="qeth", GOTO="cfg_qeth_0.0.1000"
GOTO="end_qeth_0.0.1000"
LABEL="group_qeth_0.0.1000"
TEST=="[ccwgroup/0.0.1000]", GOTO="end_qeth_0.0.1000"
TEST!="[ccw/0.0.1000]", GOTO="end_qeth_0.0.1000"
TEST!="[ccw/0.0.1001]", GOTO="end_qeth_0.0.1000"
TEST!="[ccw/0.0.1002]", GOTO="end_qeth_0.0.1000"
ATTR{[drivers/ccwgroup:qeth]group}="0.0.1000,0.0.1001,0.0.1002"
GOTO="end_qeth_0.0.1000"
LABEL="cfg_qeth_0.0.1000"
ATTR{[ccwgroup/0.0.1000]online}="1"
LABEL="end_qeth_0.0.1000"
----
. Convert the rule to Base64 encoded by running the following command:
+
[source,terminal]
----
$ base64 /path/to/file/
----
. Copy the following MCO sample profile into a YAML file:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker0 <1>
name: 99-worker0-devices
spec:
config:
ignition:
version: 3.2.0
storage:
files:
- contents:
source: data:text/plain;base64,<encoded_base64_string> <2>
filesystem: root
mode: 420
path: /etc/udev/rules.d/41-dasd-eckd-0.0.4444.rules <3>
----
<1> The role you have defined in the machine config file.
<2> The Base64 encoded string that you have generated in the previous step.
<3> The path where the udev rule is located.