Skip to content

[release-4.16] OCPBUGS-52952: Add ipsec connect wait service - #4931

Merged
openshift-merge-bot[bot] merged 2 commits into
openshift:release-4.16from
pperiyasamy:ipsec-connect-wait-4.16
Apr 2, 2025
Merged

[release-4.16] OCPBUGS-52952: Add ipsec connect wait service #4931
openshift-merge-bot[bot] merged 2 commits into
openshift:release-4.16from
pperiyasamy:ipsec-connect-wait-4.16

Conversation

@pperiyasamy

Copy link
Copy Markdown
Member

Manual cherry-pick of #4930, No conflicts.

When node goes for a reboot on an IPsec enabled cluster, once it comes up,
after ovn-ipsec-host pod is deployed, the ovs-monitor-ipsec process deployed
by the pod parses /etc/ipsec.d/openshift.conf file, makes pluto daemon to
establish IKE SAs with peer nodes, but these are established after kubelet
is started, workload pods scheduled on this node would fail communicating
with other node pods until IPsec SAs are established.

So this commit adds wait-for-ipsec-connect.service systemd service which
depends on ipsecenabler.service created by IPsec machine config. This new
service loads existing IPsec connections created by OVN/OVS into pluto
daemon with "auto=start" option and waits upto 60s until IPsec tunnels
are established. This gives a better chance IPsec SAs are established even
before kubelet is started and when ovn-ipsec-host pod comes up later, it
doesn't have to do anything for existing IPsec connections.

We derived total wait time 60s based on the testing from 6 and 32 nodes
cluster. In 6 node cluster, it took mostly about 2s (in worst case 4s),
In 32 node cluster, it took mostly about 2s or 4s (in worst case 14s)
to get IPsec connections up with peer nodes.

The wait-for-ipsec-connect.service service is added into the base template
to avoid two reboots during upgrade if it goes into IPsec machine configs
rendered by the network operator.

Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
(cherry picked from commit 2417566)
(cherry picked from commit 16e81a4)
(cherry picked from commit 77e4ef2)
We noticed pluto is tearing down established IPsec connections in parallel
with crio stopping all pod containers which includes stopping api server
pod container. It happens when node reboot initiated for rendering new
machine configs at the time of OCP upgrade.
This creates api connection disruptions in the cluster, these disruptions are
generating events, caught by origin monitor tests and failing IPsec upgrade CI
lane and it may also cause noticeable temporary pod traffic failure during
upgrade for IPsec enabled cluster.
Hence this commit adds Before=crio.service dependency on the ipsec.service so
that pluto daemon is stopped after the shutdown of crio service, all pod
containers are stopped on the node. This gives enough room for clients to
gracefully move to another control plane node for API connections.

Signed-off-by: Periyasamy Palanisamy <pepalani@redhat.com>
(cherry picked from commit 1fa5eaa)
(cherry picked from commit 680d1ce)
(cherry picked from commit 2e46d76)
@openshift-ci-robot openshift-ci-robot added jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. labels Mar 20, 2025
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@pperiyasamy: This pull request references Jira Issue OCPBUGS-52952, which is invalid:

  • expected dependent Jira Issue OCPBUGS-52951 to be in one of the following states: VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA), but it is New instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Manual cherry-pick of #4930, No conflicts.

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.

@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Mar 20, 2025
@pperiyasamy

Copy link
Copy Markdown
Member Author

/assign @huiran0826 @anuragthehatter

@huiran0826

Copy link
Copy Markdown

/label qe-approved

@openshift-ci openshift-ci Bot added the qe-approved Signifies that QE has signed off on this PR label Mar 25, 2025
@pperiyasamy

Copy link
Copy Markdown
Member Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Apr 1, 2025
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@pperiyasamy: This pull request references Jira Issue OCPBUGS-52952, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.16.z) matches configured target version for branch (4.16.z)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note text is set and does not match the template
  • dependent bug Jira Issue OCPBUGS-52951 is in the state Verified, which is one of the valid states (VERIFIED, RELEASE PENDING, CLOSED (ERRATA), CLOSED (CURRENT RELEASE), CLOSED (DONE), CLOSED (DONE-ERRATA))
  • dependent Jira Issue OCPBUGS-52951 targets the "4.17.z" version, which is one of the valid target versions: 4.17.0, 4.17.z
  • bug has dependents

Requesting review from QA contact:
/cc @anuragthehatter

Details

In response to this:

/jira refresh

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.

@openshift-ci
openshift-ci Bot requested a review from anuragthehatter April 1, 2025 10:25
@pperiyasamy

Copy link
Copy Markdown
Member Author

/assign @djoshy

@djoshy

djoshy commented Apr 1, 2025

Copy link
Copy Markdown
Contributor

/label backport-risk-assessed

/lgtm

@openshift-ci openshift-ci Bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label Apr 1, 2025
@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 1, 2025
@openshift-ci

openshift-ci Bot commented Apr 1, 2025

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: djoshy, pperiyasamy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 1, 2025
@huiran0826

Copy link
Copy Markdown

/label cherry-pick-approved

@openshift-ci

openshift-ci Bot commented Apr 2, 2025

Copy link
Copy Markdown
Contributor

@huiran0826: Can not set label cherry-pick-approved: Must be member in one of these teams: []

Details

In response to this:

/label cherry-pick-approved

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 kubernetes-sigs/prow repository.

@ptalgulk01

Copy link
Copy Markdown
Contributor

/label cherry-pick-approved

@openshift-ci openshift-ci Bot added the cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. label Apr 2, 2025
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 8600a36 and 2 for PR HEAD b09c4ac in total

@openshift-ci

openshift-ci Bot commented Apr 2, 2025

Copy link
Copy Markdown
Contributor

@pperiyasamy: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-op-techpreview b09c4ac link false /test e2e-gcp-op-techpreview
ci/prow/e2e-aws-ovn-upgrade-out-of-change b09c4ac link false /test e2e-aws-ovn-upgrade-out-of-change

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 8600a36 and 2 for PR HEAD b09c4ac in total

@openshift-merge-bot
openshift-merge-bot Bot merged commit 4e8c9e6 into openshift:release-4.16 Apr 2, 2025
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@pperiyasamy: Jira Issue OCPBUGS-52952: All pull requests linked via external trackers have merged:

Jira Issue OCPBUGS-52952 has been moved to the MODIFIED state.

Details

In response to this:

Manual cherry-pick of #4930, No conflicts.

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.

@openshift-bot

Copy link
Copy Markdown
Contributor

[ART PR BUILD NOTIFIER]

Distgit: ose-machine-config-operator
This PR has been included in build ose-machine-config-operator-container-v4.16.0-202504021939.p0.g4e8c9e6.assembly.stream.el9.
All builds following this will include this PR.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in accepted release 4.16.0-0.nightly-2025-04-02-211503

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. cherry-pick-approved Indicates a cherry-pick PR into a release branch has been approved by the release branch manager. jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. qe-approved Signifies that QE has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.