@@ -17,6 +17,7 @@ limitations under the License.
1717package v1beta2
1818
1919import (
20+ "context"
2021 "fmt"
2122
2223 "github.com/google/go-cmp/cmp"
@@ -36,19 +37,26 @@ var _ = ctrl.Log.WithName("awsclustercontrolleridentity-resource")
3637func (r * AWSClusterControllerIdentity ) SetupWebhookWithManager (mgr ctrl.Manager ) error {
3738 return ctrl .NewWebhookManagedBy (mgr ).
3839 For (r ).
40+ WithDefaulter (r ). // registers webhook.CustomDefaulter
41+ WithValidator (r ). // registers webhook.CustomValidator
3942 Complete ()
4043}
4144
4245// +kubebuilder:webhook:verbs=create;update,path=/validate-infrastructure-cluster-x-k8s-io-v1beta2-awsclustercontrolleridentity,mutating=false,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.cluster.x-k8s.io,resources=awsclustercontrolleridentities,versions=v1beta2,name=validation.awsclustercontrolleridentity.infrastructure.cluster.x-k8s.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
4346// +kubebuilder:webhook:verbs=create;update,path=/mutate-infrastructure-cluster-x-k8s-io-v1beta2-awsclustercontrolleridentity,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.cluster.x-k8s.io,resources=awsclustercontrolleridentities,versions=v1beta2,name=default.awsclustercontrolleridentity.infrastructure.cluster.x-k8s.io,sideEffects=None,admissionReviewVersions=v1;v1beta1
4447
4548var (
46- _ webhook.Validator = & AWSClusterControllerIdentity {}
47- _ webhook.Defaulter = & AWSClusterControllerIdentity {}
49+ _ webhook.CustomValidator = & AWSClusterControllerIdentity {}
50+ _ webhook.CustomDefaulter = & AWSClusterControllerIdentity {}
4851)
4952
5053// ValidateCreate will do any extra validation when creating an AWSClusterControllerIdentity.
51- func (r * AWSClusterControllerIdentity ) ValidateCreate () (admission.Warnings , error ) {
54+ func (r * AWSClusterControllerIdentity ) ValidateCreate (ctx context.Context , obj runtime.Object ) (warnings admission.Warnings , err error ) {
55+ r , ok := obj .(* AWSClusterControllerIdentity )
56+ if ! ok {
57+ return nil , fmt .Errorf ("expected *AWSClusterControllerIdentity, got %T" , obj )
58+ }
59+
5260 // Ensures AWSClusterControllerIdentity being singleton by only allowing "default" as name
5361 if r .Name != AWSClusterControllerIdentityName {
5462 return nil , field .Invalid (field .NewPath ("name" ),
@@ -67,12 +75,17 @@ func (r *AWSClusterControllerIdentity) ValidateCreate() (admission.Warnings, err
6775}
6876
6977// ValidateDelete allows you to add any extra validation when deleting an AWSClusterControllerIdentity.
70- func (r * AWSClusterControllerIdentity ) ValidateDelete () (admission.Warnings , error ) {
78+ func (r * AWSClusterControllerIdentity ) ValidateDelete (ctx context. Context , obj runtime. Object ) (warnings admission.Warnings , err error ) {
7179 return nil , nil
7280}
7381
7482// ValidateUpdate will do any extra validation when updating an AWSClusterControllerIdentity.
75- func (r * AWSClusterControllerIdentity ) ValidateUpdate (old runtime.Object ) (admission.Warnings , error ) {
83+ func (r * AWSClusterControllerIdentity ) ValidateUpdate (ctx context.Context , old runtime.Object , new runtime.Object ) (warnings admission.Warnings , err error ) {
84+ r , ok := new .(* AWSClusterControllerIdentity )
85+ if ! ok {
86+ return nil , fmt .Errorf ("expected *AWSClusterControllerIdentity, got %T" , new )
87+ }
88+
7689 oldP , ok := old .(* AWSClusterControllerIdentity )
7790 if ! ok {
7891 return nil , apierrors .NewBadRequest (fmt .Sprintf ("expected an AWSClusterControllerIdentity but got a %T" , old ))
@@ -99,6 +112,11 @@ func (r *AWSClusterControllerIdentity) ValidateUpdate(old runtime.Object) (admis
99112}
100113
101114// Default will set default values for the AWSClusterControllerIdentity.
102- func (r * AWSClusterControllerIdentity ) Default () {
115+ func (r * AWSClusterControllerIdentity ) Default (ctx context.Context , obj runtime.Object ) error {
116+ _ , ok := obj .(* AWSClusterControllerIdentity )
117+ if ! ok {
118+ return fmt .Errorf ("expected *AWSClusterControllerIdentity, got %T" , obj )
119+ }
103120 SetDefaults_Labels (& r .ObjectMeta )
121+ return nil
104122}
0 commit comments