@@ -17,6 +17,9 @@ limitations under the License.
1717package v1alpha1
1818
1919import (
20+ "context"
21+ "fmt"
22+
2023 apierrors "k8s.io/apimachinery/pkg/api/errors"
2124 "k8s.io/apimachinery/pkg/runtime"
2225 "k8s.io/apimachinery/pkg/util/validation/field"
@@ -32,36 +35,51 @@ var runnerDeploymentLog = logf.Log.WithName("runnerdeployment-resource")
3235func (r * RunnerDeployment ) SetupWebhookWithManager (mgr ctrl.Manager ) error {
3336 return ctrl .NewWebhookManagedBy (mgr ).
3437 For (r ).
38+ WithDefaulter (& RunnerDeploymentDefaulter {}).
39+ WithValidator (& RunnerDeploymentValidator {}).
3540 Complete ()
3641}
3742
3843// +kubebuilder:webhook:path=/mutate-actions-summerwind-dev-v1alpha1-runnerdeployment,verbs=create;update,mutating=true,failurePolicy=fail,groups=actions.summerwind.dev,resources=runnerdeployments,versions=v1alpha1,name=mutate.runnerdeployment.actions.summerwind.dev,sideEffects=None,admissionReviewVersions=v1beta1
3944
40- var _ webhook.Defaulter = & RunnerDeployment {}
45+ var _ webhook.CustomDefaulter = & RunnerDeploymentDefaulter {}
46+
47+ type RunnerDeploymentDefaulter struct {}
4148
4249// Default implements webhook.Defaulter so a webhook will be registered for the type
43- func (r * RunnerDeployment ) Default () {
50+ func (* RunnerDeploymentDefaulter ) Default (context. Context , runtime. Object ) error {
4451 // Nothing to do.
52+ return nil
4553}
4654
4755// +kubebuilder:webhook:path=/validate-actions-summerwind-dev-v1alpha1-runnerdeployment,verbs=create;update,mutating=false,failurePolicy=fail,groups=actions.summerwind.dev,resources=runnerdeployments,versions=v1alpha1,name=validate.runnerdeployment.actions.summerwind.dev,sideEffects=None,admissionReviewVersions=v1beta1
4856
49- var _ webhook.Validator = & RunnerDeployment {}
57+ var _ webhook.CustomValidator = & RunnerDeploymentValidator {}
58+
59+ type RunnerDeploymentValidator struct {}
5060
5161// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
52- func (r * RunnerDeployment ) ValidateCreate () (admission.Warnings , error ) {
62+ func (* RunnerDeploymentValidator ) ValidateCreate (ctx context.Context , obj runtime.Object ) (admission.Warnings , error ) {
63+ r , ok := obj .(* RunnerDeployment )
64+ if ! ok {
65+ return nil , fmt .Errorf ("expected RunnerDeployment object, got %T" , obj )
66+ }
5367 runnerDeploymentLog .Info ("validate resource to be created" , "name" , r .Name )
5468 return nil , r .Validate ()
5569}
5670
5771// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
58- func (r * RunnerDeployment ) ValidateUpdate (old runtime.Object ) (admission.Warnings , error ) {
72+ func (* RunnerDeploymentValidator ) ValidateUpdate (ctx context.Context , old , obj runtime.Object ) (admission.Warnings , error ) {
73+ r , ok := obj .(* RunnerDeployment )
74+ if ! ok {
75+ return nil , fmt .Errorf ("expected RunnerDeployment object, got %T" , obj )
76+ }
5977 runnerDeploymentLog .Info ("validate resource to be updated" , "name" , r .Name )
6078 return nil , r .Validate ()
6179}
6280
6381// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
64- func (r * RunnerDeployment ) ValidateDelete () (admission.Warnings , error ) {
82+ func (* RunnerDeploymentValidator ) ValidateDelete (context. Context , runtime. Object ) (admission.Warnings , error ) {
6583 return nil , nil
6684}
6785
0 commit comments