From e266dbd31ba18742df8bc73b6667a56b058ae326 Mon Sep 17 00:00:00 2001 From: FumingZhang <81607949+FumingZhang@users.noreply.github.com> Date: Tue, 14 Jun 2022 18:17:59 +0800 Subject: [PATCH] {AKS} Sort out parameter declarations (#22863) --- .../azure/cli/command_modules/acs/_params.py | 36 +- .../cli/command_modules/acs/_validators.py | 2 +- .../azure/cli/command_modules/acs/custom.py | 424 +++++++++--------- 3 files changed, 238 insertions(+), 224 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/acs/_params.py b/src/azure-cli/azure/cli/command_modules/acs/_params.py index 91212a6fd4f..f826bc7678c 100644 --- a/src/azure-cli/azure/cli/command_modules/acs/_params.py +++ b/src/azure-cli/azure/cli/command_modules/acs/_params.py @@ -41,7 +41,7 @@ validate_priority, validate_snapshot_id, validate_snapshot_name, validate_spot_max_price, validate_ssh_key, validate_taints, validate_vm_set_type, validate_vnet_subnet_id, - validate_disable_and_enable_parameters, validate_defender_config_parameter) + validate_defender_disable_and_enable_parameters, validate_defender_config_parameter) from azure.cli.core.commands.parameters import ( edge_zone_type, file_type, get_enum_type, get_resource_name_completion_list, get_three_state_flag, name_type, @@ -220,10 +220,8 @@ def load_arguments(self, _): c.argument('disable_local_accounts', action='store_true') c.argument('disable_rbac', action='store_true') c.argument('edge_zone', edge_zone_type) - c.argument('admin_username', options_list=[ - '--admin-username', '-u'], default='azureuser') - c.argument('generate_ssh_keys', action='store_true', - validator=validate_create_parameters) + c.argument('admin_username', options_list=['--admin-username', '-u'], default='azureuser') + c.argument('generate_ssh_keys', action='store_true', validator=validate_create_parameters) c.argument('ssh_key_value', required=False, type=file_type, default=os.path.join('~', '.ssh', 'id_rsa.pub'), completer=FilesCompleter(), validator=validate_ssh_key) c.argument('no_ssh_key', options_list=['--no-ssh-key', '-x']) @@ -237,10 +235,8 @@ def load_arguments(self, _): c.argument('load_balancer_outbound_ip_prefixes', validator=validate_load_balancer_outbound_ip_prefixes) c.argument('load_balancer_outbound_ports', type=int, validator=validate_load_balancer_outbound_ports) c.argument('load_balancer_idle_timeout', type=int, validator=validate_load_balancer_idle_timeout) - c.argument('nat_gateway_managed_outbound_ip_count', type=int, - validator=validate_nat_gateway_managed_outbound_ip_count) - c.argument('nat_gateway_idle_timeout', type=int, - validator=validate_nat_gateway_idle_timeout) + c.argument('nat_gateway_managed_outbound_ip_count', type=int, validator=validate_nat_gateway_managed_outbound_ip_count) + c.argument('nat_gateway_idle_timeout', type=int, validator=validate_nat_gateway_idle_timeout) c.argument('outbound_type', arg_type=get_enum_type(outbound_types)) c.argument('network_plugin', arg_type=get_enum_type(network_plugins)) c.argument('network_policy') @@ -274,6 +270,8 @@ def load_arguments(self, _): c.argument('attach_acr', acr_arg_type) c.argument('skip_subnet_role_assignment', action='store_true') c.argument('node_resource_group') + c.argument('enable_defender', action='store_true') + c.argument('defender_config', validator=validate_defender_config_parameter) # addons c.argument('enable_addons', options_list=['--enable-addons', '-a']) c.argument('workspace_resource_id') @@ -315,10 +313,7 @@ def load_arguments(self, _): c.argument('enable_fips_image', action='store_true') c.argument('kubelet_config') c.argument('linux_os_config') - c.argument('enable_defender', action='store_true') - c.argument('defender_config', validator=validate_defender_config_parameter) - c.argument('yes', options_list=[ - '--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') + c.argument('yes', options_list=['--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') with self.argument_context('aks update') as c: # managed cluster paramerters @@ -355,6 +350,9 @@ def load_arguments(self, _): c.argument('gmsa_root_domain_name') c.argument('attach_acr', acr_arg_type, validator=validate_acr) c.argument('detach_acr', acr_arg_type, validator=validate_acr) + c.argument('disable_defender', action='store_true', validator=validate_defender_disable_and_enable_parameters) + c.argument('enable_defender', action='store_true') + c.argument('defender_config', validator=validate_defender_config_parameter) # addons c.argument('enable_secret_rotation', action='store_true') c.argument('disable_secret_rotation', action='store_true') @@ -370,11 +368,7 @@ def load_arguments(self, _): c.argument('max_count', type=int, validator=validate_nodes_count) c.argument('nodepool_labels', nargs='*', validator=validate_nodepool_labels, help='space-separated labels: key[=value] [key[=value] ...]. See https://aka.ms/node-labels for syntax of labels.') - c.argument('disable_defender', action='store_true', validator=validate_disable_and_enable_parameters) - c.argument('enable_defender', action='store_true') - c.argument('defender_config', validator=validate_defender_config_parameter) - c.argument('yes', options_list=[ - '--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') + c.argument('yes', options_list=['--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') with self.argument_context('aks disable-addons', resource_type=ResourceType.MGMT_CONTAINERSERVICE, operation_group='managed_clusters') as c: c.argument('addons', options_list=['--addons', '-a']) @@ -429,10 +423,8 @@ def load_arguments(self, _): c.argument('aad_tenant_id') with self.argument_context('aks upgrade', resource_type=ResourceType.MGMT_CONTAINERSERVICE, operation_group='managed_clusters') as c: - c.argument('kubernetes_version', - completer=get_k8s_upgrades_completion_list) - c.argument('yes', options_list=[ - '--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') + c.argument('kubernetes_version', completer=get_k8s_upgrades_completion_list) + c.argument('yes', options_list=['--yes', '-y'], help='Do not prompt for confirmation.', action='store_true') with self.argument_context('aks scale', resource_type=ResourceType.MGMT_CONTAINERSERVICE, operation_group='managed_clusters') as c: c.argument('nodepool_name', validator=validate_nodepool_name, help='Node pool name, up to 12 alphanumeric characters.') diff --git a/src/azure-cli/azure/cli/command_modules/acs/_validators.py b/src/azure-cli/azure/cli/command_modules/acs/_validators.py index 1f0061a9f90..6bbef42fe78 100644 --- a/src/azure-cli/azure/cli/command_modules/acs/_validators.py +++ b/src/azure-cli/azure/cli/command_modules/acs/_validators.py @@ -517,6 +517,6 @@ def validate_defender_config_parameter(namespace): raise RequiredArgumentMissingError("Please specify --enable-defnder") -def validate_disable_and_enable_parameters(namespace): +def validate_defender_disable_and_enable_parameters(namespace): if namespace.disable_defender and namespace.enable_defender: raise ArgumentUsageError('Providing both --disable-defender and --enable-defender flags is invalid') diff --git a/src/azure-cli/azure/cli/command_modules/acs/custom.py b/src/azure-cli/azure/cli/command_modules/acs/custom.py index a88f09e38ad..cbded5ae074 100644 --- a/src/azure-cli/azure/cli/command_modules/acs/custom.py +++ b/src/azure-cli/azure/cli/command_modules/acs/custom.py @@ -1470,107 +1470,112 @@ def wait_then_open_async(url): # pylint: disable=too-many-locals -def aks_create(cmd, client, resource_group_name, name, ssh_key_value, - location=None, - kubernetes_version='', - tags=None, - dns_name_prefix=None, - node_osdisk_diskencryptionset_id=None, - disable_local_accounts=False, - disable_rbac=None, - edge_zone=None, - admin_username="azureuser", - generate_ssh_keys=False, - no_ssh_key=False, - pod_cidr=None, - service_cidr=None, - dns_service_ip=None, - docker_bridge_address=None, - load_balancer_sku=None, - load_balancer_managed_outbound_ip_count=None, - load_balancer_outbound_ips=None, - load_balancer_outbound_ip_prefixes=None, - load_balancer_outbound_ports=None, - load_balancer_idle_timeout=None, - nat_gateway_managed_outbound_ip_count=None, - nat_gateway_idle_timeout=None, - outbound_type=None, - network_plugin=None, - network_policy=None, - auto_upgrade_channel=None, - cluster_autoscaler_profile=None, - uptime_sla=False, - fqdn_subdomain=None, - api_server_authorized_ip_ranges=None, - enable_private_cluster=False, - private_dns_zone=None, - disable_public_fqdn=False, - service_principal=None, - client_secret=None, - enable_managed_identity=True, - assign_identity=None, - assign_kubelet_identity=None, - enable_aad=False, - enable_azure_rbac=False, - aad_admin_group_object_ids=None, - aad_client_app_id=None, - aad_server_app_id=None, - aad_server_app_secret=None, - aad_tenant_id=None, - windows_admin_username=None, - windows_admin_password=None, - enable_ahub=False, - enable_windows_gmsa=False, - gmsa_dns_server=None, - gmsa_root_domain_name=None, - attach_acr=None, - skip_subnet_role_assignment=False, - node_resource_group=None, - # addons - enable_addons=None, - workspace_resource_id=None, - enable_msi_auth_for_monitoring=False, - aci_subnet_name=None, - appgw_name=None, - appgw_subnet_cidr=None, - appgw_id=None, - appgw_subnet_id=None, - appgw_watch_namespace=None, - enable_sgxquotehelper=False, - enable_secret_rotation=False, - rotation_poll_interval=None, - # nodepool paramerters - nodepool_name="nodepool1", - node_vm_size=None, - os_sku=None, - snapshot_id=None, - vnet_subnet_id=None, - pod_subnet_id=None, - enable_node_public_ip=False, - node_public_ip_prefix_id=None, - enable_cluster_autoscaler=False, - min_count=None, - max_count=None, - node_count=3, - nodepool_tags=None, - nodepool_labels=None, - node_osdisk_type=None, - node_osdisk_size=0, - vm_set_type=None, - zones=None, - ppg=None, - max_pods=0, - enable_encryption_at_host=False, - enable_ultra_ssd=False, - enable_fips_image=False, - kubelet_config=None, - linux_os_config=None, - no_wait=False, - yes=False, - aks_custom_headers=None, - enable_defender=False, - defender_config=None, - ): +def aks_create( + cmd, + client, + resource_group_name, + name, + ssh_key_value, + location=None, + kubernetes_version="", + tags=None, + dns_name_prefix=None, + node_osdisk_diskencryptionset_id=None, + disable_local_accounts=False, + disable_rbac=None, + edge_zone=None, + admin_username="azureuser", + generate_ssh_keys=False, + no_ssh_key=False, + pod_cidr=None, + service_cidr=None, + dns_service_ip=None, + docker_bridge_address=None, + load_balancer_sku=None, + load_balancer_managed_outbound_ip_count=None, + load_balancer_outbound_ips=None, + load_balancer_outbound_ip_prefixes=None, + load_balancer_outbound_ports=None, + load_balancer_idle_timeout=None, + nat_gateway_managed_outbound_ip_count=None, + nat_gateway_idle_timeout=None, + outbound_type=None, + network_plugin=None, + network_policy=None, + auto_upgrade_channel=None, + cluster_autoscaler_profile=None, + uptime_sla=False, + fqdn_subdomain=None, + api_server_authorized_ip_ranges=None, + enable_private_cluster=False, + private_dns_zone=None, + disable_public_fqdn=False, + service_principal=None, + client_secret=None, + enable_managed_identity=True, + assign_identity=None, + assign_kubelet_identity=None, + enable_aad=False, + enable_azure_rbac=False, + aad_admin_group_object_ids=None, + aad_client_app_id=None, + aad_server_app_id=None, + aad_server_app_secret=None, + aad_tenant_id=None, + windows_admin_username=None, + windows_admin_password=None, + enable_ahub=False, + enable_windows_gmsa=False, + gmsa_dns_server=None, + gmsa_root_domain_name=None, + attach_acr=None, + skip_subnet_role_assignment=False, + node_resource_group=None, + enable_defender=False, + defender_config=None, + # addons + enable_addons=None, + workspace_resource_id=None, + enable_msi_auth_for_monitoring=False, + aci_subnet_name=None, + appgw_name=None, + appgw_subnet_cidr=None, + appgw_id=None, + appgw_subnet_id=None, + appgw_watch_namespace=None, + enable_sgxquotehelper=False, + enable_secret_rotation=False, + rotation_poll_interval=None, + # nodepool paramerters + nodepool_name="nodepool1", + node_vm_size=None, + os_sku=None, + snapshot_id=None, + vnet_subnet_id=None, + pod_subnet_id=None, + enable_node_public_ip=False, + node_public_ip_prefix_id=None, + enable_cluster_autoscaler=False, + min_count=None, + max_count=None, + node_count=3, + nodepool_tags=None, + nodepool_labels=None, + node_osdisk_type=None, + node_osdisk_size=0, + vm_set_type=None, + zones=None, + ppg=None, + max_pods=0, + enable_encryption_at_host=False, + enable_ultra_ssd=False, + enable_fips_image=False, + kubelet_config=None, + linux_os_config=None, + no_wait=False, + yes=False, + aks_custom_headers=None, +): # DO NOT MOVE: get all the original parameters and save them as a dictionary raw_parameters = locals() @@ -1592,57 +1597,62 @@ def aks_create(cmd, client, resource_group_name, name, ssh_key_value, return aks_create_decorator.create_mc(mc) -def aks_update(cmd, client, resource_group_name, name, - tags=None, - disable_local_accounts=False, - enable_local_accounts=False, - load_balancer_managed_outbound_ip_count=None, - load_balancer_outbound_ips=None, - load_balancer_outbound_ip_prefixes=None, - load_balancer_outbound_ports=None, - load_balancer_idle_timeout=None, - nat_gateway_managed_outbound_ip_count=None, - nat_gateway_idle_timeout=None, - auto_upgrade_channel=None, - cluster_autoscaler_profile=None, - uptime_sla=False, - no_uptime_sla=False, - api_server_authorized_ip_ranges=None, - enable_public_fqdn=False, - disable_public_fqdn=False, - enable_managed_identity=False, - assign_identity=None, - assign_kubelet_identity=None, - enable_aad=False, - enable_azure_rbac=False, - disable_azure_rbac=False, - aad_tenant_id=None, - aad_admin_group_object_ids=None, - windows_admin_password=None, - enable_ahub=False, - disable_ahub=False, - enable_windows_gmsa=False, - gmsa_dns_server=None, - gmsa_root_domain_name=None, - attach_acr=None, - detach_acr=None, - # addons - enable_secret_rotation=False, - disable_secret_rotation=False, - rotation_poll_interval=None, - # nodepool paramerters - enable_cluster_autoscaler=False, - disable_cluster_autoscaler=False, - update_cluster_autoscaler=False, - min_count=None, max_count=None, - nodepool_labels=None, - no_wait=False, - yes=False, - aks_custom_headers=None, - enable_defender=False, - disable_defender=False, - defender_config=None, - ): +def aks_update( + cmd, + client, + resource_group_name, + name, + tags=None, + disable_local_accounts=False, + enable_local_accounts=False, + load_balancer_managed_outbound_ip_count=None, + load_balancer_outbound_ips=None, + load_balancer_outbound_ip_prefixes=None, + load_balancer_outbound_ports=None, + load_balancer_idle_timeout=None, + nat_gateway_managed_outbound_ip_count=None, + nat_gateway_idle_timeout=None, + auto_upgrade_channel=None, + cluster_autoscaler_profile=None, + uptime_sla=False, + no_uptime_sla=False, + api_server_authorized_ip_ranges=None, + enable_public_fqdn=False, + disable_public_fqdn=False, + enable_managed_identity=False, + assign_identity=None, + assign_kubelet_identity=None, + enable_aad=False, + enable_azure_rbac=False, + disable_azure_rbac=False, + aad_tenant_id=None, + aad_admin_group_object_ids=None, + windows_admin_password=None, + enable_ahub=False, + disable_ahub=False, + enable_windows_gmsa=False, + gmsa_dns_server=None, + gmsa_root_domain_name=None, + attach_acr=None, + detach_acr=None, + enable_defender=False, + disable_defender=False, + defender_config=None, + # addons + enable_secret_rotation=False, + disable_secret_rotation=False, + rotation_poll_interval=None, + # nodepool paramerters + enable_cluster_autoscaler=False, + disable_cluster_autoscaler=False, + update_cluster_autoscaler=False, + min_count=None, + max_count=None, + nodepool_labels=None, + no_wait=False, + yes=False, + aks_custom_headers=None, +): # DO NOT MOVE: get all the original parameters and save them as a dictionary raw_parameters = locals() @@ -2917,41 +2927,47 @@ def _get_or_add_extension(cmd, extension_name, extension_module, update=False): return True -def aks_agentpool_add(cmd, client, resource_group_name, cluster_name, nodepool_name, - kubernetes_version=None, - node_vm_size=None, - os_type=None, - os_sku=None, - snapshot_id=None, - vnet_subnet_id=None, - pod_subnet_id=None, - enable_node_public_ip=False, - node_public_ip_prefix_id=None, - enable_cluster_autoscaler=False, - min_count=None, - max_count=None, - node_count=3, - priority=CONST_SCALE_SET_PRIORITY_REGULAR, - eviction_policy=CONST_SPOT_EVICTION_POLICY_DELETE, - spot_max_price=float('nan'), - labels=None, - tags=None, - node_taints=None, - node_osdisk_type=None, - node_osdisk_size=0, - max_surge=None, - mode=CONST_NODEPOOL_MODE_USER, - scale_down_mode=CONST_SCALE_DOWN_MODE_DELETE, - max_pods=0, - zones=None, - ppg=None, - enable_encryption_at_host=False, - enable_ultra_ssd=False, - enable_fips_image=False, - kubelet_config=None, - linux_os_config=None, - no_wait=False, - aks_custom_headers=None): +def aks_agentpool_add( + cmd, + client, + resource_group_name, + cluster_name, + nodepool_name, + kubernetes_version=None, + node_vm_size=None, + os_type=None, + os_sku=None, + snapshot_id=None, + vnet_subnet_id=None, + pod_subnet_id=None, + enable_node_public_ip=False, + node_public_ip_prefix_id=None, + enable_cluster_autoscaler=False, + min_count=None, + max_count=None, + node_count=3, + priority=CONST_SCALE_SET_PRIORITY_REGULAR, + eviction_policy=CONST_SPOT_EVICTION_POLICY_DELETE, + spot_max_price=float("nan"), + labels=None, + tags=None, + node_taints=None, + node_osdisk_type=None, + node_osdisk_size=0, + max_surge=None, + mode=CONST_NODEPOOL_MODE_USER, + scale_down_mode=CONST_SCALE_DOWN_MODE_DELETE, + max_pods=0, + zones=None, + ppg=None, + enable_encryption_at_host=False, + enable_ultra_ssd=False, + enable_fips_image=False, + kubelet_config=None, + linux_os_config=None, + no_wait=False, + aks_custom_headers=None, +): # DO NOT MOVE: get all the original parameters and save them as a dictionary raw_parameters = locals() @@ -2975,20 +2991,26 @@ def aks_agentpool_add(cmd, client, resource_group_name, cluster_name, nodepool_n return aks_agentpool_add_decorator.add_agentpool(agentpool) -def aks_agentpool_update(cmd, client, resource_group_name, cluster_name, nodepool_name, - enable_cluster_autoscaler=False, - disable_cluster_autoscaler=False, - update_cluster_autoscaler=False, - min_count=None, - max_count=None, - labels=None, - tags=None, - node_taints=None, - max_surge=None, - mode=None, - scale_down_mode=None, - no_wait=False, - aks_custom_headers=None): +def aks_agentpool_update( + cmd, + client, + resource_group_name, + cluster_name, + nodepool_name, + enable_cluster_autoscaler=False, + disable_cluster_autoscaler=False, + update_cluster_autoscaler=False, + min_count=None, + max_count=None, + labels=None, + tags=None, + node_taints=None, + max_surge=None, + mode=None, + scale_down_mode=None, + no_wait=False, + aks_custom_headers=None, +): # DO NOT MOVE: get all the original parameters and save them as a dictionary raw_parameters = locals()