@@ -5414,6 +5414,32 @@ def get_upgrade_override_until(self) -> Union[str, None]:
54145414 # this parameter does not need validation
54155415 return self .raw_param .get ("upgrade_override_until" )
54165416
5417+ def get_ai_toolchain_operator (self , enable_validation : bool = False ) -> bool :
5418+ """Internal function to obtain the value of enable_ai_toolchain_operator.
5419+ When enabled, if both enable_ai_toolchain_operator and
5420+ disable_ai_toolchain_operator are specified, raise
5421+ a MutuallyExclusiveArgumentError.
5422+ :return: bool
5423+ """
5424+ enable_ai_toolchain_operator = self .raw_param .get ("enable_ai_toolchain_operator" )
5425+ # This parameter does not need dynamic completion.
5426+ if enable_validation :
5427+ if enable_ai_toolchain_operator and self .get_disable_ai_toolchain_operator ():
5428+ raise MutuallyExclusiveArgumentError (
5429+ "Cannot specify --enable-ai-toolchain-operator and "
5430+ "--disable-ai-toolchain-operator at the same time. "
5431+ )
5432+
5433+ return enable_ai_toolchain_operator
5434+
5435+ def get_disable_ai_toolchain_operator (self ) -> bool :
5436+ """Obtain the value of disable_ai_toolchain_operator.
5437+ :return: bool
5438+ """
5439+ # Note: No need to check for mutually exclusive parameter with enable-ai-toolchain-operator here
5440+ # because it's already checked in get_ai_toolchain_operator
5441+ return self .raw_param .get ("disable_ai_toolchain_operator" )
5442+
54175443 def _get_enable_cost_analysis (self , enable_validation : bool = False ) -> bool :
54185444 """Internal function to obtain the value of enable_cost_analysis.
54195445 When enabled, if both enable_cost_analysis and disable_cost_analysis are
@@ -6772,6 +6798,18 @@ def set_up_ingress_web_app_routing(self, mc: ManagedCluster) -> ManagedCluster:
67726798
67736799 return mc
67746800
6801+ def set_up_ai_toolchain_operator (self , mc : ManagedCluster ) -> ManagedCluster :
6802+ self ._ensure_mc (mc )
6803+
6804+ if self .context .get_ai_toolchain_operator (enable_validation = True ):
6805+ if mc .ai_toolchain_operator_profile is None :
6806+ mc .ai_toolchain_operator_profile = self .models .ManagedClusterAIToolchainOperatorProfile () # pylint: disable=no-member
6807+ # set enabled
6808+ mc .ai_toolchain_operator_profile .enabled = True
6809+
6810+ # Default is disabled so no need to worry about that here
6811+ return mc
6812+
67756813 def set_up_cost_analysis (self , mc : ManagedCluster ) -> ManagedCluster :
67766814 self ._ensure_mc (mc )
67776815
@@ -6927,6 +6965,8 @@ def construct_mc_profile_default(self, bypass_restore_defaults: bool = False) ->
69276965 mc = self .set_up_metrics_profile (mc )
69286966 # set up node resource group profile
69296967 mc = self .set_up_node_resource_group_profile (mc )
6968+ # set up AI toolchain operator
6969+ mc = self .set_up_ai_toolchain_operator (mc )
69306970 # set up bootstrap profile
69316971 mc = self .set_up_bootstrap_profile (mc )
69326972 # set up static egress gateway profile
@@ -8709,6 +8749,23 @@ def update_azure_container_storage(self, mc: ManagedCluster) -> ManagedCluster:
87098749
87108750 return mc
87118751
8752+ def update_ai_toolchain_operator (self , mc : ManagedCluster ) -> ManagedCluster :
8753+ """Updates the aiToolchainOperatorProfile field of the managed cluster
8754+ :return: the ManagedCluster object
8755+ """
8756+
8757+ if self .context .get_ai_toolchain_operator (enable_validation = True ):
8758+ if mc .ai_toolchain_operator_profile is None :
8759+ mc .ai_toolchain_operator_profile = self .models .ManagedClusterAIToolchainOperatorProfile () # pylint: disable=no-member
8760+ mc .ai_toolchain_operator_profile .enabled = True
8761+
8762+ if self .context .get_disable_ai_toolchain_operator ():
8763+ if mc .ai_toolchain_operator_profile is None :
8764+ mc .ai_toolchain_operator_profile = self .models .ManagedClusterAIToolchainOperatorProfile () # pylint: disable=no-member
8765+ mc .ai_toolchain_operator_profile .enabled = False
8766+
8767+ return mc
8768+
87128769 def update_cost_analysis (self , mc : ManagedCluster ) -> ManagedCluster :
87138770 self ._ensure_mc (mc )
87148771
@@ -8898,6 +8955,8 @@ def update_mc_profile_default(self) -> ManagedCluster:
88988955 mc = self .update_metrics_profile (mc )
88998956 # update node resource group profile
89008957 mc = self .update_node_resource_group_profile (mc )
8958+ # update AI toolchain operator
8959+ mc = self .update_ai_toolchain_operator (mc )
89018960 # update bootstrap profile
89028961 mc = self .update_bootstrap_profile (mc )
89038962 # update static egress gateway
0 commit comments