@@ -5670,41 +5670,61 @@ def update_acns_in_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
56705670 """
56715671 self ._ensure_mc (mc )
56725672
5673- acns = None
56745673 (acns_enabled , acns_observability_enabled , acns_security_enabled ) = self .context .get_acns_enablement ()
56755674 acns_advanced_networkpolicies = self .context .get_acns_advanced_networkpolicies ()
56765675 acns_transit_encryption_type = self .context .get_acns_transit_encryption_type ()
56775676 acns_datapath_acceleration_mode = self .context .get_acns_datapath_acceleration_mode ()
56785677 if acns_enabled is not None :
5679- acns = self .models .AdvancedNetworking (
5680- enabled = acns_enabled ,
5681- )
5678+ # Preserve existing advanced_networking settings, only overwrite fields the user specified
5679+ if mc .network_profile .advanced_networking is None :
5680+ mc .network_profile .advanced_networking = self .models .AdvancedNetworking ()
5681+ mc .network_profile .advanced_networking .enabled = acns_enabled
5682+ # When disabling ACNS, explicitly disable sub-features for a consistent payload
5683+ if not acns_enabled :
5684+ if mc .network_profile .advanced_networking .observability is not None :
5685+ mc .network_profile .advanced_networking .observability .enabled = False
5686+ if mc .network_profile .advanced_networking .security is not None :
5687+ mc .network_profile .advanced_networking .security .enabled = False
56825688 if acns_observability_enabled is not None :
5683- acns .observability = self .models .AdvancedNetworkingObservability (
5684- enabled = acns_observability_enabled ,
5685- )
5689+ if mc .network_profile .advanced_networking .observability is None :
5690+ mc .network_profile .advanced_networking .observability = (
5691+ self .models .AdvancedNetworkingObservability ()
5692+ )
5693+ mc .network_profile .advanced_networking .observability .enabled = acns_observability_enabled
56865694 if acns_security_enabled is not None :
5687- acns .security = self .models .AdvancedNetworkingSecurity (
5688- enabled = acns_security_enabled ,
5689- )
5695+ if mc .network_profile .advanced_networking .security is None :
5696+ mc .network_profile .advanced_networking .security = (
5697+ self .models .AdvancedNetworkingSecurity ()
5698+ )
5699+ mc .network_profile .advanced_networking .security .enabled = acns_security_enabled
56905700 if acns_advanced_networkpolicies is not None :
5691- if acns .security is None :
5692- acns . security = self . models . AdvancedNetworkingSecurity (
5693- advanced_network_policies = acns_advanced_networkpolicies
5701+ if mc . network_profile . advanced_networking .security is None :
5702+ mc . network_profile . advanced_networking . security = (
5703+ self . models . AdvancedNetworkingSecurity ()
56945704 )
5695- else :
5696- acns .security .advanced_network_policies = acns_advanced_networkpolicies
5705+ mc .network_profile .advanced_networking .security .advanced_network_policies = (
5706+ acns_advanced_networkpolicies
5707+ )
56975708 if acns_transit_encryption_type is not None :
5698- if acns .security is None :
5699- acns .security = self .models .AdvancedNetworkingSecurity ()
5700- if acns .security .transit_encryption is None :
5701- acns .security .transit_encryption = self .models .AdvancedNetworkingSecurityTransitEncryption ()
5702- acns .security .transit_encryption .type = acns_transit_encryption_type
5709+ if mc .network_profile .advanced_networking .security is None :
5710+ mc .network_profile .advanced_networking .security = (
5711+ self .models .AdvancedNetworkingSecurity ()
5712+ )
5713+ if mc .network_profile .advanced_networking .security .transit_encryption is None :
5714+ mc .network_profile .advanced_networking .security .transit_encryption = (
5715+ self .models .AdvancedNetworkingSecurityTransitEncryption ()
5716+ )
5717+ mc .network_profile .advanced_networking .security .transit_encryption .type = (
5718+ acns_transit_encryption_type
5719+ )
57035720 if acns_datapath_acceleration_mode is not None :
5704- if acns .performance is None :
5705- acns .performance = self .models .AdvancedNetworkingPerformance ()
5706- acns .performance .acceleration_mode = acns_datapath_acceleration_mode
5707- mc .network_profile .advanced_networking = acns
5721+ if mc .network_profile .advanced_networking .performance is None :
5722+ mc .network_profile .advanced_networking .performance = (
5723+ self .models .AdvancedNetworkingPerformance ()
5724+ )
5725+ mc .network_profile .advanced_networking .performance .acceleration_mode = (
5726+ acns_datapath_acceleration_mode
5727+ )
57085728 return mc
57095729
57105730 def update_monitoring_profile_flow_logs (self , mc : ManagedCluster ) -> ManagedCluster :
0 commit comments