@@ -8316,31 +8316,46 @@ def update_network_profile_advanced_networking(self, mc: ManagedCluster) -> Mana
83168316 acns_advanced_networkpolicies = self .context .get_acns_advanced_networkpolicies ()
83178317 acns_transit_encryption = self .context .get_acns_transit_encryption_type ()
83188318 if acns_enabled is not None :
8319- acns = self .models .AdvancedNetworking (
8320- enabled = acns_enabled ,
8321- )
8319+ # Preserve existing advanced_networking settings, only overwrite fields the user specified
8320+ if mc .network_profile .advanced_networking is None :
8321+ mc .network_profile .advanced_networking = self .models .AdvancedNetworking ()
8322+ mc .network_profile .advanced_networking .enabled = acns_enabled
8323+ # When disabling ACNS, explicitly disable sub-features for a consistent payload
8324+ if not acns_enabled :
8325+ if mc .network_profile .advanced_networking .observability is not None :
8326+ mc .network_profile .advanced_networking .observability .enabled = False
8327+ if mc .network_profile .advanced_networking .security is not None :
8328+ mc .network_profile .advanced_networking .security .enabled = False
83228329 if acns_observability is not None :
8323- acns .observability = self .models .AdvancedNetworkingObservability (
8324- enabled = acns_observability ,
8325- )
8330+ if mc .network_profile .advanced_networking .observability is None :
8331+ mc .network_profile .advanced_networking .observability = (
8332+ self .models .AdvancedNetworkingObservability ()
8333+ )
8334+ mc .network_profile .advanced_networking .observability .enabled = acns_observability
83268335 if acns_security is not None :
8327- acns .security = self .models .AdvancedNetworkingSecurity (
8328- enabled = acns_security ,
8329- )
8336+ if mc .network_profile .advanced_networking .security is None :
8337+ mc .network_profile .advanced_networking .security = (
8338+ self .models .AdvancedNetworkingSecurity ()
8339+ )
8340+ mc .network_profile .advanced_networking .security .enabled = acns_security
83308341 if acns_advanced_networkpolicies is not None :
8331- if acns .security is None :
8332- acns . security = self . models . AdvancedNetworkingSecurity (
8333- advanced_network_policies = acns_advanced_networkpolicies
8342+ if mc . network_profile . advanced_networking .security is None :
8343+ mc . network_profile . advanced_networking . security = (
8344+ self . models . AdvancedNetworkingSecurity ()
83348345 )
8335- else :
8336- acns .security .advanced_network_policies = acns_advanced_networkpolicies
8346+ mc .network_profile .advanced_networking .security .advanced_network_policies = (
8347+ acns_advanced_networkpolicies
8348+ )
83378349 if acns_transit_encryption is not None :
8338- if acns .security is None :
8339- acns .security = self .models .AdvancedNetworkingSecurity ()
8340- acns .security .transit_encryption = self .models .AdvancedNetworkingSecurityTransitEncryption (
8341- type = acns_transit_encryption ,
8350+ if mc .network_profile .advanced_networking .security is None :
8351+ mc .network_profile .advanced_networking .security = (
8352+ self .models .AdvancedNetworkingSecurity ()
8353+ )
8354+ mc .network_profile .advanced_networking .security .transit_encryption = (
8355+ self .models .AdvancedNetworkingSecurityTransitEncryption (
8356+ type = acns_transit_encryption ,
8357+ )
83428358 )
8343- mc .network_profile .advanced_networking = acns
83448359 elif acns_transit_encryption is not None :
83458360 if (mc .network_profile .advanced_networking is None or
83468361 not mc .network_profile .advanced_networking .enabled ):
0 commit comments