@@ -83,6 +83,7 @@ func (mw *azureManagedControlPlaneWebhook) Default(ctx context.Context, obj runt
8383 m .Spec .Version = setDefaultVersion (m .Spec .Version )
8484 m .Spec .SKU = setDefaultSku (m .Spec .SKU )
8585 m .Spec .AutoScalerProfile = setDefaultAutoScalerProfile (m .Spec .AutoScalerProfile )
86+ m .Spec .FleetsMember = setDefaultFleetsMember (m .Spec .FleetsMember , m .Labels )
8687
8788 if err := m .setDefaultSSHPublicKey (); err != nil {
8889 ctrl .Log .WithName ("AzureManagedControlPlaneWebHookLogger" ).Error (err , "setDefaultSSHPublicKey failed" )
@@ -260,6 +261,10 @@ func (mw *azureManagedControlPlaneWebhook) ValidateUpdate(ctx context.Context, o
260261 allErrs = append (allErrs , errs ... )
261262 }
262263
264+ if errs := m .validateFleetsMember (old ); len (errs ) > 0 {
265+ allErrs = append (allErrs , errs ... )
266+ }
267+
263268 if len (allErrs ) == 0 {
264269 return nil , m .Validate (mw .Client )
265270 }
@@ -687,6 +692,25 @@ func (m *AzureManagedControlPlane) validateOIDCIssuerProfileUpdate(old *AzureMan
687692 return allErrs
688693}
689694
695+ // validateFleetsMember validates a FleetsMember.
696+ func (m * AzureManagedControlPlane ) validateFleetsMember (old * AzureManagedControlPlane ) field.ErrorList {
697+ var allErrs field.ErrorList
698+
699+ if old .Spec .FleetsMember == nil || m .Spec .FleetsMember == nil {
700+ return allErrs
701+ }
702+ if old .Spec .FleetsMember .Name != "" && old .Spec .FleetsMember .Name != m .Spec .FleetsMember .Name {
703+ allErrs = append (allErrs ,
704+ field .Forbidden (
705+ field .NewPath ("Spec" , "FleetsMember" , "Name" ),
706+ "Name is immutable" ,
707+ ),
708+ )
709+ }
710+
711+ return allErrs
712+ }
713+
690714func validateName (name string , fldPath * field.Path ) field.ErrorList {
691715 var allErrs field.ErrorList
692716 if lName := strings .ToLower (name ); strings .Contains (lName , "microsoft" ) ||
0 commit comments