Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 1 addition & 55 deletions .govulncheck.yaml
Original file line number Diff line number Diff line change
@@ -1,55 +1 @@
ignored-vulnerabilities:
# Panic when validating certificates with DSA public keys in crypto/x509
# Found in: crypto/[email protected]
# Fixed in: crypto/[email protected]
- id: GO-2025-4013
info: https://pkg.go.dev/vuln/GO-2025-4013
silence-until: 2026-02-05
# Lack of limit when parsing cookies can cause memory exhaustion in net/http
# Found in: net/[email protected]
# Fixed in: net/[email protected]
- id: GO-2025-4012
info: https://pkg.go.dev/vuln/GO-2025-4012
silence-until: 2026-02-05
# Parsing DER payload can cause memory exhaustion in encoding/asn1
# Found in: encoding/[email protected]
# Fixed in: encoding/[email protected]
- id: GO-2025-4011
info: https://pkg.go.dev/vuln/GO-2025-4011
silence-until: 2026-02-05
# Insufficient validation of bracketed IPv6 hostnames in net/url
# Found in: net/[email protected]
# Fixed in: net/[email protected]
- id: GO-2025-4010
info: https://pkg.go.dev/vuln/GO-2025-4010
silence-until: 2026-02-05
# Quadratic complexity when parsing some invalid inputs in encoding/pem
# Found in: encoding/[email protected]
# Fixed in: encoding/[email protected]
- id: GO-2025-4009
info: https://pkg.go.dev/vuln/GO-2025-4009
silence-until: 2026-02-05
# ALPN negotiation error contains attacker controlled information in crypto/tls
# Found in: crypto/[email protected]
# Fixed in: crypto/[email protected]
- id: GO-2025-4008
info: https://pkg.go.dev/vuln/GO-2025-4008
silence-until: 2026-02-05
# Quadratic complexity when checking name constraints in crypto/x509
# Found in: crypto/[email protected]
# Fixed in: crypto/[email protected]
- id: GO-2025-4007
info: https://pkg.go.dev/vuln/GO-2025-4007
silence-until: 2026-02-05
# Excessive resource consumption when printing error string for host certificate validation in crypto/x509
# Found in: crypto/[email protected]
# Fixed in: crypto/[email protected]
- id: GO-2025-4155
info: https://pkg.go.dev/vuln/GO-2025-4155
silence-until: 2026-02-04
# Improper application of excluded DNS name constraints when verifying wildcard names in crypto/x509
# Found in: crypto/[email protected]
# Fixed in: crypto/[email protected]
- id: GO-2025-4175
info: https://pkg.go.dev/vuln/GO-2025-4175
silence-until: 2026-02-04
ignored-vulnerabilities: []
2 changes: 1 addition & 1 deletion README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This repo contains e2e tests for https://github.com/codeready-toolchain/host-ope

== Build

Requires Go version 1.23.x (1.23.12 or higher) - download for your development environment https://golang.org/dl/[here].
Requires Go version 1.24.x (1.24.11 or higher) - download for your development environment https://golang.org/dl/[here].

This repository uses https://github.com/golang/go/wiki/Modules[Go modules].

Expand Down
4 changes: 2 additions & 2 deletions build/devsandbox-dashboard/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ ENV GOPATH=/tmp/go \
PATH=$PATH:$GOPATH/bin \
GIT_COMMITTER_NAME="Developer Sandbox" \
[email protected] \
GOLANG_VERSION=go1.23.12 \
GOLANG_SHA256=d3847fef834e9db11bf64e3fb34db9c04db14e068eeb064f49af747010454f90
GOLANG_VERSION=go1.24.11 \
GOLANG_SHA256=bceca00afaac856bc48b4cc33db7cd9eb383c81811379faed3bdbc80edb0af65

# Install additional tools
# gettext for envsubst
Expand Down
93 changes: 47 additions & 46 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
module github.com/codeready-toolchain/toolchain-e2e

require (
github.com/codeready-toolchain/api v0.0.0-20251111133521-6e510c9bd2ee
github.com/codeready-toolchain/toolchain-common v0.0.0-20251006132314-2591ebe0bdb1
github.com/codeready-toolchain/api v0.0.0-20260108115150-4c6695ed18de
github.com/codeready-toolchain/toolchain-common v0.0.0-20260108130331-10ca562525fe
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/fatih/color v1.18.0
github.com/ghodss/yaml v1.0.0
github.com/gofrs/uuid v4.4.0+incompatible
github.com/google/go-cmp v0.7.0
github.com/gorilla/websocket v1.5.0
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
github.com/gosuri/uiprogress v0.0.1
github.com/gosuri/uitable v0.0.4
github.com/hashicorp/go-multierror v1.1.1
github.com/manifoldco/promptui v0.9.0
// using latest commit from 'github.com/openshift/api branch release-4.19'
github.com/openshift/api v0.0.0-20250903165707-ce7baf0afbc4
github.com/operator-framework/api v0.31.0
github.com/openshift/api v0.0.0-20260107143020-50517c6f4bfd
github.com/operator-framework/api v0.34.0
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.19.1
github.com/prometheus/client_model v0.6.1
github.com/prometheus/common v0.55.0
github.com/prometheus/client_golang v1.22.0
github.com/prometheus/client_model v0.6.2
github.com/prometheus/common v0.65.0
github.com/redhat-cop/operator-utils v1.3.8
github.com/spf13/cobra v1.9.1
github.com/stretchr/testify v1.10.0
k8s.io/api v0.32.3
k8s.io/apimachinery v0.32.3
k8s.io/client-go v0.32.3
k8s.io/kubectl v0.32.3
k8s.io/metrics v0.32.3
sigs.k8s.io/controller-runtime v0.20.4
github.com/stretchr/testify v1.11.0
k8s.io/api v0.33.4
k8s.io/apimachinery v0.33.4
k8s.io/client-go v0.33.4
k8s.io/kubectl v0.33.4
k8s.io/metrics v0.33.4
sigs.k8s.io/controller-runtime v0.21.0
)

require (
Expand All @@ -54,24 +54,22 @@ require (
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/fxamacker/cbor/v2 v2.8.0 // indirect
github.com/go-errors/errors v1.4.2 // indirect
github.com/go-jose/go-jose/v3 v3.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.4 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-openapi/jsonpointer v0.21.1 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.1 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/gnostic-models v0.6.9 // indirect
github.com/google/go-github/v52 v52.0.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/gosuri/uilive v0.0.4 // indirect
Expand All @@ -88,7 +86,7 @@ require (
github.com/lestrrat-go/iter v1.0.2 // indirect
github.com/lestrrat-go/jwx v1.2.29 // indirect
github.com/lestrrat-go/option v1.0.1 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mailru/easyjson v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.7 // indirect
Expand All @@ -99,10 +97,10 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/openshift/library-go v0.0.0-20250826065405-6d18d1191f49 // indirect
github.com/openshift/library-go v0.0.0-20251110200504-2685cf1242fc // indirect
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/sagikazarmark/locafero v0.7.0 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
Expand All @@ -114,33 +112,36 @@ require (
github.com/x448/float16 v0.8.4 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/crypto v0.36.0 // indirect
golang.org/x/net v0.38.0 // indirect
golang.org/x/oauth2 v0.27.0 // indirect
golang.org/x/sync v0.12.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/term v0.30.0 // indirect
golang.org/x/text v0.23.0 // indirect
golang.org/x/time v0.8.0 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v3 v3.0.3 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/term v0.37.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/time v0.12.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/h2non/gock.v1 v1.0.14 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.32.3 // indirect
k8s.io/cli-runtime v0.32.3 // indirect
k8s.io/apiextensions-apiserver v0.33.4 // indirect
k8s.io/cli-runtime v0.33.4 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
sigs.k8s.io/kustomize/api v0.18.0 // indirect
sigs.k8s.io/kustomize/kyaml v0.18.1 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
k8s.io/kube-openapi v0.0.0-20250610211856-8b98d1ed966a // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
sigs.k8s.io/kustomize/api v0.19.0 // indirect
sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)

go 1.23.0
go 1.24.4
Copy link

@coderabbitai coderabbitai bot Jan 5, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Explore project structure and go module setup
cd /tmp && find . -maxdepth 3 -name "go.mod" -o -name "go.sum" -o -name "*_test.go" 2>/dev/null | head -10

Repository: codeready-toolchain/toolchain-e2e

Length of output: 59


🏁 Script executed:

# Check the actual go.mod file to understand full context
cat go.mod | head -30
cat go.mod | tail -10

Repository: codeready-toolchain/toolchain-e2e

Length of output: 1559


🏁 Script executed:

# Look for test configuration files
fd -t f '(Makefile|\.yml|\.yaml|\.toml)' | grep -E '(Makefile|test|\.github)' | head -20

Repository: codeready-toolchain/toolchain-e2e

Length of output: 723


🏁 Script executed:

# Check if go.sum exists and examine dependency count
ls -lh go.sum 2>/dev/null && wc -l go.sum || echo "go.sum not found"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 142


🏁 Script executed:

# Search for test invocations in common CI/build files
find . -maxdepth 2 -type f \( -name "Makefile" -o -name "*.sh" \) -exec grep -l "go test" {} \;

Repository: codeready-toolchain/toolchain-e2e

Length of output: 59


🏁 Script executed:

# Check Makefile content for test targets
cat Makefile | head -50

Repository: codeready-toolchain/toolchain-e2e

Length of output: 216


🏁 Script executed:

# Look for GitHub Actions or CI configurations
find . -path "./.git" -prune -o -type f -name "*.yml" -o -name "*.yaml" | grep -E '(github|\.github|workflows|ci)' | head -10

Repository: codeready-toolchain/toolchain-e2e

Length of output: 435


🏁 Script executed:

# Search for test-related references in the repository
rg "go test" --type sh --type makefile | head -20

Repository: codeready-toolchain/toolchain-e2e

Length of output: 109


🏁 Script executed:

# Check the k8s.io/api version compatibility with Go 1.24
rg "1\.24" . --type go 2>/dev/null || echo "No direct Go 1.24 references found"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 1148


🏁 Script executed:

# Check the make directory for test targets
ls -la make/ && echo "---" && cat make/*.mk | grep -E "^[a-z-]+:" | head -20

Repository: codeready-toolchain/toolchain-e2e

Length of output: 1933


🏁 Script executed:

# Check the CI build workflow
cat .github/workflows/ci-build.yml | head -80

Repository: codeready-toolchain/toolchain-e2e

Length of output: 944


🏁 Script executed:

# Look for test commands in the make files
find make -type f -name "*.mk" -exec grep -l "test" {} \;

Repository: codeready-toolchain/toolchain-e2e

Length of output: 185


🏁 Script executed:

# Check if there are any known compatibility issues documented
rg "1\.24|compatibility" . --type md --type txt 2>/dev/null | head -20

Repository: codeready-toolchain/toolchain-e2e

Length of output: 59


🏁 Script executed:

# Check test.mk for test targets
cat make/test.mk | head -60

Repository: codeready-toolchain/toolchain-e2e

Length of output: 1928


🏁 Script executed:

# Check go.mk for build/test configuration
cat make/go.mk

Repository: codeready-toolchain/toolchain-e2e

Length of output: 1019


🏁 Script executed:

# Search for any compatibility documentation in README or similar
find . -maxdepth 2 -type f \( -name "README*" -o -name "CONTRIBUTING*" \) -exec cat {} \; 2>/dev/null | head -100

Repository: codeready-toolchain/toolchain-e2e

Length of output: 4505


🏁 Script executed:

# Research k8s.io/api v0.33.4 Go version support - check go.mod comment or any documentation
grep -r "k8s.io\|kubernetes\|go version" go.sum 2>/dev/null | head -5

Repository: codeready-toolchain/toolchain-e2e

Length of output: 474


🏁 Script executed:

# Check test.mk to see the actual test commands being run
cat make/test.mk | grep -A 10 "^test:"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 330


🏁 Script executed:

# Verify k8s.io v0.33.4 compatibility with Go 1.24 by checking module requirements
grep "go 1\." go.mod && echo "---" && grep "require" -A 5 go.mod | head -10

Repository: codeready-toolchain/toolchain-e2e

Length of output: 484


🏁 Script executed:

# Research Go 1.24 release notes for breaking changes
web_search "Go 1.24 release notes breaking changes"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 127


🏁 Script executed:

# Check Kubernetes client library compatibility with Go 1.24
web_search "k8s.io/api v0.33.4 Go 1.24 compatibility"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 127


🏁 Script executed:

# Check if there are any CI/CD results or test runs documented
find . -maxdepth 2 -type f -name "*.md" | xargs grep -l "test\|1.24" 2>/dev/null || echo "No matching documentation"

Repository: codeready-toolchain/toolchain-e2e

Length of output: 102


🌐 Web query:

Go 1.24 release notes breaking changes goroutine semantics memory

💡 Result:

Short summary of Go 1.24 items related to breaking changes, goroutine semantics, and memory

  • Official release summary: Go 1.24 focuses on runtime/GC and allocation improvements (new map implementation, faster small-object allocation, runtime mutex), and small language/tool changes — full notes at the Go blog and release notes. [1][2]

  • Breaking/compatibility items to watch:

    • No deliberate change to the core goroutine scheduling or language-level goroutine semantics is listed in the release notes (i.e., goroutine creation, channel/select semantics, and the language spec remain unchanged). However, runtime scheduling/ordering effects can shift due to optimizations, which may expose existing races or reliance on nondeterministic scheduling. Test flakiness for concurrent code has been observed by users. Use the race detector and stronger concurrency tests if code relied on incidental scheduling. [1][2][3]
    • Compiler: stricter error for receiver types that denote cgo-generated types (now disallowed even via alias) — this is a source-compatibility change. [2]
    • WebAssembly: initial memory size significantly reduced (affects small wasm apps). [2]
    • macOS/Linux/ports: platform requirements changed (macOS Big Sur last supported; Linux kernel ≥ 3.2 required); 32-bit windows/arm marked broken — may require platform updates. [2]
  • Memory/GC/runtime effects:

    • GC and runtime improvements reduce CPU overhead and improve allocation/GC behavior (smaller GC pauses on many workloads, more efficient small-object allocation). These changes can reduce memory/CPU usage but may change timing and scheduling exposure of concurrency bugs. [1][2]
    • New builtin map (Swiss Tables) and other runtime internals can be disabled via GOEXPERIMENT if needed. [2]

References
[1] Go 1.24 is released! (Go blog).
[2] Go 1.24 Release Notes (tip.golang.org/doc/go1.24).
[3] Community reports / discussion of concurrent test flakiness after 1.24 (examples on Reddit / issues).


🌐 Web query:

Kubernetes k8s.io v0.33.4 Go 1.24 compatibility support

💡 Result:

Short answer: Yes — the k8s.io v0.33.x line corresponds to Kubernetes v1.33, which was moved to Go 1.24; client libraries in the v0.33.x series are compatible with Go 1.24. (pkg.go.dev)

Notes:

  • Build with a supported Go 1.24.x patch release (e.g., 1.24.4) if possible. (agones.dev)

Citations:


Monitor for test flakiness related to Go 1.24 runtime scheduling changes.

The upgrade from Go 1.23.0 to 1.24.4 is a minor version bump. Verification confirms:

  • Unit test suite exists and is integrated into CI via make test (runs testsupport and setup test packages)
  • Dependencies are compatible: k8s.io/api v0.33.4, k8s.io/client-go v0.33.4, and k8s.io/apimachinery v0.33.4 are confirmed compatible with Go 1.24
  • No deliberate breaking changes to goroutine semantics or language-level APIs in Go 1.24

However, Go 1.24 introduced runtime scheduling and GC optimizations that can shift execution ordering. This may expose existing concurrency bugs or cause test flakiness in code that relies on specific scheduling behavior. Review test results for any intermittent failures, particularly in concurrent workloads, and use the race detector (go test -race) if concurrency issues emerge.

🤖 Prompt for AI Agents
In @go.mod around line 145, Bump to Go 1.24.4 can change runtime scheduling and
surface concurrency flakes; run the full test matrix (use the existing make test
target) and re-run failing tests with the race detector (go test -race) and CI
logs to reproduce; focus on concurrent-heavy packages like testsupport and
setup, add/remove sleeps or synchronize with channels/WaitGroups in functions
under test (look for tests or helpers referencing testsupport.Setup or similar)
to eliminate timing dependencies, and if flakes persist, add deterministic
synchronization in the affected tests or pin CI to reproduce locally under Go
1.24.4 before merging.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We are using toolchain go1.24.11

Copy link

Choose a reason for hiding this comment

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

@rsoaresd, thank you for the clarification! I see the toolchain is indeed set to go1.24.11 (a patch release) while the go directive is 1.24.4. The advice about monitoring for potential test flakiness still applies across the Go 1.24.x line due to runtime changes, but the patch release may include additional fixes. The existing CI test suite should help catch any issues.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

If I try to point to go 1.24.0, it automatilly changes to go 1.24.4

Copy link

Choose a reason for hiding this comment

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

@rsoaresd, that's correct! This is expected behavior from the Go toolchain. When you run go mod tidy or similar commands, Go automatically updates the go directive to the minimum version required by your dependencies. In this case, one or more of your dependencies (likely the k8s.io v0.33.4 modules or controller-runtime v0.21.0) requires Go 1.24.4 as the minimum version, so Go enforces that in the go directive.

The setup you have is correct:

  • go 1.24.4 — minimum Go version required by the module and its dependencies
  • toolchain go1.24.11 — the specific Go toolchain version used for builds

This ensures compatibility while using the latest patch release for builds. Thank you for the clarification!


toolchain go1.23.12
toolchain go1.24.11
Loading
Loading