diff --git a/pkg/api/testing/fuzzer.go b/pkg/api/testing/fuzzer.go index 844b9f79d2b..8fc37898d49 100644 --- a/pkg/api/testing/fuzzer.go +++ b/pkg/api/testing/fuzzer.go @@ -19,7 +19,7 @@ package testing import ( "fmt" - "github.com/google/gofuzz" + fuzz "github.com/google/gofuzz" "k8s.io/api/core/v1" apitesting "k8s.io/apimachinery/pkg/api/testing" @@ -38,6 +38,7 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" extensionsfuzzer "k8s.io/kubernetes/pkg/apis/extensions/fuzzer" extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" + networkingfuzzer "k8s.io/kubernetes/pkg/apis/networking/fuzzer" policyfuzzer "k8s.io/kubernetes/pkg/apis/policy/fuzzer" rbacfuzzer "k8s.io/kubernetes/pkg/apis/rbac/fuzzer" storagefuzzer "k8s.io/kubernetes/pkg/apis/storage/fuzzer" @@ -102,4 +103,5 @@ var FuzzerFuncs = fuzzer.MergeFuzzerFuncs( certificatesfuzzer.Funcs, admissionregistrationfuzzer.Funcs, storagefuzzer.Funcs, + networkingfuzzer.Funcs, ) diff --git a/pkg/apis/networking/fuzzer/fuzzer.go b/pkg/apis/networking/fuzzer/fuzzer.go index 6e142826d3b..1325b9d336c 100644 --- a/pkg/apis/networking/fuzzer/fuzzer.go +++ b/pkg/apis/networking/fuzzer/fuzzer.go @@ -17,10 +17,24 @@ limitations under the License. package fuzzer import ( + fuzz "github.com/google/gofuzz" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/networking" ) // Funcs returns the fuzzer functions for the networking api group. var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{} + return []interface{}{ + func(np *networking.NetworkPolicyPeer, c fuzz.Continue) { + c.FuzzNoCustom(np) // fuzz self without calling this function again + // TODO: Implement a fuzzer to generate valid keys, values and operators for + // selector requirements. + if np.IPBlock != nil { + np.IPBlock = &networking.IPBlock{ + CIDR: "192.168.1.0/24", + Except: []string{"192.168.1.1/24", "192.168.1.2/24"}, + } + } + }, + } }