$ oc edit networks.operator.openshift.io cluster
To update network settings or change network parameters for a secondary network in OKD, you can modify the configuration for an existing secondary network. Edit the NetworkAttachmentDefinition custom resource to apply your changes.
To update network settings or change network parameters for a secondary network in OKD, you can modify the NetworkAttachmentDefinition custom resource. Edit the Cluster Network Operator CR to apply your changes.
You have configured a secondary network for your cluster.
Install the OpenShift CLI (oc).
Log in as a user with cluster-admin privileges.
Edit the Cluster Network Operator (CNO) CR in your default text editor by running the following command:
$ oc edit networks.operator.openshift.io cluster
In the additionalNetworks collection, update the secondary network with your changes.
Save your changes and quit the text editor to commit your changes.
Optional: Confirm that the CNO updated the NetworkAttachmentDefinition object by running the following command. Replace <network_name> with the name of the secondary network to display. There might be a delay before the CNO updates the NetworkAttachmentDefinition object to reflect your changes.
$ oc get network-attachment-definitions <network_name> -o yaml
For example, the following console output displays a NetworkAttachmentDefinition object that is named net1:
$ oc get network-attachment-definitions net1 -o go-template='{{printf "%s\n" .spec.config}}'
{ "cniVersion": "0.3.1", "type": "macvlan",
"master": "ens5",
"mode": "bridge",
"ipam": {"type":"static","routes":[{"dst":"0.0.0.0/0","gw":"10.128.2.1"}],"addresses":[{"address":"10.128.2.100/23","gateway":"10.128.2.1"}],"dns":{"nameservers":["172.30.0.10"],"domain":"us-west-2.compute.internal","search":["us-west-2.compute.internal"]}} }
You can use OVN-Kubernetes localnet topology in a NetworkAttachmentDefinition (NAD) to map a specific VLAN ID from the physical network to the secondary interface of a pod.
To provide multiple VLANs for cluster workloads in OKD, define additional VLANs in the NetworkAttachmentDefinition custom resource (CR). Configuring trunk ports ensures that the physical network associates correctly with your virtual infrastructure for reliable traffic management.
The example in the procedure demonstrates the following configurations:
Physical switch ports connect to OKD nodes by using VLAN trunking. The trunk carries tagged traffic for the VLANs you define in NADs.
The br-ex acts as the OVS bridge that connects virtual workloads to the physical workloads.
Multiple NADs with specific VLAN tags get created by using the localnet topology. This configuration defines specific VLAN IDs for traffic isolation.
Pods or virtual machines (VMs) attach to the NAD CRs for the purposes of improved network connectivity.
You installed the OpenShift CLI (oc).
You logged in as a user with cluster-admin privileges.
You installed the NMState Operator.
You configured the br-ex bridge interface during cluster installation.
Create an NetworkAttachmentDefinition CR for each VLAN, such as nad-cvlan100.yaml. OVN-Kubernetes uses the NAD files to tag and untag Ethernet frames for pods or VMs.
apiVersion: k8s.cni.cncf.io/v1
kind: NetworkAttachmentDefinition
metadata:
name: vlan-100
namespace: default
spec:
config: |-
{
"cniVersion": "0.4.0",
"name": "localnet-vlan-100",
"type": "ovn-k8s-cni-overlay",
"physicalNetworkName": "physnet",
"topology": "localnet",
"vlanID": 100,
"mtu": 1500,
"netAttachDefName": "default/vlan-100"
}
# ...
Attach pods or VMs to the VLANs by referencing the NAD in the configuration for the pod or VM:
apiVersion: v1
kind: Pod
metadata:
annotations:
k8s.v1.cni.cncf.io/networks: vlan-100
# ...
apiVersion: kubevirt.io/v1
kind: VirtualMachine
spec:
template:
spec:
networks:
- multus:
networkName: vlan-100
name: secondary-vlan
# ...