@@ -58,7 +58,7 @@ func (blder *Builder) WithMutatePrefix(prefix string) *Builder {
5858 return blder
5959}
6060
61- // WithValidatePrefix sets a custom prefix for the mutate path of the webhook, default is '/validate-'
61+ // WithValidatePrefix sets a custom prefix for the validate path of the webhook, default is '/validate-'
6262func (blder * Builder ) WithValidatePrefix (prefix string ) * Builder {
6363 blder .prefixMutate = prefix
6464 return blder
@@ -80,6 +80,7 @@ func (blder *Builder) Complete(i interface{}) error {
8080 return fmt .Errorf ("validating prefix %q must start with '/'" , blder .prefixValidate )
8181 }
8282
83+ isWebhook := false
8384 if validator , ok := i .(Validator ); ok {
8485 w , err := blder .createAdmissionWebhook (withValidationHandler (validator , blder .apiType ))
8586 if err != nil {
@@ -89,6 +90,7 @@ func (blder *Builder) Complete(i interface{}) error {
8990 if err := blder .registerValidatingWebhook (w ); err != nil {
9091 return err
9192 }
93+ isWebhook = true
9294 }
9395
9496 if mutator , ok := i .(Mutator ); ok {
@@ -100,14 +102,19 @@ func (blder *Builder) Complete(i interface{}) error {
100102 if err := blder .registerMutatingWebhook (w ); err != nil {
101103 return err
102104 }
105+ isWebhook = true
106+ }
107+
108+ if ! isWebhook {
109+ return fmt .Errorf ("webhook instance %v does implement neither Mutator nor Validator interface" , i )
103110 }
104111
105112 return nil
106113}
107114
108115func (blder * Builder ) createAdmissionWebhook (handler Handler ) (* admission.Webhook , error ) {
109116 w := & admission.Webhook {
110- Handler : handler ,
117+ Handler : handler ,
111118 }
112119
113120 // inject scheme for decoder
0 commit comments