Skip to content

Commit df18f48

Browse files
markmandelRobert Bailey
andauthored
Move apiregistration & admissionregistration to v1 (agones-dev#1918)
This moves our APIService, ValidatingWebhookConfiguration and MutatingWebhookConfiguration from v1betav1 to v1 This includes moving the Go library references as well. Work on agones-dev#1799 Co-authored-by: Robert Bailey <robertbailey@google.com>
1 parent e7a5b7d commit df18f48

20 files changed

Lines changed: 222 additions & 208 deletions

File tree

‎install/helm/agones/templates/extensions.yaml‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
{{- $cert := genSignedCert $cn nil (list $altName1 $altName2) 3650 $ca }}
1919
---
2020
{{- if .Values.agones.registerApiService }}
21-
apiVersion: apiregistration.k8s.io/v1beta1
21+
apiVersion: apiregistration.k8s.io/v1
2222
kind: APIService
2323
metadata:
2424
name: v1.allocation.agones.dev
@@ -44,7 +44,7 @@ spec:
4444
{{- end}}
4545
{{- if .Values.agones.registerWebhooks }}
4646
---
47-
apiVersion: admissionregistration.k8s.io/v1beta1
47+
apiVersion: admissionregistration.k8s.io/v1
4848
kind: ValidatingWebhookConfiguration
4949
metadata:
5050
name: agones-validation-webhook
@@ -56,6 +56,9 @@ metadata:
5656
heritage: {{ .Release.Service }}
5757
webhooks:
5858
- name: validations.agones.dev
59+
admissionReviewVersions:
60+
- v1
61+
sideEffects: None
5962
failurePolicy: Fail
6063
clientConfig:
6164
service:
@@ -98,7 +101,7 @@ webhooks:
98101
- UPDATE
99102

100103
---
101-
apiVersion: admissionregistration.k8s.io/v1beta1
104+
apiVersion: admissionregistration.k8s.io/v1
102105
kind: MutatingWebhookConfiguration
103106
metadata:
104107
name: agones-mutation-webhook
@@ -110,6 +113,9 @@ metadata:
110113
heritage: {{ .Release.Service }}
111114
webhooks:
112115
- name: mutations.agones.dev
116+
admissionReviewVersions:
117+
- v1
118+
sideEffects: None
113119
failurePolicy: Fail
114120
clientConfig:
115121
service:

‎install/yaml/install.yaml‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,7 +1807,7 @@ spec:
18071807
readOnly: true
18081808
---
18091809
# Source: agones/templates/extensions.yaml
1810-
apiVersion: apiregistration.k8s.io/v1beta1
1810+
apiVersion: apiregistration.k8s.io/v1
18111811
kind: APIService
18121812
metadata:
18131813
name: v1.allocation.agones.dev
@@ -1846,7 +1846,7 @@ spec:
18461846
# Default allocation client secret
18471847
---
18481848
# Source: agones/templates/extensions.yaml
1849-
apiVersion: admissionregistration.k8s.io/v1beta1
1849+
apiVersion: admissionregistration.k8s.io/v1
18501850
kind: MutatingWebhookConfiguration
18511851
metadata:
18521852
name: agones-mutation-webhook
@@ -1858,6 +1858,9 @@ metadata:
18581858
heritage: Helm
18591859
webhooks:
18601860
- name: mutations.agones.dev
1861+
admissionReviewVersions:
1862+
- v1
1863+
sideEffects: None
18611864
failurePolicy: Fail
18621865
clientConfig:
18631866
service:
@@ -1886,7 +1889,7 @@ globalDefault: false
18861889
description: "This priority class should be used for Agones service pods only."
18871890
---
18881891
# Source: agones/templates/extensions.yaml
1889-
apiVersion: admissionregistration.k8s.io/v1beta1
1892+
apiVersion: admissionregistration.k8s.io/v1
18901893
kind: ValidatingWebhookConfiguration
18911894
metadata:
18921895
name: agones-validation-webhook
@@ -1898,6 +1901,9 @@ metadata:
18981901
heritage: Helm
18991902
webhooks:
19001903
- name: validations.agones.dev
1904+
admissionReviewVersions:
1905+
- v1
1906+
sideEffects: None
19011907
failurePolicy: Fail
19021908
clientConfig:
19031909
service:

‎pkg/fleetautoscalers/controller.go‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import (
3636
"github.com/heptiolabs/healthcheck"
3737
"github.com/pkg/errors"
3838
"github.com/sirupsen/logrus"
39-
admv1beta1 "k8s.io/api/admission/v1beta1"
39+
admissionv1 "k8s.io/api/admission/v1"
4040
corev1 "k8s.io/api/core/v1"
4141
extclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
4242
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
@@ -94,8 +94,8 @@ func NewController(
9494
c.recorder = eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: "fleetautoscaler-controller"})
9595

9696
kind := autoscalingv1.Kind("FleetAutoscaler")
97-
wh.AddHandler("/validate", kind, admv1beta1.Create, c.validationHandler)
98-
wh.AddHandler("/validate", kind, admv1beta1.Update, c.validationHandler)
97+
wh.AddHandler("/validate", kind, admissionv1.Create, c.validationHandler)
98+
wh.AddHandler("/validate", kind, admissionv1.Update, c.validationHandler)
9999

100100
autoscaler.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
101101
AddFunc: c.workerqueue.Enqueue,
@@ -138,7 +138,7 @@ func (c *Controller) loggerForFleetAutoscaler(fas *autoscalingv1.FleetAutoscaler
138138

139139
// validationHandler will intercept when a FleetAutoscaler is created, and
140140
// validate its settings.
141-
func (c *Controller) validationHandler(review admv1beta1.AdmissionReview) (admv1beta1.AdmissionReview, error) {
141+
func (c *Controller) validationHandler(review admissionv1.AdmissionReview) (admissionv1.AdmissionReview, error) {
142142
obj := review.Request.Object
143143
fas := &autoscalingv1.FleetAutoscaler{}
144144
err := json.Unmarshal(obj.Raw, fas)

‎pkg/fleetautoscalers/controller_test.go‎

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"github.com/heptiolabs/healthcheck"
2929
"github.com/pkg/errors"
3030
"github.com/stretchr/testify/assert"
31-
admv1beta1 "k8s.io/api/admission/v1beta1"
31+
admissionv1 "k8s.io/api/admission/v1"
3232
admregv1b "k8s.io/api/admissionregistration/v1beta1"
3333
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3434
"k8s.io/apimachinery/pkg/runtime"
@@ -757,40 +757,40 @@ func newFakeController() (*Controller, agtesting.Mocks) {
757757
return c, m
758758
}
759759

760-
func newAdmissionReview(fas autoscalingv1.FleetAutoscaler) (admv1beta1.AdmissionReview, error) {
760+
func newAdmissionReview(fas autoscalingv1.FleetAutoscaler) (admissionv1.AdmissionReview, error) {
761761
raw, err := json.Marshal(fas)
762762
if err != nil {
763-
return admv1beta1.AdmissionReview{}, err
763+
return admissionv1.AdmissionReview{}, err
764764
}
765-
review := admv1beta1.AdmissionReview{
766-
Request: &admv1beta1.AdmissionRequest{
765+
review := admissionv1.AdmissionReview{
766+
Request: &admissionv1.AdmissionRequest{
767767
Kind: gvk,
768-
Operation: admv1beta1.Create,
768+
Operation: admissionv1.Create,
769769
Object: runtime.RawExtension{
770770
Raw: raw,
771771
},
772772
Namespace: "default",
773773
},
774-
Response: &admv1beta1.AdmissionResponse{Allowed: true},
774+
Response: &admissionv1.AdmissionResponse{Allowed: true},
775775
}
776776
return review, err
777777
}
778778

779-
func newInvalidAdmissionReview() (admv1beta1.AdmissionReview, error) {
779+
func newInvalidAdmissionReview() (admissionv1.AdmissionReview, error) {
780780
raw, err := json.Marshal([]byte(`1`))
781781
if err != nil {
782-
return admv1beta1.AdmissionReview{}, err
782+
return admissionv1.AdmissionReview{}, err
783783
}
784-
review := admv1beta1.AdmissionReview{
785-
Request: &admv1beta1.AdmissionRequest{
784+
review := admissionv1.AdmissionReview{
785+
Request: &admissionv1.AdmissionRequest{
786786
Kind: gvk,
787-
Operation: admv1beta1.Create,
787+
Operation: admissionv1.Create,
788788
Object: runtime.RawExtension{
789789
Raw: raw,
790790
},
791791
Namespace: "default",
792792
},
793-
Response: &admv1beta1.AdmissionResponse{Allowed: true},
793+
Response: &admissionv1.AdmissionResponse{Allowed: true},
794794
}
795795
return review, nil
796796
}

‎pkg/fleets/controller.go‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
"github.com/mattbaird/jsonpatch"
3535
"github.com/pkg/errors"
3636
"github.com/sirupsen/logrus"
37-
admv1beta1 "k8s.io/api/admission/v1beta1"
37+
admissionv1 "k8s.io/api/admission/v1"
3838
appsv1 "k8s.io/api/apps/v1"
3939
corev1 "k8s.io/api/core/v1"
4040
extclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
@@ -99,9 +99,9 @@ func NewController(
9999
eventBroadcaster.StartRecordingToSink(&typedcorev1.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")})
100100
c.recorder = eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: "fleet-controller"})
101101

102-
wh.AddHandler("/mutate", agonesv1.Kind("Fleet"), admv1beta1.Create, c.creationMutationHandler)
103-
wh.AddHandler("/validate", agonesv1.Kind("Fleet"), admv1beta1.Create, c.creationValidationHandler)
104-
wh.AddHandler("/validate", agonesv1.Kind("Fleet"), admv1beta1.Update, c.creationValidationHandler)
102+
wh.AddHandler("/mutate", agonesv1.Kind("Fleet"), admissionv1.Create, c.creationMutationHandler)
103+
wh.AddHandler("/validate", agonesv1.Kind("Fleet"), admissionv1.Create, c.creationValidationHandler)
104+
wh.AddHandler("/validate", agonesv1.Kind("Fleet"), admissionv1.Update, c.creationValidationHandler)
105105

106106
fInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
107107
AddFunc: c.workerqueue.Enqueue,
@@ -128,7 +128,7 @@ func NewController(
128128
// the default values on the Fleet
129129
// Should only be called on fleet create operations.
130130
// nolint:dupl
131-
func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview) (admv1beta1.AdmissionReview, error) {
131+
func (c *Controller) creationMutationHandler(review admissionv1.AdmissionReview) (admissionv1.AdmissionReview, error) {
132132
c.baseLogger.WithField("review", review).Debug("creationMutationHandler")
133133

134134
obj := review.Request.Object
@@ -159,7 +159,7 @@ func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview)
159159

160160
c.loggerForFleet(fleet).WithField("patch", string(jsn)).Infof("patch created!")
161161

162-
pt := admv1beta1.PatchTypeJSONPatch
162+
pt := admissionv1.PatchTypeJSONPatch
163163
review.Response.PatchType = &pt
164164
review.Response.Patch = jsn
165165

@@ -168,7 +168,7 @@ func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview)
168168

169169
// creationValidationHandler that validates a Fleet when it is created
170170
// Should only be called on Fleet create and Update operations.
171-
func (c *Controller) creationValidationHandler(review admv1beta1.AdmissionReview) (admv1beta1.AdmissionReview, error) {
171+
func (c *Controller) creationValidationHandler(review admissionv1.AdmissionReview) (admissionv1.AdmissionReview, error) {
172172
c.baseLogger.WithField("review", review).Debug("creationValidationHandler")
173173

174174
obj := review.Request.Object

‎pkg/fleets/controller_test.go‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import (
3535
"github.com/sirupsen/logrus"
3636
"github.com/stretchr/testify/assert"
3737
"github.com/stretchr/testify/require"
38-
admv1beta1 "k8s.io/api/admission/v1beta1"
38+
admissionv1 "k8s.io/api/admission/v1"
3939
appsv1 "k8s.io/api/apps/v1"
4040
autoscalingv1 "k8s.io/api/autoscaling/v1"
4141
corev1 "k8s.io/api/core/v1"
@@ -423,7 +423,7 @@ func TestControllerCreationMutationHandler(t *testing.T) {
423423
result, err := c.creationMutationHandler(review)
424424
require.NoError(t, err)
425425
assert.True(t, result.Response.Allowed)
426-
assert.Equal(t, admv1beta1.PatchTypeJSONPatch, *result.Response.PatchType)
426+
assert.Equal(t, admissionv1.PatchTypeJSONPatch, *result.Response.PatchType)
427427

428428
patch := &jsonpatch.ByPath{}
429429
err = json.Unmarshal(result.Response.Patch, patch)
@@ -1370,18 +1370,18 @@ func defaultGSSpec() *agonesv1.GameServerTemplateSpec {
13701370
}
13711371
}
13721372

1373-
func getAdmissionReview(raw []byte) admv1beta1.AdmissionReview {
1373+
func getAdmissionReview(raw []byte) admissionv1.AdmissionReview {
13741374
gvk := metav1.GroupVersionKind(agonesv1.SchemeGroupVersion.WithKind("Fleet"))
13751375

1376-
return admv1beta1.AdmissionReview{
1377-
Request: &admv1beta1.AdmissionRequest{
1376+
return admissionv1.AdmissionReview{
1377+
Request: &admissionv1.AdmissionRequest{
13781378
Kind: gvk,
1379-
Operation: admv1beta1.Create,
1379+
Operation: admissionv1.Create,
13801380
Object: runtime.RawExtension{
13811381
Raw: raw,
13821382
},
13831383
},
1384-
Response: &admv1beta1.AdmissionResponse{Allowed: true},
1384+
Response: &admissionv1.AdmissionResponse{Allowed: true},
13851385
}
13861386
}
13871387

‎pkg/gameservers/controller.go‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import (
3636
"github.com/mattbaird/jsonpatch"
3737
"github.com/pkg/errors"
3838
"github.com/sirupsen/logrus"
39-
admv1beta1 "k8s.io/api/admission/v1beta1"
39+
admissionv1 "k8s.io/api/admission/v1"
4040
corev1 "k8s.io/api/core/v1"
4141
extclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
4242
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1"
@@ -149,8 +149,8 @@ func NewController(
149149
health.AddLivenessCheck("gameserver-creation-workerqueue", healthcheck.Check(c.creationWorkerQueue.Healthy))
150150
health.AddLivenessCheck("gameserver-deletion-workerqueue", healthcheck.Check(c.deletionWorkerQueue.Healthy))
151151

152-
wh.AddHandler("/mutate", agonesv1.Kind("GameServer"), admv1beta1.Create, c.creationMutationHandler)
153-
wh.AddHandler("/validate", agonesv1.Kind("GameServer"), admv1beta1.Create, c.creationValidationHandler)
152+
wh.AddHandler("/mutate", agonesv1.Kind("GameServer"), admissionv1.Create, c.creationMutationHandler)
153+
wh.AddHandler("/validate", agonesv1.Kind("GameServer"), admissionv1.Create, c.creationValidationHandler)
154154

155155
gsInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
156156
AddFunc: c.enqueueGameServerBasedOnState,
@@ -219,7 +219,7 @@ func fastRateLimiter() workqueue.RateLimiter {
219219
// the default values on the GameServer
220220
// Should only be called on gameserver create operations.
221221
// nolint:dupl
222-
func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview) (admv1beta1.AdmissionReview, error) {
222+
func (c *Controller) creationMutationHandler(review admissionv1.AdmissionReview) (admissionv1.AdmissionReview, error) {
223223
obj := review.Request.Object
224224
gs := &agonesv1.GameServer{}
225225
err := json.Unmarshal(obj.Raw, gs)
@@ -247,7 +247,7 @@ func (c *Controller) creationMutationHandler(review admv1beta1.AdmissionReview)
247247
return review, errors.Wrapf(err, "error creating json for patch for GameServer %s", gs.ObjectMeta.Name)
248248
}
249249

250-
pt := admv1beta1.PatchTypeJSONPatch
250+
pt := admissionv1.PatchTypeJSONPatch
251251
review.Response.PatchType = &pt
252252
review.Response.Patch = jsonPatch
253253

@@ -268,7 +268,7 @@ func (c *Controller) loggerForGameServer(gs *agonesv1.GameServer) *logrus.Entry
268268

269269
// creationValidationHandler that validates a GameServer when it is created
270270
// Should only be called on gameserver create operations.
271-
func (c *Controller) creationValidationHandler(review admv1beta1.AdmissionReview) (admv1beta1.AdmissionReview, error) {
271+
func (c *Controller) creationValidationHandler(review admissionv1.AdmissionReview) (admissionv1.AdmissionReview, error) {
272272
obj := review.Request.Object
273273
gs := &agonesv1.GameServer{}
274274
err := json.Unmarshal(obj.Raw, gs)

0 commit comments

Comments
 (0)