@@ -17,55 +17,62 @@ limitations under the License.
17
17
package v1beta2
18
18
19
19
import (
20
+ "context"
21
+ "fmt"
20
22
apierrors "k8s.io/apimachinery/pkg/api/errors"
21
23
"k8s.io/apimachinery/pkg/runtime"
22
24
"k8s.io/apimachinery/pkg/runtime/schema"
23
25
"k8s.io/apimachinery/pkg/util/validation/field"
24
26
25
27
ctrl "sigs.k8s.io/controller-runtime"
26
- logf "sigs.k8s.io/controller-runtime/pkg/log"
27
28
"sigs.k8s.io/controller-runtime/pkg/webhook"
28
29
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
29
30
)
30
31
31
- // log is for logging in this package.
32
- var ibmpowervsmachinelog = logf . Log . WithName ( "ibmpowervsmachine-resource" )
32
+ //+kubebuilder:webhook:path=/mutate-infrastructure-cluster-x-k8s-io-v1beta2-ibmpowervsmachine,mutating=true,failurePolicy=fail,groups=infrastructure.cluster.x-k8s.io,resources=ibmpowervsmachines,verbs=create;update,versions=v1beta2,name=mibmpowervsmachine.kb.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
33
+ //+kubebuilder:webhook:verbs=create;update,path=/validate-infrastructure-cluster-x-k8s-io-v1beta2-ibmpowervsmachine,mutating=false,failurePolicy=fail,groups=infrastructure.cluster.x-k8s.io,resources=ibmpowervsmachines,versions=v1beta2,name=vibmpowervsmachine.kb.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
33
34
34
35
func (r * IBMPowerVSMachine ) SetupWebhookWithManager (mgr ctrl.Manager ) error {
35
36
return ctrl .NewWebhookManagedBy (mgr ).
36
- For (r ).
37
+ For (& IBMPowerVSMachine {}).
38
+ WithValidator (r ).
39
+ WithDefaulter (r ).
37
40
Complete ()
38
41
}
39
42
40
- //+kubebuilder:webhook:path=/mutate-infrastructure-cluster-x-k8s-io-v1beta2-ibmpowervsmachine,mutating=true,failurePolicy=fail,groups=infrastructure.cluster.x-k8s.io,resources=ibmpowervsmachines,verbs=create;update,versions=v1beta2,name=mibmpowervsmachine.kb.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
41
-
42
- var _ webhook.Defaulter = & IBMPowerVSMachine {}
43
+ var _ webhook.CustomDefaulter = & IBMPowerVSMachine {}
44
+ var _ webhook.CustomValidator = & IBMPowerVSMachine {}
43
45
44
46
// Default implements webhook.Defaulter so a webhook will be registered for the type.
45
- func (r * IBMPowerVSMachine ) Default () {
46
- ibmpowervsmachinelog .Info ("default" , "name" , r .Name )
47
- defaultIBMPowerVSMachineSpec (& r .Spec )
47
+ func (r * IBMPowerVSMachine ) Default (_ context.Context , obj runtime.Object ) error {
48
+ objValue , ok := obj .(* IBMPowerVSMachine )
49
+ if ! ok {
50
+ return apierrors .NewBadRequest (fmt .Sprintf ("expected a IBMPowerVSMachine but got a %T" , obj ))
51
+ }
52
+ defaultIBMPowerVSMachineSpec (& objValue .Spec )
53
+ return nil
48
54
}
49
55
50
- //+kubebuilder:webhook:verbs=create;update,path=/validate-infrastructure-cluster-x-k8s-io-v1beta2-ibmpowervsmachine,mutating=false,failurePolicy=fail,groups=infrastructure.cluster.x-k8s.io,resources=ibmpowervsmachines,versions=v1beta2,name=vibmpowervsmachine.kb.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
51
-
52
- var _ webhook.Validator = & IBMPowerVSMachine {}
53
-
54
56
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
55
- func (r * IBMPowerVSMachine ) ValidateCreate () (admission.Warnings , error ) {
56
- ibmpowervsmachinelog .Info ("validate create" , "name" , r .Name )
57
- return r .validateIBMPowerVSMachine ()
57
+ func (r * IBMPowerVSMachine ) ValidateCreate (_ context.Context , obj runtime.Object ) (admission.Warnings , error ) {
58
+ objValue , ok := obj .(* IBMPowerVSMachine )
59
+ if ! ok {
60
+ return nil , apierrors .NewBadRequest (fmt .Sprintf ("expected a IBMPowerVSMachine but got a %T" , obj ))
61
+ }
62
+ return objValue .validateIBMPowerVSMachine ()
58
63
}
59
64
60
65
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type.
61
- func (r * IBMPowerVSMachine ) ValidateUpdate (_ runtime.Object ) (admission.Warnings , error ) {
62
- ibmpowervsmachinelog .Info ("validate update" , "name" , r .Name )
63
- return r .validateIBMPowerVSMachine ()
66
+ func (r * IBMPowerVSMachine ) ValidateUpdate (_ context.Context , _ , newObj runtime.Object ) (warnings admission.Warnings , err error ) {
67
+ newObjValue , ok := newObj .(* IBMPowerVSMachine )
68
+ if ! ok {
69
+ return nil , apierrors .NewBadRequest (fmt .Sprintf ("expected a IBMPowerVSMachine but got a %T" , newObj ))
70
+ }
71
+ return newObjValue .validateIBMPowerVSMachine ()
64
72
}
65
73
66
74
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type.
67
- func (r * IBMPowerVSMachine ) ValidateDelete () (admission.Warnings , error ) {
68
- ibmpowervsmachinelog .Info ("validate delete" , "name" , r .Name )
75
+ func (r * IBMPowerVSMachine ) ValidateDelete (_ context.Context , _ runtime.Object ) (admission.Warnings , error ) {
69
76
return nil , nil
70
77
}
71
78
0 commit comments