-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
None
-
None
-
None
-
rhel-net-mgmt
-
ssg_networking
-
None
-
-
False
-
False
-
-
None
-
None
-
-
None
-
None
-
None
Description of problem:
The ovn localnet interface configured by nmstate nncp does not appear to be removed successfully. This seems happening more on nodes where there are pods with net-attach-def referencing the OVN localnet interface. Once the applied configuration is changed to absent status, the nnce resources change the status to failedtoconfigure and report the following messages:
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
INFO nmstate::nm::show] Got unsupported interface type generic: genev_sys_6081,
ignoring\n[2024-08-19T12:18:04Z ERROR nmstate::query_apply::inter_ifaces] VerificationError:
Absent/Down interface bridge-name/ovs-bridge still found as OvsBridge(OvsBridgeInterface
{ base: BaseInterface { name: \"bridge-name\", profile_name: None, description:
Version-Release number of selected component (if applicable):
OCP 4.15
How reproducible:
Easily
Steps to Reproduce:
1. Apply the following configuration to the platform:
# oc get nncp ovs-localnet-rep -oyaml
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
annotations:
name: ovs-localnet-rep
spec:
desiredState:
interfaces:
- bridge:
allow-extra-patch-ports: true
options:
stp: true
port:
- name: bond1
ipv4:
enabled: false
name: newbr
state: up
type: ovs-bridge
ovn:
bridge-mappings:
- bridge: newbr
localnet: nad-test
state: present
nodeSelector:
nmstate: test
# oc get nncp bondreproducer -oyaml
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
annotations:
name: bondreproducer
spec:
desiredState:
interfaces:
- link-aggregation:
mode: active-backup
port:
- ensxxx
- ensxxx
name: bond1
state: up
type: bond
nodeSelector:
nmstate: test
2. Check if the configuration is going to be applieds to the respective nodes:
# oc get nnce
NAME STATUS STATUS AGE REASON
master1.bm-upi.<test>.bondreproducer Available 31m SuccessfullyConfigured
master1.bm-upi.<test>.ovs-localnet-rep Available 29m SuccessfullyConfigured
master2.bm-upi.<test>.bondreproducer Available 87m SuccessfullyConfigured
master2.bm-upi.<test>.ovs-localnet-rep Available 29m SuccessfullyConfigured
3. Change the nncp configuration from bridge and localnet interface to absent:
# oc get nncp ovs-localnet-rep -oyaml
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
annotations:
name: ovs-localnet-rep
spec:
desiredState:
interfaces:
- bridge:
allow-extra-patch-ports: true
options:
stp: true
port:
- name: bond1
ipv4:
enabled: false
name: newbr
state: absent <------
type: ovs-bridge
ovn:
bridge-mappings:
- bridge: newbr
localnet: nad-test
state: absent <-----
nodeSelector:
nmstate: test
4. Confirm that the nnce changed the status to failedtoconfigure:
# oc get nnce master2.bm-upi.brunolabocp.local.ovs-localnet-rep03877931
NAME STATUS STATUS AGE REASON
master2.bm-upi.<test>.ovs-localnet-rep Failing 33s FailedToConfigure
5. Confirm that there is any pod referencing the OVN localnet interface by a net-attach-def resource. The issue seems happening more on node where there are pods with net-attach-def referenced:
$ oc get net-attach-def -oyaml
config: |-
{
"cniVersion": "0.3.1",
"name": "nad-test",
"type": "ovn-k8s-cni-overlay",
"topology":"localnet",
"subnets": "xx.xx.xx.0/24",
"mtu": 1300,
"netAttachDefName": "test-nad/nad-test"
}
$ oc get pod -oyaml
apiVersion: v1
kind: Pod
metadata:
annotations:
k8s.v1.cni.cncf.io/network-status: |-
[{
"name": "test-nad/nad-test",
"interface": "net1",
"ips": [
"xx.xx.xx.51"
],
"mac": "xx:xx:xx:xx:xx:xx",
"dns": {}
}]
6. If the bridge is removed from OVS and the configuration is reapplied, the issue is resolved:
$ oc debug node/<node-name>
$ chroot /host
sh-5.1# ovs-vsctl list-br <--- find the bridge in the configuration
sh-5.1# ovs-vsctl del-br <bridge-name> <---- Delete the bridge
7. Force a nmstate reapply configuration
Actual results:
The following issue is reported by the nnce resource and the configuration is not applied:
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
WARN nmstate::ovsdb::show] Unknown OVS interface type \n[2024-08-19T12:18:04Z
INFO nmstate::nm::show] Got unsupported interface type generic: genev_sys_6081,
ignoring\n[2024-08-19T12:18:04Z ERROR nmstate::query_apply::inter_ifaces] VerificationError:
Absent/Down interface bridge-name/ovs-bridge still found as OvsBridge(OvsBridgeInterface
Expected results:
It is expected that the configuration finishes successfully and the interface is removed. When this issue is combined with the bug RHEL-40683, the configuration is reapplied every time that the node label is changed. This often causes failedtoconfigure in the platform.
Additional info:
- is blocked by
-
RHEL-50747 OVS interface still exist after connection been deleted
-
- Closed
-