$ oc label namespace <namespace1> <namespace2> mutatevirtualmachines.kubemacpool.io=ignore
KubeMacPool allocates MAC addresses for virtual machine (VM) network interfaces from a shared MAC address pool. This ensures that each network interface is assigned a unique MAC address.
A virtual machine instance created from that VM retains the assigned MAC address across reboots.
|
KubeMacPool does not handle virtual machine instances created independently from a virtual machine. |
You can disable and re-enable KubeMacPool by using the command line.
KubeMacPool is enabled by default.
You have installed the OpenShift CLI (oc).
To disable KubeMacPool in two namespaces, run the following command:
$ oc label namespace <namespace1> <namespace2> mutatevirtualmachines.kubemacpool.io=ignore
To re-enable KubeMacPool in two namespaces, run the following command:
$ oc label namespace <namespace1> <namespace2> mutatevirtualmachines.kubemacpool.io-
KubeMacPool works by allocating MAC addresses to VMs from a range. The rangeStart and rangeEnd parameters in the HyperConverged custom resource (CR) define the MAC pool range.
As a cluster administrator, you can configure this range to ensure that MAC addresses for VMs hosted on OKD Virtualization do not conflict with other virtualization solutions on the same network.
You have cluster administrator access on an OKD cluster.
You have installed the OpenShift CLI (oc).
Edit the HyperConverged CR by running the following command:
$ oc edit hyperconverged kubevirt-hyperconverged -n kubevirt-hyperconverged
Update the HyperConverged CR to configure the rangeStart and rangeEnd parameters that define your required MAC address range:
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
spec:
kubeMacPoolConfiguration:
rangeStart: "AA:00:00:00:00:00"
rangeEnd: "FD:FF:FF:FF:FF:FF"
# ...
Run the following command and observe the output:
$ oc get hco kubevirt-hyperconverged -n kubevirt-hyperconverged -o=jsonpath='{.spec.kubeMacPoolConfiguration}'
If you have successfully applied the configuration changes, the output shows the new MAC pool range you have configured:
Example output:
{
"rangeStart": "AA:00:00:00:00:00",
"rangeEnd": "FD:FF:FF:FF:FF:FF"
}
Optional. Create a new VM and run the following command to check the MAC address of the VM’s network interface:
$ oc get vmi <vm-name> -o=jsonpath='{.status.interfaces[0].macAddress}'
Example output:
macAddress: AA:00:00:00:00:04
If you have successfully applied the configuration changes, the macAddress field in the VM interface is within the range you specified in your kubeMacPoolConfiguration, between the value of rangeStart and rangeEnd.