@@ -17,6 +17,8 @@ limitations under the License.
1717package  v1beta1
1818
1919import  (
20+ 	"context" 
21+ 	"fmt" 
2022	"reflect" 
2123
2224	apierrors "k8s.io/apimachinery/pkg/api/errors" 
@@ -32,30 +34,51 @@ const AzureClusterTemplateImmutableMsg = "AzureClusterTemplate spec.template.spe
3234
3335// SetupWebhookWithManager will set up the webhook to be managed by the specified manager. 
3436func  (c  * AzureClusterTemplate ) SetupWebhookWithManager (mgr  ctrl.Manager ) error  {
37+ 	w  :=  new (azureClusterTemplateWebhook )
3538	return  ctrl .NewWebhookManagedBy (mgr ).
3639		For (c ).
40+ 		WithValidator (w ).
41+ 		WithDefaulter (w ).
3742		Complete ()
3843}
3944
4045// +kubebuilder:webhook:verbs=create;update,path=/validate-infrastructure-cluster-x-k8s-io-v1beta1-azureclustertemplate,mutating=false,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.cluster.x-k8s.io,resources=azureclustertemplates,versions=v1beta1,name=validation.azureclustertemplate.infrastructure.cluster.x-k8s.io,sideEffects=None,admissionReviewVersions=v1;v1beta1 
4146// +kubebuilder:webhook:verbs=create;update,path=/mutate-infrastructure-cluster-x-k8s-io-v1beta1-azureclustertemplate,mutating=true,failurePolicy=fail,matchPolicy=Equivalent,groups=infrastructure.cluster.x-k8s.io,resources=azureclustertemplates,versions=v1beta1,name=default.azureclustertemplate.infrastructure.cluster.x-k8s.io,sideEffects=None,admissionReviewVersions=v1;v1beta1 
4247
43- var  _  webhook.Defaulter  =  & AzureClusterTemplate {}
48+ type  azureClusterTemplateWebhook  struct {}
49+ 
50+ var  _  webhook.CustomDefaulter  =  & azureClusterTemplateWebhook {}
51+ 
52+ // Default implements webhook.CustomDefaulter so a webhook will be registered for the type. 
53+ func  (* azureClusterTemplateWebhook ) Default (_  context.Context , obj  runtime.Object ) error  {
54+ 	c , ok  :=  obj .(* AzureClusterTemplate )
55+ 	if  ! ok  {
56+ 		return  fmt .Errorf ("expected an AzureClusterTemplate object but got %T" , c )
57+ 	}
4458
45- // Default implements webhook.Defaulter so a webhook will be registered for the type. 
46- func  (c  * AzureClusterTemplate ) Default () {
4759	c .setDefaults ()
60+ 	return  nil 
4861}
4962
50- var  _  webhook.Validator  =  & AzureClusterTemplate {}
63+ var  _  webhook.CustomValidator  =  & azureClusterTemplateWebhook {}
64+ 
65+ // ValidateCreate implements webhook.CustomValidator so a webhook will be registered for the type. 
66+ func  (* azureClusterTemplateWebhook ) ValidateCreate (_  context.Context , obj  runtime.Object ) (admission.Warnings , error ) {
67+ 	c , ok  :=  obj .(* AzureClusterTemplate )
68+ 	if  ! ok  {
69+ 		return  nil , fmt .Errorf ("expected an AzureClusterTemplate object but got %T" , c )
70+ 	}
5171
52- // ValidateCreate implements webhook.Validator so a webhook will be registered for the type. 
53- func  (c  * AzureClusterTemplate ) ValidateCreate () (admission.Warnings , error ) {
5472	return  c .validateClusterTemplate ()
5573}
5674
57- // ValidateUpdate implements webhook.Validator so a webhook will be registered for the type. 
58- func  (c  * AzureClusterTemplate ) ValidateUpdate (oldRaw  runtime.Object ) (admission.Warnings , error ) {
75+ // ValidateUpdate implements webhook.CustomValidator so a webhook will be registered for the type. 
76+ func  (* azureClusterTemplateWebhook ) ValidateUpdate (_  context.Context , oldRaw , newObj  runtime.Object ) (admission.Warnings , error ) {
77+ 	c , ok  :=  newObj .(* AzureClusterTemplate )
78+ 	if  ! ok  {
79+ 		return  nil , fmt .Errorf ("expected an AzureClusterTemplate object but got %T" , c )
80+ 	}
81+ 
5982	var  allErrs  field.ErrorList 
6083	old  :=  oldRaw .(* AzureClusterTemplate )
6184	if  ! reflect .DeepEqual (c .Spec .Template .Spec , old .Spec .Template .Spec ) {
@@ -70,7 +93,7 @@ func (c *AzureClusterTemplate) ValidateUpdate(oldRaw runtime.Object) (admission.
7093	return  nil , apierrors .NewInvalid (GroupVersion .WithKind (AzureClusterTemplateKind ).GroupKind (), c .Name , allErrs )
7194}
7295
73- // ValidateDelete implements webhook.Validator  so a webhook will be registered for the type. 
74- func  (c   * AzureClusterTemplate ) ValidateDelete () (admission.Warnings , error ) {
96+ // ValidateDelete implements webhook.CustomValidator  so a webhook will be registered for the type. 
97+ func  (* azureClusterTemplateWebhook ) ValidateDelete (_  context. Context ,  _  runtime. Object ) (admission.Warnings , error ) {
7598	return  nil , nil 
7699}
0 commit comments