Skip to content

ci: replace memory-heavy client-go compatibility case - #45

Merged
zhouguangyuan0718 merged 1 commit into
xgo-dev:mainfrom
zhouguangyuan0718:codex/replace-client-go-compatibility
Aug 30, 2026
Merged

ci: replace memory-heavy client-go compatibility case#45
zhouguangyuan0718 merged 1 commit into
xgo-dev:mainfrom
zhouguangyuan0718:codex/replace-client-go-compatibility

Conversation

@zhouguangyuan0718

Copy link
Copy Markdown
Collaborator

Summary

  • exclude the k8s.io/client-go root package because its examples pull the full clientset and informer closure and exceed the standard hosted-runner memory budget under LLGo
  • regenerate the 200-package manifest so k8s.io/client-go/util/cert replaces it
  • retain the pinned client-go version and 40-package project quota

Validation

  • python3 ci/llgo-compatibility/test_manifest.py
  • python3 ci/llgo-compatibility/test_report.py
  • regenerated the manifest independently and compared it byte-for-byte
  • go test ./cmd/bent/...
  • LLGo v1.0.1: k8s.io/client-go/util/cert passed 2/2 tests in 30.96s with about 2.35 GiB peak RSS
  • LLGo v1.0.1: k8s.io/client-go/discovery passed 24/24 tests in 94.97s with about 7.65 GiB peak RSS

The removed root package reached about 25.2 GiB peak RSS locally and was terminated twice at the same stage on the 16 GB GitHub-hosted runner.

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

Review: replace top-level k8s.io/client-go in the LLGo compatibility set

This is a config/manifest-only change. It excludes the top-level k8s.io/client-go package from the client_go compatibility set and, because cmd/bent/configs/benchmarks-llgo-compatibility.toml is generated from projects.toml by generate_manifest.py, the generated manifest shifts each client_go_NNN entry up by one and backfills k8s.io/client-go/util/cert as the new client_go_040.

Verified

  • Limit = 40 unchanged; total across all projects still sums to 200; the manifest still lists exactly 40 client_go_* entries and 200 [[Benchmarks]] total.
  • The generated client_go Repo list is still strictly sorted and the DO NOT EDIT header is intact — the diff is exactly what re-running the generator produces, so projects.toml and the generated artifact are in sync (not hand-edited).
  • The new entry k8s.io/client-go/util/cert is genuinely lightweight: its compile+test closure at v0.36.2 is stdlib crypto/* plus util/keyutil (stdlib-only) and k8s.io/utils/net — no clientset/informer/apimachinery. It cannot reintroduce the excluded memory pressure, so the swap is a net reduction in runner resource use.
  • Both TOML files parse cleanly. No security concerns: sources stay on upstream kubernetes/client-go, versions stay pinned to @v0.36.2, no secrets, no executable code changed.

One minor comment on the exclusion rationale (inline). Overall the change is correct, self-consistent, and low-risk.

Comment thread ci/llgo-compatibility/projects.toml Outdated
@zhouguangyuan0718
zhouguangyuan0718 force-pushed the codex/replace-client-go-compatibility branch from 0d2983d to 9c25e1a Compare August 30, 2026 07:32
@zhouguangyuan0718
zhouguangyuan0718 merged commit b6f2f85 into xgo-dev:main Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant