Skip to content

Commit 2df56b5

Browse files
authored
Adding sort to reorder webhookDescription based on webhookType (#5177)
* Adding sort to reorder webhookDescription based on webhookType Signed-off-by: sujil02 <sujil.shah@gmail.com> * Changing webhook definations order in the test output file Signed-off-by: sujil02 <sujil.shah@gmail.com> * Adds change log entry and make generate output Signed-off-by: sujil02 <sujil.shah@gmail.com>
1 parent 0a3ef0b commit 2df56b5

File tree

7 files changed

+74
-62
lines changed

7 files changed

+74
-62
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
entries:
2+
- description: >
3+
Preserve the order of `webhookdefinitions` while generating bundles,
4+
by sorting `webhookDescriptions` in CSV generator.
5+
6+
kind: bugfix
7+
8+
breaking: false

internal/generate/clusterserviceversion/clusterserviceversion_updaters.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,10 @@ func applyWebhooks(c *collector.Manifests, csv *operatorsv1alpha1.ClusterService
336336
webhookDescriptions = append(webhookDescriptions, des...)
337337
}
338338
}
339+
// Sorts the WebhookDescriptions based on natural order of webhookDescriptions Type
340+
sort.Slice(webhookDescriptions, func(i, j int) bool {
341+
return webhookDescriptions[i].Type < webhookDescriptions[j].Type
342+
})
339343
csv.Spec.WebhookDefinitions = webhookDescriptions
340344
}
341345

internal/generate/testdata/clusterserviceversions/output/memcached-operator-multiVersion.yaml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,23 @@ spec:
208208
url: https://your.domain
209209
version: 0.0.1
210210
webhookdefinitions:
211+
- admissionReviewVersions: null
212+
containerPort: 443
213+
conversionCRDs:
214+
- memcacheds.cache.example.com
215+
deploymentName: memcached-operator-controller-manager
216+
generateName: cmemcacheds.kb.io
217+
sideEffects: None
218+
targetPort: 9443
219+
type: ConversionWebhook
220+
webhookPath: /convert
211221
- admissionReviewVersions:
212222
- v1
213223
- v1beta1
214224
containerPort: 443
215225
deploymentName: memcached-operator-controller-manager
216226
failurePolicy: Fail
217-
generateName: vmemcached.kb.io
227+
generateName: mmemcached.kb.io
218228
rules:
219229
- apiGroups:
220230
- cache.example.com
@@ -227,15 +237,15 @@ spec:
227237
- memcacheds
228238
sideEffects: None
229239
targetPort: 9443
230-
type: ValidatingAdmissionWebhook
231-
webhookPath: /validate-cache-example-com-v1alpha1-memcached
240+
type: MutatingAdmissionWebhook
241+
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
232242
- admissionReviewVersions:
233243
- v1
234244
- v1beta1
235245
containerPort: 443
236246
deploymentName: memcached-operator-controller-manager
237247
failurePolicy: Fail
238-
generateName: mmemcached.kb.io
248+
generateName: vmemcached.kb.io
239249
rules:
240250
- apiGroups:
241251
- cache.example.com
@@ -248,15 +258,5 @@ spec:
248258
- memcacheds
249259
sideEffects: None
250260
targetPort: 9443
251-
type: MutatingAdmissionWebhook
252-
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
253-
- admissionReviewVersions: null
254-
containerPort: 443
255-
conversionCRDs:
256-
- memcacheds.cache.example.com
257-
deploymentName: memcached-operator-controller-manager
258-
generateName: cmemcacheds.kb.io
259-
sideEffects: None
260-
targetPort: 9443
261-
type: ConversionWebhook
262-
webhookPath: /convert
261+
type: ValidatingAdmissionWebhook
262+
webhookPath: /validate-cache-example-com-v1alpha1-memcached

internal/generate/testdata/clusterserviceversions/output/memcached-operator.clusterserviceversion.yaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,23 @@ spec:
157157
type: AllNamespaces
158158
version: 0.0.1
159159
webhookdefinitions:
160+
- admissionReviewVersions:
161+
- v1beta1
162+
containerPort: 443
163+
conversionCRDs:
164+
- memcacheds.cache.example.com
165+
deploymentName: memcached-operator-controller-manager
166+
generateName: cmemcacheds.kb.io
167+
sideEffects: None
168+
targetPort: 9443
169+
type: ConversionWebhook
170+
webhookPath: /convert
160171
- admissionReviewVersions:
161172
- v1beta1
162173
containerPort: 443
163174
deploymentName: memcached-operator-controller-manager
164175
failurePolicy: Fail
165-
generateName: vmemcached.kb.io
176+
generateName: mmemcached.kb.io
166177
rules:
167178
- apiGroups:
168179
- cache.example.com
@@ -175,14 +186,14 @@ spec:
175186
- memcacheds
176187
sideEffects: None
177188
targetPort: 9443
178-
type: ValidatingAdmissionWebhook
179-
webhookPath: /validate-cache-my-domain-v1alpha1-memcached
189+
type: MutatingAdmissionWebhook
190+
webhookPath: /mutate-cache-my-domain-v1alpha1-memcached
180191
- admissionReviewVersions:
181192
- v1beta1
182193
containerPort: 443
183194
deploymentName: memcached-operator-controller-manager
184195
failurePolicy: Fail
185-
generateName: mmemcached.kb.io
196+
generateName: vmemcached.kb.io
186197
rules:
187198
- apiGroups:
188199
- cache.example.com
@@ -195,16 +206,5 @@ spec:
195206
- memcacheds
196207
sideEffects: None
197208
targetPort: 9443
198-
type: MutatingAdmissionWebhook
199-
webhookPath: /mutate-cache-my-domain-v1alpha1-memcached
200-
- admissionReviewVersions:
201-
- v1beta1
202-
containerPort: 443
203-
conversionCRDs:
204-
- memcacheds.cache.example.com
205-
deploymentName: memcached-operator-controller-manager
206-
generateName: cmemcacheds.kb.io
207-
sideEffects: None
208-
targetPort: 9443
209-
type: ConversionWebhook
210-
webhookPath: /convert
209+
type: ValidatingAdmissionWebhook
210+
webhookPath: /validate-cache-my-domain-v1alpha1-memcached

internal/generate/testdata/clusterserviceversions/output/with-ui-metadata.clusterserviceversion.yaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,23 @@ spec:
213213
url: https://your.domain
214214
version: 0.0.1
215215
webhookdefinitions:
216+
- admissionReviewVersions:
217+
- v1beta1
218+
containerPort: 443
219+
conversionCRDs:
220+
- memcacheds.cache.example.com
221+
deploymentName: memcached-operator-controller-manager
222+
generateName: cmemcacheds.kb.io
223+
sideEffects: None
224+
targetPort: 9443
225+
type: ConversionWebhook
226+
webhookPath: /convert
216227
- admissionReviewVersions:
217228
- v1beta1
218229
containerPort: 443
219230
deploymentName: memcached-operator-controller-manager
220231
failurePolicy: Fail
221-
generateName: vmemcached.kb.io
232+
generateName: mmemcached.kb.io
222233
rules:
223234
- apiGroups:
224235
- cache.example.com
@@ -231,14 +242,14 @@ spec:
231242
- memcacheds
232243
sideEffects: None
233244
targetPort: 9443
234-
type: ValidatingAdmissionWebhook
235-
webhookPath: /validate-cache-my-domain-v1alpha1-memcached
245+
type: MutatingAdmissionWebhook
246+
webhookPath: /mutate-cache-my-domain-v1alpha1-memcached
236247
- admissionReviewVersions:
237248
- v1beta1
238249
containerPort: 443
239250
deploymentName: memcached-operator-controller-manager
240251
failurePolicy: Fail
241-
generateName: mmemcached.kb.io
252+
generateName: vmemcached.kb.io
242253
rules:
243254
- apiGroups:
244255
- cache.example.com
@@ -251,16 +262,5 @@ spec:
251262
- memcacheds
252263
sideEffects: None
253264
targetPort: 9443
254-
type: MutatingAdmissionWebhook
255-
webhookPath: /mutate-cache-my-domain-v1alpha1-memcached
256-
- admissionReviewVersions:
257-
- v1beta1
258-
containerPort: 443
259-
conversionCRDs:
260-
- memcacheds.cache.example.com
261-
deploymentName: memcached-operator-controller-manager
262-
generateName: cmemcacheds.kb.io
263-
sideEffects: None
264-
targetPort: 9443
265-
type: ConversionWebhook
266-
webhookPath: /convert
265+
type: ValidatingAdmissionWebhook
266+
webhookPath: /validate-cache-my-domain-v1alpha1-memcached

testdata/go/v2/memcached-operator/bundle/manifests/memcached-operator.clusterserviceversion.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ spec:
197197
containerPort: 443
198198
deploymentName: memcached-operator-controller-manager
199199
failurePolicy: Fail
200-
generateName: vmemcached.kb.io
200+
generateName: mmemcached.kb.io
201201
rules:
202202
- apiGroups:
203203
- cache.example.com
@@ -210,14 +210,14 @@ spec:
210210
- memcacheds
211211
sideEffects: None
212212
targetPort: 9443
213-
type: ValidatingAdmissionWebhook
214-
webhookPath: /validate-cache-example-com-v1alpha1-memcached
213+
type: MutatingAdmissionWebhook
214+
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
215215
- admissionReviewVersions:
216216
- v1beta1
217217
containerPort: 443
218218
deploymentName: memcached-operator-controller-manager
219219
failurePolicy: Fail
220-
generateName: mmemcached.kb.io
220+
generateName: vmemcached.kb.io
221221
rules:
222222
- apiGroups:
223223
- cache.example.com
@@ -230,5 +230,5 @@ spec:
230230
- memcacheds
231231
sideEffects: None
232232
targetPort: 9443
233-
type: MutatingAdmissionWebhook
234-
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
233+
type: ValidatingAdmissionWebhook
234+
webhookPath: /validate-cache-example-com-v1alpha1-memcached

testdata/go/v3/memcached-operator/bundle/manifests/memcached-operator.clusterserviceversion.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ spec:
222222
containerPort: 443
223223
deploymentName: memcached-operator-controller-manager
224224
failurePolicy: Fail
225-
generateName: vmemcached.kb.io
225+
generateName: mmemcached.kb.io
226226
rules:
227227
- apiGroups:
228228
- cache.example.com
@@ -235,15 +235,15 @@ spec:
235235
- memcacheds
236236
sideEffects: None
237237
targetPort: 9443
238-
type: ValidatingAdmissionWebhook
239-
webhookPath: /validate-cache-example-com-v1alpha1-memcached
238+
type: MutatingAdmissionWebhook
239+
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
240240
- admissionReviewVersions:
241241
- v1
242242
- v1beta1
243243
containerPort: 443
244244
deploymentName: memcached-operator-controller-manager
245245
failurePolicy: Fail
246-
generateName: mmemcached.kb.io
246+
generateName: vmemcached.kb.io
247247
rules:
248248
- apiGroups:
249249
- cache.example.com
@@ -256,5 +256,5 @@ spec:
256256
- memcacheds
257257
sideEffects: None
258258
targetPort: 9443
259-
type: MutatingAdmissionWebhook
260-
webhookPath: /mutate-cache-example-com-v1alpha1-memcached
259+
type: ValidatingAdmissionWebhook
260+
webhookPath: /validate-cache-example-com-v1alpha1-memcached

0 commit comments

Comments
 (0)