Skip to content

NE-2765: Bump Kubernetes to 1.36.2 and Go to 1.26#483

Open
aswinsuryan wants to merge 1 commit into
openshift:masterfrom
aswinsuryan:NE-2765/k8s-1.36-bump
Open

NE-2765: Bump Kubernetes to 1.36.2 and Go to 1.26#483
aswinsuryan wants to merge 1 commit into
openshift:masterfrom
aswinsuryan:NE-2765/k8s-1.36-bump

Conversation

@aswinsuryan

@aswinsuryan aswinsuryan commented Jul 14, 2026

Copy link
Copy Markdown
Contributor
  • Bump k8s.io modules from v0.35.0 to v0.36.2
  • Bump Go from 1.25.0 to 1.26.0
  • Bump sigs.k8s.io/controller-runtime from v0.23.1 to v0.24.1
  • Update openshift/api, openshift/client-go, openshift/library-go, and coredns-ocp-dnsnameresolver to latest
  • Sync CRD manifests with updated openshift/api — feature-gated CRD variants consolidated into a single file
  • The updated openshift/api consolidated the three separate feature-gated DNSNameResolver CRD variants (CustomNoUpgrade, DevPreviewNoUpgrade, TechPreviewNoUpgrade) into a single unified CRD file using the api.openshift.io/merged-by-featuregates annotation. The hack scripts and manifests were updated accordingly to point to the new source paths.

Summary by CodeRabbit

  • Chores

    • Bumped the Go toolchain and refreshed core Kubernetes/OpenShift dependencies.
    • Updated supporting libraries to newer compatible versions to improve maintenance.
  • Bug Fixes

    • Updated generated DNS name resolver CRD installation to use the standard manifest, avoiding multiple “NoUpgrade” variant manifests during the install/update flow.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 14, 2026
@openshift-ci

openshift-ci Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

@aswinsuryan: This pull request references NE-2765 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

  • Bump k8s.io modules from v0.35.0 to v0.36.2
  • Bump Go from 1.25.0 to 1.26.0
  • Bump sigs.k8s.io/controller-runtime from v0.23.1 to v0.24.1
  • Update openshift/api, openshift/client-go, openshift/library-go, and coredns-ocp-dnsnameresolver to latest

Summary by CodeRabbit

  • Chores
  • Updated the application’s Go runtime and core platform libraries.
  • Refreshed Kubernetes, OpenShift, observability, and related supporting components.
  • Tidied and synchronized transitive dependency versions for improved build consistency.

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 Jul 14, 2026

Copy link
Copy Markdown

Walkthrough

The module targets Go 1.26 with refreshed Kubernetes, OpenShift, controller-runtime, and transitive dependencies. The CRD update script now installs the base DNSNameResolver CRD manifest instead of NoUpgrade variants.

Changes

Dependency and CRD updates

Layer / File(s) Summary
Go toolchain and dependency graph
go.mod
The Go directive and direct and indirect dependencies are updated, including Kubernetes libraries, controller-runtime, OpenAPI modules, telemetry libraries, and the backoff module replacement.
Base DNSNameResolver CRD installation
hack/update-generated-crd.sh
The script now installs the base dnsnameresolvers.crd.yaml manifest instead of the TechPreviewNoUpgrade, CustomNoUpgrade, and DevPreviewNoUpgrade variants.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: frobware, alebedev87


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Weak-Crypto ❌ Error PR adds RC4/3DES cipher suites in openshift/library-go and SHA1/MD5 TLS fingerprint attrs in otel semconv, matching the weak-crypto ban. Remove or isolate these weak algorithms from the PR; if they come from vendored/generated updates, avoid shipping them and use modern hashes/ciphers only.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: Kubernetes and Go version bumps for NE-2765.
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 No *_test.go files or Ginkgo title literals appear in the diff; changes are vendor/dependency updates and a shell script.
Test Structure And Quality ✅ Passed No Ginkgo test files were changed; the PR only updates deps, vendor files, and a CRD install script.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e test files were added; the non-vendor diff is only go.mod/go.sum and a CRD install script.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the non-vendor diff is only go.mod/go.sum and a CRD update script, with no SNO-sensitive test code.
Topology-Aware Scheduling Compatibility ✅ Passed No workload manifests/controllers changed—only go.mod/go.sum, a CRD update script, and vendored API code; no scheduling constraints or node selectors were introduced.
Ote Binary Stdout Contract ✅ Passed PR changes only update go.mod/go.sum, vendor, and a shell script; no new stdout writes in main/init/suite setup were introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; non-vendor changes are only dependency bumps and a CRD copy script, with no IPv4 or external-network assumptions.
Container-Privileges ✅ Passed Changed files add no privileged settings; searches of all modified files found no privileged:true, hostPID/Network/IPC, SYS_ADMIN, or allowPrivilegeEscalation:true.
No-Sensitive-Data-In-Logs ✅ Passed Changed files only adjust CRD install paths and vendored deps; added logs are generic warnings/errors and don’t print secrets, tokens, PII, or hostnames.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
go.mod

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot

openshift-ci-robot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

@aswinsuryan: This pull request references NE-2765 which is a valid jira issue.

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.

@aswinsuryan
aswinsuryan force-pushed the NE-2765/k8s-1.36-bump branch from 66b91cd to 6235989 Compare July 15, 2026 03:10
@aswinsuryan
aswinsuryan marked this pull request as ready for review July 15, 2026 03:10
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 15, 2026
@openshift-ci
openshift-ci Bot requested review from alebedev87 and frobware July 15, 2026 03:10
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
Validation Failed: {"resource":"IssueComment","code":"custom","field":"body","message":"body is too long (maximum is 65536 characters)"} - https://docs.github.com/rest/issues/comments#update-an-issue-comment

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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)
go.mod (1)

3-22: 📐 Maintainability & Code Quality | 🔵 Trivial

Ensure SBOM generation and artifact signing.

As per path instructions for supply chain security, ensure that the build pipeline is configured to produce provenance attestations (SBOM) and that all produced artifacts are signed with Sigstore/cosign.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@go.mod` around lines 3 - 22, Update the build and release pipeline
configuration associated with the Go module dependencies to generate
provenance/SBOM attestations for every build artifact and sign all produced
artifacts using Sigstore/cosign. Ensure both steps run as part of the existing
artifact publication flow and fail the pipeline when attestation or signing
fails.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Around line 98-100: Remove the replace directive for
github.com/openshift/library-go that points to the personal fork and unreleased
pseudo-version. Restore dependency resolution to the official upstream module,
using an approved released version or the upstream merged changes instead.

In `@manifests/0000_70_dns_00_dnsnameresolvers.crd.yaml`:
- Line 9: Update the root openAPIV3Schema description in the DNSNameResolvers
CustomResourceDefinition to document DevPreviewNoUpgrade alongside the existing
TechPreviewNoUpgrade and CustomNoUpgrade feature sets, matching the supported
values in the release.openshift.io/feature-set annotation.

In `@manifests/0000_70_dns-operator_00.crd.yaml`:
- Around line 174-177: Update the taint toleration operator schema near the
documented “Valid operators” text to add an OpenAPI enum constraint for Exists,
Equal, Lt, and Gt, and set its default to Equal. Keep the field type as string
and preserve the existing feature-gate documentation.

---

Nitpick comments:
In `@go.mod`:
- Around line 3-22: Update the build and release pipeline configuration
associated with the Go module dependencies to generate provenance/SBOM
attestations for every build artifact and sign all produced artifacts using
Sigstore/cosign. Ensure both steps run as part of the existing artifact
publication flow and fail the pipeline when attestation or signing fails.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

Comment thread go.mod Outdated
Comment thread manifests/0000_70_dns_00_dnsnameresolvers.crd.yaml
Comment thread manifests/0000_70_dns-operator_00.crd.yaml
@aswinsuryan

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-ovn

@gcs278

gcs278 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

/assign @bentito

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
Validation Failed: {"resource":"IssueComment","code":"custom","field":"body","message":"body is too long (maximum is 65536 characters)"} - https://docs.github.com/rest/issues/comments#update-an-issue-comment

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

@coderabbitai full-review

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

@aswinsuryan, starting a full review of the PR, including all changes and prior feedback context.

✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 7 minutes.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
Validation Failed: {"resource":"IssueComment","code":"custom","field":"body","message":"body is too long (maximum is 65536 characters)"} - https://docs.github.com/rest/issues/comments#update-an-issue-comment

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

/retest-required

@bentito

bentito commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Were the manifest changes in this PR required by the bumps? Maybe a PR description note so we have some documentation on why.

@aswinsuryan

aswinsuryan commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Were the manifest changes in this PR required by the bumps? Maybe a PR description note so we have some documentation on why.

Yes, the manifest changes were required by the bumps. The new openshift/api restructured how CRDs are delivered, the 3 separate feature-gated DNSNameResolver CRD files were consolidated into a single file. The hack scripts had to be updated to point to the new paths.

The PR description is updated.

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-ovn

1 similar comment
@aswinsuryan

Copy link
Copy Markdown
Contributor Author

/test e2e-aws-ovn

@melvinjoseph86

Copy link
Copy Markdown

/retest-required

@aswinsuryan
aswinsuryan force-pushed the NE-2765/k8s-1.36-bump branch from b262859 to 54f1f6e Compare July 21, 2026 14:02

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Line 81: Update the go.opentelemetry.io/otel/sdk dependency in go.mod from
v1.40.0 to v1.43.0 or later, ensuring the resolved module version is outside the
affected vulnerability range.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

Comment thread go.mod Outdated
Bump k8s.io modules to v0.36.2, controller-runtime to v0.24.1,
and Go to 1.26. Update openshift/api, openshift/client-go, and
openshift/library-go to latest upstream. Update CRD hack script
for consolidated DNSNameResolver CRD.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Aswin Suryanarayanan <asuryana@redhat.com>
@aswinsuryan
aswinsuryan force-pushed the NE-2765/k8s-1.36-bump branch from 54f1f6e to 802ce9a Compare July 21, 2026 15:01
@bentito

bentito commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

/lgtm
/approve

@bentito

bentito commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

/retest

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 21, 2026
@openshift-ci

openshift-ci Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bentito

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 Jul 21, 2026
@melvinjoseph86

Copy link
Copy Markdown

/test e2e-aws-ovn

@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@aswinsuryan: 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.

@aswinsuryan

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@go.mod`:
- Line 101: Update the google.golang.org/grpc dependency from v1.79.3 to v1.82.1
or later, then regenerate the vendored module graph and go.sum so all dependency
metadata reflects the upgraded version, and rescan the resulting graph.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

Comment thread go.mod
google.golang.org/protobuf v1.36.8 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect
google.golang.org/grpc v1.79.3 // indirect

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail
go list -m all | grep '^google.golang.org/grpc '
govulncheck ./...

Repository: openshift/cluster-dns-operator

Length of output: 263


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '\n== go.mod excerpt ==\n'
cat -n go.mod | sed -n '90,110p'

printf '\n== grpc references in module files ==\n'
rg -n '^(\s*google\.golang\.org/grpc\b|# google\.golang\.org/grpc\b)' go.mod go.sum vendor/modules.txt || true

printf '\n== module graph view (ignoring vendor) ==\n'
go list -mod=mod -m all | rg '^google\.golang\.org/grpc\b' || true

Repository: openshift/cluster-dns-operator

Length of output: 5734


Upgrade gRPC past the affected range.

google.golang.org/grpc v1.79.3 is still selected here, and the vendored graph and go.sum match it. Upgrade to v1.82.1 or later, then rescan the module graph.

🧰 Tools
🪛 OSV Scanner (2.4.0)

[HIGH] 101-101: google.golang.org/grpc 1.79.3: gRPC-Go: xDS RBAC and HTTP/2 Vulnerabilities

(GHSA-hrxh-6v49-42gf)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@go.mod` at line 101, Update the google.golang.org/grpc dependency from
v1.79.3 to v1.82.1 or later, then regenerate the vendored module graph and
go.sum so all dependency metadata reflects the upgraded version, and rescan the
resulting graph.

Sources: Coding guidelines, Linters/SAST tools

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

5 participants