:_mod-docs-content-type: ASSEMBLY
[id="k8s-nmstate-updating-node-network-config"]
= Observing and updating the node network state and configuration
include::_attributes/common-attributes.adoc[]
:VirtProductName: OpenShift Container Platform
:context: k8s-nmstate-updating-node-network-config

toc::[]

[role="_abstract"]
To observe and update the node network state and configuration in your cluster, you can use the Kubernetes NMState Operator. You can view network states, create and manage network configuration policies, and configure interfaces on cluster nodes.

For more information about how to install the NMState Operator, see xref:../../networking/networking_operators/k8s-nmstate-about-the-k8s-nmstate-operator.adoc#k8s-nmstate-about-the-k8s-nmstate-operator[Kubernetes NMState Operator].

[IMPORTANT]
====
You cannot modify an existing `br-ex` bridge, an OVN-Kubernetes-managed Open vSwitch bridge, or any interfaces, bonds, VLANs, and so on that associate with the `br-ex` bridge. However, you can configure a customized br-ex bridge.

For more information, see "Creating a manifest object that includes a customized br-ex bridge" in the _Deploying installer-provisioned clusters on bare metal_ document or the _Installing a user-provisioned cluster on bare metal_ document.
====

// Viewing the network state of a node by using the CLI
include::modules/virt-viewing-network-state-of-node.adoc[leveloffset=+1]

// Viewing the network state of a node from the web console
include::modules/virt-viewing-graphical-representation-of-network-state-of-node-console.adoc[leveloffset=+1]

include::modules/virt-viewing-list-of-nodenetworkstate-resources-console.adoc[leveloffset=+1]

// The `NodeNetworkConfigurationPolicy` manifest file
include::modules/node-network-configuration-policy-file.adoc[leveloffset=+1]

.Additional resources

* xref:../../networking/k8s_nmstate/k8s-nmstate-updating-node-network-config.adoc#virt-nmstate-example-policy-configurations_{context}[Example policy configurations for different interfaces]

* xref:../../networking/k8s_nmstate/k8s-nmstate-updating-node-network-config.adoc#virt-removing-interface-from-nodes_{context}[Removing an interface from nodes]

// Managing policy from the web console
include::modules/virt-node-network-config-console.adoc[leveloffset=+1]

// Monitoring the policy status
include::modules/virt-monitor-node-network-config-console.adoc[leveloffset=+2]

// Creating a policy
include::modules/virt-create-node-network-config-console.adoc[leveloffset=+2]


include::modules/virt-updating-node-network-configuration-policy-file.adoc[leveloffset=+1]

// Updating the policy by using form
include::modules/virt-update-node-network-config-form.adoc[leveloffset=+2]

// Updating the policy by using YAML
include::modules/virt-update-node-network-config-yaml.adoc[leveloffset=+2]

// Deleting the policy
include::modules/virt-delete-node-network-config.adoc[leveloffset=+2]

include::modules/virt-manage-nncp-cli.adoc[leveloffset=+1]

//Creating an interface on nodes
include::modules/virt-creating-interface-on-nodes.adoc[leveloffset=+2]

.Additional resources

* xref:../../networking/k8s_nmstate/k8s-nmstate-updating-node-network-config.adoc#virt-example-nmstate-multiple-interfaces_{context}[Example for creating multiple interfaces in the same policy]
* xref:../../networking/k8s_nmstate/k8s-nmstate-updating-node-network-config.adoc#virt-example-nmstate-IP-management_{context}[Examples of different IP management methods in policies]

// Confirming node network policy updates on nodes
include::modules/virt-confirming-policy-updates-on-nodes.adoc[leveloffset=+2]

// Removing an interface from nodes
include::modules/virt-removing-interface-from-nodes.adoc[leveloffset=+2]

// Configure alternative network interface names
include::modules/k8s-nmstate-about-alternative-names.adoc[leveloffset=+1]

// Creating alternative interface names by interface name
include::modules/k8s-nmstate-creating-alternative-interface-names.adoc[leveloffset=+2]

// Creating alternative interface names by MAC address or PCI address
include::modules/k8s-nmstate-creating-alternative-interface-names-by-identifier.adoc[leveloffset=+2]

// Deleting alternative interface names
include::modules/k8s-nmstate-deleting-alternative-interface-names.adoc[leveloffset=+2]

// Example policy configurations for different interfaces
include::modules/virt-nmstate-example-policy-configurations.adoc[leveloffset=+1]

// Example: Ethernet interface node network configuration policy
include::modules/virt-example-ethernet-nncp.adoc[leveloffset=+2]

// Example: Linux bridge interface node network configuration policy
include::modules/virt-example-bridge-nncp.adoc[leveloffset=+2]

// Example: VLAN interface node network configuration policy
include::modules/virt-example-vlan-nncp.adoc[leveloffset=+2]

.Additional resources

* xref:../../networking/hardware_networks/configuring-sriov-device.adoc#configuring-sriov-device[Configuring an SR-IOV network device]

* xref:../../networking/hardware_networks/configuring-hardware-offloading.adoc#configuring-hardware-offloading[Configuring hardware offloading]

// Example: Bond interface node network configuration policy
include::modules/virt-example-bond-nncp.adoc[leveloffset=+2]

// Example: Multiple interfaces in the same node network configuration policy
include::modules/virt-example-nmstate-multiple-interfaces.adoc[leveloffset=+2]

// Example: Node network configuration policy for virtual functions
include::modules/virt-example-vf-host-services.adoc[leveloffset=+2]

// Example: Network interface with a VRF instance node network configuration policy
include::modules/virt-example-host-vrf.adoc[leveloffset=+2]

// Example: Network interface with a predictable route table ID
include::modules/virt-example-predictable-route-table-id.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources

* xref:../../networking/multiple_networks/about-virtual-routing-and-forwarding.adoc#cnf-about-virtual-routing-and-forwarding_about-virtual-routing-and-forwarding[About virtual routing and forwarding]
* xref:../../networking/ingress_load_balancing/metallb/metallb-configure-bgp-peers.adoc#nw-metallb-bgp-peer-vrf_configure-metallb-bgp-peers[Exposing a service through a network VRF]

// Creating an InfiniBand interface on nodes
include::modules/virt-creating-infiniband-interface-on-nodes.adoc[leveloffset=+1]

include::modules/virt-example-dynamic-matching-templating.adoc[leveloffset=+1]

// Example: Linux bridge interface node network configuration policy to inherit static IP address from the NIC attached to the bridge
include::modules/virt-example-inherit-static-ip-from-nic.adoc[leveloffset=+2]

.Additional resources

* link:https://nmstate.io/nmpolicy/user-guide/102-policy-syntax.html[The NMPolicy project - Policy syntax]

// Examples: IP management
include::modules/virt-example-nmstate-IP-management.adoc[leveloffset=+1]

// Enabling per-interface IP forwarding
include::modules/nw-nmstate-enable-per-interface-ip-forwarding.adoc[leveloffset=+1]

// Routes and route tables
include::modules/virt-routes-route-rules.adoc[leveloffset=+1]

.Additional resources

* xref:../../installing/installing_bare_metal/ipi/ipi-install-installation-workflow.adoc#creating-manifest-file-customized-br-ex-bridge_ipi-install-installation-workflow[Creating a manifest object that includes a customized br-ex bridge (Installer-provisioned infrastructure)]

* xref:../../installing/installing_bare_metal/upi/installing-bare-metal.adoc#creating-manifest-file-customized-br-ex-bridge_installing-bare-metal[Creating a manifest object that includes a customized br-ex bridge (User-provisioned infrastructure)]

* link:https://nmstate.io/devel/yaml_api.html#routes[Routes (nmstate documentation)]

* link:https://nmstate.io/devel/yaml_api.html#route-rules[Route Rules (nmstate documentation)]
