Skip to content

Commit 363d1fe

Browse files
committed
Switch to v1 for admission and CRDs for all api-machinery e2e tests
1 parent d4958c0 commit 363d1fe

File tree

4 files changed

+72
-37
lines changed

4 files changed

+72
-37
lines changed

staging/src/k8s.io/apiextensions-apiserver/test/integration/fixtures/resources.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,38 @@ const (
4343
noxuInstanceNum int64 = 9223372036854775807
4444
)
4545

46+
// NewRandomNameV1CustomResourceDefinition generates a CRD with random name to avoid name conflict in e2e tests
47+
func NewRandomNameV1CustomResourceDefinition(scope apiextensionsv1.ResourceScope) *apiextensionsv1.CustomResourceDefinition {
48+
// ensure the singular doesn't end in an s for now
49+
gName := names.SimpleNameGenerator.GenerateName("foo") + "a"
50+
return &apiextensionsv1.CustomResourceDefinition{
51+
ObjectMeta: metav1.ObjectMeta{Name: gName + "s.mygroup.example.com"},
52+
Spec: apiextensionsv1.CustomResourceDefinitionSpec{
53+
Group: "mygroup.example.com",
54+
Versions: []apiextensionsv1.CustomResourceDefinitionVersion{
55+
{
56+
Name: "v1beta1",
57+
Served: true,
58+
Storage: true,
59+
Schema: &apiextensionsv1.CustomResourceValidation{
60+
OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
61+
XPreserveUnknownFields: pointer.BoolPtr(true),
62+
Type: "object",
63+
},
64+
},
65+
},
66+
},
67+
Names: apiextensionsv1.CustomResourceDefinitionNames{
68+
Plural: gName + "s",
69+
Singular: gName,
70+
Kind: gName,
71+
ListKind: gName + "List",
72+
},
73+
Scope: scope,
74+
},
75+
}
76+
}
77+
4678
// NewRandomNameCustomResourceDefinition generates a CRD with random name to avoid name conflict in e2e tests
4779
func NewRandomNameCustomResourceDefinition(scope apiextensionsv1beta1.ResourceScope) *apiextensionsv1beta1.CustomResourceDefinition {
4880
// ensure the singular doesn't end in an s for now

test/e2e/apimachinery/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ go_library(
4242
"//staging/src/k8s.io/api/scheduling/v1:go_default_library",
4343
"//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library",
4444
"//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1:go_default_library",
45-
"//staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library",
4645
"//staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/validation:go_default_library",
4746
"//staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library",
4847
"//staging/src/k8s.io/apiextensions-apiserver/test/integration:go_default_library",

test/e2e/apimachinery/custom_resource_definition.go

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package apimachinery
1919
import (
2020
"github.com/onsi/ginkgo"
2121

22-
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
22+
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2323
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
2424
"k8s.io/apiextensions-apiserver/test/integration/fixtures"
2525
"k8s.io/apimachinery/pkg/api/equality"
@@ -52,14 +52,14 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
5252
apiExtensionClient, err := clientset.NewForConfig(config)
5353
framework.ExpectNoError(err, "initializing apiExtensionClient")
5454

55-
randomDefinition := fixtures.NewRandomNameCustomResourceDefinition(v1beta1.ClusterScoped)
55+
randomDefinition := fixtures.NewRandomNameV1CustomResourceDefinition(v1.ClusterScoped)
5656

5757
// Create CRD and waits for the resource to be recognized and available.
58-
randomDefinition, err = fixtures.CreateNewCustomResourceDefinition(randomDefinition, apiExtensionClient, f.DynamicClient)
58+
randomDefinition, err = fixtures.CreateNewV1CustomResourceDefinition(randomDefinition, apiExtensionClient, f.DynamicClient)
5959
framework.ExpectNoError(err, "creating CustomResourceDefinition")
6060

6161
defer func() {
62-
err = fixtures.DeleteCustomResourceDefinition(randomDefinition, apiExtensionClient)
62+
err = fixtures.DeleteV1CustomResourceDefinition(randomDefinition, apiExtensionClient)
6363
framework.ExpectNoError(err, "deleting CustomResourceDefinition")
6464
}()
6565
})
@@ -80,30 +80,30 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
8080
testUUID := string(uuid.NewUUID())
8181

8282
// Create CRD and wait for the resource to be recognized and available.
83-
crds := make([]*v1beta1.CustomResourceDefinition, testListSize)
83+
crds := make([]*v1.CustomResourceDefinition, testListSize)
8484
for i := 0; i < testListSize; i++ {
85-
crd := fixtures.NewRandomNameCustomResourceDefinition(v1beta1.ClusterScoped)
85+
crd := fixtures.NewRandomNameV1CustomResourceDefinition(v1.ClusterScoped)
8686
crd.Labels = map[string]string{"e2e-list-test-uuid": testUUID}
87-
crd, err = fixtures.CreateNewCustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
87+
crd, err = fixtures.CreateNewV1CustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
8888
framework.ExpectNoError(err, "creating CustomResourceDefinition")
8989
crds[i] = crd
9090
}
9191

9292
// Create a crd w/o the label to ensure the label selector matching works correctly
93-
crd := fixtures.NewRandomNameCustomResourceDefinition(v1beta1.ClusterScoped)
94-
crd, err = fixtures.CreateNewCustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
93+
crd := fixtures.NewRandomNameV1CustomResourceDefinition(v1.ClusterScoped)
94+
crd, err = fixtures.CreateNewV1CustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
9595
framework.ExpectNoError(err, "creating CustomResourceDefinition")
9696
defer func() {
97-
err = fixtures.DeleteCustomResourceDefinition(crd, apiExtensionClient)
97+
err = fixtures.DeleteV1CustomResourceDefinition(crd, apiExtensionClient)
9898
framework.ExpectNoError(err, "deleting CustomResourceDefinition")
9999
}()
100100

101101
selectorListOpts := metav1.ListOptions{LabelSelector: "e2e-list-test-uuid=" + testUUID}
102-
list, err := apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().List(selectorListOpts)
102+
list, err := apiExtensionClient.ApiextensionsV1().CustomResourceDefinitions().List(selectorListOpts)
103103
framework.ExpectNoError(err, "listing CustomResourceDefinitions")
104104
framework.ExpectEqual(len(list.Items), testListSize)
105105
for _, actual := range list.Items {
106-
var expected *v1beta1.CustomResourceDefinition
106+
var expected *v1.CustomResourceDefinition
107107
for _, e := range crds {
108108
if e.Name == actual.Name && e.Namespace == actual.Namespace {
109109
expected = e
@@ -119,7 +119,7 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
119119
// Use delete collection to remove the CRDs
120120
err = fixtures.DeleteCustomResourceDefinitions(selectorListOpts, apiExtensionClient)
121121
framework.ExpectNoError(err, "deleting CustomResourceDefinitions")
122-
_, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Get(crd.Name, metav1.GetOptions{})
122+
_, err = apiExtensionClient.ApiextensionsV1().CustomResourceDefinitions().Get(crd.Name, metav1.GetOptions{})
123123
framework.ExpectNoError(err, "getting remaining CustomResourceDefinition")
124124
})
125125

@@ -135,20 +135,20 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
135135
framework.ExpectNoError(err, "initializing apiExtensionClient")
136136
dynamicClient, err := dynamic.NewForConfig(config)
137137
framework.ExpectNoError(err, "initializing dynamic client")
138-
gvr := v1beta1.SchemeGroupVersion.WithResource("customresourcedefinitions")
138+
gvr := v1.SchemeGroupVersion.WithResource("customresourcedefinitions")
139139
resourceClient := dynamicClient.Resource(gvr)
140140

141141
// Create CRD and waits for the resource to be recognized and available.
142-
crd := fixtures.NewRandomNameCustomResourceDefinition(v1beta1.ClusterScoped)
143-
crd, err = fixtures.CreateNewCustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
142+
crd := fixtures.NewRandomNameV1CustomResourceDefinition(v1.ClusterScoped)
143+
crd, err = fixtures.CreateNewV1CustomResourceDefinition(crd, apiExtensionClient, f.DynamicClient)
144144
framework.ExpectNoError(err, "creating CustomResourceDefinition")
145145
defer func() {
146-
err = fixtures.DeleteCustomResourceDefinition(crd, apiExtensionClient)
146+
err = fixtures.DeleteV1CustomResourceDefinition(crd, apiExtensionClient)
147147
framework.ExpectNoError(err, "deleting CustomResourceDefinition")
148148
}()
149149

150-
var updated *v1beta1.CustomResourceDefinition
151-
updateCondition := v1beta1.CustomResourceDefinitionCondition{Message: "updated"}
150+
var updated *v1.CustomResourceDefinition
151+
updateCondition := v1.CustomResourceDefinitionCondition{Message: "updated"}
152152
err = retry.RetryOnConflict(retry.DefaultRetry, func() error {
153153
// Use dynamic client to read the status sub-resource since typed client does not expose it.
154154
u, err := resourceClient.Get(crd.GetName(), metav1.GetOptions{}, "status")
@@ -158,14 +158,14 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
158158
e2elog.Failf("Expected CustomResourceDefinition Spec to match status sub-resource Spec, but got:\n%s", diff.ObjectReflectDiff(status.Spec, crd.Spec))
159159
}
160160
status.Status.Conditions = append(status.Status.Conditions, updateCondition)
161-
updated, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().UpdateStatus(status)
161+
updated, err = apiExtensionClient.ApiextensionsV1().CustomResourceDefinitions().UpdateStatus(status)
162162
return err
163163
})
164164
framework.ExpectNoError(err, "updating CustomResourceDefinition status")
165165
expectCondition(updated.Status.Conditions, updateCondition)
166166

167-
patchCondition := v1beta1.CustomResourceDefinitionCondition{Message: "patched"}
168-
patched, err := apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Patch(
167+
patchCondition := v1.CustomResourceDefinitionCondition{Message: "patched"}
168+
patched, err := apiExtensionClient.ApiextensionsV1().CustomResourceDefinitions().Patch(
169169
crd.GetName(),
170170
types.JSONPatchType,
171171
[]byte(`[{"op": "add", "path": "/status/conditions", "value": [{"message": "patched"}]}]`),
@@ -177,14 +177,14 @@ var _ = SIGDescribe("CustomResourceDefinition resources", func() {
177177
})
178178
})
179179

180-
func unstructuredToCRD(obj *unstructured.Unstructured) *v1beta1.CustomResourceDefinition {
181-
crd := new(v1beta1.CustomResourceDefinition)
180+
func unstructuredToCRD(obj *unstructured.Unstructured) *v1.CustomResourceDefinition {
181+
crd := new(v1.CustomResourceDefinition)
182182
err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.Object, crd)
183183
framework.ExpectNoError(err, "converting unstructured to CustomResourceDefinition")
184184
return crd
185185
}
186186

187-
func expectCondition(conditions []v1beta1.CustomResourceDefinitionCondition, expected v1beta1.CustomResourceDefinitionCondition) {
187+
func expectCondition(conditions []v1.CustomResourceDefinitionCondition, expected v1.CustomResourceDefinitionCondition) {
188188
for _, c := range conditions {
189189
if equality.Semantic.DeepEqual(c, expected) {
190190
return

test/e2e/apimachinery/garbage_collector.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
batchv1 "k8s.io/api/batch/v1"
2626
batchv1beta1 "k8s.io/api/batch/v1beta1"
2727
"k8s.io/api/core/v1"
28-
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
28+
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2929
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
3030
apiextensionstestserver "k8s.io/apiextensions-apiserver/test/integration/fixtures"
3131
"k8s.io/apimachinery/pkg/api/errors"
@@ -876,23 +876,25 @@ var _ = SIGDescribe("Garbage collector", func() {
876876

877877
// Create a random custom resource definition and ensure it's available for
878878
// use.
879-
definition := apiextensionstestserver.NewRandomNameCustomResourceDefinition(apiextensionsv1beta1.ClusterScoped)
879+
definition := apiextensionstestserver.NewRandomNameV1CustomResourceDefinition(apiextensionsv1.ClusterScoped)
880880
defer func() {
881-
err = apiextensionstestserver.DeleteCustomResourceDefinition(definition, apiExtensionClient)
881+
err = apiextensionstestserver.DeleteV1CustomResourceDefinition(definition, apiExtensionClient)
882882
if err != nil && !errors.IsNotFound(err) {
883883
e2elog.Failf("failed to delete CustomResourceDefinition: %v", err)
884884
}
885885
}()
886-
definition, err = apiextensionstestserver.CreateNewCustomResourceDefinition(definition, apiExtensionClient, f.DynamicClient)
886+
definition, err = apiextensionstestserver.CreateNewV1CustomResourceDefinition(definition, apiExtensionClient, f.DynamicClient)
887887
if err != nil {
888888
e2elog.Failf("failed to create CustomResourceDefinition: %v", err)
889889
}
890+
framework.ExpectEqual(len(definition.Spec.Versions), 1, "custom resource definition should have one version")
891+
version := definition.Spec.Versions[0]
890892

891893
// Get a client for the custom resource.
892-
gvr := schema.GroupVersionResource{Group: definition.Spec.Group, Version: definition.Spec.Version, Resource: definition.Spec.Names.Plural}
894+
gvr := schema.GroupVersionResource{Group: definition.Spec.Group, Version: version.Name, Resource: definition.Spec.Names.Plural}
893895
resourceClient := f.DynamicClient.Resource(gvr)
894896

895-
apiVersion := definition.Spec.Group + "/" + definition.Spec.Version
897+
apiVersion := definition.Spec.Group + "/" + version.Name
896898

897899
// Create a custom owner resource.
898900
ownerName := names.SimpleNameGenerator.GenerateName("owner")
@@ -977,23 +979,25 @@ var _ = SIGDescribe("Garbage collector", func() {
977979

978980
// Create a random custom resource definition and ensure it's available for
979981
// use.
980-
definition := apiextensionstestserver.NewRandomNameCustomResourceDefinition(apiextensionsv1beta1.ClusterScoped)
982+
definition := apiextensionstestserver.NewRandomNameV1CustomResourceDefinition(apiextensionsv1.ClusterScoped)
981983
defer func() {
982-
err = apiextensionstestserver.DeleteCustomResourceDefinition(definition, apiExtensionClient)
984+
err = apiextensionstestserver.DeleteV1CustomResourceDefinition(definition, apiExtensionClient)
983985
if err != nil && !errors.IsNotFound(err) {
984986
e2elog.Failf("failed to delete CustomResourceDefinition: %v", err)
985987
}
986988
}()
987-
definition, err = apiextensionstestserver.CreateNewCustomResourceDefinition(definition, apiExtensionClient, f.DynamicClient)
989+
definition, err = apiextensionstestserver.CreateNewV1CustomResourceDefinition(definition, apiExtensionClient, f.DynamicClient)
988990
if err != nil {
989991
e2elog.Failf("failed to create CustomResourceDefinition: %v", err)
990992
}
993+
framework.ExpectEqual(len(definition.Spec.Versions), 1, "custom resource definition should have one version")
994+
version := definition.Spec.Versions[0]
991995

992996
// Get a client for the custom resource.
993-
gvr := schema.GroupVersionResource{Group: definition.Spec.Group, Version: definition.Spec.Version, Resource: definition.Spec.Names.Plural}
997+
gvr := schema.GroupVersionResource{Group: definition.Spec.Group, Version: version.Name, Resource: definition.Spec.Names.Plural}
994998
resourceClient := f.DynamicClient.Resource(gvr)
995999

996-
apiVersion := definition.Spec.Group + "/" + definition.Spec.Version
1000+
apiVersion := definition.Spec.Group + "/" + version.Name
9971001

9981002
// Create a custom owner resource.
9991003
ownerName := names.SimpleNameGenerator.GenerateName("owner")

0 commit comments

Comments
 (0)