100 Commits
Author SHA1 Message Date
Benjamin Elder eab1fe8ed7 delete v1.33.0 testdata 2026-09-01 17:51:20 -07:00
Benjamin Elder a58f772aa0 Add v1.37.0 API testdata 2026-09-01 17:51:20 -07:00
Benjamin Elder 4fac831e90 add BenTheElder to conformance approvers
I have been a formally listed reviewer for ~14 months, with a nearly decade long tenure of involvement in testing Kubernetes (including TLing SIG Testing) and many PR reviews of conformance tests and related behavior:

https://github.com/search?q=repo%3Akubernetes%2Fkubernetes+type%3Apr+reviewed-by%3ABenTheElder+label%3Aarea%2Fconformance&type=pullrequests

I have also been involved in SIG Architecture meetings on the subject, assorted KEPs and threads, our conformance CI and tooling.

self-nominating as an additional active conformance approver
2026-09-01 15:53:53 -07:00
Benjamin Elder 4a814ef92a test/images: don't depend on golang:<version> docker tags
Bumping .go-version can break the e2e test image build jobs when the
matching golang:<version> tag has not been published to docker hub yet.

Instead pin the builder image by digest in one place (GOLANG_IMAGE in
test/images/Makefile) and let GOTOOLCHAIN select the go version we
actually build with.
2026-08-27 20:42:21 -07:00
Benjamin Elder 55dc4aaf55 upgrade .go-version to 1.26.6
this ensures all *production* binaries (not e2e test images) shipped with the release are compiled with 1.26.6, which contains CVE fixes

https://groups.google.com/d/msgid/golang-announce/4f84cf61.EAAACRzWXsgAAAAAAAAAA-p9MGAAAYKKSQYAAAAAADE8OwBqfhLk%40mailjet.com
2026-08-13 12:09:31 -07:00
Benjamin Elder 4dcbaf2840 test/integration: split PodGroup preemption tests into own package
The scheduler preemption integration package shares a flat 600s timeout
(KUBE_TIMEOUT in hack/make-rules/test-integration.sh) and had grown to
consume essentially all of it. When it went over, ktesting cancelled the
context mid-test and tore down the shared API server, so every remaining
subtest failed with connection refused. Whichever test happened to be
last in the package absorbed the failure regardless of its own cost.

The PodGroup preemption tests account for roughly half the runtime:

  TestPodGroupPreemption                          166.5s
  TestCompositePodGroupPreemption                 100.6s
  TestPodGroupPreemption_NominatedNodeNameRespected 7.0s
  TestPodGroupCycleStatePreserved                   4.1s
  TestPodGroupPreemptionStatus                      3.7s

They are self-contained, sharing no symbols with the rest of the package
in either direction, so move them to a subpackage that gets its own
timeout budget. This follows the existing preemption/misc and
preemption/nominatednodename layout.

No test logic changes.
2026-07-29 23:47:12 -07:00
Benjamin Elder 6dde6d61f8 Promote ManifestBasedAdmissionControlConfig to beta 2026-07-14 10:34:14 -07:00
Benjamin Elder 273bb110c2 Add integration test for webhook virtual resource exclusion 2026-07-14 10:16:42 -07:00
Benjamin Elder 73ad530e91 Exclude auth/authz virtual resources from admission webhooks 2026-07-14 10:16:42 -07:00
Benjamin Elder 26ae7380e6 Start webhook plugin test informers after ValidateInitialization to match runtime ordering 2026-07-13 23:51:25 -07:00
Benjamin Elder 41c9d02c5c Add ExcludeAdmissionWebhookVirtualResources feature gate 2026-06-25 09:29:24 -07:00
Benjamin Elder c90b6dbecb upgrade go to 1.26.4 2026-06-03 12:07:03 -07:00
Benjamin Elder 400de60be2 remove opencontainers/cgroups dependency from e2e tests
- ensures tests compile portably (tests may use linux features *in the cluster*, not in the test binary)
- decouples from future changes to runc, by checking cpu weight direction instead of identical computation
2026-05-15 14:37:22 -07:00
Benjamin Elder baf616deeb increase evalduration and margin for TestTooWide
this has negligible impact on test runtime (the test takes ~0.3 to ~0.4s either way) but gives more time to converge on the expected values in busy CI

we slightly increase the margin closer to historical values
when this flakes in CI, the actual margin has been slightly above 0.34
2026-05-08 15:33:49 -07:00
Benjamin Elder ec5f4dce1b undeprecate enable-logs-handler
This is an opt-in feature to expose logs, while there are some security concerns, functionaly it is very similar to the recently GA-ed NodeLogQuery, which is also opt-in.

This feature has been "deprecated" since 1.15 without removal and is still actively used by multiple installers / distros (e.g. GKE, https://github.com/zalando-incubator/kubernetes-on-aws)

It is not reasonable to plan removal after 20+ releases, and there do not seem to be any plans to do so.
2026-05-08 14:19:24 -07:00
Benjamin Elder 59fcb6b6aa TestNodeDeclaredFeatureAdmission: retry transient node "not found" errors 2026-05-08 12:11:35 -07:00
Benjamin Elder 2092df7cf3 leverage GOTOOLCHAIN to enable agnhost builds before golang image is updated following CVEs 2026-05-07 18:44:46 -07:00
Benjamin Elder 85e3c846fb bump busybox image version 2026-05-07 18:30:55 -07:00
Benjamin Elder 741ee38160 use stable curl download link
https://curl.se/windows/

TODO: everything about this image is a supply-chain nightmare ...
2026-05-07 18:28:53 -07:00
Benjamin Elder cbcdbcf903 fix glibc-dns-testing image build 2026-05-07 18:08:22 -07:00
Benjamin Elder 41822d4688 upgrade go to 1.26.3 2026-05-07 09:44:23 -07:00
Benjamin Elder 686a126f69 hack/update-vendor.sh 2026-04-24 19:38:58 -07:00
Benjamin Elder e16b18ab4c register zfs cadvisor plugin 2026-04-24 19:36:42 -07:00
Benjamin Elder 7ef0d61c4d Add release-1.36 publishing bot rules
go run k8s.io/publishing-bot/cmd/update-rules@latest -branch=release-1.36 --rules=./staging/publishing/rules.yaml -o ./staging/publishing/rules.yaml

then manually re-add the comments (TODO: make this tool preserve comments)
2026-04-08 16:21:39 -07:00
Benjamin Elder 33724b9a86 enable PLEGOnDemandRelist in feature unit tests 2026-03-19 11:19:41 -07:00
Benjamin Elder 0d2c2cf5b2 UPDATE_COMPATIBILITY_FIXTURE_DATA=true go test k8s.io/api -count=1 2026-03-17 20:29:53 -07:00
Benjamin Elder bf0d191a15 Add v1.35.0 API testdata 2026-03-17 19:54:54 -07:00
Benjamin Elder 6d7dca82c4 hack/update-openapi-spec.sh 2026-03-17 18:03:57 -07:00
Benjamin Elder ce9ad95192 UPDATE_COMPATIBILITY_FIXTURE_DATA=true make test WHAT=k8s.io/api 2026-03-17 17:37:24 -07:00
Benjamin Elder 9f60cc3c4e hack/update-codegen.sh 2026-03-17 17:37:23 -07:00
Benjamin Elder f6d42d302b make VolumeMountStatus.VolumeStatus a pointer to preserve serialization compatibility 2026-03-17 17:37:23 -07:00
Benjamin Elder 608be1252a suggest running tests after adding testdata *without test caching* 2026-03-17 16:06:27 -07:00
Benjamin Elder e78f851177 split linux and portable deviceattribute unit tests 2026-03-06 15:40:21 -08:00
Benjamin Elder df8b5e40a5 add script to test go modules with advertised versions 2026-03-06 15:37:37 -08:00
Benjamin Elder 21006ff248 document "Kind" e2e feature 2026-03-06 14:06:27 -08:00
Benjamin Elder aa9d704fb8 upgrade go to 1.26.1
Now that we've shipped the key changes in https://docs.google.com/document/d/10HujH6PL0ez3vviA03I01_mbJWs9Xp99gIDWnnNXyco/edit?tab=t.0

patch upgrades should just be this single file. I will look into automated updates next.
2026-03-05 17:25:38 -08:00
Benjamin Elder 6f0f757f0a use go 1.21 as default publishing bot go version 2026-03-05 10:51:51 -08:00
Benjamin Elder 01b23c96c1 drop go patch version from dependencies.yaml, now that it is tracked solely in .go-version 2026-03-05 10:50:53 -08:00
Benjamin Elder 9007ee2527 drop go versions from publishing bot config, allow fallback to go.mod versions
see: https://github.com/kubernetes/publishing-bot/issues/529
2026-03-05 10:48:49 -08:00
Benjamin Elder 9f8eca1566 add kube-log-runner to images on the fly, replicating the same /go-runner path as the current base image
https://github.com/kubernetes/release/blob/d98562ea2eedb105e8a0134dd997d531b9792c2f/images/build/go-runner/Dockerfile#L68-L70
2026-03-03 16:00:02 -08:00
Benjamin Elder 2257cdc413 remove unused env from common.sh
I searched the whole repo for usage with no hits, these are stale from the rsync code
2026-02-10 15:16:56 -08:00
Benjamin Elder a15b558fd6 add dockerized go cache to make clean 2026-02-10 14:54:44 -08:00
Benjamin Elder f356122aef clarifying adding new test images 2026-02-04 10:23:15 -08:00
Benjamin Elder 94aa043a7b upgrade go to 1.25.7 for core binaries 2026-02-04 08:44:00 -08:00
Benjamin Elder 2d8a26a79c remove build tags from test e2e internal unittests 2026-02-02 11:35:53 -08:00
Benjamin Elder 4c37109787 clone dep-approvers list to dep-reviewers to avoid warning about empty alias
we could remove the alias everywhere instead, but that's higher-churn, and the distinction may be useful in the future with onboarding new reviewer => approvers
2026-01-15 12:19:49 -08:00
Benjamin Elder a60d114402 emeritus logicalhan, rest in peace
https://github.com/cncf/memorials/blob/main/han-kang.md
2026-01-15 12:18:02 -08:00
Benjamin Elder 9e27ee8042 bump go to 1.25.6 for CVE fixes 2026-01-15 11:25:15 -08:00
Benjamin Elder bb2899fc4a apidiff: autodetect remote and default branch 2025-11-20 16:48:02 -08:00
Benjamin Elder 1ce140d105 update github.com/opencontainers/selinux to v1.13.0 2025-11-12 14:46:31 +00:00
Benjamin Elder 3b3e4dd2c4 fix missing major.minor in golang: upstream version 2025-11-06 14:52:38 -08:00
Benjamin Elder fbe8d4c63c upgrade go to 1.25.4 2025-11-06 09:49:48 -08:00
Benjamin Elder 481f30bd64 hack/update-conformance-yaml.sh 2025-11-05 14:27:15 -08:00
Benjamin Elder 30965ea3ce drop MinimumKubeletVersion for unsupported kubelet versions
Versions 1.20, 1.21, 1.22, 1.23, 1.27 are all well out of support
2025-11-05 14:25:20 -08:00
Benjamin Elder 8200f9a22c add missing apiversion to run_group_snapshot_e2e.sh 2025-11-04 13:10:56 -08:00
Benjamin Elder bbbe23dac7 Reapply "prepare DRA kind config for kubeadm v1beta4"
This reverts commit 1fc389c43f.
2025-11-04 07:34:57 -08:00
Benjamin Elder 2b0bfbfb8e removed unused functionality from run_group_snapshot.sh and prepare for kubeadm v1beta4 config 2025-10-31 14:19:43 -07:00
Benjamin Elder a3ce49a11e prepare kms kind config for kubeadm v1beta4 2025-10-31 14:19:43 -07:00
Benjamin Elder d17ed9be17 prepare DRA kind config for kubeadm v1beta4 2025-10-31 13:04:56 -07:00
Benjamin Elder a99a5c4bdc avoid updating when endpoint subsets are merely sorted differently 2025-10-22 08:07:19 -07:00
Benjamin Elder 4e29dcdf75 remove deadcode HashObject from k8s.io/kubectl/pkg/util
I can't find evidence that anything is using this anymore, if anyone does depend on this it is a tiny function that depends only on public symbols and they can just place a copy somewhere else.
2025-10-21 15:25:11 -07:00
Benjamin Elder 6cb2849928 switch endpointslice hashing from md5 to fnv-1a
128 bit fnv-1a is a pretty good non-cryptographic drop-in for md5, it should be faster
2025-10-21 15:25:11 -07:00
Benjamin Elder edbc0dc258 switch endpoints hashing from md5 to fnv-1a
128 bit fnv-1a is a pretty good non-cryptographic drop-in for md5, it should be faster
2025-10-21 15:25:11 -07:00
Benjamin Elder dba6c30e96 switch kubelet static pod internal UID to fnv
fnv-1a in 128bit should be a drop-in replacement for md5 in non-cryptographic use that is faster and not obsolete
2025-10-21 15:25:11 -07:00
Benjamin Elder b3373320da switch volumemanager reconciler tests to fnv-1a
128 bit fnv-1a is a pretty good non-cryptographic drop-in for md5, it should be faster, and this test code is not sensitive anyhow
2025-10-21 15:25:11 -07:00
Benjamin Elder 797d316519 mark remaining md5 usage TODO and exclude from lint 2025-10-21 15:25:11 -07:00
Benjamin Elder b0a15b9163 switch storage e2e tests from md5 to sha256 2025-10-21 15:25:11 -07:00
Benjamin Elder e0df6b178a migrate kubeadm static pod hashing to fnv-1a
128bit fnv-1a should be drop-in for md5 while being fast and non-obsolete
for non-cryptographic purposes.
2025-10-21 15:25:11 -07:00
Benjamin Elder 886fdeefae forbid new use of md5 2025-10-21 15:25:11 -07:00
Benjamin Elder 26cba8ee03 ensure permissions are consistent on dockerized binaries 2025-10-16 11:18:26 -07:00
Benjamin Elder 5b9b8ec732 make localtime mount readonly 2025-10-16 10:26:13 -07:00
Benjamin Elder 1877809f59 cleanup unused rsync related env vars 2025-10-16 10:26:13 -07:00
Benjamin Elder feeeb4aa19 switch from rsync to cp, drop rsync requirement 2025-10-16 10:26:13 -07:00
Benjamin Elder e71aa02f96 we no longer need to delete old docker images as we don't build a build-image anymore, we use pre-built kube-cross 2025-10-16 10:26:13 -07:00
Benjamin Elder ff0a5fff38 cleanup lingering references to kube-build
.... excluding build container name and kube-cross version

TODO: build/build-image/cross/VERSION should probably just be a variable in the shell script
2025-10-16 10:26:13 -07:00
Benjamin Elder b3ad67739a delete build-image
we no longer need this now that we run kube-cross directly
2025-10-16 10:26:13 -07:00
Benjamin Elder 7825b2fc76 drop go-socks5 from build/tools.go
I don't think this was ever needed in the root module
2025-10-15 21:23:18 -07:00
Benjamin Elder 30c3c990d0 prevent shellcheck warning
https://www.shellcheck.net/wiki/SC2153

this is not a mispelling of KUBE_OUTPUT_SUBPATH, the unprefixed version is an optional override which sets _KUBE_OUTPUT_SUBPATH, which is handled in hack/lib/init.sh where golang.sh is sourced
2025-10-15 20:18:31 -07:00
Benjamin Elder 563919c685 don't update _output/bin symlink in dockerized builds 2025-10-15 20:18:31 -07:00
Benjamin Elder 605f402d44 use relative symlink for output path
resolves issues with creating symlinks inside the build container via bind mount instead of rsync-ing them out
2025-10-15 13:12:38 -07:00
Benjamin Elder 6f820481d3 bump to go 1.25.3 2025-10-14 10:44:59 -07:00
Benjamin Elder 86d0697319 remove blank line between comments and entry 2025-10-13 10:33:27 -07:00
Benjamin Elder 19311b932f reorder kube-cross to be under go version and dedupe it from the go version 2025-10-13 10:31:50 -07:00
Benjamin Elder ced2a40b9e kubeadm preflight checks: fix host URL construction 2025-10-13 10:27:22 -07:00
Benjamin Elder e669ccda0f update build/README.md to reflect removal of rsync/data containers 2025-10-13 09:47:24 -07:00
Benjamin Elder 7d2309f059 cleanup unused rsync utilities 2025-10-13 09:47:24 -07:00
Benjamin Elder faa62c8ce6 cleanup KUBE_RSYNC_CONTAINER*, KUBE_DATA_CONTAINER*, DOCKER_MOUNT_ARGS 2025-10-13 09:47:24 -07:00
Benjamin Elder 36526c3815 delete more now-unused shell functions 2025-10-13 09:47:24 -07:00
Benjamin Elder 5a05c062c3 delete now unused kube::build::copy_output and kube::build::build_image 2025-10-13 09:47:24 -07:00
Benjamin Elder 7ed65b466d remove defunct comments about updating copy_output 2025-10-13 09:47:24 -07:00
Benjamin Elder dee429c165 remove unused scripts 2025-10-13 09:47:24 -07:00
Benjamin Elder eaeed1a534 remove calls to kube::build::build_image and kube::build::copy_output 2025-10-13 09:47:24 -07:00
Benjamin Elder 581012fe06 build by running kube-cross directly
eliminate rsync dance, data container, and building a build image every time
2025-10-13 09:47:21 -07:00
Benjamin Elder d5ae324fb6 don't require build tools to clean
removing the output already only uses docker opportunistically cleanup after docker builds, the rest of cleanup should not require any of these

previously on a clean mac install you can install docker + `bash` and building like `make WHAT=cmd/kubectl` will work but `make clean` will fail due to lack of gnu-tar
2025-10-10 14:12:28 -07:00
Benjamin Elder efda517d93 speed up make clean by narrowing recursive chmod 2025-10-09 16:55:36 -07:00
Benjamin Elder 52dec274b3 add TODO to migrate when new metrics mature and old metrics are deprecated 2025-10-02 15:03:29 -07:00
Benjamin Elder 7c529f25f4 add apiserver_validation_declarative_validation_panic_total invariant 2025-10-02 15:00:44 -07:00
Benjamin Elder 84ce0f57f2 add test to verify invariants are fully specified 2025-10-02 14:57:49 -07:00
Benjamin Elder 41ae5cdf4b check invariant metrics after e2e tests 2025-10-02 14:08:08 -07:00
Benjamin Elder 88d6e6c465 drop automaxprocs hacks now that go 1.25 handles this built in
https://go.dev/doc/go1.25#container-aware-gomaxprocs
2025-09-17 16:36:15 -07:00