@@ -85,8 +85,8 @@ func (blder *WebhookBuilder) WithLogConstructor(logConstructor func(base logr.Lo
8585
8686// RecoverPanic indicates whether panics caused by the webhook should be recovered.
8787// Defaults to true.
88- func (blder * WebhookBuilder ) RecoverPanic (recoverPanic * bool ) * WebhookBuilder {
89- blder .recoverPanic = recoverPanic
88+ func (blder * WebhookBuilder ) RecoverPanic (recoverPanic bool ) * WebhookBuilder {
89+ blder .recoverPanic = & recoverPanic
9090 return blder
9191}
9292
@@ -170,10 +170,18 @@ func (blder *WebhookBuilder) registerDefaultingWebhook() {
170170
171171func (blder * WebhookBuilder ) getDefaultingWebhook () * admission.Webhook {
172172 if defaulter := blder .customDefaulter ; defaulter != nil {
173- return admission .WithCustomDefaulter (blder .mgr .GetScheme (), blder .apiType , defaulter ).WithRecoverPanic (blder .recoverPanic )
173+ w := admission .WithCustomDefaulter (blder .mgr .GetScheme (), blder .apiType , defaulter )
174+ if blder .recoverPanic != nil {
175+ w = w .WithRecoverPanic (* blder .recoverPanic )
176+ }
177+ return w
174178 }
175179 if defaulter , ok := blder .apiType .(admission.Defaulter ); ok {
176- return admission .DefaultingWebhookFor (blder .mgr .GetScheme (), defaulter ).WithRecoverPanic (blder .recoverPanic )
180+ w := admission .DefaultingWebhookFor (blder .mgr .GetScheme (), defaulter )
181+ if blder .recoverPanic != nil {
182+ w = w .WithRecoverPanic (* blder .recoverPanic )
183+ }
184+ return w
177185 }
178186 log .Info (
179187 "skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called" ,
@@ -201,10 +209,18 @@ func (blder *WebhookBuilder) registerValidatingWebhook() {
201209
202210func (blder * WebhookBuilder ) getValidatingWebhook () * admission.Webhook {
203211 if validator := blder .customValidator ; validator != nil {
204- return admission .WithCustomValidator (blder .mgr .GetScheme (), blder .apiType , validator ).WithRecoverPanic (blder .recoverPanic )
212+ w := admission .WithCustomValidator (blder .mgr .GetScheme (), blder .apiType , validator )
213+ if blder .recoverPanic != nil {
214+ w = w .WithRecoverPanic (* blder .recoverPanic )
215+ }
216+ return w
205217 }
206218 if validator , ok := blder .apiType .(admission.Validator ); ok {
207- return admission .ValidatingWebhookFor (blder .mgr .GetScheme (), validator ).WithRecoverPanic (blder .recoverPanic )
219+ w := admission .ValidatingWebhookFor (blder .mgr .GetScheme (), validator )
220+ if blder .recoverPanic != nil {
221+ w = w .WithRecoverPanic (* blder .recoverPanic )
222+ }
223+ return w
208224 }
209225 log .Info (
210226 "skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called" ,
0 commit comments