Skip to content

Commit 7e08045

Browse files
committed
Cleanup beta versions and support for 1.17 and 1.18 and add 1.22
1 parent 9380fe7 commit 7e08045

File tree

3 files changed

+45
-64
lines changed

3 files changed

+45
-64
lines changed

.circleci/config.yml

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ jobs:
145145
name: Run verification
146146
command: make
147147

148+
integration-test-k8s1-22:
149+
<<: *integration-test-base
150+
environment:
151+
<<: *integration-test-environment
152+
K8S_VERSION: v1.22.3
153+
148154
integration-test-k8s1-21:
149155
<<: *integration-test-base
150156
environment:
@@ -163,23 +169,14 @@ jobs:
163169
<<: *integration-test-environment
164170
K8S_VERSION: v1.19.2
165171

166-
integration-test-k8s1-18:
167-
<<: *integration-test-base
168-
environment:
169-
<<: *integration-test-environment
170-
K8S_VERSION: v1.18.9
171-
172-
integration-test-k8s1-17:
173-
<<: *integration-test-base
174-
environment:
175-
<<: *integration-test-environment
176-
K8S_VERSION: v1.17.12
177-
178172
workflows:
179173
version: 2
180174
ci:
181175
jobs:
182176
- check
177+
- integration-test-k8s1-22:
178+
requires:
179+
- check
183180
- integration-test-k8s1-21:
184181
requires:
185182
- check
@@ -189,9 +186,3 @@ workflows:
189186
- integration-test-k8s1-19:
190187
requires:
191188
- check
192-
- integration-test-k8s1-18:
193-
requires:
194-
- check
195-
- integration-test-k8s1-17:
196-
requires:
197-
- check

tests/integration_test.go

Lines changed: 28 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ import (
2020
"testing"
2121

2222
"emperror.dev/errors"
23-
admregv1beta1 "k8s.io/api/admissionregistration/v1beta1"
23+
admregv1 "k8s.io/api/admissionregistration/v1"
2424
appsv1 "k8s.io/api/apps/v1"
2525
"k8s.io/api/autoscaling/v2beta1"
2626
v1 "k8s.io/api/core/v1"
2727
v1beta12 "k8s.io/api/policy/v1beta1"
2828
rbacv1 "k8s.io/api/rbac/v1"
29-
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
29+
crdv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3030
"k8s.io/apimachinery/pkg/api/resource"
3131
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3232
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -554,44 +554,30 @@ func TestIntegration(t *testing.T) {
554554
},
555555
}),
556556
NewTestMatch("crd match",
557-
&v1beta1.CustomResourceDefinition{
557+
&crdv1.CustomResourceDefinition{
558558
ObjectMeta: metav1.ObjectMeta{
559559
Name: "tests.test.org",
560560
},
561-
Spec: v1beta1.CustomResourceDefinitionSpec{
561+
Spec: crdv1.CustomResourceDefinitionSpec{
562562
Group: "test.org",
563-
Names: v1beta1.CustomResourceDefinitionNames{
563+
Names: crdv1.CustomResourceDefinitionNames{
564564
Plural: "tests",
565565
Singular: "test",
566566
Kind: "Test",
567567
ListKind: "Tests",
568568
},
569-
Scope: v1beta1.NamespaceScoped,
570-
Versions: []v1beta1.CustomResourceDefinitionVersion{
569+
Scope: crdv1.NamespaceScoped,
570+
Versions: []crdv1.CustomResourceDefinitionVersion{
571571
{
572572
Name: "v1",
573573
Served: true,
574574
Storage: true,
575+
Schema: &crdv1.CustomResourceValidation{OpenAPIV3Schema: &crdv1.JSONSchemaProps{
576+
Type: "object",
577+
}},
575578
},
576579
},
577580
},
578-
}).withIgnoreVersions([]string{"v1.10"}),
579-
NewTestMatch("crd match for deprecated version spec",
580-
&v1beta1.CustomResourceDefinition{
581-
ObjectMeta: metav1.ObjectMeta{
582-
Name: "btests.test.org",
583-
},
584-
Spec: v1beta1.CustomResourceDefinitionSpec{
585-
Group: "test.org",
586-
Names: v1beta1.CustomResourceDefinitionNames{
587-
Plural: "btests",
588-
Singular: "btest",
589-
Kind: "Btest",
590-
ListKind: "Btests",
591-
},
592-
Scope: v1beta1.NamespaceScoped,
593-
Version: "v1",
594-
},
595581
}),
596582
NewTestMatch("daemonset match",
597583
&appsv1.DaemonSet{
@@ -685,34 +671,36 @@ func TestIntegration(t *testing.T) {
685671
},
686672
}),
687673
NewTestMatch("mutating webhook configuration",
688-
&admregv1beta1.MutatingWebhookConfiguration{
674+
&admregv1.MutatingWebhookConfiguration{
689675
ObjectMeta: metav1.ObjectMeta{
690676
GenerateName: "test-",
691677
},
692-
Webhooks: []admregv1beta1.MutatingWebhook{
678+
Webhooks: []admregv1.MutatingWebhook{
693679
{
694680
Name: "a.b.c",
695-
ClientConfig: admregv1beta1.WebhookClientConfig{
696-
Service: &admregv1beta1.ServiceReference{
681+
ClientConfig: admregv1.WebhookClientConfig{
682+
Service: &admregv1.ServiceReference{
697683
Name: "test",
698684
Namespace: testContext.Namespace,
699685
Path: strRef("/inject"),
700686
},
701687
CABundle: nil,
702688
},
703-
Rules: []admregv1beta1.RuleWithOperations{
689+
Rules: []admregv1.RuleWithOperations{
704690
{
705-
Operations: []admregv1beta1.OperationType{
706-
admregv1beta1.Create,
691+
Operations: []admregv1.OperationType{
692+
admregv1.Create,
707693
},
708-
Rule: admregv1beta1.Rule{
694+
Rule: admregv1.Rule{
709695
Resources: []string{"pods"},
710696
APIGroups: []string{"", "apps"},
711697
APIVersions: []string{"*"},
712-
Scope: scopeRef(admregv1beta1.AllScopes),
698+
Scope: scopeRef(admregv1.AllScopes),
713699
},
714700
},
715701
},
702+
SideEffects: sideEffectRef(admregv1.SideEffectClassNone),
703+
AdmissionReviewVersions: []string{"v1"},
716704
},
717705
},
718706
}),
@@ -798,8 +786,7 @@ func TestIntegration(t *testing.T) {
798786
Spec: v1.NodeSpec{
799787
PodCIDR: "10.0.0.0/24",
800788
},
801-
// ignore due to already removed field
802-
}).withIgnoreVersions([]string{"v1.10"}),
789+
}),
803790
NewTestDiff("node diff for podcidr",
804791
&v1.Node{
805792
ObjectMeta: metav1.ObjectMeta{GenerateName: "test-"},
@@ -810,8 +797,7 @@ func TestIntegration(t *testing.T) {
810797
withLocalChange(func(i interface{}) {
811798
n := i.(*v1.Node)
812799
n.Spec.PodCIDR = "10.0.0.1/24"
813-
// ignore due to already removed field
814-
}).withIgnoreVersions([]string{"v1.10"}),
800+
}),
815801
NewTestMatch("statefulset match for volumeclaimtemplates",
816802
&appsv1.StatefulSet{
817803
ObjectMeta: metav1.ObjectMeta{GenerateName: "test-", Namespace: "default"},
@@ -948,10 +934,14 @@ func versionPrefixMatch(s string, l []string) bool {
948934
return false
949935
}
950936

951-
func scopeRef(scopeType admregv1beta1.ScopeType) *admregv1beta1.ScopeType {
937+
func scopeRef(scopeType admregv1.ScopeType) *admregv1.ScopeType {
952938
return &scopeType
953939
}
954940

941+
func sideEffectRef(sideEffect admregv1.SideEffectClass) *admregv1.SideEffectClass {
942+
return &sideEffect
943+
}
944+
955945
func volumeModeRef(mode v1.PersistentVolumeMode) *v1.PersistentVolumeMode {
956946
return &mode
957947
}

tests/main_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ import (
2424

2525
"emperror.dev/errors"
2626
"github.com/banzaicloud/k8s-objectmatcher/patch"
27-
admissionregistrationv1beta1 "k8s.io/api/admissionregistration/v1beta1"
27+
admregv1 "k8s.io/api/admissionregistration/v1"
2828
appsv1 "k8s.io/api/apps/v1"
2929
"k8s.io/api/autoscaling/v2beta1"
3030
v1 "k8s.io/api/core/v1"
3131
policyv1beta1 "k8s.io/api/policy/v1beta1"
3232
rbacv1 "k8s.io/api/rbac/v1"
33-
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
33+
crdv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
3434
apiextension "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
3535
"k8s.io/apimachinery/pkg/api/meta"
3636
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -299,13 +299,13 @@ func testMatchOnObject(testItem *TestItem, ignoreField string) error {
299299
log.Printf("Failed to remove object %s %+v", existing.GetName(), err)
300300
}
301301
}()
302-
case *v1beta1.CustomResourceDefinition:
303-
existing, err = testContext.ExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(context.Background(), newObject.(*v1beta1.CustomResourceDefinition), metav1.CreateOptions{})
302+
case *crdv1.CustomResourceDefinition:
303+
existing, err = testContext.ExtensionsClient.ApiextensionsV1().CustomResourceDefinitions().Create(context.Background(), newObject.(*crdv1.CustomResourceDefinition), metav1.CreateOptions{})
304304
if err != nil {
305305
return errors.WrapWithDetails(err, "failed to create object", "object", newObject)
306306
}
307307
defer func() {
308-
err = testContext.ExtensionsClient.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(context.Background(), existing.GetName(), deleteOptions)
308+
err = testContext.ExtensionsClient.ApiextensionsV1().CustomResourceDefinitions().Delete(context.Background(), existing.GetName(), deleteOptions)
309309
if err != nil {
310310
log.Printf("Failed to remove object %s %+v", existing.GetName(), err)
311311
}
@@ -343,13 +343,13 @@ func testMatchOnObject(testItem *TestItem, ignoreField string) error {
343343
log.Printf("Failed to remove object %s %+v", existing.GetName(), err)
344344
}
345345
}()
346-
case *admissionregistrationv1beta1.MutatingWebhookConfiguration:
347-
existing, err = testContext.Client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().Create(context.Background(), newObject.(*admissionregistrationv1beta1.MutatingWebhookConfiguration), metav1.CreateOptions{})
346+
case *admregv1.MutatingWebhookConfiguration:
347+
existing, err = testContext.Client.AdmissionregistrationV1().MutatingWebhookConfigurations().Create(context.Background(), newObject.(*admregv1.MutatingWebhookConfiguration), metav1.CreateOptions{})
348348
if err != nil {
349349
return errors.WrapWithDetails(err, "failed to create object", "object", newObject)
350350
}
351351
defer func() {
352-
err = testContext.Client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().Delete(context.Background(), existing.GetName(), deleteOptions)
352+
err = testContext.Client.AdmissionregistrationV1().MutatingWebhookConfigurations().Delete(context.Background(), existing.GetName(), deleteOptions)
353353
if err != nil {
354354
log.Printf("Failed to remove object %s %+v", existing.GetName(), err)
355355
}

0 commit comments

Comments
 (0)