-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
None
-
None
-
Critical
-
None
-
None
-
False
-
False
-
-
None
-
None
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
None
Description of problem:
After upgrading from OpenShift 4.17 to 4.18, a compute node running RHEL with Open vSwitch (OVS) version 2.15.0-142.el8fdp fails to start the ovnkube-node pod correctly. The container crashes with a schema validation error referencing a missing field: IngressPolicingKpktsBurst. This field was introduced in OVS 2.16+, but the node still uses the older 2.15 schema, causing a mismatch with the expectations of the upgraded OpenShift networking components. Even after regenerating the conf.db file, the pod fails to start due to the outdated schema.
Version-Release number of selected component (if applicable):
Open vSwitch 2.15.0-142.el8fdp on RHEL 8.x node in OpenShift 4.18 cluster upgrade
How reproducible:
Consistently reproducible on compute nodes running RHEL with Open vSwitch 2.15 after upgrading an OpenShift cluster from 4.17 to 4.18. The issue appears when ovnkube-node attempts to start using a database schema that lacks fields expected by the newer components (e.g., IngressPolicingKpktsBurst).
Steps to Reproduce:
Always, under the following conditions:
1. Have a cluster with mixed node OS types (e.g., RHEL compute nodes and RHCOS control nodes).
2. Ensure the RHEL nodes are using Open vSwitch version 2.15 (from Fast Datapath).
3. Upgrade the OpenShift cluster from 4.17 to 4.18.
4. Observe that the ovnkube-node pods on RHEL nodes fail to fully initialize (7/8 Ready).
5. The final container fails with a schema validation error indicating a missing field (e.g., IngressPolicingKpktsBurst) in the conf.db file.
6. Even after regenerating /etc/openvswitch/conf.db, the error persists unless the schema file used (vswitch.ovsschema) comes from a newer OVS version (2.16+).
Actual results:
After upgrading to OpenShift 4.18, the ovnkube-node pod on RHEL compute nodes fails to reach 8/8 Ready. The last container fails with the following error:
failed to initialize libovsdb vswitchd client: failed to connect to unix:/var/run/openvswitch/db.sock:
database Open_vSwitch validation error (1): Mapper Error. Object type vswitchd.Interface contains field IngressPolicingKpktsBurst (int) ovs tag ingress_policing_kpkts_burst: Column does not exist in schema
The error occurs because the Open vSwitch schema on the affected node is outdated and does not include the IngressPolicingKpktsBurst field, which is required by OVN in 4.18.
Expected results:
After upgrading to OpenShift 4.18, all ovnkube-node pods, including those running on RHEL compute nodes, should reach 8/8 Ready with all containers running successfully. The Open vSwitch schema should match the expected version for OVN 4.18, including required fields such as IngressPolicingKpktsBurst, and no validation errors should occur during pod initialization.
Additional info:
https://github.com/openvswitch/ovs/blob/v2.15.0/vswitchd/vswitch.ovsschema
https://github.com/openvswitch/ovs/blob/v2.16.0/vswitchd/vswitch.ovsschema
the upgrade probably expects at least 2.16.0 (an RHCOS 4.18 cluster actually uses OVS3)
Workaround applied:
https://access.redhat.com/articles/6963671#rebuild_ovn_on_ocp_4_14_later