Skip to content
This repository was archived by the owner on May 13, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6c8126e
{AKS} Refactor 1st part of the create sub-command in aks-preview modu…
FumingZhang Oct 14, 2021
87129c5
[Release] Update index.json for extension [ ssh ] (#3965)
Oct 14, 2021
6766325
[k8s-configuration] Release v1.1.1 with helm-operator 1.4.0 Chart Ver…
jonathan-innis Oct 15, 2021
7c23852
[Release] Update index.json for extension [ k8s-configuration ] (#3968)
Oct 15, 2021
076f5b3
[Network Manager] Init network manager extension (#3946)
00Kai0 Oct 15, 2021
363774c
[Release] Update index.json for extension [ network-manager ] (#3970)
Oct 17, 2021
7ad8f0d
{AKS} Refactor 2nd part of the create sub-command in aks-preview modu…
FumingZhang Oct 18, 2021
b93f528
Update vmImage to ubuntu-20.04 (#3981)
jiasli Oct 19, 2021
4ecb837
Revert "[Release] Update index.json for extension [ network-manager ]…
kairu-ms Oct 19, 2021
304ca0a
rename network manager by virtual network manager (#3980)
kairu-ms Oct 19, 2021
9d695ec
bump aks-preview to 0.5.35 for mig support (#3958)
alexeldeib Oct 19, 2021
f5c1ce4
{AKS} Refactor 3rd part of the create sub-command in aks-preview modu…
FumingZhang Oct 19, 2021
cd69dea
[Release] Update index.json for extension [ network-manager ] (#3982)
Oct 19, 2021
d473417
@AbelHu {aks} aks-preview vendor 2021-09-01 SDK (#3985)
AbelHu Oct 19, 2021
0f51679
{AKS} Fix nat gateway models import error (#3988)
FumingZhang Oct 19, 2021
bd56e41
Extensions GA changes into Public Branch (#79)
NarayanThiru Oct 19, 2021
9b3f2ba
Add --user-agent param when submitting standalone executable (#3993)
vxfield Oct 20, 2021
544af52
Fix configuration settings in update
jonathan-innis Oct 20, 2021
711996b
{aks} Add Windows gMSAv2 support (#3987)
AbelHu Oct 20, 2021
7fc8365
[Release] Update index.json for extension [ aks-preview ] (#3983)
Oct 20, 2021
6c78cac
{AKS} Update custom preparers (#3994)
FumingZhang Oct 20, 2021
753909e
[Release] Update index.json for extension [ aks-preview ] (#3995)
Oct 20, 2021
3d585dd
{AKS} Refactor 4th part of the create sub-command in aks-preview modu…
FumingZhang Oct 20, 2021
338895b
Only provide confirmation when specifying settings
jonathan-innis Oct 20, 2021
a54aca2
Fix style issues
jonathan-innis Oct 20, 2021
5f4a94f
Replace deprecated CLIError with new error types (#3997)
Oct 21, 2021
f61c5ab
Add Quantum CLI Extension Live E2E Client Validation Tests (#3943)
Oct 21, 2021
9745a8d
aem: increase version and add changelog (#3963)
MSSedusch Oct 21, 2021
215720a
[Elastic] Initial GA Elastic (#3921)
00Kai0 Oct 21, 2021
fa2b1dd
Add parameter `--rotation-poll-interval` for Azure Keyvault Secrets P…
ZeroMagic Oct 21, 2021
f0d9f88
Update connectedvmware extension for public preview. (#3950)
iamsantoshmishra Oct 21, 2021
a76a021
[Release] Update index.json for extension [ aks-preview ] (#4005)
Oct 21, 2021
985a022
[Release] Update index.json for extension [ connectedvmware ] (#4006)
Oct 21, 2021
0fa542c
[Release] Update index.json for extension [ aem ] (#4003)
Oct 22, 2021
6b34004
[Release] Update index.json for extension [ elastic ] (#4004)
Oct 22, 2021
f12f494
[k8s-extension] Release for GA v1.0.0 (#3991)
jonathan-innis Oct 22, 2021
1e17ae8
remove preview tag for mysql connect command (#4008)
DaeunYim Oct 22, 2021
771c318
[Release] Update index.json for extension [ k8s-extension ] (#4010)
Oct 22, 2021
4c6b7d8
Bug fixes for Arc Appliance CLI Extension (#4009)
pkoushik Oct 22, 2021
9f06921
Merge branch 'main' of https://github.com/Azure/azure-cli-extensions …
jonathan-innis Oct 22, 2021
b4b0b0e
Cassandra tests with update (#81)
jonathan-innis Oct 26, 2021
fdd3e5f
Merge branch 'k8s-extension/private' into joinnis/merge-upstream
jonathan-innis Oct 26, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@

/src/netappfiles-preview/ @b-lefr

/src/network-manager/ @kairu-ms @jsntcy

/src/healthcareapis/ @fengzhou-msft @iviark

/src/healthbot/ @guy-microsoft
Expand Down Expand Up @@ -194,7 +196,7 @@

/src/webpubsub/ @zackliu

/src/connectedvmware/ @sanmishra18
/src/connectedvmware/ @93mishra

/src/diskpool/ @Juliehzl

Expand All @@ -205,3 +207,5 @@
/src/authV2/ @mkarmark

/src/purview/ @kairu-ms @jsntcy

/src/elastic/ @kairu-ms @jsntcy
12 changes: 6 additions & 6 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- job: CheckLicenseHeader
displayName: "Check License"
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.6'
Expand Down Expand Up @@ -67,7 +67,7 @@ jobs:
- job: StaticAnalysis
displayName: "Static Analysis"
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.6'
Expand All @@ -81,7 +81,7 @@ jobs:
- job: IndexVerify
displayName: "Verify Extensions Index"
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.7'
Expand All @@ -98,7 +98,7 @@ jobs:
- job: SourceTests
displayName: "Integration Tests, Build Tests"
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
strategy:
matrix:
Python36:
Expand All @@ -122,7 +122,7 @@ jobs:
displayName: "CLI Linter on Modified Extensions"
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.6'
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
- job: IndexRefDocVerify
displayName: "Verify Ref Docs"
pool:
vmImage: 'ubuntu-16.04'
vmImage: 'ubuntu-20.04'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python 3.7'
Expand Down
4 changes: 4 additions & 0 deletions src/aem/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
Release History
===============

0.3.0
+++++
* Add support for setting proxy and debug configuration of the VM Extension for SAP

0.2.2
+++++
* Fix for https://github.com/Azure/azure-cli-extensions/issues/3019
Expand Down
3,816 changes: 2,989 additions & 827 deletions src/aem/azext_aem/tests/latest/recordings/test_NewExtensionMultiNic.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/aem/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from codecs import open
from setuptools import setup, find_packages

VERSION = "0.2.2"
VERSION = "0.3.0"

CLASSIFIERS = [
'Development Status :: 4 - Beta',
Expand Down
17 changes: 17 additions & 0 deletions src/aks-preview/HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

Release History
===============
0.5.38
+++++
* Add parameter `--rotation-poll-interval` for Azure Keyvault Secrets Provider Addon.

0.5.37
+++++
* Add Windows gMSA v2 support. Add parameters `--enable-windows-gmsa`, `--gmsa-dns-server` and `--gmsa-root-domain-name`

0.5.36
+++++
* Update to use 2021-09-01 api-version

0.5.35
+++++
* Add support for multi-instance GPU configuration (`--gpu_instance_profile`) in `az aks create`
and `az aks nodepool add`.

0.5.34
+++++
* Add support for WASM nodepools (`--workload-runtime WasmWasi`) in `az aks create`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@
"test_aks_create_and_update_with_managed_nat_gateway_outbound",
"test_aks_create_with_http_proxy_config",
"test_aks_nodepool_add_with_workload_runtime",
"test_aks_nodepool_add_with_gpu_instance_profile"
"test_aks_nodepool_add_with_gpu_instance_profile",
"test_aks_create_with_windows_gmsa",
"test_aks_update_with_windows_gmsa"
]
}
}
14 changes: 9 additions & 5 deletions src/aks-preview/azext_aks_preview/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,19 @@
from azext_aks_preview._client_factory import CUSTOM_MGMT_AKS_PREVIEW


def register_aks_preview_resource_type():
register_resource_type(
"latest",
CUSTOM_MGMT_AKS_PREVIEW,
SDKProfile("2021-09-01", {"container_services": "2017-07-01"}),
)


class ContainerServiceCommandsLoader(AzCommandsLoader):

def __init__(self, cli_ctx=None):
from azure.cli.core.commands import CliCommandType
register_resource_type(
"latest",
CUSTOM_MGMT_AKS_PREVIEW,
SDKProfile("2021-08-01", {"container_services": "2017-07-01"}),
)
register_aks_preview_resource_type()

acs_custom = CliCommandType(operations_tmpl='azext_aks_preview.custom#{}')
super(ContainerServiceCommandsLoader, self).__init__(cli_ctx=cli_ctx,
Expand Down
2 changes: 1 addition & 1 deletion src/aks-preview/azext_aks_preview/_completers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from azure.cli.core.decorators import Completer

# pylint: disable=line-too-long
from azext_aks_preview.vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ContainerServiceVMSizeTypes
from azext_aks_preview.vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ContainerServiceVMSizeTypes


@Completer
Expand Down
1 change: 1 addition & 0 deletions src/aks-preview/azext_aks_preview/_consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
# Azure Keyvault Secrets Provider configuration keys
CONST_AZURE_KEYVAULT_SECRETS_PROVIDER_ADDON_NAME = "azureKeyvaultSecretsProvider"
CONST_SECRET_ROTATION_ENABLED = "enableSecretRotation"
CONST_ROTATION_POLL_INTERVAL = "rotationPollInterval"

# Scale Down Mode
CONST_SCALE_DOWN_MODE_DELETE = "Delete"
Expand Down
53 changes: 53 additions & 0 deletions src/aks-preview/azext_aks_preview/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,9 @@
- name: --enable-secret-rotation
type: bool
short-summary: Enable secret rotation. Use with azure-keyvault-secrets-provider addon.
- name: --rotation-poll-interval
type: string
short-summary: Set interval of rotation poll. Use with azure-keyvault-secrets-provider addon.
- name: --disable-local-accounts
type: bool
short-summary: (Preview) If set to true, getting static credential will be disabled for this cluster.
Expand All @@ -358,6 +361,21 @@
- name: --gpu-instance-profile
type: string
short-summary: GPU instance profile to partition multi-gpu Nvidia GPUs.
- name: --enable-windows-gmsa
type: bool
short-summary: Enable Windows gmsa.
- name: --gmsa-dns-server
type: string
short-summary: Specify DNS server for Windows gmsa for this cluster.
long-summary: |-
You do not need to set this if you have set DNS server in the VNET used by the cluster.
You must set or not set --gmsa-dns-server and --gmsa-root-domain-name at the same time when setting --enable-windows-gmsa.
- name: --gmsa-root-domain-name
type: string
short-summary: Specify root domain name for Windows gmsa for this cluster.
long-summary: |-
You do not need to set this if you have set DNS server in the VNET used by the cluster.
You must set or not set --gmsa-dns-server and --gmsa-root-domain-name at the same time when setting --enable-windows-gmsa.
examples:
- name: Create a Kubernetes cluster with an existing SSH public key.
text: az aks create -g MyResourceGroup -n MyManagedCluster --ssh-key-value /path/to/publickey
Expand Down Expand Up @@ -407,6 +425,10 @@
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-aad --enable-azure-rbac
- name: Create a kubernetes cluster with a specific os-sku
text: az aks create -g MyResourceGroup -n MyManagedCluster --os-sku Ubuntu
- name: Create a kubernetes cluster with enabling Windows gmsa and with setting DNS server in the vnet used by the cluster.
text: az aks create -g MyResourceGroup -n MyManagedCluster --load-balancer-sku Standard --network-plugin azure --windows-admin-username azure --windows-admin-password 'replacePassword1234$' --enable-windows-gmsa
- name: Create a kubernetes cluster with enabling Windows gmsa but without setting DNS server in the vnet used by the cluster.
text: az aks create -g MyResourceGroup -n MyManagedCluster --load-balancer-sku Standard --network-plugin azure --windows-admin-username azure --windows-admin-password 'replacePassword1234$' --enable-windows-gmsa --gmsa-dns-server "10.240.0.4" --gmsa-root-domain-name "contoso.com"
""".format(sp_cache=AKS_SERVICE_PRINCIPAL_CACHE)

helps['aks scale'] = """
Expand Down Expand Up @@ -552,6 +574,9 @@
- name: --disable-secret-rotation
type: bool
short-summary: Disable secret rotation. Use with azure-keyvault-secrets-provider addon.
- name: --rotation-poll-interval
type: string
short-summary: Set interval of rotation poll. Use with azure-keyvault-secrets-provider addon.
- name: --tags
type: string
short-summary: The tags of the managed cluster. The managed cluster instance and all resources managed by the cloud provider will be tagged.
Expand Down Expand Up @@ -587,6 +612,21 @@
- name: --disable-public-fqdn
type: bool
short-summary: Disable public fqdn feature for private cluster.
- name: --enable-windows-gmsa
type: bool
short-summary: Enable Windows gmsa on cluster.
- name: --gmsa-dns-server
type: string
short-summary: Specify DNS server for Windows gmsa on cluster.
long-summary: |-
You do not need to set this if you have set DNS server in the VNET used by the cluster.
You must set or not set --gmsa-dns-server and --gmsa-root-domain-name at the same time when setting --enable-windows-gmsa.
- name: --gmsa-root-domain-name
type: string
short-summary: Specify root domain name for Windows gmsa on cluster.
long-summary: |-
You do not need to set this if you have set DNS server in the VNET used by the cluster.
You must set or not set --gmsa-dns-server and --gmsa-root-domain-name at the same time when setting --enable-windows-gmsa.
examples:
- name: Enable cluster-autoscaler within node count range [1,5]
text: az aks update --enable-cluster-autoscaler --min-count 1 --max-count 5 -g MyResourceGroup -n MyManagedCluster
Expand Down Expand Up @@ -638,6 +678,10 @@
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-azure-rbac
- name: Disable Azure RBAC in a managed AAD AKS cluster
text: az aks update -g MyResourceGroup -n MyManagedCluster --disable-azure-rbac
- name: Enable Windows gmsa for a kubernetes cluster with setting DNS server in the vnet used by the cluster.
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-windows-gmsa
- name: Enable Windows gmsa for a kubernetes cluster without setting DNS server in the vnet used by the cluster.
text: az aks update -g MyResourceGroup -n MyManagedCluster --enable-windows-gmsa --gmsa-dns-server "10.240.0.4" --gmsa-root-domain-name "contoso.com"
"""

helps['aks kollect'] = """
Expand Down Expand Up @@ -1136,6 +1180,9 @@
- name: --enable-secret-rotation
type: bool
short-summary: Enable secret rotation. Use with azure-keyvault-secrets-provider addon.
- name: --rotation-poll-interval
type: string
short-summary: Set interval of rotation poll. Use with azure-keyvault-secrets-provider addon.
examples:
- name: Enable a Kubernetes addon. (autogenerated)
text: az aks addon enable --addon virtual-node --name MyManagedCluster --resource-group MyResourceGroup --subnet-name VirtualNodeSubnet
Expand Down Expand Up @@ -1188,6 +1235,9 @@
- name: --enable-secret-rotation
type: bool
short-summary: Enable secret rotation. Use with azure-keyvault-secrets-provider addon.
- name: --rotation-poll-interval
type: string
short-summary: Set interval of rotation poll. Use with azure-keyvault-secrets-provider addon.
examples:
- name: Update a Kubernetes addon. (autogenerated)
text: az aks addon update --addon virtual-node --name MyManagedCluster --resource-group MyResourceGroup --subnet-name VirtualNodeSubnet
Expand Down Expand Up @@ -1253,6 +1303,9 @@
- name: --enable-secret-rotation
type: bool
short-summary: Enable secret rotation. Use with azure-keyvault-secrets-provider addon.
- name: --rotation-poll-interval
type: string
short-summary: Set interval of rotation poll. Use with azure-keyvault-secrets-provider addon.
examples:
- name: Enable Kubernetes addons. (autogenerated)
text: az aks enable-addons --addons virtual-node --name MyManagedCluster --resource-group MyResourceGroup --subnet-name VirtualNodeSubnet
Expand Down
2 changes: 1 addition & 1 deletion src/aks-preview/azext_aks_preview/_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from azure.cli.core.azclierror import ArgumentUsageError

# pylint: disable=no-name-in-module,import-error
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterAPIServerAccessProfile
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ManagedClusterAPIServerAccessProfile
from ._consts import CONST_CONTAINER_NAME_MAX_LENGTH
from ._consts import CONST_OUTBOUND_TYPE_LOAD_BALANCER, CONST_OUTBOUND_TYPE_USER_DEFINED_ROUTING, \
CONST_OUTBOUND_TYPE_MANAGED_NAT_GATEWAY, CONST_OUTBOUND_TYPE_USER_ASSIGNED_NAT_GATEWAY
Expand Down
10 changes: 5 additions & 5 deletions src/aks-preview/azext_aks_preview/_loadbalancer.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
from distutils.version import StrictVersion # pylint: disable=no-name-in-module,import-error
from knack.log import get_logger

from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterLoadBalancerProfile
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterLoadBalancerProfileManagedOutboundIPs
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterLoadBalancerProfileOutboundIPs
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ResourceReference
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ManagedClusterLoadBalancerProfile
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ManagedClusterLoadBalancerProfileManagedOutboundIPs
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ManagedClusterLoadBalancerProfileOutboundIPPrefixes
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ManagedClusterLoadBalancerProfileOutboundIPs
from .vendored_sdks.azure_mgmt_preview_aks.v2021_09_01.models import ResourceReference

logger = get_logger(__name__)

Expand Down
17 changes: 8 additions & 9 deletions src/aks-preview/azext_aks_preview/_natgateway.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,36 @@
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------

from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterNATGatewayProfile
from .vendored_sdks.azure_mgmt_preview_aks.v2021_08_01.models import ManagedClusterManagedOutboundIPProfile


def create_nat_gateway_profile(managed_outbound_ip_count, idle_timeout):
def create_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, models):
"""parse and build NAT gateway profile"""
if not is_nat_gateway_profile_provided(managed_outbound_ip_count, idle_timeout):
return None

profile = ManagedClusterNATGatewayProfile()
return configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile)
# profile = ManagedClusterNATGatewayProfile()
profile = models.get("ManagedClusterNATGatewayProfile")()
return configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile, models)


def update_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile):
def update_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile, models):
"""parse and update an existing NAT gateway profile"""
if not is_nat_gateway_profile_provided(managed_outbound_ip_count, idle_timeout):
return profile

return configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile)
return configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile, models)


def is_nat_gateway_profile_provided(managed_outbound_ip_count, idle_timeout):
return any([managed_outbound_ip_count, idle_timeout])


def configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile):
def configure_nat_gateway_profile(managed_outbound_ip_count, idle_timeout, profile, models):
"""configure a NAT Gateway with customer supplied values"""
if not profile:
return profile

if managed_outbound_ip_count:
ManagedClusterManagedOutboundIPProfile = models.get("ManagedClusterManagedOutboundIPProfile")
profile.managed_outbound_ip_profile = ManagedClusterManagedOutboundIPProfile(
count=managed_outbound_ip_count
)
Expand Down
Loading