Skip to content

OCPBUGS-105556: [4.22] frr-k8s: use Recreate strategy for statuscleaner deployment - #3130

Merged
openshift-merge-bot[bot] merged 4 commits into
openshift:release-4.22from
andreaskaris:OCPBUGS-105556
Aug 24, 2026
Merged

OCPBUGS-105556: [4.22] frr-k8s: use Recreate strategy for statuscleaner deployment#3130
openshift-merge-bot[bot] merged 4 commits into
openshift:release-4.22from
andreaskaris:OCPBUGS-105556

Conversation

@andreaskaris

@andreaskaris andreaskaris commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This PR brings in commits from 3 PRs (that belong together) at the same time:

Further details:

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robot openshift-ci-robot added jira/severity-critical Referenced Jira bug's severity is critical for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Aug 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@andreaskaris: This pull request references Jira Issue OCPBUGS-105556, which is invalid:

  • expected dependent Jira Issue OCPBUGS-111097 to be in one of the following states: MODIFIED, ON_QA, VERIFIED, 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:

This commit takes the 2 commits from Ori on #3116:

A NOT clean cherry-pick of #3104
differences:

1st commit needed for unit tests, semi-clean: dropped definiton of mustFindContainer and findExecCommand (otherwise lint fails)
2nd commit is semi clean , added bootstrap result wiring to additionalRoutingCapibilities (that was already there for 5.0), aligned existing unit test with fakeBootstrapResult() as in 5.0

And then cherry-picks https://github.com/openshift/cluster-network-operator/pull/3121/commits cleanly on top of it.

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.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ff47ca59-8b2f-4279-bbc9-5f5ae7106dee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@openshift-ci
openshift-ci Bot requested review from bpickard22 and jcaamano August 20, 2026 12:28
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@andreaskaris: This pull request references Jira Issue OCPBUGS-105556, which is invalid:

  • expected dependent Jira Issue OCPBUGS-111097 to be in one of the following states: MODIFIED, ON_QA, VERIFIED, but it is POST 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.

Details

In response to this:

This commit takes the 2 commits from Ori on #3116:

A NOT clean cherry-pick of #3104
differences:

  • 1st commit needed for unit tests, semi-clean: dropped definiton of mustFindContainer and findExecCommand (otherwise lint fails)
  • 2nd commit is semi clean , added bootstrap result wiring to additionalRoutingCapibilities (that was already there for 5.0), aligned existing unit test with fakeBootstrapResult() as in 5.0

And then cherry-picks https://github.com/openshift/cluster-network-operator/pull/3121/commits cleanly on top of it.

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.

@andreaskaris

Copy link
Copy Markdown
Contributor Author

@jcaamano @jechen0648 @oribon

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/test all

@andreaskaris

Copy link
Copy Markdown
Contributor Author

@cgoncalves given that Ori is out, I'd appreciate if you could give this one a quick look, as well. thanks!

@cgoncalves

Copy link
Copy Markdown

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 20, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-ovn-upgrade-ipsec

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test frrk8s-e2e
/test 4.22-upgrade-from-stable-4.21-e2e-aws-ovn-upgrade
/test 4.22-upgrade-from-stable-4.21-e2e-azure-ovn-upgrade
/test 4.22-upgrade-from-stable-4.21-e2e-gcp-ovn-upgrade
/test e2e-aws-ovn-fdp-qe
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-upgrade
/test e2e-aws-ovn-windows
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-dualstack-bgp
/test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
/test e2e-metal-ipi-ovn-ipv6
/test e2e-metal-ipi-ovn-ipv6-ipsec
/test e2e-ovn-ipsec-step-registry
/test hypershift-e2e-aks

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/retest

@jechen0648

Copy link
Copy Markdown

/verified by pre-merge testing by @jechen0648

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Aug 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@jechen0648: This PR has been marked as verified by pre-merge testing by @jechen0648.

Details

In response to this:

/verified by pre-merge testing by @jechen0648

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.

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/retest-failed

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/retest

1 similar comment
@andreaskaris

Copy link
Copy Markdown
Contributor Author

/retest

@andreaskaris

Copy link
Copy Markdown
Contributor 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 Aug 21, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@andreaskaris: This pull request references Jira Issue OCPBUGS-105556, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-111097 is in the state MODIFIED, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-111097 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents

No GitHub users were found matching the public email listed for the QA contact in Jira (jechen@redhat.com), skipping review request.

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-robot

Copy link
Copy Markdown
Contributor

@andreaskaris: This pull request references Jira Issue OCPBUGS-105556, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-111097 is in the state ON_QA, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-111097 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents

No GitHub users were found matching the public email listed for the QA contact in Jira (jechen@redhat.com), skipping review request.

Details

In response to this:

This PR brings in 2 PRs (that belong together) at the same time:

a) A NOT clean cherry-pick of #3104
differences:

  • 1st commit c617131 needed for unit tests, semi-clean: dropped definiton of mustFindContainer and findExecCommand (otherwise lint fails)
  • 2nd commit is a cherry-pick of 3d86b75 semi clean , added bootstrap result wiring to additionalRoutingCapibilities (that was already there for 5.0), aligned existing unit test with fakeBootstrapResult() as in 5.0

b) And then cherry-picks #3121 cleanly on top of it.

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 removed the verified Signifies that the PR passed pre-merge verification criteria label Aug 21, 2026
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Aug 21, 2026
tpantelis and others added 4 commits August 21, 2026 15:05
This commit adds helper functions to testutil_test.go that are used
by component rendering tests to verify rendered Kubernetes objects:

- mustFindRenderedObj: Finds and converts unstructured objects using generics
- mustFindContainer: Finds a container by name in a container list
- findExecCommand: Extracts exec command strings from container command args

These utilities facilitate testing of rendered manifests and container
configurations across multiple components.

Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
Co-Authored-By: Ori Braunshtein <obraunsh@redhat.com>
(cherry picked from commit c617131)

Cherry-pick not clean:
- dropped definiton of mustFindContainer and findExecCommand (otherwise
  lint fails)
The statuscleaner deployment uses hostNetwork with a fixed port (9123).
With the default RollingUpdate strategy, upgrades on SNO clusters get
stuck because the new pod cannot bind the host port already held by the
old pod. Switching to Recreate ensures the old pod is terminated before
the new one starts.

Signed-off-by: Federico Paolinelli <fpaoline@redhat.com>
Co-Authored-By: Ori Braunshtein <obraunsh@redhat.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
(cherry picked from commit 3d86b75)

Cherry-pick not clean:
- added bootstrap result wiring to additionalRoutingCapibilities (that
  was already there for 5.0), aligned existing unit test with
  fakeBootstrapResult() as in 5.0
On upgrade, the frr-k8s-statuscleaner Deployment has rollingUpdate
fields defaulted by the API server. SSA cannot remove fields it does
not own, so switching strategy.type to Recreate fails with:

    spec.strategy.rollingUpdate: Forbidden: may not be specified when
    strategy `type` is 'Recreate'

Add a generic pre-patch annotation:

    networkoperator.openshift.io/pre-patch

that applies a strategic-merge-patch to the live object before SSA. This
lets the template atomically set type=Recreate and remove rollingUpdate
in a single patch, before SSA takes over.

Also explicitly set strategy to RollingUpdate with rollingUpdate fields
on non-SNO clusters so that CNO owns these fields going forward,
preventing the issue from recurring in case we have to make the same
switch for non-SNO clusters in the future.

Signed-off-by: Andreas Karis <ak.karis@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
(cherry picked from commit 8ebb78e)
Add tests for ApplyObject's pre-patch behavior: strategic-merge-patch
runs before SSA, NotFound is tolerated, other errors stop reconciliation,
and objects without the annotation skip pre-patch entirely.

Remove fakeRESTMapper and replace it with
testrestmapper.TetsOnlyStaticRESTMapper to return a proper mapper,
and return scheme.Scheme from Scheme(). Both changes needed by
ApplyObject under test.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Andreas Karis <ak.karis@gmail.com>
(cherry picked from commit 6ca59b1)
@andreaskaris

Copy link
Copy Markdown
Contributor Author

Force pushed with no changes, just description changes:

@jcaamano

Copy link
Copy Markdown
Contributor

/approve
/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 Aug 21, 2026
@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 21, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws-ovn-upgrade-ipsec

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test frrk8s-e2e
/test 4.22-upgrade-from-stable-4.21-e2e-aws-ovn-upgrade
/test 4.22-upgrade-from-stable-4.21-e2e-azure-ovn-upgrade
/test 4.22-upgrade-from-stable-4.21-e2e-gcp-ovn-upgrade
/test e2e-aws-ovn-fdp-qe
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-serial-1of2
/test e2e-aws-ovn-serial-2of2
/test e2e-aws-ovn-upgrade
/test e2e-aws-ovn-windows
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-metal-ipi-ovn-dualstack-bgp
/test e2e-metal-ipi-ovn-dualstack-bgp-local-gw
/test e2e-metal-ipi-ovn-ipv6
/test e2e-metal-ipi-ovn-ipv6-ipsec
/test e2e-ovn-ipsec-step-registry
/test hypershift-e2e-aks

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 21, 2026
@jechen0648

Copy link
Copy Markdown

/verified by pre-merge testing by @jechen0648

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Aug 21, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@jechen0648: This PR has been marked as verified by pre-merge testing by @jechen0648.

Details

In response to this:

/verified by pre-merge testing by @jechen0648

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.

@cgoncalves

Copy link
Copy Markdown

/lgtm

@openshift-ci

openshift-ci Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: andreaskaris, cgoncalves, jcaamano

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-merge-bot

Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD 6a5fccc and 2 for PR HEAD b1775c9 in total

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci

openshift-ci Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

@andreaskaris: The following test 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/security b1775c9 link false /test security

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-merge-bot
openshift-merge-bot Bot merged commit fe422f7 into openshift:release-4.22 Aug 24, 2026
29 of 30 checks passed
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@andreaskaris: Jira Issue OCPBUGS-105556: All pull requests linked via external trackers have merged:

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

Details

In response to this:

This PR brings in commits from 3 PRs (that belong together) at the same time:

Further 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 openshift-eng/jira-lifecycle-plugin repository.

@andreaskaris

Copy link
Copy Markdown
Contributor Author

/cherry-pick release-4.21

@openshift-cherrypick-robot

Copy link
Copy Markdown

@andreaskaris: #3130 failed to apply on top of branch "release-4.21":

Applying: Add test utility functions for component rendering tests
Applying: frr-k8s: use Recreate strategy for statuscleaner deployment
Using index info to reconstruct a base tree...
M	pkg/network/render.go
M	pkg/network/render_test.go
Falling back to patching base and 3-way merge...
Auto-merging pkg/network/render.go
CONFLICT (content): Merge conflict in pkg/network/render.go
Auto-merging pkg/network/render_test.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0002 frr-k8s: use Recreate strategy for statuscleaner deployment

Details

In response to this:

/cherry-pick release-4.21

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.

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. jira/severity-critical Referenced Jira bug's severity is critical 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. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants