diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/apiapproval_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/apiapproval_test.go index e33e0e0c055..a1f8132a618 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/apiapproval_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/apiapproval_test.go @@ -22,8 +22,6 @@ import ( "time" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - - apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/test/integration/fixtures" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" @@ -47,7 +45,7 @@ func TestAPIApproval(t *testing.T) { newSigKubeAPIFn := func(resource, approvalAnnotation string) *apiextensionsv1.CustomResourceDefinition { return &apiextensionsv1.CustomResourceDefinition{ - ObjectMeta: metav1.ObjectMeta{Name: resource + ".sigs.k8s.io", Annotations: map[string]string{apiextensionsv1beta1.KubeAPIApprovedAnnotation: approvalAnnotation}}, + ObjectMeta: metav1.ObjectMeta{Name: resource + ".sigs.k8s.io", Annotations: map[string]string{apiextensionsv1.KubeAPIApprovedAnnotation: approvalAnnotation}}, Spec: apiextensionsv1.CustomResourceDefinitionSpec{ Group: "sigs.k8s.io", Versions: []apiextensionsv1.CustomResourceDefinitionVersion{ diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go index 1799deabb1c..66fca6a47a8 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/basic_test.go @@ -26,7 +26,6 @@ import ( "time" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "k8s.io/apiextensions-apiserver/test/integration/fixtures" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/conversion/conversion_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/conversion/conversion_test.go index 1a63d8598c9..73a479b8865 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/conversion/conversion_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/conversion/conversion_test.go @@ -27,8 +27,6 @@ import ( "testing" "time" - apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "github.com/google/go-cmp/cmp" "k8s.io/apimachinery/pkg/api/errors" @@ -44,6 +42,7 @@ import ( "k8s.io/client-go/dynamic" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" serveroptions "k8s.io/apiextensions-apiserver/pkg/cmd/server/options" "k8s.io/apiextensions-apiserver/test/integration/fixtures" @@ -336,10 +335,8 @@ func validateNonTrivialConverted(t *testing.T, ctc *conversionTestContext) { client := ctc.versionedClient(ns, createVersion.Name) fixture := newConversionMultiVersionFixture(ns, name, createVersion.Name) - if createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields == nil || !*createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields { - if err := unstructured.SetNestedField(fixture.Object, "foo", "garbage"); err != nil { - t.Fatal(err) - } + if err := unstructured.SetNestedField(fixture.Object, "foo", "garbage"); err != nil { + t.Fatal(err) } if _, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{}); err != nil { t.Fatal(err) @@ -394,10 +391,8 @@ func validateNonTrivialConvertedList(t *testing.T, ctc *conversionTestContext) { name := "converted-" + createVersion.Name client := ctc.versionedClient(ns, createVersion.Name) fixture := newConversionMultiVersionFixture(ns, name, createVersion.Name) - if createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields == nil || !*createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields { - if err := unstructured.SetNestedField(fixture.Object, "foo", "garbage"); err != nil { - t.Fatal(err) - } + if err := unstructured.SetNestedField(fixture.Object, "foo", "garbage"); err != nil { + t.Fatal(err) } _, err := client.Create(context.TODO(), fixture, metav1.CreateOptions{}) if err != nil { @@ -432,9 +427,6 @@ func validateStoragePruning(t *testing.T, ctc *conversionTestContext) { ns := ctc.namespace for _, createVersion := range ctc.crd.Spec.Versions { - if createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields == nil || !*createVersion.Schema.OpenAPIV3Schema.XPreserveUnknownFields { - continue - } t.Run(fmt.Sprintf("getting objects created as %s", createVersion.Name), func(t *testing.T) { name := "storagepruning-" + createVersion.Name client := ctc.versionedClient(ns, createVersion.Name) diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/finalization_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/finalization_test.go index 1b68eaa0188..045d7bb06b6 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/finalization_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/finalization_test.go @@ -22,6 +22,7 @@ import ( "time" "github.com/stretchr/testify/require" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/apiextensions-apiserver/test/integration/fixtures" "k8s.io/apimachinery/pkg/api/errors" diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/limit_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/limit_test.go index d8c96d9117c..456d06a2077 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/limit_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/limit_test.go @@ -23,13 +23,11 @@ import ( "testing" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - - "k8s.io/client-go/dynamic" - "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apiextensions-apiserver/test/integration/fixtures" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/dynamic" ) func TestLimits(t *testing.T) { diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/listtype_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/listtype_test.go index f625dddc7b4..aafc42da166 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/listtype_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/listtype_test.go @@ -23,16 +23,14 @@ import ( "time" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/client-go/util/retry" - "sigs.k8s.io/yaml" - "k8s.io/apiextensions-apiserver/test/integration/fixtures" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/util/retry" + "sigs.k8s.io/yaml" ) var listTypeResourceFixture = &apiextensionsv1.CustomResourceDefinition{ diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/pruning_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/pruning_test.go index 2016a488691..baccc222472 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/pruning_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/pruning_test.go @@ -41,7 +41,6 @@ import ( "k8s.io/apimachinery/pkg/util/json" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/client-go/dynamic" - "k8s.io/utils/pointer" "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apiextensions-apiserver/test/integration/fixtures" @@ -62,8 +61,7 @@ var pruningFixture = &apiextensionsv1.CustomResourceDefinition{ }, Schema: &apiextensionsv1.CustomResourceValidation{ OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{ - XPreserveUnknownFields: pointer.BoolPtr(false), - Type: "object", + Type: "object", }, }, }, diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/scope_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/scope_test.go index a90308586c5..e2ca979c837 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/scope_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/scope_test.go @@ -21,18 +21,16 @@ import ( "strings" "testing" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "github.com/stretchr/testify/assert" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" + "k8s.io/apiextensions-apiserver/test/integration/fixtures" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/dynamic" - - "k8s.io/apiextensions-apiserver/test/integration/fixtures" ) func TestHandlerScope(t *testing.T) { diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go index a2a9bc1a402..9df139f1595 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/subresources_test.go @@ -388,7 +388,6 @@ func TestValidationSchemaWithStatus(t *testing.T) { t.Fatal(err) } - // fields other than properties in root schema are not allowed noxuDefinition := newNoxuValidationCRDs()[0] // make sure we are not restricting fields to properties even in subschemas @@ -457,12 +456,10 @@ func TestValidateOnlyStatus(t *testing.T) { noxuDefinitions := NewNoxuSubresourcesCRDs(apiextensionsv1.NamespaceScoped) for _, noxuDefinition := range noxuDefinitions { noxuDefinition.Spec.Versions[0].Schema = &apiextensionsv1.CustomResourceValidation{ - OpenAPIV3Schema: schema, + OpenAPIV3Schema: schema.DeepCopy(), } - schemaWithDescription := schema.DeepCopy() - schemaWithDescription.Description = "test" noxuDefinition.Spec.Versions[1].Schema = &apiextensionsv1.CustomResourceValidation{ - OpenAPIV3Schema: schemaWithDescription, + OpenAPIV3Schema: schema.DeepCopy(), } noxuDefinition, err = fixtures.CreateNewV1CustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/validation_test.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/validation_test.go index a9681dfaac0..2bb5321d4be 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/validation_test.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/validation_test.go @@ -647,21 +647,24 @@ func TestForbiddenFieldsInSchema(t *testing.T) { if err != nil { t.Fatal(err) } - // v1 doesn't allow additional properties at all. this isn't necessary in v1. - //validationSchema.OpenAPIV3Schema.AdditionalProperties.Allows = false - //_, err = fixtures.CreateNewV1CustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) - //if err == nil { - // t.Fatalf("unexpected non-error: additionalProperties cannot be set to false") - //} + existingProperties := validationSchema.OpenAPIV3Schema.Properties + validationSchema.OpenAPIV3Schema.Properties = nil + validationSchema.OpenAPIV3Schema.AdditionalProperties = &apiextensionsv1.JSONSchemaPropsOrBool{Allows: false} + _, err = fixtures.CreateNewV1CustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) + if err == nil { + t.Fatalf("unexpected non-error: additionalProperties cannot be set to false") + } + // reset + validationSchema.OpenAPIV3Schema.Properties = existingProperties + validationSchema.OpenAPIV3Schema.AdditionalProperties = nil validationSchema.OpenAPIV3Schema.Properties["zeta"] = apiextensionsv1.JSONSchemaProps{ Type: "array", UniqueItems: true, + AdditionalProperties: &apiextensionsv1.JSONSchemaPropsOrBool{ + Allows: true, + }, } - - // v1 doesn't allow additional properties at all. this isn't necessary in v1. - //validationSchema.OpenAPIV3Schema.AdditionalProperties.Allows = true - _, err = fixtures.CreateNewV1CustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient) if err == nil { t.Fatalf("unexpected non-error: uniqueItems cannot be set to true") diff --git a/test/integration/apiserver/apiserver_test.go b/test/integration/apiserver/apiserver_test.go index d90b8360c8b..559616edae6 100644 --- a/test/integration/apiserver/apiserver_test.go +++ b/test/integration/apiserver/apiserver_test.go @@ -32,10 +32,9 @@ import ( "testing" "time" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - apps "k8s.io/api/apps/v1" v1 "k8s.io/api/core/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" "k8s.io/apiextensions-apiserver/test/integration/fixtures" apierrors "k8s.io/apimachinery/pkg/api/errors"