Skip to content

Commit

Permalink
internal/generate/clusterserviceversion: default admissionReviewVersi…
Browse files Browse the repository at this point in the history
…ons and sideEffects
  • Loading branch information
estroz committed Sep 17, 2020
1 parent f3a767b commit 1e8275a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 4 deletions.
7 changes: 7 additions & 0 deletions changelog/fragments/csv-whdescs-defaults.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
entries:
- description: >
Default a CSV's `spec.webhookDefinition[].admissionReviewVersions` to "v1beta1".
kind: addition
- description: >
Default a CSV's `spec.webhookDefinition[].sideEffects` to "None".
kind: addition
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,9 @@ func applyWebhooks(c *collector.Manifests, csv *operatorsv1alpha1.ClusterService
csv.Spec.WebhookDefinitions = webhookDescriptions
}

// The default AdmissionReviewVersions set in a CSV if not set in the source webhook.
var defaultAdmissionReviewVersions = []string{"v1beta1"}

// validatingToWebhookDescription transforms webhook into a WebhookDescription.
func validatingToWebhookDescription(webhook admissionregv1.ValidatingWebhook, depName string) operatorsv1alpha1.WebhookDescription {
description := operatorsv1alpha1.WebhookDescription{
Expand All @@ -303,6 +306,13 @@ func validatingToWebhookDescription(webhook admissionregv1.ValidatingWebhook, de
TimeoutSeconds: webhook.TimeoutSeconds,
AdmissionReviewVersions: webhook.AdmissionReviewVersions,
}
if len(description.AdmissionReviewVersions) == 0 {
description.AdmissionReviewVersions = defaultAdmissionReviewVersions
}
if description.SideEffects == nil {
seNone := admissionregv1.SideEffectClassNone
description.SideEffects = &seNone
}

if serviceRef := webhook.ClientConfig.Service; serviceRef != nil {
if serviceRef.Port != nil {
Expand Down Expand Up @@ -331,6 +341,13 @@ func mutatingToWebhookDescription(webhook admissionregv1.MutatingWebhook, depNam
AdmissionReviewVersions: webhook.AdmissionReviewVersions,
ReinvocationPolicy: webhook.ReinvocationPolicy,
}
if len(description.AdmissionReviewVersions) == 0 {
description.AdmissionReviewVersions = defaultAdmissionReviewVersions
}
if description.SideEffects == nil {
seNone := admissionregv1.SideEffectClassNone
description.SideEffects = &seNone
}

if serviceRef := webhook.ClientConfig.Service; serviceRef != nil {
if serviceRef.Port != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,8 @@ spec:
url: https://your.domain
version: 0.0.1
webhookdefinitions:
- admissionReviewVersions: null
- admissionReviewVersions:
- v1beta1
deploymentName: memcached-operator-controller-manager
failurePolicy: Fail
generateName: vmemcached.kb.io
Expand All @@ -198,10 +199,11 @@ spec:
- UPDATE
resources:
- memcacheds
sideEffects: null
sideEffects: None
type: ValidatingAdmissionWebhook
webhookPath: /validate-cache-my-domain-v1alpha1-memcached
- admissionReviewVersions: null
- admissionReviewVersions:
- v1beta1
deploymentName: memcached-operator-controller-manager
failurePolicy: Fail
generateName: mmemcached.kb.io
Expand All @@ -215,6 +217,6 @@ spec:
- UPDATE
resources:
- memcacheds
sideEffects: null
sideEffects: None
type: MutatingAdmissionWebhook
webhookPath: /mutate-cache-my-domain-v1alpha1-memcached

0 comments on commit 1e8275a

Please sign in to comment.