OCPBUGS-74268: release-4.20 fix(localnet, ipamless): Prevent LSP deletion on sync#2941
Conversation
When ovnkube-node restarts, it runs syncPodsForUserDefinedNetwork which calls allocatePodIPs. For IPAM-less localnet networks (switches with no subnets), IsNonHostSubnetSwitch returns true, causing allocatePodIPs to return empty string. This prevents the pod from being added to expectedLogicalPorts map, causing deleteStaleLogicalSwitchPorts to delete the LSP. This change add an explicit flag at the subnet allocator to denote that that allocator was created as part of a no host subnet switch, this way code explicitly diferenciates between localnet ipamless and no host subnet since both do no have a subnet but no host subnet do not even have LSPs Signed-off-by: Enrique Llorente <ellorent@redhat.com> (cherry picked from commit d1c55f1) (cherry picked from commit 440dab6)
|
@qinqon: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/retest-required |
1 similar comment
|
/retest-required |
|
@qinqon: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/verified remove |
|
@qinqon: The DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/verified by @asood-rh |
|
@asood-rh: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is invalid:
Comment DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/jira refresh |
|
@qinqon: This pull request references Jira Issue OCPBUGS-74268, which is valid. The bug has been moved to the POST state. 7 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
/label backport-risk-assessed |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kyrtapz, qinqon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
3f6615b
into
openshift:release-4.20
|
@qinqon: Jira Issue Verification Checks: Jira Issue OCPBUGS-74268 Jira Issue OCPBUGS-74268 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Fix included in accepted release 4.20.0-0.nightly-2026-02-03-205056 |
📑 Description
When ovnkube-node restarts, it runs syncPodsForUserDefinedNetwork which calls allocatePodIPs. For IPAM-less localnet networks (switches with no subnets), IsNonHostSubnetSwitch returns true, causing allocatePodIPs to return empty string. This prevents the pod from being added to expectedLogicalPorts map, causing deleteStaleLogicalSwitchPorts to delete the LSP.
This change add an explicit flag at the subnet allocator to denote that that allocator was created as part of a no host subnet switch, this way code explicitly diferenciates between localnet ipamless and no host subnet since both do no have a subnet but no host subnet do not even have LSPs
(cherry picked from commit d1c55f1) (cherry picked from commit 440dab6)
Fixes #
Additional Information for reviewers
✅ Checks
How to verify it