@@ -85,8 +85,8 @@ func (blder *WebhookBuilder) WithLogConstructor(logConstructor func(base logr.Lo
85
85
86
86
// RecoverPanic indicates whether panics caused by the webhook should be recovered.
87
87
// 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
90
90
return blder
91
91
}
92
92
@@ -170,10 +170,18 @@ func (blder *WebhookBuilder) registerDefaultingWebhook() {
170
170
171
171
func (blder * WebhookBuilder ) getDefaultingWebhook () * admission.Webhook {
172
172
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
174
178
}
175
179
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
177
185
}
178
186
log .Info (
179
187
"skip registering a mutating webhook, object does not implement admission.Defaulter or WithDefaulter wasn't called" ,
@@ -201,10 +209,18 @@ func (blder *WebhookBuilder) registerValidatingWebhook() {
201
209
202
210
func (blder * WebhookBuilder ) getValidatingWebhook () * admission.Webhook {
203
211
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
205
217
}
206
218
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
208
224
}
209
225
log .Info (
210
226
"skip registering a validating webhook, object does not implement admission.Validator or WithValidator wasn't called" ,
0 commit comments