@@ -1032,8 +1032,12 @@ def get_container_network_logs(self, mc: ManagedCluster) -> Union[bool, None]:
10321032 )
10331033 monitoring_already_enabled = (
10341034 mc .addon_profiles and
1035- mc .addon_profiles .get ("omsagent" ) and
1036- mc .addon_profiles ["omsagent" ].enabled
1035+ (
1036+ (mc .addon_profiles .get ("omsagent" ) and
1037+ mc .addon_profiles ["omsagent" ].enabled ) or
1038+ (mc .addon_profiles .get (CONST_MONITORING_ADDON_NAME_CAMELCASE ) and
1039+ mc .addon_profiles [CONST_MONITORING_ADDON_NAME_CAMELCASE ].enabled )
1040+ )
10371041 )
10381042 monitoring_enabled = monitoring_being_enabled or monitoring_already_enabled
10391043 if not acns_enabled or not monitoring_enabled :
@@ -4566,16 +4570,27 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
45664570 }
45674571 mc .addon_profiles [CONST_MONITORING_ADDON_NAME ] = addon_profile
45684572
4569- self .context .set_intermediate ("monitoring_addon_enabled" , True , overwrite_exists = True )
4570-
4571- # Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
4572- CONST_MONITORING_ADDON_NAME = addon_consts .get ("CONST_MONITORING_ADDON_NAME" )
4573- if (mc .addon_profiles and
4574- CONST_MONITORING_ADDON_NAME in mc .addon_profiles and
4575- mc .addon_profiles [CONST_MONITORING_ADDON_NAME ].enabled ):
4573+ # Create DCR before the cluster is created (matching base class build_monitoring_addon_profile pattern).
4574+ # The DCRA will be created later in postprocessing_after_mc_created.
4575+ self .context .external_functions .ensure_container_insights_for_monitoring (
4576+ self .cmd ,
4577+ addon_profile ,
4578+ self .context .get_subscription_id (),
4579+ self .context .get_resource_group_name (),
4580+ self .context .get_name (),
4581+ self .context .get_location (),
4582+ remove_monitoring = False ,
4583+ aad_route = self .context .get_enable_msi_auth_for_monitoring (),
4584+ create_dcr = True ,
4585+ create_dcra = False ,
4586+ enable_syslog = self .context .get_enable_syslog (),
4587+ data_collection_settings = self .context .get_data_collection_settings (),
4588+ is_private_cluster = self .context .get_enable_private_cluster (),
4589+ ampls_resource_id = self .context .get_ampls_resource_id (),
4590+ enable_high_log_scale_mode = self .context .get_enable_high_log_scale_mode (),
4591+ )
45764592
4577- # Set intermediate value to trigger postprocessing
4578- self .context .set_intermediate ("monitoring_addon_postprocessing_required" , True , overwrite_exists = True )
4593+ self .context .set_intermediate ("monitoring_addon_enabled" , True , overwrite_exists = True )
45794594
45804595 def _setup_opentelemetry_metrics (self , mc : ManagedCluster ) -> None :
45814596 """Set up OpenTelemetry metrics configuration."""
@@ -7652,13 +7667,6 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76527667
76537668 mc .addon_profiles [existing_key ] = addon_profile
76547669 self .context .set_intermediate ("monitoring_addon_enabled" , True , overwrite_exists = True )
7655- # Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
7656- if (mc .addon_profiles and
7657- existing_key in mc .addon_profiles and
7658- mc .addon_profiles [existing_key ].enabled ):
7659-
7660- # Set intermediate value to trigger postprocessing
7661- self .context .set_intermediate ("monitoring_addon_postprocessing_required" , True , overwrite_exists = True )
76627670
76637671 def _disable_azure_monitor_logs (self , mc : ManagedCluster ) -> None :
76647672 """Disable Azure Monitor logs configuration."""
@@ -7742,8 +7750,9 @@ def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
77427750 # Now disable the addon and clear configuration
77437751 mc .addon_profiles [addon_key ].enabled = False
77447752
7745- # Clear the config to remove old workspace resource ID and other settings
7746- mc .addon_profiles [addon_key ].config = None
7753+ # Use empty dict instead of None - setting config=None causes the SDK serializer
7754+ # to omit the config key entirely, which Azure interprets as "keep existing config"
7755+ mc .addon_profiles [addon_key ].config = {}
77477756
77487757 # Also disable OpenTelemetry logs when disabling Azure Monitor logs
77497758 if opentelemetry_logs_enabled :
0 commit comments