Skip to content

CORENET-7375 d/s merge Bump Kubernetes to 1.36.2 and Go to 1.26 - #123

Open
miheer wants to merge 6 commits into
openshift:mainfrom
miheer:CORENET-7359
Open

CORENET-7375 d/s merge Bump Kubernetes to 1.36.2 and Go to 1.26#123
miheer wants to merge 6 commits into
openshift:mainfrom
miheer:CORENET-7359

Conversation

@miheer

@miheer miheer commented Jul 17, 2026

Copy link
Copy Markdown

Bump Kubernetes to 1.36.2 and Go to 1.26

Summary by CodeRabbit

  • Chores
    • Updated the Go toolchain to 1.26 across the build container and CI (build + test runs).
    • Refreshed Prometheus, Kubernetes, and related dependencies (including module pins).
  • Bug Fixes
    • Improved webhook TLS certificate change detection to trigger reloads more reliably when certificate files are updated, including atomic-style replacements.
  • Tests
    • Added coverage for certificate change detection: unchanged files, in-place updates, and atomic-style replacements.

@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

@miheer miheer changed the title Bump Kubernetes to 1.36.2 and Go to 1.26 CORENET-7359: Bump Kubernetes to 1.36.2 and Go to 1.26 Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

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

The project adopts Go 1.26 across CI, Docker, and module metadata, upgrades Prometheus and Kubernetes dependencies, and changes webhook certificate reload detection from content hashing to file metadata comparison with added tests.

Changes

Toolchain and dependency upgrade

Layer / File(s) Summary
Go 1.26 toolchain and dependency alignment
.github/workflows/*.yml, build/Dockerfile, go.mod
CI, Docker, direct and indirect dependencies, and Kubernetes replacement pins are updated for Go 1.26.

Certificate reload detection

Layer / File(s) Summary
Certificate metadata change detection and validation
cmd/webhook/main.go, cmd/webhook/main_test.go
Certificate polling compares file identity, size, and modification time, then sends SIGHUP when changes are detected; tests cover unchanged files, in-place writes, and atomic replacement.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: s1061123, aneeshkp

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (14 passed)
Check name Status Explanation
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 New Ginkgo titles are static and descriptive (“Certificate file change detection”, “does not report an unchanged file”, etc.); no dynamic values or generated identifiers appear.
Test Structure And Quality ✅ Passed The new Ginkgo tests use BeforeEach/AfterEach cleanup, split behaviors into separate Its, and add no cluster waits or leaks; they match the repo’s existing test style.
Microshift Test Compatibility ✅ Passed New Ginkgo tests cover only local file-change detection and HTTPS server behavior; they don’t reference unsupported OpenShift APIs or MicroShift-only skips.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Added Ginkgo tests only exercise temp-file stat/write/rename logic; no cluster, node, or HA assumptions are present.
Topology-Aware Scheduling Compatibility ✅ Passed Touched files only bump Go/Kubernetes versions and adjust webhook certificate reload logic; no affinity, nodeSelector, replicas, or topology-aware scheduling changes were added.
Ote Binary Stdout Contract ✅ Passed No new stdout writes in process-level code: main.go only uses glog/os.Stat, and the new TestMain/Describe blocks don’t print or redirect stdout.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The added Ginkgo tests only use temp files and local os.* calls; no new IPv4 assumptions or external network access were introduced.
No-Weak-Crypto ✅ Passed No MD5/SHA1/DES/RC4/3DES/ECB or custom secret comparison added; the cert watcher replaced SHA-512 hashing with file-metadata checks and TLS stays on strong suites.
Container-Privileges ✅ Passed No touched manifest introduced privileged settings; workflows and Dockerfile only bump Go/base image versions, with no privileged/securityContext fields found.
No-Sensitive-Data-In-Logs ✅ Passed No new logs expose secrets; the only added log mentions the cert file path and error, not passwords/tokens/PII.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary changes: upgrading Kubernetes to 1.36.2 and Go to 1.26.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@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 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

@miheer: This pull request references CORENET-7359 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 spike to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Bump Kubernetes to 1.36.2 and Go to 1.26

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 review from aneeshkp and s1061123 July 17, 2026 16:31

@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

Caution

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

⚠️ Outside diff range comments (1)
build/Dockerfile (1)

15-23: 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

Harden the final container image.

golang:1.26 is not pinned by digest, and the single-stage image retains compiler tooling. The Dockerfile also runs as root and copies the entire context with ADD .. Use a pinned builder stage, a minimal non-root runtime stage, selective COPY, and add a HEALTHCHECK.

As per path instructions, non-Red Hat images must be pinned by digest, use multi-stage builds, run as non-root, copy specific files, and define HEALTHCHECK.

🤖 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 `@build/Dockerfile` around lines 15 - 23, Harden the Dockerfile by replacing
the single-stage golang:1.26 build with a digest-pinned builder and minimal
runtime stage; use selective COPY instead of ADD ., copy only the built webhook
and required runtime files, create and switch to a non-root user, and add a
HEALTHCHECK for the webhook. Preserve the existing build.sh invocation and
executable entrypoint behavior.

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 @.github/workflows/build.yml:
- Line 7: Pin every referenced CI action immutably by replacing mutable tags or
images with trusted full commit SHAs or digests: update actions/setup-go and
actions/checkout in .github/workflows/build.yml (line 7), and actions/setup-go,
actions/checkout, the Revive Docker action, and Coveralls in
.github/workflows/test.yml (line 7). Ensure all action references in both
workflows use reviewed immutable identifiers.

In @.github/workflows/test.yml:
- Line 7: Update the coverage flag configuration in the workflow step to
reference the matrix.go-version value defined by the go-version matrix,
replacing the incorrect matrix.go reference and preserving distinct coverage
flags for each Go version.

In `@go.mod`:
- Around line 12-30: Update the indirect golang.org/x/net dependency entry in
go.mod from v0.49.0 to a release that resolves the referenced OSV advisories,
preserving the existing dependency declaration and module formatting.

---

Outside diff comments:
In `@build/Dockerfile`:
- Around line 15-23: Harden the Dockerfile by replacing the single-stage
golang:1.26 build with a digest-pinned builder and minimal runtime stage; use
selective COPY instead of ADD ., copy only the built webhook and required
runtime files, create and switch to a non-root user, and add a HEALTHCHECK for
the webhook. Preserve the existing build.sh invocation and executable entrypoint
behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

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

strategy:
matrix:
go-version: [1.25.x]
go-version: [1.26.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.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Pin all CI action references immutably.

Both workflows execute mutable action tags/images, allowing upstream changes to alter CI behavior without a reviewed commit change.

  • .github/workflows/build.yml#L7-L7: pin actions/setup-go and actions/checkout to trusted full commit SHAs.
  • .github/workflows/test.yml#L7-L7: pin actions/setup-go, actions/checkout, the Revive Docker action, and Coveralls to trusted SHAs/digests.

As per path instructions, CI/CD actions must be pinned by full SHA, not tag.

📍 Affects 2 files
  • .github/workflows/build.yml#L7-L7 (this comment)
  • .github/workflows/test.yml#L7-L7
🤖 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 @.github/workflows/build.yml at line 7, Pin every referenced CI action
immutably by replacing mutable tags or images with trusted full commit SHAs or
digests: update actions/setup-go and actions/checkout in
.github/workflows/build.yml (line 7), and actions/setup-go, actions/checkout,
the Revive Docker action, and Coveralls in .github/workflows/test.yml (line 7).
Ensure all action references in both workflows use reviewed immutable
identifiers.

Source: Path instructions

strategy:
matrix:
go-version: [1.25.x]
go-version: [1.26.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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

rg -n 'matrix\.(go|go-version)' .github/workflows/test.yml

Repository: openshift/multus-admission-controller

Length of output: 265


🏁 Script executed:

sed -n '1,80p' .github/workflows/test.yml

Repository: openshift/multus-admission-controller

Length of output: 1250


Use matrix.go-version in the coverage flag name. The workflow matrix defines go-version, but this step reads matrix.go, so the flag becomes empty and can collide across versions.

Proposed fix
-        flag-name: Go-${{ matrix.go }}
+        flag-name: Go-${{ matrix.go-version }}
🤖 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 @.github/workflows/test.yml at line 7, Update the coverage flag configuration
in the workflow step to reference the matrix.go-version value defined by the
go-version matrix, replacing the incorrect matrix.go reference and preserving
distinct coverage flags for each Go version.

Comment thread go.mod

@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

🤖 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 `@cmd/webhook/main_test.go`:
- Line 90: Handle the cleanup errors at both os.Remove sites in
cmd/webhook/main_test.go:90-90 and cmd/webhook/main_test.go:124-124 instead of
discarding them. Assert removal succeeds at the first site; at the second,
accept os.ErrNotExist after the successful rename while reporting or failing on
other errors.

In `@cmd/webhook/main.go`:
- Around line 151-155: Update certificateFileChanged to detect in-place
certificate content changes that preserve inode, size, and modification time by
comparing a retained content fingerprint (or equivalent file-content state)
during polling. Ensure the polling flow stores and updates that fingerprint when
the certificate is read, and add a regression case covering same-size content
with preserved modification time.
- Around line 132-144: Capture the certificate file metadata immediately before
constructing NewTLSKeypairReloader, handling stat errors consistently, and
initialize previousCertInfo with that baseline before server startup/loading the
keypair. Remove the later first-poll-only initialization so replacements
occurring during startup are detected and trigger SIGHUP.
🪄 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: Enterprise

Run ID: 50aa060a-5115-401c-afbf-af1b0e926a2c

📥 Commits

Reviewing files that changed from the base of the PR and between 73f779a and 9e31429.

📒 Files selected for processing (2)
  • cmd/webhook/main.go
  • cmd/webhook/main_test.go

Comment thread cmd/webhook/main_test.go
certPath = certFile.Name()
Expect(certFile.Close()).To(Succeed())
cleanup = func() {
_ = os.Remove(certPath)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Handle cleanup failures explicitly.

  • cmd/webhook/main_test.go#L90-L90: assert or otherwise handle failure to remove the test certificate.
  • cmd/webhook/main_test.go#L124-L124: handle os.Remove errors, allowing os.ErrNotExist after the successful rename.

As per path instructions, “Never ignore error returns.”

📍 Affects 1 file
  • cmd/webhook/main_test.go#L90-L90 (this comment)
  • cmd/webhook/main_test.go#L124-L124
🤖 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 `@cmd/webhook/main_test.go` at line 90, Handle the cleanup errors at both
os.Remove sites in cmd/webhook/main_test.go:90-90 and
cmd/webhook/main_test.go:124-124 instead of discarding them. Assert removal
succeeds at the first site; at the second, accept os.ErrNotExist after the
successful rename while reporting or failing on other errors.

Sources: Path instructions, Linters/SAST tools

Comment thread cmd/webhook/main.go
Comment on lines +132 to +144
var previousCertInfo os.FileInfo
for {
hasher := sha512.New()
certPath, err := filepath.Abs(*cert)
currentCertInfo, err := os.Stat(*cert)
if err != nil {
glog.Fatalf("illegal path %s in certPath: %s: %v", *cert, certPath, err)
os.Exit(1)
glog.Fatalf("failed to stat certificate file %s: %v", *cert, err)
}
s, err := ioutil.ReadFile(certPath)
hasher.Write(s)
if err != nil {
glog.Fatalf("failed to read file %s: %v", *cert, err)
os.Exit(1)
}
newHashVal := hex.EncodeToString(hasher.Sum(nil))
if oldHashVal != "" && newHashVal != oldHashVal {

if previousCertInfo != nil && certificateFileChanged(previousCertInfo, currentCertInfo) {
if err := proc.Signal(syscall.SIGHUP); err != nil {
glog.Fatalf("failed to send certificate update notification: %v", err)
}
}
oldHashVal = newHashVal
previousCertInfo = currentCertInfo

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

Capture the baseline before loading the keypair.

NewTLSKeypairReloader loads the certificate at line 97, but this baseline is only captured after server startup. A replacement in that interval becomes previousCertInfo without sending SIGHUP, leaving the old in-memory certificate active until another update. Stat the certificate immediately before constructing the reloader and seed the polling state from that result.

🤖 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 `@cmd/webhook/main.go` around lines 132 - 144, Capture the certificate file
metadata immediately before constructing NewTLSKeypairReloader, handling stat
errors consistently, and initialize previousCertInfo with that baseline before
server startup/loading the keypair. Remove the later first-poll-only
initialization so replacements occurring during startup are detected and trigger
SIGHUP.

Comment thread cmd/webhook/main.go
Comment on lines +151 to +155
func certificateFileChanged(previous, current os.FileInfo) bool {
return !os.SameFile(previous, current) ||
previous.Size() != current.Size() ||
!previous.ModTime().Equal(current.ModTime())
}

@coderabbitai coderabbitai Bot Jul 17, 2026

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

Metadata equality does not prove certificate equality.

An in-place rewrite can retain the inode and size, and can have the same modtime on coarse-resolution filesystems or when timestamps are preserved. This returns false and skips reloading changed TLS material. Retain a content fingerprint for polling, or use filesystem change notifications; add a same-size, preserved-modtime regression case.

🤖 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 `@cmd/webhook/main.go` around lines 151 - 155, Update certificateFileChanged to
detect in-place certificate content changes that preserve inode, size, and
modification time by comparing a retained content fingerprint (or equivalent
file-content state) during polling. Ensure the polling flow stores and updates
that fingerprint when the certificate is read, and add a regression case
covering same-size content with preserved modification time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think the odds of hitting this in a prod env are so low that we can ignore this, if we ever hit this edge case we can re-eval

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@bpickard22 Understood. The edge case is valid but sufficiently low-risk to defer; we can revisit it if it occurs in production.

@miheer
miheer force-pushed the CORENET-7359 branch 4 times, most recently from f61ec5e to 149f0c1 Compare July 17, 2026 17:05

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

♻️ Duplicate comments (1)
cmd/webhook/main_test.go (1)

90-90: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Handle os.Remove error returns — still unaddressed from prior review.

Both os.Remove call sites discard the error return, violating the Go path instruction "Never ignore error returns." This was flagged in a previous review and remains unfixed.

  • cmd/webhook/main_test.go#L90-L90: assert that cleanup removal succeeds (or at minimum log unexpected errors).
  • cmd/webhook/main_test.go#L124-L124: after the successful os.Rename, os.ErrNotExist is acceptable; any other error should be reported or fail the test.
🛡️ Proposed fix
 		cleanup = func() {
-			_ = os.Remove(certPath)
+			Expect(os.Remove(certPath)).To(Succeed())
 		}
-		defer os.Remove(replacementPath)
+		defer func() {
+			err := os.Remove(replacementPath)
+			Expect(errors.Is(err, os.ErrNotExist) || err == nil).To(BeTrue())
+		}()

Also applies to: 124-124

🤖 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 `@cmd/webhook/main_test.go` at line 90, Handle the error returns from both
os.Remove cleanup calls in the webhook tests instead of discarding them. At the
first call site, fail the test or report unexpected removal errors; at the
second call site, allow os.ErrNotExist after the successful os.Rename but report
or fail for any other error.

Sources: Path instructions, Linters/SAST tools

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

Duplicate comments:
In `@cmd/webhook/main_test.go`:
- Line 90: Handle the error returns from both os.Remove cleanup calls in the
webhook tests instead of discarding them. At the first call site, fail the test
or report unexpected removal errors; at the second call site, allow
os.ErrNotExist after the successful os.Rename but report or fail for any other
error.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 4d4238fb-08eb-4335-8067-84ecb2c92253

📥 Commits

Reviewing files that changed from the base of the PR and between 1ddc0a1 and f61ec5e.

📒 Files selected for processing (2)
  • cmd/webhook/main.go
  • cmd/webhook/main_test.go

@bpickard22

Copy link
Copy Markdown
Contributor

/lgtm

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

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws

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

miheer commented Jul 18, 2026

Copy link
Copy Markdown
Author

ci/prow/e2e-aws — Job failed.
Multus successfully attached networking to the failing pods (AddedInterface events), and the admission-controller image built successfully. The 10 network-segmentation failures are informing only and come from OVN-Kubernetes tests, mostly invalid dual-CIDR input on an IPv4 cluster.
So, will re-run again.

@miheer

miheer commented Jul 18, 2026

Copy link
Copy Markdown
Author

/test e2e-aws

1 similar comment
@miheer

miheer commented Jul 18, 2026

Copy link
Copy Markdown
Author

/test e2e-aws

@bpickard22

Copy link
Copy Markdown
Contributor

/approve

@miheer miheer changed the title CORENET-7359: Bump Kubernetes to 1.36.2 and Go to 1.26 CORENET-7375 Bump Kubernetes to 1.36.2 and Go to 1.26 Jul 24, 2026
@openshift-ci-robot openshift-ci-robot removed the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 24, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@miheer: No Jira issue is referenced in the title of this pull request.
To reference a jira issue, add 'XYZ-NNN:' to the title of this pull request and request another refresh with /jira refresh.

Details

In response to this:

Bump Kubernetes to 1.36.2 and Go to 1.26

Summary by CodeRabbit

  • Chores
  • Updated the Go toolchain to 1.26 across the build container and CI (build + test runs).
  • Refreshed Prometheus, Kubernetes, and related dependencies (including module pins).
  • Bug Fixes
  • Improved webhook TLS certificate change detection to trigger reloads more reliably when certificate files are updated, including atomic-style replacements.
  • Tests
  • Added coverage for certificate change detection: unchanged files, in-place updates, and atomic-style replacements.

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.

@miheer

miheer commented Jul 26, 2026

Copy link
Copy Markdown
Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 26, 2026
@miheer

miheer commented Jul 26, 2026

Copy link
Copy Markdown
Author

I have to yet create a upstream PR for the bump for this in k8snetworkplumbingwg/net-attach-def-admission-controller

@miheer

miheer commented Jul 27, 2026

Copy link
Copy Markdown
Author

just created an upstream PR k8snetworkplumbingwg/net-attach-def-admission-controller#78

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

miheer commented Jul 27, 2026

Copy link
Copy Markdown
Author

@bpickard22 I think we should consider just a pre-merge testing PR for testing upstream bump k8snetworkplumbingwg/net-attach-def-admission-controller#78

Once the upstream bump is merge then we can a downstream merge sync which might be larger than this.

@miheer

miheer commented Jul 27, 2026

Copy link
Copy Markdown
Author

it looks like right way is to have a proper ds merge. i will update this PR to test the u/s to d/s merge.

SchSeba and others added 5 commits August 12, 2026 13:46
deps: bump Kubernetes to 1.36.2 and Go to 1.26
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.49.0 to 0.55.0.
- [Commits](golang/net@v0.49.0...v0.55.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.55.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
…go_modules/golang.org/x/net-0.55.0

Bump golang.org/x/net from 0.49.0 to 0.55.0
Sync downstream main with upstream master after upstream PR openshift#78 merged.

This brings Kubernetes 1.36.2, Go 1.26, and the latest upstream x/net update. Keep the downstream TLS server changes and regenerate the component-base dependency and vendor files.
The security-openshift-ci-security-snyk-scan test failed with a low path traversal error.

The tls-cert-file cli value was passed to ioutil.ReadFile while checking for certificate updates. snyk reported that this could read an arbitrary file.

Stop reading the certificate contents in the watcher. Use file identity, size, and modified time to detect certificate changes. This also detects normal file updates and kubernetes secret replacements.

Add tests for unchanged files, in-place updates, and atomic file replacements.

(cherry picked from commit 149f0c1)
@miheer miheer changed the title CORENET-7375 Bump Kubernetes to 1.36.2 and Go to 1.26 CORENET-7375 d/s merge Bump Kubernetes to 1.36.2 and Go to 1.26 Aug 12, 2026
@miheer

miheer commented Aug 12, 2026

Copy link
Copy Markdown
Author

/unhold

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 12, 2026
@miheer

miheer commented Aug 13, 2026

Copy link
Copy Markdown
Author

@bpickard22

Copy link
Copy Markdown
Contributor

/lgtm

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

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e-aws

@openshift-ci

openshift-ci Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bpickard22, miheer

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 commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

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

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