Skip to content

Commit e8a7cee

Browse files
committed
test: remove k8s.io/apiextensions-apiserver from framework
There are two reason why this is useful: 1. less code to vendor into external users of the framework The following dependencies become obsolete due to this change (from `dep`): (8/23) Removed unused project github.com/grpc-ecosystem/go-grpc-prometheus (9/23) Removed unused project github.com/coreos/etcd (10/23) Removed unused project github.com/globalsign/mgo (11/23) Removed unused project github.com/go-openapi/strfmt (12/23) Removed unused project github.com/asaskevich/govalidator (13/23) Removed unused project github.com/mitchellh/mapstructure (14/23) Removed unused project github.com/NYTimes/gziphandler (15/23) Removed unused project gopkg.in/natefinch/lumberjack.v2 (16/23) Removed unused project github.com/go-openapi/errors (17/23) Removed unused project github.com/go-openapi/analysis (18/23) Removed unused project github.com/go-openapi/runtime (19/23) Removed unused project sigs.k8s.io/structured-merge-diff (20/23) Removed unused project github.com/go-openapi/validate (21/23) Removed unused project github.com/coreos/go-systemd (22/23) Removed unused project github.com/go-openapi/loads (23/23) Removed unused project github.com/munnerz/goautoneg 2. works around kubernetes#75338 which currently breaks vendoring Some recent changes to crd_util.go must now be pulling in the broken k8s.io/apiextensions-apiserver packages, because it was still working in revision 2e90d92 (as demonstrated by https://github.com/intel/pmem-CSI/tree/586ae281ac2810cb4da6f1e160cf165c7daf0d80).
1 parent 517922f commit e8a7cee

File tree

8 files changed

+39
-37
lines changed

8 files changed

+39
-37
lines changed

test/e2e/apimachinery/crd_conversion_webhook.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"k8s.io/client-go/dynamic"
3333
clientset "k8s.io/client-go/kubernetes"
3434
"k8s.io/kubernetes/test/e2e/framework"
35+
"k8s.io/kubernetes/test/utils/crd"
3536
imageutils "k8s.io/kubernetes/test/utils/image"
3637

3738
. "github.com/onsi/ginkgo"
@@ -100,7 +101,7 @@ var _ = SIGDescribe("CustomResourceConversionWebhook [Feature:CustomResourceWebh
100101
})
101102

102103
It("Should be able to convert from CR v1 to CR v2", func() {
103-
testcrd, err := framework.CreateMultiVersionTestCRD(f, "stable.example.com", apiVersions,
104+
testcrd, err := crd.CreateMultiVersionTestCRD(f, "stable.example.com", apiVersions,
104105
&v1beta1.WebhookClientConfig{
105106
CABundle: context.signingCert,
106107
Service: &v1beta1.ServiceReference{
@@ -116,7 +117,7 @@ var _ = SIGDescribe("CustomResourceConversionWebhook [Feature:CustomResourceWebh
116117
})
117118

118119
It("Should be able to convert a non homogeneous list of CRs", func() {
119-
testcrd, err := framework.CreateMultiVersionTestCRD(f, "stable.example.com", apiVersions,
120+
testcrd, err := crd.CreateMultiVersionTestCRD(f, "stable.example.com", apiVersions,
120121
&v1beta1.WebhookClientConfig{
121122
CABundle: context.signingCert,
122123
Service: &v1beta1.ServiceReference{
@@ -325,7 +326,7 @@ func testCustomResourceConversionWebhook(f *framework.Framework, crd *v1beta1.Cu
325326
verifyV2Object(f, crd, v2crd)
326327
}
327328

328-
func testCRListConversion(f *framework.Framework, testCrd *framework.TestCrd) {
329+
func testCRListConversion(f *framework.Framework, testCrd *crd.TestCrd) {
329330
crd := testCrd.Crd
330331
customResourceClients := testCrd.DynamicClients
331332
name1 := "cr-instance-1"

test/e2e/apimachinery/crd_publish_openapi.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
k8sclientset "k8s.io/client-go/kubernetes"
3838
openapiutil "k8s.io/kube-openapi/pkg/util"
3939
"k8s.io/kubernetes/test/e2e/framework"
40+
"k8s.io/kubernetes/test/utils/crd"
4041
"sigs.k8s.io/yaml"
4142
)
4243

@@ -327,7 +328,7 @@ var _ = SIGDescribe("CustomResourcePublishOpenAPI [Feature:CustomResourcePublish
327328
})
328329
})
329330

330-
func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, versions ...string) (*framework.TestCrd, error) {
331+
func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, versions ...string) (*crd.TestCrd, error) {
331332
group := fmt.Sprintf("%s-test-%s.k8s.io", f.BaseName, groupSuffix)
332333
if len(versions) == 0 {
333334
return nil, fmt.Errorf("require at least one version for CRD")
@@ -343,7 +344,7 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
343344
}
344345
apiVersions[0].Storage = true
345346

346-
crd, err := framework.CreateMultiVersionTestCRD(f, group, apiVersions, nil)
347+
crd, err := crd.CreateMultiVersionTestCRD(f, group, apiVersions, nil)
347348
if err != nil {
348349
return nil, fmt.Errorf("failed to create CRD: %v", err)
349350
}
@@ -366,7 +367,7 @@ func setupCRD(f *framework.Framework, schema []byte, groupSuffix string, version
366367
return crd, nil
367368
}
368369

369-
func cleanupCRD(f *framework.Framework, crd *framework.TestCrd) error {
370+
func cleanupCRD(f *framework.Framework, crd *crd.TestCrd) error {
370371
crd.CleanUp()
371372
for _, v := range crd.Versions {
372373
name := definitionName(crd, v.Name)
@@ -378,7 +379,7 @@ func cleanupCRD(f *framework.Framework, crd *framework.TestCrd) error {
378379
}
379380

380381
// patchSchema takes schema in YAML and patches it to given CRD in given version
381-
func patchSchema(schema []byte, crd *framework.TestCrd) error {
382+
func patchSchema(schema []byte, crd *crd.TestCrd) error {
382383
s, err := utilyaml.ToJSON(schema)
383384
if err != nil {
384385
return fmt.Errorf("failed to create json patch: %v", err)
@@ -484,7 +485,7 @@ func verifyKubectlExplain(name, pattern string) error {
484485
}
485486

486487
// definitionName returns the openapi definition name for given CRD in given version
487-
func definitionName(crd *framework.TestCrd, version string) string {
488+
func definitionName(crd *crd.TestCrd, version string) string {
488489
return openapiutil.ToRESTFriendlyName(fmt.Sprintf("%s/%s/%s", crd.ApiGroup, version, crd.Kind))
489490
}
490491

test/e2e/apimachinery/discovery.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
utilversion "k8s.io/apimachinery/pkg/util/version"
2121
"k8s.io/apiserver/pkg/endpoints/discovery"
2222
"k8s.io/kubernetes/test/e2e/framework"
23+
"k8s.io/kubernetes/test/utils/crd"
2324

2425
. "github.com/onsi/ginkgo"
2526
)
@@ -40,7 +41,7 @@ var _ = SIGDescribe("Discovery", func() {
4041
})
4142

4243
It("[Feature:StorageVersionHash] Custom resource should have storage version hash", func() {
43-
testcrd, err := framework.CreateTestCRD(f)
44+
testcrd, err := crd.CreateTestCRD(f)
4445
if err != nil {
4546
return
4647
}

test/e2e/apimachinery/webhook.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"k8s.io/client-go/dynamic"
3939
clientset "k8s.io/client-go/kubernetes"
4040
"k8s.io/kubernetes/test/e2e/framework"
41+
"k8s.io/kubernetes/test/utils/crd"
4142
imageutils "k8s.io/kubernetes/test/utils/image"
4243

4344
. "github.com/onsi/ginkgo"
@@ -130,7 +131,7 @@ var _ = SIGDescribe("AdmissionWebhook", func() {
130131
})
131132

132133
It("Should be able to deny custom resource creation", func() {
133-
testcrd, err := framework.CreateTestCRD(f)
134+
testcrd, err := crd.CreateTestCRD(f)
134135
if err != nil {
135136
return
136137
}
@@ -167,7 +168,7 @@ var _ = SIGDescribe("AdmissionWebhook", func() {
167168
})
168169

169170
It("Should mutate custom resource", func() {
170-
testcrd, err := framework.CreateTestCRD(f)
171+
testcrd, err := crd.CreateTestCRD(f)
171172
if err != nil {
172173
return
173174
}
@@ -185,7 +186,7 @@ var _ = SIGDescribe("AdmissionWebhook", func() {
185186
})
186187

187188
It("Should mutate custom resource with different stored version", func() {
188-
testcrd, err := framework.CreateMultiVersionTestCRDWithV1Storage(f)
189+
testcrd, err := crd.CreateMultiVersionTestCRDWithV1Storage(f)
189190
if err != nil {
190191
return
191192
}
@@ -1186,7 +1187,7 @@ func cleanWebhookTest(client clientset.Interface, namespaceName string) {
11861187
_ = client.RbacV1beta1().RoleBindings("kube-system").Delete(roleBindingName, nil)
11871188
}
11881189

1189-
func registerWebhookForCustomResource(f *framework.Framework, context *certContext, testcrd *framework.TestCrd) func() {
1190+
func registerWebhookForCustomResource(f *framework.Framework, context *certContext, testcrd *crd.TestCrd) func() {
11901191
client := f.ClientSet
11911192
By("Registering the custom resource webhook via the AdmissionRegistration API")
11921193

@@ -1227,7 +1228,7 @@ func registerWebhookForCustomResource(f *framework.Framework, context *certConte
12271228
}
12281229
}
12291230

1230-
func registerMutatingWebhookForCustomResource(f *framework.Framework, context *certContext, testcrd *framework.TestCrd) func() {
1231+
func registerMutatingWebhookForCustomResource(f *framework.Framework, context *certContext, testcrd *crd.TestCrd) func() {
12311232
client := f.ClientSet
12321233
By("Registering the mutating webhook for a custom resource via the AdmissionRegistration API")
12331234

@@ -1338,7 +1339,7 @@ func testMutatingCustomResourceWebhook(f *framework.Framework, crd *apiextension
13381339
}
13391340
}
13401341

1341-
func testMultiVersionCustomResourceWebhook(f *framework.Framework, testcrd *framework.TestCrd) {
1342+
func testMultiVersionCustomResourceWebhook(f *framework.Framework, testcrd *crd.TestCrd) {
13421343
customResourceClient := testcrd.GetV1DynamicClient()
13431344
By("Creating a custom resource while v1 is storage version")
13441345
crName := "cr-instance-1"
@@ -1427,7 +1428,7 @@ func testCRDDenyWebhook(f *framework.Framework) {
14271428
Storage: true,
14281429
},
14291430
}
1430-
testcrd := &framework.TestCrd{
1431+
testcrd := &crd.TestCrd{
14311432
Name: name,
14321433
Kind: kind,
14331434
ApiGroup: group,

test/e2e/framework/framework.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
"time"
3333

3434
"k8s.io/api/core/v1"
35-
apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
3635
apierrors "k8s.io/apimachinery/pkg/api/errors"
3736
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3837
"k8s.io/apimachinery/pkg/labels"
@@ -75,7 +74,6 @@ type Framework struct {
7574

7675
ClientSet clientset.Interface
7776
KubemarkExternalClusterClientSet clientset.Interface
78-
APIExtensionsClientSet apiextensionsclient.Interface
7977

8078
InternalClientset *internalclientset.Clientset
8179
AggregatorClient *aggregatorclient.Clientset
@@ -182,8 +180,6 @@ func (f *Framework) BeforeEach() {
182180
}
183181
f.ClientSet, err = clientset.NewForConfig(config)
184182
ExpectNoError(err)
185-
f.APIExtensionsClientSet, err = apiextensionsclient.NewForConfig(config)
186-
ExpectNoError(err)
187183
f.InternalClientset, err = internalclientset.NewForConfig(config)
188184
ExpectNoError(err)
189185
f.AggregatorClient, err = aggregatorclient.NewForConfig(config)

test/e2e/framework/util.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,7 +1060,7 @@ func WaitForPersistentVolumeClaimsPhase(phase v1.PersistentVolumeClaimPhase, c c
10601060
func findAvailableNamespaceName(baseName string, c clientset.Interface) (string, error) {
10611061
var name string
10621062
err := wait.PollImmediate(Poll, 30*time.Second, func() (bool, error) {
1063-
name = fmt.Sprintf("%v-%v", baseName, randomSuffix())
1063+
name = fmt.Sprintf("%v-%v", baseName, RandomSuffix())
10641064
_, err := c.CoreV1().Namespaces().Get(name, metav1.GetOptions{})
10651065
if err == nil {
10661066
// Already taken
@@ -2154,7 +2154,7 @@ func LoadClientset() (*clientset.Clientset, error) {
21542154
// for pods and replication controllers so we don't
21552155
// need to use such a function and can instead
21562156
// use the UUID utility function.
2157-
func randomSuffix() string {
2157+
func RandomSuffix() string {
21582158
r := rand.New(rand.NewSource(time.Now().UnixNano()))
21592159
return strconv.Itoa(r.Int() % 10000)
21602160
}

test/e2e/kubectl/kubectl.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import (
6161
"k8s.io/kubernetes/test/e2e/framework/testfiles"
6262
"k8s.io/kubernetes/test/e2e/scheduling"
6363
testutils "k8s.io/kubernetes/test/utils"
64+
"k8s.io/kubernetes/test/utils/crd"
6465
uexec "k8s.io/utils/exec"
6566

6667
"github.com/onsi/ginkgo"
@@ -823,7 +824,7 @@ metadata:
823824
framework.KubeDescribe("Kubectl client-side validation", func() {
824825
ginkgo.It("should create/apply a CR with unknown fields for CRD with no validation schema", func() {
825826
ginkgo.By("create CRD with no validation schema")
826-
crd, err := framework.CreateTestCRD(f)
827+
crd, err := crd.CreateTestCRD(f)
827828
if err != nil {
828829
framework.Failf("failed to create test CRD: %v", err)
829830
}
@@ -841,7 +842,7 @@ metadata:
841842

842843
ginkgo.It("should create/apply a valid CR for CRD with validation schema", func() {
843844
ginkgo.By("prepare CRD with validation schema")
844-
crd, err := framework.CreateTestCRD(f)
845+
crd, err := crd.CreateTestCRD(f)
845846
if err != nil {
846847
framework.Failf("failed to create test CRD: %v", err)
847848
}
@@ -862,7 +863,7 @@ metadata:
862863

863864
ginkgo.It("should create/apply a valid CR with arbitrary-extra properties for CRD with partially-specified validation schema", func() {
864865
ginkgo.By("prepare CRD with partially-specified validation schema")
865-
crd, err := framework.CreateTestCRD(f)
866+
crd, err := crd.CreateTestCRD(f)
866867
if err != nil {
867868
framework.Failf("failed to create test CRD: %v", err)
868869
}
@@ -2226,7 +2227,7 @@ func startLocalProxy() (srv *httptest.Server, logs *bytes.Buffer) {
22262227

22272228
// createApplyCustomResource asserts that given CustomResource be created and applied
22282229
// without being rejected by client-side validation
2229-
func createApplyCustomResource(resource, namespace, name string, crd *framework.TestCrd) error {
2230+
func createApplyCustomResource(resource, namespace, name string, crd *crd.TestCrd) error {
22302231
ns := fmt.Sprintf("--namespace=%v", namespace)
22312232
ginkgo.By("successfully create CR")
22322233
if _, err := framework.RunKubectlInput(resource, ns, "create", "-f", "-"); err != nil {

test/e2e/framework/crd_util.go renamed to test/utils/crd/crd_util.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package framework
17+
package crd
1818

1919
import (
2020
"fmt"
@@ -27,6 +27,7 @@ import (
2727
"k8s.io/apimachinery/pkg/types"
2828
utilyaml "k8s.io/apimachinery/pkg/util/yaml"
2929
"k8s.io/client-go/dynamic"
30+
"k8s.io/kubernetes/test/e2e/framework"
3031
)
3132

3233
// CleanCrdFn declares the clean up function needed to remove the CRD
@@ -45,8 +46,8 @@ type TestCrd struct {
4546
}
4647

4748
// CreateTestCRD creates a new CRD specifically for the calling test.
48-
func CreateMultiVersionTestCRD(f *Framework, group string, apiVersions []apiextensionsv1beta1.CustomResourceDefinitionVersion, conversionWebhook *apiextensionsv1beta1.WebhookClientConfig) (*TestCrd, error) {
49-
suffix := randomSuffix()
49+
func CreateMultiVersionTestCRD(f *framework.Framework, group string, apiVersions []apiextensionsv1beta1.CustomResourceDefinitionVersion, conversionWebhook *apiextensionsv1beta1.WebhookClientConfig) (*TestCrd, error) {
50+
suffix := framework.RandomSuffix()
5051
name := fmt.Sprintf("e2e-test-%s-%s-crd", f.BaseName, suffix)
5152
kind := fmt.Sprintf("E2e-test-%s-%s-crd", f.BaseName, suffix)
5253
testcrd := &TestCrd{
@@ -57,19 +58,19 @@ func CreateMultiVersionTestCRD(f *Framework, group string, apiVersions []apiexte
5758
}
5859

5960
// Creating a custom resource definition for use by assorted tests.
60-
config, err := LoadConfig()
61+
config, err := framework.LoadConfig()
6162
if err != nil {
62-
Failf("failed to load config: %v", err)
63+
framework.Failf("failed to load config: %v", err)
6364
return nil, err
6465
}
6566
apiExtensionClient, err := crdclientset.NewForConfig(config)
6667
if err != nil {
67-
Failf("failed to initialize apiExtensionClient: %v", err)
68+
framework.Failf("failed to initialize apiExtensionClient: %v", err)
6869
return nil, err
6970
}
7071
dynamicClient, err := dynamic.NewForConfig(config)
7172
if err != nil {
72-
Failf("failed to initialize dynamic client: %v", err)
73+
framework.Failf("failed to initialize dynamic client: %v", err)
7374
return nil, err
7475
}
7576

@@ -85,7 +86,7 @@ func CreateMultiVersionTestCRD(f *Framework, group string, apiVersions []apiexte
8586
//create CRD and waits for the resource to be recognized and available.
8687
crd, err = fixtures.CreateNewCustomResourceDefinitionWatchUnsafe(crd, apiExtensionClient)
8788
if err != nil {
88-
Failf("failed to create CustomResourceDefinition: %v", err)
89+
framework.Failf("failed to create CustomResourceDefinition: %v", err)
8990
return nil, err
9091
}
9192

@@ -103,15 +104,15 @@ func CreateMultiVersionTestCRD(f *Framework, group string, apiVersions []apiexte
103104
testcrd.CleanUp = func() error {
104105
err := fixtures.DeleteCustomResourceDefinition(crd, apiExtensionClient)
105106
if err != nil {
106-
Failf("failed to delete CustomResourceDefinition(%s): %v", name, err)
107+
framework.Failf("failed to delete CustomResourceDefinition(%s): %v", name, err)
107108
}
108109
return err
109110
}
110111
return testcrd, nil
111112
}
112113

113114
// CreateTestCRD creates a new CRD specifically for the calling test.
114-
func CreateTestCRD(f *Framework) (*TestCrd, error) {
115+
func CreateTestCRD(f *framework.Framework) (*TestCrd, error) {
115116
group := fmt.Sprintf("%s-crd-test.k8s.io", f.BaseName)
116117
apiVersions := []apiextensionsv1beta1.CustomResourceDefinitionVersion{
117118
{
@@ -124,7 +125,7 @@ func CreateTestCRD(f *Framework) (*TestCrd, error) {
124125
}
125126

126127
// CreateTestCRD creates a new CRD specifically for the calling test.
127-
func CreateMultiVersionTestCRDWithV1Storage(f *Framework) (*TestCrd, error) {
128+
func CreateMultiVersionTestCRDWithV1Storage(f *framework.Framework) (*TestCrd, error) {
128129
group := fmt.Sprintf("%s-multiversion-crd-test.k8s.io", f.BaseName)
129130
apiVersions := []apiextensionsv1beta1.CustomResourceDefinitionVersion{
130131
{

0 commit comments

Comments
 (0)