python/az/aro/azext_aro/_params.py (168 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the Apache License 2.0. from azext_aro._actions import AROPlatformWorkloadIdentityAddAction from azext_aro._validators import ( validate_cidr, validate_client_id, validate_client_secret, validate_cluster_resource_group, validate_disk_encryption_set, validate_domain, validate_pull_secret, validate_subnet, validate_visibility, validate_vnet, validate_vnet_resource_group_name, validate_worker_count, validate_worker_vm_disk_size_gb, validate_refresh_cluster_credentials, validate_version_format, validate_outbound_type, validate_load_balancer_managed_outbound_ip_count, validate_enable_managed_identity, validate_platform_workload_identities, validate_cluster_identity, validate_delete_identities, validate_upgradeable_to_format, ) from azure.cli.core.commands.parameters import ( name_type, get_enum_type, get_three_state_flag, resource_group_name_type, tags_type ) from azure.cli.core.commands.validators import get_default_location_from_resource_group def load_arguments(self, _): with self.argument_context('aro') as c: c.argument('location', validator=get_default_location_from_resource_group) c.argument('resource_name', name_type, help='Name of cluster.') c.argument('tags', tags_type) c.argument('pull_secret', help='Pull secret of cluster.', validator=validate_pull_secret) c.argument('domain', help='Domain of cluster.', validator=validate_domain) c.argument('cluster_resource_group', help='Resource group of cluster.', validator=validate_cluster_resource_group) c.argument('fips_validated_modules', arg_type=get_three_state_flag(), options_list=['--fips-validated-modules', '--fips'], help='Use FIPS validated cryptography modules. [Default: false]') c.argument('client_id', help='Client ID of cluster service principal.', validator=validate_client_id(isCreate=True)) c.argument('client_secret', help='Client secret of cluster service principal.', validator=validate_client_secret(isCreate=True)) c.argument('version', options_list=['--version', c.deprecate(target='--install-version', redirect='--version', hide=True)], help='OpenShift version to use for cluster creation.', validator=validate_version_format) c.argument('pod_cidr', help='CIDR of pod network. Must be a minimum of /18 or larger. [Default: 10.128.0.0/14]', validator=validate_cidr('pod_cidr')) c.argument('service_cidr', help='CIDR of service network. Must be a minimum of /18 or larger. [Default: 172.30.0.0/16]', validator=validate_cidr('service_cidr')) c.argument('outbound_type', help='Outbound type of cluster. Must be "Loadbalancer" or "UserDefinedRouting". \ [Default: Loadbalancer]', validator=validate_outbound_type) c.argument('enable_preconfigured_nsg', arg_type=get_three_state_flag(), help='Use Preconfigured NSGs. Allowed values: false, true. [Default: false]') c.argument('disk_encryption_set', help='ResourceID of the DiskEncryptionSet to be used for master and worker VMs.', validator=validate_disk_encryption_set) c.argument('master_encryption_at_host', arg_type=get_three_state_flag(), options_list=['--master-encryption-at-host', '--master-enc-host'], help='Encryption at host flag for master VMs. [Default: false]') c.argument('master_vm_size', help='Size of master VMs. [Default: Standard_D8s_v5]') c.argument('worker_encryption_at_host', arg_type=get_three_state_flag(), options_list=['--worker-encryption-at-host', '--worker-enc-host'], help='Encryption at host flag for worker VMs. [Default: false]') c.argument('worker_vm_size', help='Size of worker VMs. [Default: Standard_D4s_v5]') c.argument('worker_vm_disk_size_gb', type=int, help='Disk size in GB of worker VMs. [Default: 128]', validator=validate_worker_vm_disk_size_gb) c.argument('worker_count', type=int, help='Count of worker VMs. [Default: 3]', validator=validate_worker_count) c.argument('apiserver_visibility', arg_type=get_enum_type(['Private', 'Public']), help='API server visibility. [Default: Public]', validator=validate_visibility('apiserver_visibility')) c.argument('ingress_visibility', arg_type=get_enum_type(['Private', 'Public']), help='Ingress visibility. [Default: Public]', validator=validate_visibility('ingress_visibility')) c.argument('vnet_resource_group_name', resource_group_name_type, options_list=['--vnet-resource-group'], help='Name of vnet resource group.', validator=validate_vnet_resource_group_name) c.argument('vnet', help='Name or ID of vnet. If name is supplied, `--vnet-resource-group` must be supplied.', validator=validate_vnet) c.argument('master_subnet', help='Name or ID of master vnet subnet. If name is supplied, `--vnet` must be supplied.', validator=validate_subnet('master_subnet')) c.argument('worker_subnet', help='Name or ID of worker vnet subnet. If name is supplied, `--vnet` must be supplied.', validator=validate_subnet('worker_subnet')) c.argument('load_balancer_managed_outbound_ip_count', type=int, help='The desired number of IPv4 outbound IPs created and managed by Azure for the cluster public load balancer.', # pylint: disable=line-too-long validator=validate_load_balancer_managed_outbound_ip_count, options_list=['--load-balancer-managed-outbound-ip-count', '--lb-ip-count']) c.argument('enable_managed_identity', arg_group='Identity', is_preview=True, arg_type=get_three_state_flag(), help='Enable managed identity for this cluster.', options_list=['--enable-managed-identity', '--enable-mi'], validator=validate_enable_managed_identity) c.argument('platform_workload_identities', arg_group='Identity', is_preview=True, help='Assign a platform workload identity used within the cluster. Requires two values: \ an operator name and either the name or resource ID of the Azure identity to use for it.', options_list=['--assign-platform-workload-identity', '--assign-platform-wi'], validator=validate_platform_workload_identities(isCreate=True), action=AROPlatformWorkloadIdentityAddAction, nargs='+') c.argument('mi_user_assigned', arg_group='Identity', is_preview=True, help='Set the user managed identity on the cluster. Value must be an identity name or resource ID.', options_list=['--mi-user-assigned', '--assign-cluster-identity'], validator=validate_cluster_identity) with self.argument_context('aro update') as c: c.argument('client_id', help='Client ID of cluster service principal.', validator=validate_client_id(isCreate=False)) c.argument('client_secret', help='Client secret of cluster service principal.', validator=validate_client_secret(isCreate=False)) c.argument('refresh_cluster_credentials', arg_type=get_three_state_flag(), help='Refresh cluster application credentials.', options_list=['--refresh-credentials'], validator=validate_refresh_cluster_credentials) c.argument('platform_workload_identities', arg_group='Identity', is_preview=True, help='Assign a platform workload identity used within the cluster. Requires two values: \ an operator name and either the name or resource ID of the Azure identity to use for it.', options_list=['--assign-platform-workload-identity', '--assign-platform-wi'], validator=validate_platform_workload_identities(isCreate=False), action=AROPlatformWorkloadIdentityAddAction, nargs='+') c.argument('upgradeable_to', arg_group='Identity', options_list=['--upgradeable-to'], help='OpenShift version to upgrade to.', is_preview=True, validator=validate_upgradeable_to_format) with self.argument_context('aro get-admin-kubeconfig') as c: c.argument('file', help='Path to the file where kubeconfig should be saved. Default: kubeconfig in local directory', options_list=['--file', '-f']) with self.argument_context('aro delete') as c: c.argument('delete_identities', is_preview=True, arg_group='Identity', arg_type=get_three_state_flag(), validator=validate_delete_identities, help='Delete the cluster\'s associated managed identities together with the cluster.')