@@ -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."""
@@ -7680,13 +7695,6 @@ def _setup_azure_monitor_logs(self, mc: ManagedCluster) -> None:
76807695
76817696 mc .addon_profiles [existing_key ] = addon_profile
76827697 self .context .set_intermediate ("monitoring_addon_enabled" , True , overwrite_exists = True )
7683- # Call ensure_container_insights_for_monitoring with all parameters (similar to postprocessing)
7684- if (mc .addon_profiles and
7685- existing_key in mc .addon_profiles and
7686- mc .addon_profiles [existing_key ].enabled ):
7687-
7688- # Set intermediate value to trigger postprocessing
7689- self .context .set_intermediate ("monitoring_addon_postprocessing_required" , True , overwrite_exists = True )
76907698
76917699 def _disable_azure_monitor_logs (self , mc : ManagedCluster ) -> None :
76927700 """Disable Azure Monitor logs configuration."""
@@ -7770,8 +7778,9 @@ def _disable_azure_monitor_logs(self, mc: ManagedCluster) -> None:
77707778 # Now disable the addon and clear configuration
77717779 mc .addon_profiles [addon_key ].enabled = False
77727780
7773- # Clear the config to remove old workspace resource ID and other settings
7774- mc .addon_profiles [addon_key ].config = None
7781+ # Use empty dict instead of None - setting config=None causes the SDK serializer
7782+ # to omit the config key entirely, which Azure interprets as "keep existing config"
7783+ mc .addon_profiles [addon_key ].config = {}
77757784
77767785 # Also disable OpenTelemetry logs when disabling Azure Monitor logs
77777786 if opentelemetry_logs_enabled :
0 commit comments