Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
0df58e9
{Misc} Drop `six` from core (#17366)
jiasli Mar 24, 2021
357805a
Revert "{CI} Update CODEOWNERS(Do not merge) (#17313)" (#17322)
msyyc Mar 24, 2021
983cb41
{Compute} Update function of auto_shutdown_vm (#17352)
BigCat20196 Mar 24, 2021
f721fd3
{Packaging} Hotfix: Only remove `dist-info` for azure packages in MSI…
fengzhou-msft Mar 24, 2021
962f0ca
{Packaging} Hotfix: Only remove `dist-info` for azure packages in MSI…
fengzhou-msft Mar 25, 2021
fb1fb85
Merge branch 'release' into dev
jiasli Mar 25, 2021
d727390
{Network} Fix network tests which will cause CI fail in Eventgrid mod…
evelyn-ys Mar 25, 2021
f821690
add microsoft.search scenario test for private endpoint connections (…
Mar 26, 2021
23facb0
Update azdev_setup.yml (#17463)
Infinite-Blue-1042 Mar 26, 2021
490cafb
[NetAppFiles] Update azure-mgmt-netapp version to 2.0.0 (#17370)
Mar 26, 2021
0bfe544
Adding optional parameter 'backup-management-type' in 'backup protect…
hiaga Mar 26, 2021
212f925
[ARM] Fix #17379: bicep auto install results in invalid json output f…
felipebbc Mar 26, 2021
19073d6
{EventGrid} Add support for StorageQueueMessageTTL, AdvancedFilters, …
VidyaKukke Mar 26, 2021
eb08437
{Packaging} Bump knack to 0.8.0 (#17470)
jiasli Mar 26, 2021
984e06a
{Feedback} Explain what `az feedback` does (#17396)
jiasli Mar 26, 2021
3bff786
{Log} Adapt az_command_data_logger to Knack 0.8.0 (#17324)
jiasli Mar 26, 2021
ad284d0
Fix ssl bind bug (#17479)
calvinsID Mar 29, 2021
8828c74
Update azdev to version 0.1.30 (#17489)
kairu-ms Mar 29, 2021
0194d3b
{CI} Restore `az self-test` (#17456)
jiasli Mar 29, 2021
f331b03
[Storage] `az storage fs file list`: Support --show-next-marker (#17408)
evelyn-ys Mar 29, 2021
44e1af8
[Interactive] Fix #16931: Fix `KeyError` in `az interactive --update`…
fengzhou-msft Mar 29, 2021
7a5538f
{AppConfig} Fix bug in print preview of restore command (#17344)
avanigupta Mar 29, 2021
39f2968
Fix live test (#17388)
zhoxing-ms Mar 30, 2021
e536c7e
[Core] Add spinner progress bar for long running operation (#17262)
Juliehzl Mar 30, 2021
b457d86
{EventGrid} Add support for delivery attribute mapping, topicKind (#1…
VidyaKukke Mar 30, 2021
bbf753f
{Core} Make _prepare_client_kwargs_track2 public (#17411)
jiasli Mar 30, 2021
db4c326
[RDBMS] Allowing DB server private access from different subscription…
DaeunYim Mar 30, 2021
57f33f0
[AKS] az aks create: add support for --private-dns-zone and --fqdn-su…
levimm Mar 31, 2021
4fffb69
[NetAppFiles] Updated backup tests (#17492)
Mar 31, 2021
86037fb
{storage} Add record_only() for tests needing additional configuratio…
Juliehzl Mar 31, 2021
0fa1fb5
{Packaging} Bump bcrypt and PyNaCl (#17369)
jiasli Mar 31, 2021
acd4633
{EventGrid} Refine and bugfix for StorageQueueMessageTTL and Delivery…
VidyaKukke Apr 1, 2021
7b68db9
[Core] Add service_name.json (#17159)
qwordy Apr 1, 2021
fd47801
[Network]`az network vnet-gateway`: `--vpn-auth-type` allow multi val…
msyyc Apr 1, 2021
ad30d55
[Core] Provide recommendation for JSON parsing error (#17445)
jiasli Apr 1, 2021
4eabb55
{Core} Remove the check on `managed_by_tenants` (#17526)
jiasli Apr 1, 2021
dd35146
Bugfix: rg not found if AZURE_CLI_TEST_DEV_RESOURCE_GROUP_NAME is set…
Apr 1, 2021
85d73f3
{Doc} Update track 2 migration roadmap (#17540)
jsntcy Apr 1, 2021
885be54
[Search] Introduce async options for service and shared-private-link-…
Apr 1, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[AKS] az aks create: add support for --private-dns-zone and --fqdn-su…
…bdomain feature (Azure#17430)
  • Loading branch information
levimm authored Mar 31, 2021
commit 57f33f0b60f4b7c5379208c4a13e239d0949c735
3 changes: 3 additions & 0 deletions src/azure-cli/azure/cli/command_modules/acs/_consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@
CONST_CONFCOM_ADDON_NAME = "ACCSGXDevicePlugin"
CONST_ACC_SGX_QUOTE_HELPER_ENABLED = "ACCSGXQuoteHelperEnabled"

# private dns zone mode
CONST_PRIVATE_DNS_ZONE_SYSTEM = "system"

ADDONS = {
'http_application_routing': CONST_HTTP_APPLICATION_ROUTING_ADDON_NAME,
'monitoring': CONST_MONITORING_ADDON_NAME,
Expand Down
7 changes: 7 additions & 0 deletions src/azure-cli/azure/cli/command_modules/acs/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,13 @@
- name: --enable-private-cluster
type: string
short-summary: Enable private cluster.
- name: --private-dns-zone
type: string
short-summary: Private dns zone mode for private cluster.
long-summary: Allowed values are "system" or custom private dns zone resource id. If not set, defaults to type system. Requires --enable-private-cluster to be used.
- name: --fqdn-subdomain
type: string
short-summary: Prefix for FQDN that is created for private cluster with custom private dns zone scenario.
- name: --api-server-authorized-ip-ranges
type: string
short-summary: Comma seperated list of authorized apiserver IP ranges. Set to 0.0.0.0/32 to restrict apiserver traffic to node pools.
Expand Down
2 changes: 2 additions & 0 deletions src/azure-cli/azure/cli/command_modules/acs/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,8 @@ def load_arguments(self, _):
c.argument('api_server_authorized_ip_ranges', type=str, validator=validate_ip_ranges)
c.argument('attach_acr', acr_arg_type)
c.argument('enable_private_cluster', action='store_true')
c.argument('private_dns_zone')
c.argument('fqdn_subdomain')
c.argument('nodepool_tags', nargs='*', validator=validate_nodepool_tags, help='space-separated tags: key[=value] [key[=value] ...]. Use "" to clear existing tags.')
c.argument('enable_managed_identity', action='store_true')
c.argument('assign_identity', type=str, validator=validate_assign_identity)
Expand Down
34 changes: 31 additions & 3 deletions src/azure-cli/azure/cli/command_modules/acs/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
ArgumentUsageError,
ClientRequestError,
InvalidArgumentValueError,
MutuallyExclusiveArgumentError,
ValidationError)
from azure.cli.core._profile import Profile
from azure.cli.core.commands.client_factory import get_mgmt_service_client, get_subscription_id
Expand Down Expand Up @@ -119,6 +120,7 @@
from ._consts import CONST_CONFCOM_ADDON_NAME, CONST_ACC_SGX_QUOTE_HELPER_ENABLED
from ._consts import ADDONS
from ._consts import CONST_CANIPULL_IMAGE
from ._consts import CONST_PRIVATE_DNS_ZONE_SYSTEM

logger = get_logger(__name__)

Expand Down Expand Up @@ -1883,6 +1885,8 @@ def aks_create(cmd, client, resource_group_name, name, ssh_key_value, # pylint:
generate_ssh_keys=False, # pylint: disable=unused-argument
api_server_authorized_ip_ranges=None,
enable_private_cluster=False,
private_dns_zone=None,
fqdn_subdomain=None,
enable_managed_identity=True,
assign_identity=None,
attach_acr=None,
Expand All @@ -1899,7 +1903,9 @@ def aks_create(cmd, client, resource_group_name, name, ssh_key_value, # pylint:
yes=False):
_validate_ssh_key(no_ssh_key, ssh_key_value)
subscription_id = get_subscription_id(cmd.cli_ctx)
if not dns_name_prefix:
if dns_name_prefix and fqdn_subdomain:
raise MutuallyExclusiveArgumentError('--dns-name-prefix and --fqdn-subdomain cannot be used at same time')
if not dns_name_prefix and not fqdn_subdomain:
dns_name_prefix = _get_default_dns_prefix(name, resource_group_name, subscription_id)

rg_location = _get_rg_location(cmd.cli_ctx, resource_group_name)
Expand Down Expand Up @@ -1983,7 +1989,7 @@ def aks_create(cmd, client, resource_group_name, name, ssh_key_value, # pylint:
principal_obj = _ensure_aks_service_principal(cmd.cli_ctx,
service_principal=service_principal, client_secret=client_secret,
subscription_id=subscription_id, dns_name_prefix=dns_name_prefix,
location=location, name=name)
fqdn_subdomain=fqdn_subdomain, location=location, name=name)
service_principal_profile = ManagedClusterServicePrincipalProfile(
client_id=principal_obj.get("service_principal"),
secret=principal_obj.get("client_secret"),
Expand Down Expand Up @@ -2176,6 +2182,24 @@ def aks_create(cmd, client, resource_group_name, name, ssh_key_value, # pylint:
disk_encryption_set_id=node_osdisk_diskencryptionset_id
)

use_custom_private_dns_zone = False
if private_dns_zone:
if not enable_private_cluster:
raise InvalidArgumentValueError("Invalid private dns zone for public cluster. "
"It should always be empty for public cluster")
mc.api_server_access_profile.private_dns_zone = private_dns_zone
from msrestazure.tools import is_valid_resource_id
if private_dns_zone.lower() != CONST_PRIVATE_DNS_ZONE_SYSTEM:
if is_valid_resource_id(private_dns_zone):
use_custom_private_dns_zone = True
else:
raise InvalidArgumentValueError(private_dns_zone + " is not a valid Azure resource ID.")
if fqdn_subdomain:
if not use_custom_private_dns_zone:
raise ArgumentUsageError("--fqdn-subdomain should only be used for "
"private cluster with custom private dns zone")
mc.fqdn_subdomain = fqdn_subdomain

if uptime_sla:
mc.sku = ManagedClusterSKU(
name="Basic",
Expand Down Expand Up @@ -3602,6 +3626,7 @@ def _ensure_aks_service_principal(cli_ctx,
client_secret=None,
subscription_id=None,
dns_name_prefix=None,
fqdn_subdomain=None,
location=None,
name=None):
aad_session_key = None
Expand All @@ -3612,7 +3637,10 @@ def _ensure_aks_service_principal(cli_ctx,
if not client_secret:
client_secret = _create_client_secret()
salt = binascii.b2a_hex(os.urandom(3)).decode('utf-8')
url = 'https://{}.{}.{}.cloudapp.azure.com'.format(salt, dns_name_prefix, location)
if dns_name_prefix:
url = 'https://{}.{}.{}.cloudapp.azure.com'.format(salt, dns_name_prefix, location)
else:
url = 'https://{}.{}.{}.cloudapp.azure.com'.format(salt, fqdn_subdomain, location)

service_principal, aad_session_key = _build_service_principal(rbac_client, cli_ctx, name, url, client_secret)
if not service_principal:
Expand Down
Loading