Compare commits

..

2 Commits

Author SHA1 Message Date
Kubernetes Publisher
f61d37fd4d Merge pull request #136903 from pohly/automated-cherry-pick-of-#136455-origin-release-1.35
Automated cherry pick of #136455: fake client-go: un-deprecate NewSimpleClientset

Kubernetes-commit: a0e5f1aba53a16db2c2cd0a2cb33c60f43e4d984
2026-03-04 21:31:46 +00:00
Patrick Ohly
fb9e30a1f9 fake client-go: un-deprecate NewSimpleClientset
NewSimpleClientset was marked as deprecated when NewClientset was
introduced. This has caused some confusion:
- Not all packages have NewClientset (https://github.com/kubernetes/kubernetes/issues/135980).
- Tests that work with NewSimpleClientset fail when
  switched to NewClientset (https://github.com/kubernetes/kubernetes/issues/136327)
  because of missing CRD support (https://github.com/kubernetes/kubernetes/issues/126850).

It doesn't seem burdensome to keep NewSimpleClientset around forever. Some unit
tests may even prefer to use it when they don't need server-side apply (less
overhead). Therefore there is no need to deprecate it.

This avoids churn in the eco system because contributors no longer create PRs
"because the linter complains about the usage of a deprecated function".

Kubernetes-commit: bd399917375d2a1d77c04f8dfd67a67301af9721
2026-01-23 11:20:40 +01:00
3 changed files with 12 additions and 16 deletions

8
go.mod
View File

@@ -8,10 +8,10 @@ godebug default=go1.25
require (
golang.org/x/time v0.9.0
k8s.io/api v0.35.0-rc.1
k8s.io/apimachinery v0.35.0-rc.1
k8s.io/client-go v0.35.0-rc.1
k8s.io/code-generator v0.35.0-rc.1
k8s.io/api v0.0.0-20251204222945-bbcbaa8f8665
k8s.io/apimachinery v0.0.0-20251204222403-72d71eac265e
k8s.io/client-go v0.0.0-20260304191620-f80003c24087
k8s.io/code-generator v0.0.0-20260304191620-397b82df2302
k8s.io/klog/v2 v2.130.1
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
)

16
go.sum
View File

@@ -113,14 +113,14 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.35.0-rc.1 h1:fwHM/uv0uqBgF52XgzEB55KuGJpq5jSjRxpLgKm2fYY=
k8s.io/api v0.35.0-rc.1/go.mod h1:tGYydD3U+0MB/q1KqQsL0dAN7KB7XIf875oM8n3Vp+A=
k8s.io/apimachinery v0.35.0-rc.1 h1:D2/Z5cEbcl3X9GtMyMmA20iYsoPx03B1b5LMLQuVnBI=
k8s.io/apimachinery v0.35.0-rc.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns=
k8s.io/client-go v0.35.0-rc.1 h1:Z8gLGbk9CJWKshPBE/UHGlZg/k9k3WzMCK4SCpWkLYE=
k8s.io/client-go v0.35.0-rc.1/go.mod h1:tDfUjHuiZLR4d933+1qybscQKSAPy+vINd4WxV3riUk=
k8s.io/code-generator v0.35.0-rc.1 h1:wQU8qnXpZyn//bFIo1TWxaQLnWXVa0oWY7sGItj6A+Y=
k8s.io/code-generator v0.35.0-rc.1/go.mod h1:nK4uTPyCvMlQe81/89V2Z/BM6f10SshNF9qaqfns3XA=
k8s.io/api v0.0.0-20251204222945-bbcbaa8f8665 h1:yCdvBpHA4R+NYVHh6B+ZWOmN0FhnqP1uGX9oNLhDWLw=
k8s.io/api v0.0.0-20251204222945-bbcbaa8f8665/go.mod h1:etlr1bA5uFLXrSHE4hq3fjX6JCVC4aD10YGu8kktjJM=
k8s.io/apimachinery v0.0.0-20251204222403-72d71eac265e h1:j68TlPomsB5ecepACqUXTMgiob1Hmx4N+VTd+jzORI8=
k8s.io/apimachinery v0.0.0-20251204222403-72d71eac265e/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns=
k8s.io/client-go v0.0.0-20260304191620-f80003c24087 h1:0VfdU2g6JZmhpss3foNWkwMea3Ouq6fZRTPyC0dEnoU=
k8s.io/client-go v0.0.0-20260304191620-f80003c24087/go.mod h1:0kL/bLRZk0JJRWoFkLRiDWQQ4oW6arxaBBKV5yjuQh4=
k8s.io/code-generator v0.0.0-20260304191620-397b82df2302 h1:Kqk0YzdM1ZoTIHkHhsKvoXBQBB2W1iIbgSmwdckuxCw=
k8s.io/code-generator v0.0.0-20260304191620-397b82df2302/go.mod h1:j93lM7qU2mZla/7mpfibtIn/gB84VYkGpxLarzG35kk=
k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ=
k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=

View File

@@ -34,10 +34,6 @@ import (
// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,
// without applying any field management, validations and/or defaults. It shouldn't be considered a replacement
// for a real clientset and is mostly useful in simple unit tests.
//
// Deprecated: NewClientset replaces this with support for field management, which significantly improves
// server side apply testing. NewClientset is only available when apply configurations are generated (e.g.
// via --with-applyconfig).
func NewSimpleClientset(objects ...runtime.Object) *Clientset {
o := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())
for _, obj := range objects {