...
1
16
17 package fuzzer
18
19 import (
20 "fmt"
21 "time"
22
23 "github.com/google/gofuzz"
24
25 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26 runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer"
27 kubeproxyconfig "k8s.io/kubernetes/pkg/proxy/apis/config"
28 "k8s.io/utils/ptr"
29 )
30
31
32 func Funcs(codecs runtimeserializer.CodecFactory) []interface{} {
33 return []interface{}{
34 func(obj *kubeproxyconfig.KubeProxyConfiguration, c fuzz.Continue) {
35 c.FuzzNoCustom(obj)
36 obj.BindAddress = fmt.Sprintf("%d.%d.%d.%d", c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(256))
37 obj.ClientConnection.ContentType = c.RandString()
38 obj.Conntrack.MaxPerCore = ptr.To(c.Int31())
39 obj.Conntrack.Min = ptr.To(c.Int31())
40 obj.Conntrack.TCPCloseWaitTimeout = &metav1.Duration{Duration: time.Duration(c.Int63()) * time.Hour}
41 obj.Conntrack.TCPEstablishedTimeout = &metav1.Duration{Duration: time.Duration(c.Int63()) * time.Hour}
42 obj.FeatureGates = map[string]bool{c.RandString(): true}
43 obj.HealthzBindAddress = fmt.Sprintf("%d.%d.%d.%d:%d", c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(65536))
44 obj.IPTables.MasqueradeBit = ptr.To(c.Int31())
45 obj.IPTables.LocalhostNodePorts = ptr.To(c.RandBool())
46 obj.NFTables.MasqueradeBit = ptr.To(c.Int31())
47 obj.MetricsBindAddress = fmt.Sprintf("%d.%d.%d.%d:%d", c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(65536))
48 obj.OOMScoreAdj = ptr.To(c.Int31())
49 obj.ClientConnection.ContentType = "bar"
50 obj.NodePortAddresses = []string{"1.2.3.0/24"}
51 if obj.Logging.Format == "" {
52 obj.Logging.Format = "text"
53 }
54 },
55 }
56 }
57
View as plain text