Skip to content

OCPBUGS-79056: update INFW to 4.22 version#707

Open
raphaelvrosa wants to merge 1 commit intoopenshift:masterfrom
raphaelvrosa:ocpbugs-79056
Open

OCPBUGS-79056: update INFW to 4.22 version#707
raphaelvrosa wants to merge 1 commit intoopenshift:masterfrom
raphaelvrosa:ocpbugs-79056

Conversation

@raphaelvrosa
Copy link
Copy Markdown

@raphaelvrosa raphaelvrosa commented Apr 22, 2026

Upgrades INFW version to 4.22.

Copy/Replace of: #705

Bump Go version from 1.24.0 to 1.25.0 to satisfy controller-gen@v0.20.1
requirement (requires Go >= 1.25.0). Update go.mod and all Dockerfiles
to use Go 1.25 for consistency.

Fix test case that was using TCP field with UDP protocol type. The
updated controller-gen enforces stricter validation where protocol type
must match the field used in protocolConfig.

Update Makefile to use modern setup-envtest Go binary instead of
deprecated shell script that was failing with 403 errors from Google
Cloud Storage. Align versions with project dependencies:

  • ENVTEST_K8S_VERSION: 1.25.2 → 1.32.x (matches k8s.io/* v0.32.3)
  • CONTROLLER_TOOLS_VERSION: v0.14.0 → v0.20.1 (matches controller-runtime v0.20.4)
  • setup-envtest pinned to v0.20.4 (matches controller-runtime v0.20.4)
  • Add GOFLAGS="" to setup-envtest install to fix -mod=vendor CI errors

Regenerate CRDs and RBAC with updated controller-gen.

Summary by CodeRabbit

  • New Features

    • Bumped operator to v4.22.0 and updated packaged CSV/channel references and OLM skip ranges.
  • Chores

    • Upgraded Go toolchain to 1.25 across builds and images.
    • Updated build tooling, envtest/Kubernetes test targets, and opm acquisition.
    • Updated catalog/install image tag to v4.22.0.
    • Consolidated RBAC rules for config finalizers/status permissions.
  • Bug Fixes

    • Corrected UDP protocol handling in tests.
  • Docs

    • Updated README tooling versions and shortened CRD description text.

@openshift-ci-robot openshift-ci-robot added 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 Apr 22, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@raphaelvrosa: This pull request references Jira Issue OCPBUGS-79056, which is invalid:

  • expected the bug to target either version "5.0." or "openshift-5.0.", but it targets "4.22.0" 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:

Upgrades INFW version to 4.22.

Copy/Replace of: #705

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
Copy link
Copy Markdown

coderabbitai Bot commented Apr 22, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Bumps operator/project version 4.21.0→4.22.0 across manifests and constants, upgrades Go/toolchain references from 1.24→1.25 in CI/build files and go.mod, updates Makefile build tooling and envtest handling, consolidates RBAC rules for ingressnodefirewall resources, and fixes a test UDP field.

Changes

Cohort / File(s) Summary
Go toolchain & CI/build images
\.ci-operator.yaml, Dockerfile, Dockerfile.daemon, Dockerfile.daemon.openshift, Dockerfile.openshift, hack/generators.Dockerfile, go.mod
Updated Go versions from 1.24→1.25 across CI, builder images, and go directive/toolchain entries.
Project version & OLM manifests (4.21.0 → 4.22.0)
Makefile, bundle/manifests/ingress-node-firewall.clusterserviceversion.yaml, config/manifests/bases/ingress-node-firewall.clusterserviceversion.yaml, config/olm-install/install-resources.yaml, manifests/art.yaml, manifests/ingress-node-firewall.package.yaml, manifests/stable/ingress-node-firewall.clusterserviceversion.yaml, openshift-ci/wait_for_csv.sh, pkg/version/version.go
Bumped project/operator version to 4.22.0 in CSVs, package, CatalogSource image, Makefile defaults and related manifest fields; updated olm.skipRange, CSV identities/labels/timestamps/currentCSV references.
Build tools, envtest & docs
Makefile, README.md
Upgraded controller-tools/controller-gen and related tooling versions, changed ENVTEST_K8S_VERSION to 1.32.x, simplified envtest setup to install setup-envtest, updated opm version, and updated README tooling versions.
CRD metadata
config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallconfigs.yaml, config/crd/bases/..._ingressnodefirewallnodestates.yaml, config/crd/bases/..._ingressnodefirewalls.yaml
Updated controller-gen.kubebuilder.io/version annotation to v0.20.1 across CRDs; shortened some description text in the configs CRD without changing validation/schema.
RBAC role consolidation
config/rbac/role.yaml
Removed standalone rules for ingressnodefirewallconfigs and merged its finalizers and status subresources into existing rules covering ingressnodefirewalls.
Test adjustment
controllers/ingressnodefirewall_controller_rules_test.go
Corrected test to use the UDP proto field when protocol is UDP (previously set TCP).
Generator container
hack/generators.Dockerfile
Updated GOVERSION from 1.24.71.25.0 for the generators image.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Test Structure And Quality ⚠️ Warning Test defines timeout and interval constants but never uses them in Eventually calls, representing dead code. Add explicit timeout and polling specifications to all Eventually calls using the defined constants for consistent timeout behavior.
✅ Passed checks (11 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and specifically summarizes the main change: upgrading the Ingress Node Firewall (INFW) operator to version 4.22, which is the primary purpose reflected across all modified files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed All Ginkgo test names in the repository are stable and deterministic with static, descriptive strings and no dynamic content.
Microshift Test Compatibility ✅ Passed This PR does not add any new Ginkgo e2e tests; it only contains a one-line bug fix in an existing test file, so the check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This pull request does not add any new Ginkgo e2e tests. The PR is a version bump from 4.21.0 to 4.22.0 with updates to Go toolchain, build dependencies, Dockerfiles, and manifests. Only existing unit test bug fix in controllers/ingressnodefirewall_controller_rules_test.go. E2e test files were not modified.
Topology-Aware Scheduling Compatibility ✅ Passed This PR does not introduce any new scheduling constraints to deployment manifests, controllers, or operator code. Changes consist of version bumps, dependency upgrades, and configuration updates only.
Ote Binary Stdout Contract ✅ Passed PR does not introduce OTE Binary Stdout Contract violations; logging properly configured to avoid non-JSON stdout.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; only an existing test was modified with a single-line bugfix.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot requested review from danwinship and tssurya April 22, 2026 09:18
@raphaelvrosa
Copy link
Copy Markdown
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 22, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@raphaelvrosa: This pull request references Jira Issue OCPBUGS-79056, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
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

@raphaelvrosa: This pull request references Jira Issue OCPBUGS-79056, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Upgrades INFW version to 4.22.

Copy/Replace of: #705

Summary by CodeRabbit

Release Notes

  • New Features

  • Bumped operator version to 4.22.0 with updated OLM compatibility ranges.

  • Consolidated RBAC permissions for improved access control management.

  • Chores

  • Updated Go toolchain to 1.25.0.

  • Updated controller-tools to v0.20.1 and other build dependencies.

  • Updated operator-sdk and envtest dependencies for enhanced tooling support.

  • Bug Fixes

  • Fixed UDP protocol rule construction in test validation.

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.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
Makefile (1)

284-284: Make setup-envtest pinning deterministic across local environments.

Line 284 only checks file existence, so an older local setup-envtest binary can bypass the intended release-0.23 pin.

♻️ Suggested change
-	test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) GOFLAGS="" go install sigs.k8s.io/controller-runtime/tools/setup-envtest@release-0.23
+	GOBIN=$(LOCALBIN) GOFLAGS="" go install sigs.k8s.io/controller-runtime/tools/setup-envtest@release-0.23
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Dockerfile`:
- Line 2: The Dockerfile's builder image uses "FROM golang:1.22" which does not
match go.mod's "go 1.25.0"; update the builder base image to "golang:1.25" (same
as Dockerfile.daemon) so module resolution and builds align with go.mod—modify
the FROM line in the builder stage accordingly.

In `@Makefile`:
- Line 129: The Makefile uses $(shell ...) (and was changed to $$(...)) to set
KUBEBUILDER_ASSETS via the ENVTEST/ENVTEST_K8S_VERSION command, but both
approaches will silently succeed with empty/invalid values if the command fails;
update the recipe to run the envtest resolution at recipe execution time and
explicitly detect failures: invoke the envtest command inside the recipe (using
$$(...) or plain shell) with shell error handling (e.g., set -e or checking exit
status with && or ||) or, if you require a Make-level check, use GNU make 4.2+
$(.SHELLSTATUS) after invoking $(shell ...) to fail the build when the command
exits non‑zero. Target the KUBEBUILDER_ASSETS assignment and the test recipe
that runs `go test ./... -coverprofile cover.out` to ensure the build aborts on
envtest resolution errors.

In `@manifests/art.yaml`:
- Around line 9-10: The search pattern for olm.skipRange in the replacement rule
is wrong and won't match the current CSV; update the search string
"olm.skipRange: '>=4.22.0-0 <{MAJOR}.{MINOR}.0'" to "olm.skipRange: '>=4.11.0
<4.22.0'" so it matches the existing CSV value and the replace rule
("olm.skipRange: '>=4.22.0-0 <{FULL_VER}'") will be applied correctly; look for
the exact literal search string used in the diff and change its leading version
to >=4.11.0 to match the stable CSV entry.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 9ac1e0d1-f8ad-481e-a862-1e987cc472ef

📥 Commits

Reviewing files that changed from the base of the PR and between 1223118 and 3583fec.

📒 Files selected for processing (22)
  • .ci-operator.yaml
  • Dockerfile
  • Dockerfile.daemon
  • Dockerfile.daemon.openshift
  • Dockerfile.openshift
  • Makefile
  • README.md
  • bundle/manifests/ingress-node-firewall.clusterserviceversion.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallconfigs.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallnodestates.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewalls.yaml
  • config/manifests/bases/ingress-node-firewall.clusterserviceversion.yaml
  • config/olm-install/install-resources.yaml
  • config/rbac/role.yaml
  • controllers/ingressnodefirewall_controller_rules_test.go
  • go.mod
  • hack/generators.Dockerfile
  • manifests/art.yaml
  • manifests/ingress-node-firewall.package.yaml
  • manifests/stable/ingress-node-firewall.clusterserviceversion.yaml
  • openshift-ci/wait_for_csv.sh
  • pkg/version/version.go

Comment thread Dockerfile Outdated
Comment thread Makefile Outdated
Comment thread manifests/art.yaml
Copy link
Copy Markdown

@danwinship danwinship left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you need to address/explain the coderabbit comments

ProtocolConfig: infv1alpha1.IngressNodeProtocolConfig{
Protocol: infv1alpha1.ProtocolTypeUDP,
TCP: &infv1alpha1.IngressNodeFirewallProtoRule{
UDP: &infv1alpha1.IngressNodeFirewallProtoRule{
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this? Was there a bug before that is fixed now?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears so, it was specified a merge of two settings with different protocols (TCP and UDP).
The first is TCP, and the second UDP, but it was not defined correctly (Protocol: infv1alpha1.ProtocolTypeUDP,).

Comment thread Dockerfile
@@ -1,5 +1,5 @@
# Build the manager binary
FROM golang:1.22 as builder
FROM golang:1.25 as builder
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please squash the second commit in with the first

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Dockerfile.daemon (1)

7-10: ⚠️ Potential issue | 🟠 Major

Harden runtime image by setting a non-root user.

The runtime stage does not declare USER, so the container defaults to root. Add a non-root user (UID 1001 or equivalent per your platform policy) to ensure secure operation. The copied binaries have executable permissions for all users and will run correctly with the suggested user.

Suggested hardening diff
 FROM quay.io/centos/centos:stream8
 COPY --from=builder /go/src/github.com/openshift/ingress-node-firewall/bin/daemon /usr/bin/
 COPY --from=builder /go/src/github.com/openshift/ingress-node-firewall/bin/syslog /usr/bin/
+USER 1001
 CMD ["/usr/bin/daemon"]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Dockerfile.daemon` around lines 7 - 10, Add a non-root user and switch the
runtime to it: create or ensure a user with UID 1001 (or your platform's
non-root UID), chown the copied binaries (/usr/bin/daemon and /usr/bin/syslog)
to that UID (and appropriate group), and set USER 1001 before the CMD so the
container does not run as root; keep CMD ["/usr/bin/daemon"] unchanged and
verify the binaries remain executable by that user.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@Dockerfile.daemon`:
- Around line 7-10: Add a non-root user and switch the runtime to it: create or
ensure a user with UID 1001 (or your platform's non-root UID), chown the copied
binaries (/usr/bin/daemon and /usr/bin/syslog) to that UID (and appropriate
group), and set USER 1001 before the CMD so the container does not run as root;
keep CMD ["/usr/bin/daemon"] unchanged and verify the binaries remain executable
by that user.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: de6dcc58-0023-4534-8bca-cae373b3947a

📥 Commits

Reviewing files that changed from the base of the PR and between bea0084 and 5611293.

📒 Files selected for processing (22)
  • .ci-operator.yaml
  • Dockerfile
  • Dockerfile.daemon
  • Dockerfile.daemon.openshift
  • Dockerfile.openshift
  • Makefile
  • README.md
  • bundle/manifests/ingress-node-firewall.clusterserviceversion.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallconfigs.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallnodestates.yaml
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewalls.yaml
  • config/manifests/bases/ingress-node-firewall.clusterserviceversion.yaml
  • config/olm-install/install-resources.yaml
  • config/rbac/role.yaml
  • controllers/ingressnodefirewall_controller_rules_test.go
  • go.mod
  • hack/generators.Dockerfile
  • manifests/art.yaml
  • manifests/ingress-node-firewall.package.yaml
  • manifests/stable/ingress-node-firewall.clusterserviceversion.yaml
  • openshift-ci/wait_for_csv.sh
  • pkg/version/version.go
✅ Files skipped from review due to trivial changes (13)
  • manifests/ingress-node-firewall.package.yaml
  • hack/generators.Dockerfile
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewalls.yaml
  • controllers/ingressnodefirewall_controller_rules_test.go
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallnodestates.yaml
  • openshift-ci/wait_for_csv.sh
  • Dockerfile.openshift
  • .ci-operator.yaml
  • go.mod
  • manifests/art.yaml
  • Dockerfile
  • config/olm-install/install-resources.yaml
  • config/manifests/bases/ingress-node-firewall.clusterserviceversion.yaml
🚧 Files skipped from review as they are similar to previous changes (7)
  • pkg/version/version.go
  • README.md
  • Dockerfile.daemon.openshift
  • config/crd/bases/ingressnodefirewall.openshift.io_ingressnodefirewallconfigs.yaml
  • bundle/manifests/ingress-node-firewall.clusterserviceversion.yaml
  • manifests/stable/ingress-node-firewall.clusterserviceversion.yaml
  • Makefile

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Makefile (1)

72-74: ⚠️ Potential issue | 🟡 Minor

Stale comment references removed setup-envtest.sh.

The comment mentions setup-envtest.sh as a requirement, but this script is no longer used. Line 288 now installs setup-envtest directly via go install. Consider updating the comment to reflect the current setup.

📝 Suggested update
 # Setting SHELL to bash allows bash commands to be executed by recipes.
-# This is a requirement for 'setup-envtest.sh' in the test target.
+# This is a requirement for shell command substitution and error handling in recipes.
 # Options are set to exit when a recipe line exits non-zero or a piped command fails.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Makefile` around lines 72 - 74, The comment referencing setup-envtest.sh is
stale; update the Makefile comment that currently mentions "setup-envtest.sh" to
reflect that the project now installs setup-envtest directly via go install (the
Makefile invokes go install for setup-envtest), remove the obsolete requirement
text, and keep the rest of the note about SHELL being bash and the -e/o pipefail
behavior; search for the string "setup-envtest.sh" and the go install invocation
for "setup-envtest" to find and edit the comment and replace it with a concise
note stating setup-envtest is installed via go install.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@Makefile`:
- Line 288: Update the Makefile's setup-envtest install command to use the
release-0.20 tag so it matches the project's controller-runtime v0.20.4; locate
the line that invokes "go install
sigs.k8s.io/controller-runtime/tools/setup-envtest@release-0.23" and change the
version suffix from `@release-0.23` to `@release-0.20` to ensure compatibility with
controller-runtime v0.20.4.
- Around line 129-137: The Makefile sets KUBEBUILDER_ASSETS as a shell variable
before running go test in the test and test-race targets so child processes
don’t see it; change the assignment so the variable is exported to the
environment (or use inline prefix assignment) so go test inherits
KUBEBUILDER_ASSETS—update the lines that set KUBEBUILDER_ASSETS (referencing
KUBEBUILDER_ASSETS, ENVTEST, ENVTEST_K8S_VERSION, and the test/test-race
targets) to either export the variable into the environment or put it inline on
the same command as go test.

---

Outside diff comments:
In `@Makefile`:
- Around line 72-74: The comment referencing setup-envtest.sh is stale; update
the Makefile comment that currently mentions "setup-envtest.sh" to reflect that
the project now installs setup-envtest directly via go install (the Makefile
invokes go install for setup-envtest), remove the obsolete requirement text, and
keep the rest of the note about SHELL being bash and the -e/o pipefail behavior;
search for the string "setup-envtest.sh" and the go install invocation for
"setup-envtest" to find and edit the comment and replace it with a concise note
stating setup-envtest is installed via go install.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: dacc86f3-2a11-421b-a0fd-0a403f5d73c2

📥 Commits

Reviewing files that changed from the base of the PR and between 5611293 and 9fbcb04.

📒 Files selected for processing (1)
  • Makefile

Comment thread Makefile
Comment thread Makefile Outdated
@raphaelvrosa raphaelvrosa requested a review from danwinship April 24, 2026 07:28
@danwinship
Copy link
Copy Markdown

Again, please squash the fixes. Each commit should be correct by itself without needing later fixups.

@raphaelvrosa
Copy link
Copy Markdown
Author

/test unit-test
/test ingress-node-firewall-e2e-metal-ipi

@danwinship
Copy link
Copy Markdown

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 28, 2026
Copy link
Copy Markdown

@tssurya tssurya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve
thanks for taking over the PR and working on this

For next time - very important - I prefer PRs to always always have describe's populated and commit message must NEVER have empty body unless its a trivial fix,

example provide a list of things you are doing in the PR via commit message that makes it easier for the reviewer

cause there are random things throughout - rbac consolidation, unit test bug for udp, sdk version update, golang update but not k8s update i think, controller-gen as well updated,

Also we need to cherry-pick this into 4.22 release if I'm not mistaken but at this point given all of this is just alpha API I'm fine to let 4.22 GA before we do the pick

metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
controller-gen.kubebuilder.io/version: v0.20.1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is 20.1 the latest ?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread .ci-operator.yaml
build_root_image:
name: release
namespace: openshift
tag: rhel-9-release-golang-1.24-openshift-4.22
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are supposed to be done by art bot automatically but ok at least doing this in one go helps since we need the new golang version

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is mandatory to upgrade golang.
From the commit message of the original PR:

Bump Go version from 1.24.0 to 1.25.0 to satisfy controller-gen@v0.20.1
requirement (requires Go >= 1.25.0). Update go.mod and all Dockerfiles
to use Go 1.25 for consistency.

Fix test case that was using TCP field with UDP protocol type. The
updated controller-gen enforces stricter validation where protocol type
must match the field used in protocolConfig.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great should have kept this description in the commit message :D

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, the commit is done with the messages now.

Comment thread Makefile
DAEMON_IMG ?= quay.io/openshift/origin-ingress-node-firewall-daemon:latest
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
ENVTEST_K8S_VERSION = 1.25.2
ENVTEST_K8S_VERSION = 1.32.x
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really understand this version definition "what kubebuilder assets" are we talking about? I guess its not the same as the actual kube version right?

Copy link
Copy Markdown
Author

@raphaelvrosa raphaelvrosa Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the previous commit message of the original PR:

Update Makefile to use modern setup-envtest Go binary instead of
deprecated shell script that was failing with 403 errors from Google
Cloud Storage. Align versions with project dependencies:
- ENVTEST_K8S_VERSION: 1.25.2 → 1.32.x (matches k8s.io/* v0.32.3)
- CONTROLLER_TOOLS_VERSION: v0.14.0 → v0.20.1 (matches controller-runtime v0.20.4)
- setup-envtest pinned to v0.20.4 (matches controller-runtime v0.20.4)
- Add GOFLAGS="" to setup-envtest install to fix -mod=vendor CI errors

Regenerate CRDs and RBAC with updated controller-gen.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great should have kept this description in the commit message :D

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, the commit is done with the messages now.

Comment thread README.md
You need to install the following packages:

operator-sdk 1.22.0
operator-sdk 1.33.0
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is 1.33 latest?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it's quite old. Not sure why it's kept this way, is there any dependency?
The newest one is 1.42, see https://github.com/operator-framework/operator-sdk/releases
@tssurya should it be updated to latest?

Copy link
Copy Markdown

@tssurya tssurya Apr 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it can be done in the future PR for 5.0 bump - there is another assignee for 5.0 for this work

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 29, 2026
Comment thread config/rbac/role.yaml
- apiGroups:
- ingressnodefirewall.openshift.io
resources:
- ingressnodefirewallconfigs/finalizers
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unrelated to this PR cause you are just moving things around - finalizers aren't really a seperate sub resource - so technically this expression does nothing. what's helping is the fact that ingressnodefirewallconfigs is totally updatable with above RBAC

Bump Go version from 1.24.0 to 1.25.0 to satisfy controller-gen@v0.20.1
requirement (requires Go >= 1.25.0). Update go.mod and all Dockerfiles
to use Go 1.25 for consistency.

Fix test case that was using TCP field with UDP protocol type. The
updated controller-gen enforces stricter validation where protocol type
must match the field used in protocolConfig.

Update Makefile to use modern setup-envtest Go binary instead of
deprecated shell script that was failing with 403 errors from Google
Cloud Storage. Align versions with project dependencies:

 ENVTEST_K8S_VERSION: 1.25.2 → 1.32.x (matches k8s.io/* v0.32.3)
 CONTROLLER_TOOLS_VERSION: v0.14.0 → v0.20.1 (matches controller-runtime v0.20.4)
 setup-envtest pinned to v0.20.4 (matches controller-runtime v0.20.4)
 Add GOFLAGS="" to setup-envtest install to fix -mod=vendor CI errors

Regenerate CRDs and RBAC with updated controller-gen.

Signed-off-by: Raphael Rosa <raprosa@redhat.com>
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@tssurya
Copy link
Copy Markdown

tssurya commented Apr 30, 2026

aaah! I had already lgmt-ed approved it haha :D I didn't mean for you to repush it , I meant "for next time".. :D

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 30, 2026

@raphaelvrosa: all tests passed!

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.

Copy link
Copy Markdown

@tssurya tssurya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 30, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: raphaelvrosa, tssurya

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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants