Skip to content

Commit 0f2bde7

Browse files
authored
Merge pull request kubernetes#130555 from thockin/k_k_randfill
Use randfill in k/k
2 parents 6cb457b + f08e640 commit 0f2bde7

File tree

168 files changed

+2151
-1947
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

168 files changed

+2151
-1947
lines changed

LICENSES/vendor/github.com/google/gofuzz/LICENSE renamed to LICENSES/vendor/sigs.k8s.io/randfill/LICENSE

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/kubeadm/app/apis/kubeadm/fuzzer/fuzzer.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ limitations under the License.
1717
package fuzzer
1818

1919
import (
20-
fuzz "github.com/google/gofuzz"
20+
"sigs.k8s.io/randfill"
2121

2222
corev1 "k8s.io/api/core/v1"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -46,8 +46,8 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
4646
}
4747
}
4848

49-
func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c fuzz.Continue) {
50-
c.FuzzNoCustom(obj)
49+
func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c randfill.Continue) {
50+
c.FillNoCustom(obj)
5151

5252
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
5353

@@ -71,16 +71,16 @@ func fuzzInitConfiguration(obj *kubeadm.InitConfiguration, c fuzz.Continue) {
7171
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
7272
}
7373

74-
func fuzzNodeRegistration(obj *kubeadm.NodeRegistrationOptions, c fuzz.Continue) {
75-
c.FuzzNoCustom(obj)
74+
func fuzzNodeRegistration(obj *kubeadm.NodeRegistrationOptions, c randfill.Continue) {
75+
c.FillNoCustom(obj)
7676

7777
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
7878
obj.IgnorePreflightErrors = nil
7979
obj.ImagePullSerial = ptr.To(true)
8080
}
8181

82-
func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c fuzz.Continue) {
83-
c.FuzzNoCustom(obj)
82+
func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c randfill.Continue) {
83+
c.FillNoCustom(obj)
8484

8585
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
8686
obj.CertificatesDir = "foo"
@@ -100,33 +100,33 @@ func fuzzClusterConfiguration(obj *kubeadm.ClusterConfiguration, c fuzz.Continue
100100
obj.CACertificateValidityPeriod = &metav1.Duration{Duration: constants.CACertificateValidityPeriod}
101101
}
102102

103-
func fuzzDNS(obj *kubeadm.DNS, c fuzz.Continue) {
104-
c.FuzzNoCustom(obj)
103+
func fuzzDNS(obj *kubeadm.DNS, c randfill.Continue) {
104+
c.FillNoCustom(obj)
105105
obj.Disabled = false
106106
}
107107

108-
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c fuzz.Continue) {
108+
func fuzzComponentConfigMap(obj *kubeadm.ComponentConfigMap, c randfill.Continue) {
109109
// This is intentionally empty because component config does not exists in the public api
110110
// (empty mean all ComponentConfigs fields nil, and this is necessary for getting roundtrip passing)
111111
}
112112

113-
func fuzzLocalEtcd(obj *kubeadm.LocalEtcd, c fuzz.Continue) {
114-
c.FuzzNoCustom(obj)
113+
func fuzzLocalEtcd(obj *kubeadm.LocalEtcd, c randfill.Continue) {
114+
c.FillNoCustom(obj)
115115

116116
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
117117
obj.DataDir = "foo"
118118
}
119119

120-
func fuzzNetworking(obj *kubeadm.Networking, c fuzz.Continue) {
121-
c.FuzzNoCustom(obj)
120+
func fuzzNetworking(obj *kubeadm.Networking, c randfill.Continue) {
121+
c.FillNoCustom(obj)
122122

123123
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
124124
obj.DNSDomain = "foo"
125125
obj.ServiceSubnet = "bar"
126126
}
127127

128-
func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) {
129-
c.FuzzNoCustom(obj)
128+
func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c randfill.Continue) {
129+
c.FillNoCustom(obj)
130130

131131
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
132132
obj.CACertPath = "foo"
@@ -143,20 +143,20 @@ func fuzzJoinConfiguration(obj *kubeadm.JoinConfiguration, c fuzz.Continue) {
143143
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
144144
}
145145

146-
func fuzzJoinControlPlane(obj *kubeadm.JoinControlPlane, c fuzz.Continue) {
147-
c.FuzzNoCustom(obj)
146+
func fuzzJoinControlPlane(obj *kubeadm.JoinControlPlane, c randfill.Continue) {
147+
c.FillNoCustom(obj)
148148
}
149149

150-
func fuzzResetConfiguration(obj *kubeadm.ResetConfiguration, c fuzz.Continue) {
151-
c.FuzzNoCustom(obj)
150+
func fuzzResetConfiguration(obj *kubeadm.ResetConfiguration, c randfill.Continue) {
151+
c.FillNoCustom(obj)
152152

153153
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
154154
obj.CertificatesDir = "/tmp"
155155
kubeadm.SetDefaultTimeouts(&obj.Timeouts)
156156
}
157157

158-
func fuzzUpgradeConfiguration(obj *kubeadm.UpgradeConfiguration, c fuzz.Continue) {
159-
c.FuzzNoCustom(obj)
158+
func fuzzUpgradeConfiguration(obj *kubeadm.UpgradeConfiguration, c randfill.Continue) {
159+
c.FillNoCustom(obj)
160160

161161
// Pinning values for fields that get defaults if fuzz value is empty string or nil (thus making the round trip test fail)
162162
obj.Node.EtcdUpgrade = ptr.To(true)

cmd/kubeadm/app/apis/output/fuzzer/fuzzer.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package fuzzer
1919
import (
2020
"time"
2121

22-
fuzz "github.com/google/gofuzz"
22+
"sigs.k8s.io/randfill"
2323

2424
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2525
runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
@@ -36,8 +36,8 @@ func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
3636
}
3737
}
3838

39-
func fuzzBootstrapToken(obj *output.BootstrapToken, c fuzz.Continue) {
40-
c.FuzzNoCustom(obj)
39+
func fuzzBootstrapToken(obj *output.BootstrapToken, c randfill.Continue) {
40+
c.FillNoCustom(obj)
4141

4242
obj.Token = &bootstraptokenv1.BootstrapTokenString{ID: "uvxdac", Secret: "fq35fuyue3kd4gda"}
4343
obj.Description = ""

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ require (
3636
github.com/google/cel-go v0.23.2
3737
github.com/google/gnostic-models v0.6.9
3838
github.com/google/go-cmp v0.7.0
39-
github.com/google/gofuzz v1.2.0
4039
github.com/google/uuid v1.6.0
4140
github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2
4241
github.com/libopenstorage/openstorage v1.0.0
@@ -107,7 +106,7 @@ require (
107106
k8s.io/kms v0.0.0
108107
k8s.io/kube-aggregator v0.0.0
109108
k8s.io/kube-controller-manager v0.0.0
110-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7
109+
k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9
111110
k8s.io/kube-proxy v0.0.0
112111
k8s.io/kube-scheduler v0.0.0
113112
k8s.io/kubectl v0.0.0
@@ -119,7 +118,8 @@ require (
119118
k8s.io/system-validators v1.9.1
120119
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
121120
sigs.k8s.io/knftables v0.0.17
122-
sigs.k8s.io/structured-merge-diff/v4 v4.4.2
121+
sigs.k8s.io/randfill v1.0.0
122+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0
123123
sigs.k8s.io/yaml v1.4.0
124124
)
125125

go.sum

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,6 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
293293
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
294294
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
295295
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
296-
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
297-
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
298296
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
299297
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
300298
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
@@ -658,8 +656,8 @@ k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 h1:2OX19X59HxDprNCVrWi6jb7LW1
658656
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
659657
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
660658
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
661-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=
662-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas=
659+
k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9 h1:t0huyHnz6HsokckRxAF1bY0cqPFwzINKCL7yltEjZQc=
660+
k8s.io/kube-openapi v0.0.0-20250304201544-e5f78fe3ede9/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8=
663661
k8s.io/system-validators v1.9.1 h1:O8xrr08foamG+1uQjAdiTLt/fT+QQJ4QNREfCWvuOws=
664662
k8s.io/system-validators v1.9.1/go.mod h1:d4UVrxKu52s0BHU984Peb9VpIq4V9sd8xjTBV/waY/I=
665663
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
@@ -677,7 +675,10 @@ sigs.k8s.io/kustomize/kustomize/v5 v5.6.0 h1:MWtRRDWCwQEeW2rnJTqJMuV6Agy56P53Skb
677675
sigs.k8s.io/kustomize/kustomize/v5 v5.6.0/go.mod h1:XuuZiQF7WdcvZzEYyNww9A0p3LazCKeJmCjeycN8e1I=
678676
sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA=
679677
sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY=
680-
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
681-
sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
678+
sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
679+
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
680+
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
681+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
682+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
682683
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
683684
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

go.work.sum

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
148148
github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=
149149
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
150150
github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8=
151+
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
151152
github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465 h1:KwWnWVWCNtNq/ewIX7HIKnELmEx2nDP42yskD/pi7QE=
152153
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
153154
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=

hack/unwanted-dependencies.json

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"github.com/golang/mock": "unmaintained, archive mode",
2828
"github.com/golang/protobuf": "replace with google.golang.org/protobuf",
2929
"github.com/golang/groupcache": "unmaintained",
30-
"github.com/google/gofuzz": "unmaintained, archive mode",
30+
"github.com/google/gofuzz": "unmaintained, use sigs.k8s.io/randfill",
3131
"github.com/google/s2a-go": "cloud dependency, unstable",
3232
"github.com/google/shlex": "unmaintained, archive mode",
3333
"github.com/googleapis/enterprise-certificate-proxy": "references cloud dependencies",
@@ -183,17 +183,7 @@
183183
"sigs.k8s.io/apiserver-network-proxy/konnectivity-client"
184184
],
185185
"github.com/google/gofuzz": [
186-
"github.com/json-iterator/go",
187-
"k8s.io/apiextensions-apiserver",
188-
"k8s.io/apimachinery",
189-
"k8s.io/apiserver",
190-
"k8s.io/client-go",
191-
"k8s.io/code-generator",
192-
"k8s.io/kube-aggregator",
193-
"k8s.io/kube-openapi",
194-
"k8s.io/kubernetes",
195-
"k8s.io/sample-apiserver",
196-
"sigs.k8s.io/structured-merge-diff/v4"
186+
"github.com/json-iterator/go"
197187
],
198188
"github.com/google/shlex": [
199189
"sigs.k8s.io/kustomize/api",
@@ -284,7 +274,6 @@
284274
"github.com/davecgh/go-spew",
285275
"github.com/gogo/protobuf",
286276
"github.com/golang/protobuf",
287-
"github.com/google/gofuzz",
288277
"github.com/google/shlex",
289278
"github.com/gregjones/httpcache",
290279
"github.com/grpc-ecosystem/go-grpc-prometheus",

pkg/api/testing/applyconfiguration_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"testing"
2323

2424
"github.com/google/go-cmp/cmp"
25-
fuzz "github.com/google/gofuzz"
2625
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2726
apiequality "k8s.io/apimachinery/pkg/api/equality"
2827
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -31,6 +30,7 @@ import (
3130
"k8s.io/apimachinery/pkg/util/json"
3231
"k8s.io/client-go/applyconfigurations"
3332
v1mf "k8s.io/client-go/applyconfigurations/core/v1"
33+
"sigs.k8s.io/randfill"
3434

3535
"k8s.io/kubernetes/pkg/api/legacyscheme"
3636
api "k8s.io/kubernetes/pkg/apis/core"
@@ -166,22 +166,22 @@ func fuzzObject(t *testing.T, gvk schema.GroupVersionKind) runtime.Object {
166166
// Ensure that InitContainers and their statuses are not generated. This
167167
// is because in this test we are simply doing json operations, in which
168168
// those disappear.
169-
func(s *api.PodSpec, c fuzz.Continue) {
170-
c.FuzzNoCustom(s)
169+
func(s *api.PodSpec, c randfill.Continue) {
170+
c.FillNoCustom(s)
171171
s.InitContainers = nil
172172
},
173-
func(s *api.PodStatus, c fuzz.Continue) {
174-
c.FuzzNoCustom(s)
173+
func(s *api.PodStatus, c randfill.Continue) {
174+
c.FillNoCustom(s)
175175
s.InitContainerStatuses = nil
176176
},
177177
// Apply configuration types do not have managed fields, so we exclude
178178
// them in our fuzz test cases.
179-
func(s *v1.ObjectMeta, c fuzz.Continue) {
180-
c.FuzzNoCustom(s)
179+
func(s *v1.ObjectMeta, c randfill.Continue) {
180+
c.FillNoCustom(s)
181181
s.ManagedFields = nil
182182
s.SelfLink = ""
183183
},
184-
).Fuzz(internalObj)
184+
).Fill(internalObj)
185185

186186
item, err := legacyscheme.Scheme.New(externalVersion.WithKind(kind))
187187
if err != nil {

pkg/api/testing/conversion_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func BenchmarkPodConversion(b *testing.B) {
3636
apiObjectFuzzer := fuzzer.FuzzerFor(FuzzerFuncs, rand.NewSource(benchmarkSeed), legacyscheme.Codecs)
3737
items := make([]api.Pod, 4)
3838
for i := range items {
39-
apiObjectFuzzer.Fuzz(&items[i])
39+
apiObjectFuzzer.Fill(&items[i])
4040
items[i].Spec.InitContainers = nil
4141
items[i].Status.InitContainerStatuses = nil
4242
}

pkg/api/testing/copy_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"testing"
2424

2525
"github.com/google/go-cmp/cmp"
26-
fuzz "github.com/google/gofuzz"
26+
"sigs.k8s.io/randfill"
2727

2828
"k8s.io/apimachinery/pkg/api/apitesting/fuzzer"
2929
"k8s.io/apimachinery/pkg/api/apitesting/roundtrip"
@@ -43,12 +43,12 @@ func TestDeepCopyApiObjects(t *testing.T) {
4343
}
4444
}
4545

46-
func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer) {
46+
func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *randfill.Filler) {
4747
item, err := legacyscheme.Scheme.New(kind)
4848
if err != nil {
4949
t.Fatalf("Could not create a %v: %s", kind, err)
5050
}
51-
f.Fuzz(item)
51+
f.Fill(item)
5252
itemCopy := item.DeepCopyObject()
5353
if !reflect.DeepEqual(item, itemCopy) {
5454
t.Errorf("\nexpected: %#v\n\ngot: %#v\n\ndiff: %v", item, itemCopy, cmp.Diff(item, itemCopy))
@@ -61,7 +61,7 @@ func doDeepCopyTest(t *testing.T, kind schema.GroupVersionKind, f *fuzz.Fuzzer)
6161
}
6262

6363
// Refuzz the copy, which should have no effect on the original
64-
f.Fuzz(itemCopy)
64+
f.Fill(itemCopy)
6565

6666
postfuzzData := &bytes.Buffer{}
6767
if err := legacyscheme.Codecs.LegacyCodec(kind.GroupVersion()).Encode(item, postfuzzData); err != nil {

0 commit comments

Comments
 (0)