apiextensions: fix conversion tests to enable pruning

k3s-v1.15.3
Dr. Stefan Schimanski 2019-05-29 12:07:58 +02:00
parent 83322bd928
commit c692875277
4 changed files with 48 additions and 14 deletions

View File

@ -31,6 +31,7 @@ go_test(
"//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/features:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/test/integration/fixtures:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",

View File

@ -11,6 +11,7 @@ go_test(
"//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/pkg/features:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/test/integration/fixtures:go_default_library",
"//staging/src/k8s.io/apiextensions-apiserver/test/integration/storage:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
@ -23,7 +24,9 @@ go_test(
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/storage/etcd3:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/client-go/dynamic:go_default_library",
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
"//vendor/k8s.io/utils/pointer:go_default_library",
],

View File

@ -27,11 +27,6 @@ import (
"time"
"github.com/google/go-cmp/cmp"
apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features"
utilfeature "k8s.io/apiserver/pkg/util/feature"
featuregatetesting "k8s.io/component-base/featuregate/testing"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@ -43,13 +38,16 @@ import (
"k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait"
etcd3watcher "k8s.io/apiserver/pkg/storage/etcd3"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/dynamic"
featuregatetesting "k8s.io/component-base/featuregate/testing"
"k8s.io/utils/pointer"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/apiextensions-apiserver/pkg/cmd/server/options"
serveroptions "k8s.io/apiextensions-apiserver/pkg/cmd/server/options"
apiextensionsfeatures "k8s.io/apiextensions-apiserver/pkg/features"
"k8s.io/apiextensions-apiserver/test/integration/fixtures"
"k8s.io/apiextensions-apiserver/test/integration/storage"
)
@ -61,18 +59,14 @@ func checks(checkers ...Checker) []Checker {
}
func TestWebhookConverter(t *testing.T) {
testWebhookConverter(t, false, false)
}
func TestWebhookConverterWithPruning(t *testing.T) {
testWebhookConverter(t, true, false)
testWebhookConverter(t, false)
}
func TestWebhookConverterWithDefaulting(t *testing.T) {
testWebhookConverter(t, true, true)
testWebhookConverter(t, true)
}
func testWebhookConverter(t *testing.T, pruning, defaulting bool) {
func testWebhookConverter(t *testing.T, defaulting bool) {
tests := []struct {
group string
handler http.Handler
@ -140,7 +134,6 @@ func testWebhookConverter(t *testing.T, pruning, defaulting bool) {
defer tearDown()
crd := multiVersionFixture.DeepCopy()
crd.Spec.PreserveUnknownFields = pointer.BoolPtr(!pruning)
if !defaulting {
for i := range crd.Spec.Versions {
@ -995,7 +988,8 @@ var multiVersionFixture = &apiextensionsv1beta1.CustomResourceDefinition{
ListKind: "MultiVersionList",
Categories: []string{"all"},
},
Scope: apiextensionsv1beta1.NamespaceScoped,
Scope: apiextensionsv1beta1.NamespaceScoped,
PreserveUnknownFields: pointer.BoolPtr(false),
Versions: []apiextensionsv1beta1.CustomResourceDefinitionVersion{
{
// storage version, same schema as v1alpha1

View File

@ -61,11 +61,28 @@ var apiVersions = []v1beta1.CustomResourceDefinitionVersion{
Name: "v1",
Served: true,
Storage: true,
Schema: &v1beta1.CustomResourceValidation{
OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
Type: "object",
Properties: map[string]v1beta1.JSONSchemaProps{
"hostPort": {Type: "string"},
},
},
},
},
{
Name: "v2",
Served: true,
Storage: false,
Schema: &v1beta1.CustomResourceValidation{
OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
Type: "object",
Properties: map[string]v1beta1.JSONSchemaProps{
"host": {Type: "string"},
"port": {Type: "string"},
},
},
},
},
}
@ -74,11 +91,28 @@ var alternativeAPIVersions = []v1beta1.CustomResourceDefinitionVersion{
Name: "v1",
Served: true,
Storage: false,
Schema: &v1beta1.CustomResourceValidation{
OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
Type: "object",
Properties: map[string]v1beta1.JSONSchemaProps{
"hostPort": {Type: "string"},
},
},
},
},
{
Name: "v2",
Served: true,
Storage: true,
Schema: &v1beta1.CustomResourceValidation{
OpenAPIV3Schema: &v1beta1.JSONSchemaProps{
Type: "object",
Properties: map[string]v1beta1.JSONSchemaProps{
"host": {Type: "string"},
"port": {Type: "string"},
},
},
},
},
}
@ -122,6 +156,7 @@ var _ = SIGDescribe("CustomResourceConversionWebhook", func() {
},
},
}
crd.Spec.PreserveUnknownFields = pointer.BoolPtr(false)
})
if err != nil {
return
@ -145,6 +180,7 @@ var _ = SIGDescribe("CustomResourceConversionWebhook", func() {
},
},
}
crd.Spec.PreserveUnknownFields = pointer.BoolPtr(false)
})
if err != nil {
return