diff --git a/src/k8s-extension/HISTORY.rst b/src/k8s-extension/HISTORY.rst index 086028d0d04..b9a5a22c41d 100644 --- a/src/k8s-extension/HISTORY.rst +++ b/src/k8s-extension/HISTORY.rst @@ -3,6 +3,12 @@ Release History =============== +1.2.3 +++++++++++++++++++ +* Fix warning message returned on PATCH +* microsoft.azureml.kubernetes: remove deprecated warning message. +* microsoft.azureml.kubernetes: Use cluster scale to control clusterPurpose and inferenceRouterHA + 1.2.2 ++++++++++++++++++ * microsoft.azureml.kubernetes: Disable service bus by default, do not create relay for managed clusters. diff --git a/src/k8s-extension/azext_k8s_extension/_params.py b/src/k8s-extension/azext_k8s_extension/_params.py index 7981cd8bffe..8a08c9cebcb 100644 --- a/src/k8s-extension/azext_k8s_extension/_params.py +++ b/src/k8s-extension/azext_k8s_extension/_params.py @@ -49,23 +49,23 @@ def load_arguments(self, _): help='Specify the release train for the extension type.') c.argument('configuration_settings', arg_group="Configuration", - options_list=['--configuration-settings', '--config'], + options_list=['--configuration-settings', '--config-settings', '--config'], action=AddConfigurationSettings, nargs='+', help='Configuration Settings as key=value pair. Repeat parameter for each setting') c.argument('configuration_protected_settings', arg_group="Configuration", - options_list=['--configuration-protected-settings', '--config-protected'], + options_list=['--configuration-protected-settings', '--config-protected-settings', '--config-protected'], action=AddConfigurationProtectedSettings, nargs='+', help='Configuration Protected Settings as key=value pair. Repeat parameter for each setting') c.argument('configuration_settings_file', arg_group="Configuration", - options_list=['--configuration-settings-file', '--config-file'], + options_list=['--configuration-settings-file', '--config-settings-file', '--config-file'], help='JSON file path for configuration-settings') c.argument('configuration_protected_settings_file', arg_group="Configuration", - options_list=['--configuration-protected-settings-file', '--config-protected-file'], + options_list=['--configuration-protected-settings-file', '--config-protected-settings-file', '--config-protected-file'], help='JSON file path for configuration-protected-settings') c.argument('release_namespace', help='Specify the namespace to install the extension release.') diff --git a/src/k8s-extension/azext_k8s_extension/custom.py b/src/k8s-extension/azext_k8s_extension/custom.py index a4aa858ee82..9519c4b3a79 100644 --- a/src/k8s-extension/azext_k8s_extension/custom.py +++ b/src/k8s-extension/azext_k8s_extension/custom.py @@ -245,7 +245,7 @@ def update_k8s_extension( or configuration_protected_settings_file ): msg = ( - "Updating properties in --config-settings or --config-protected-settings may lead to undesirable state" + "Updating properties in --configuration-settings or --configuration-protected-settings may lead to undesirable state" " if the cluster extension type does not support it. Please refer to the documentation of the" " cluster extension service to check if updates to these properties is supported." " Do you wish to proceed?" diff --git a/src/k8s-extension/azext_k8s_extension/partner_extensions/AzureMLKubernetes.py b/src/k8s-extension/azext_k8s_extension/partner_extensions/AzureMLKubernetes.py index 97fab3fd8aa..db20b3bec3a 100644 --- a/src/k8s-extension/azext_k8s_extension/partner_extensions/AzureMLKubernetes.py +++ b/src/k8s-extension/azext_k8s_extension/partner_extensions/AzureMLKubernetes.py @@ -89,6 +89,7 @@ def __init__(self): self.inferenceRouterServiceType = 'inferenceRouterServiceType' self.internalLoadBalancerProvider = 'internalLoadBalancerProvider' self.inferenceRouterHA = 'inferenceRouterHA' + self.clusterPurpose = 'clusterPurpose' # constants for existing AKS to AMLARC migration self.IS_AKS_MIGRATION = 'isAKSMigration' @@ -133,15 +134,28 @@ def Create(self, cmd, client, resource_group_name, cluster_name, name, cluster_t cluster_resource_id, parent_api_version) cluster_location = resource.location.lower() try: + isSmallScale = False if cluster_type.lower() == 'connectedclusters': if resource.properties['totalNodeCount'] < 3: - configuration_settings['clusterPurpose'] = 'DevTest' + isSmallScale = True if cluster_type.lower() == 'managedclusters': nodeCount = 0 for agent in resource.properties['agentPoolProfiles']: nodeCount += agent['count'] if nodeCount < 3: - configuration_settings['clusterPurpose'] = 'DevTest' + isSmallScale = True + + if isSmallScale: + clusterPurpose = _get_value_from_config_protected_config( + self.clusterPurpose, configuration_settings, configuration_protected_settings) + if clusterPurpose is None: + configuration_settings[self.clusterPurpose] = 'DevTest' + + inferenceRouterHA = _get_value_from_config_protected_config( + self.inferenceRouterHA, configuration_settings, configuration_protected_settings) + if inferenceRouterHA is None: + configuration_settings[self.inferenceRouterHA] = 'false' + if resource.properties.get('distribution', '').lower() == self.OPEN_SHIFT: configuration_settings[self.OPEN_SHIFT] = 'true' except: @@ -201,10 +215,6 @@ def Create(self, cmd, client, resource_group_name, cluster_name, name, cluster_t return extension, name, create_identity def Delete(self, cmd, client, resource_group_name, cluster_name, name, cluster_type, yes): - # Give a warning message - logger.warning("If nvidia.com/gpu or fuse resource is not recognized by kubernetes after this deletion, " - "you probably have installed nvidia-device-plugin or fuse-device-plugin before installing AMLArc extension. " - "Please try to reinstall device plugins to fix this issue.") user_confirmation_factory(cmd, yes) def Update(self, cmd, resource_group_name, cluster_name, auto_upgrade_minor_version, release_train, version, configuration_settings, @@ -366,16 +376,6 @@ def Update(self, cmd, resource_group_name, cluster_name, auto_upgrade_minor_vers configuration_protected_settings=configuration_protected_settings) def __normalize_config(self, configuration_settings, configuration_protected_settings): - # inference - inferenceRouterHA = _get_value_from_config_protected_config( - self.inferenceRouterHA, configuration_settings, configuration_protected_settings) - if inferenceRouterHA is not None: - isTestCluster = str(inferenceRouterHA).lower() == 'false' - if isTestCluster: - configuration_settings['clusterPurpose'] = 'DevTest' - else: - configuration_settings['clusterPurpose'] = 'FastProd' - inferenceRouterServiceType = _get_value_from_config_protected_config( self.inferenceRouterServiceType, configuration_settings, configuration_protected_settings) if inferenceRouterServiceType: @@ -432,13 +432,6 @@ def __validate_config(self, configuration_settings, configuration_protected_sett configuration_protected_settings.pop(self.ENABLE_INFERENCE, None) def __validate_scoring_fe_settings(self, configuration_settings, configuration_protected_settings, release_namespace): - inferenceRouterHA = _get_value_from_config_protected_config( - self.inferenceRouterHA, configuration_settings, configuration_protected_settings) - isTestCluster = True if inferenceRouterHA is not None and str(inferenceRouterHA).lower() == 'false' else False - if isTestCluster: - configuration_settings['clusterPurpose'] = 'DevTest' - else: - configuration_settings['clusterPurpose'] = 'FastProd' isAKSMigration = _get_value_from_config_protected_config( self.IS_AKS_MIGRATION, configuration_settings, configuration_protected_settings) isAKSMigration = str(isAKSMigration).lower() == 'true' diff --git a/src/k8s-extension/setup.py b/src/k8s-extension/setup.py index b0c0c1f34d7..2635d1027f9 100644 --- a/src/k8s-extension/setup.py +++ b/src/k8s-extension/setup.py @@ -33,7 +33,7 @@ # TODO: Add any additional SDK dependencies here DEPENDENCIES = [] -VERSION = "1.2.2" +VERSION = "1.2.3" with open("README.rst", "r", encoding="utf-8") as f: README = f.read()