Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
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
9 changes: 5 additions & 4 deletions src/aks-preview/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@ To release a new version, please select a new version number (usually plus 1 to
Pending
+++++++
* Add add-on support for `ApplicationLoadBalancer` (Application Gateway for Containers)
- AKS Create and Update parameters for `--enable-application-load-balancer` and `--disable-application-load-balancer`
- `az aks applicationloadbalancer enable`: Enable Application Load Balancer add-on for an existing cluster.
- `az aks applicationloadbalancer disable`: Disable Application Load Balancer add-on for an existing cluster.
- `az aks applicationloadbalancer update`: Update Application Load Balancer add-on for an existing cluster.
* AKS Create and Update parameters for `--enable-application-load-balancer` and `--disable-application-load-balancer`
* `az aks applicationloadbalancer enable`: Enable Application Load Balancer add-on for an existing cluster.
* `az aks applicationloadbalancer disable`: Disable Application Load Balancer add-on for an existing cluster.
* `az aks applicationloadbalancer update`: Update Application Load Balancer add-on for an existing cluster.
* Remove prerequisite for `--enable-gateway-api` option in `az aks create` and `az aks update` commands - managed Gateway API ingress provider enablement no longer required

19.0.0b18
+++++++
Expand Down
8 changes: 4 additions & 4 deletions src/aks-preview/azext_aks_preview/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -695,7 +695,7 @@
short-summary: Enable user-defined scheduler configuration for kube-scheduler upstream on the cluster
- name: --enable-gateway-api
type: bool
short-summary: Enable managed installation of Gateway API CRDs from the standard release channel. Requires at least one managed Gateway API ingress provider to be enabled.
short-summary: Enable managed installation of Gateway API CRDs from the standard release channel.
- name: --enable-hosted-system
type: bool
short-summary: Create a cluster with fully hosted system components. This applies only when creating a new automatic cluster.
Expand Down Expand Up @@ -788,8 +788,8 @@
text: az aks create -g MyResourceGroup -n MyManagedCluster --vm-set-type VirtualMachines --vm-sizes "VMSize1,VMSize2" --node-count 3
- name: Create a kubernetes cluster with a fully managed system node pool
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-managed-system-pool
- name: Create a kubernetes cluster with the Azure Service Mesh addon enabled with a managed installation of Gateway API CRDs from the standard release channel.
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-azure-service-mesh --enable-gateway-api
- name: Create a kubernetes cluster with a managed installation of Gateway API CRDs from the standard release channel.
text: az aks create -g MyResourceGroup -n MyManagedCluster --enable-gateway-api
- name: Create an automatic cluster with hosted system components enabled.
text: az aks create -g MyResourceGroup -n MyManagedCluster --sku automatic --enable-hosted-system

Expand Down Expand Up @@ -1417,7 +1417,7 @@
short-summary: Disable user-defined scheduler configuration for kube-scheduler upstream on the cluster
- name: --enable-gateway-api
type: bool
short-summary: Enable managed installation of Gateway API CRDs from the standard release channel. Requires at least one managed Gateway API ingress provider to be enabled.
short-summary: Enable managed installation of Gateway API CRDs from the standard release channel.
- name: --disable-gateway-api
type: bool
short-summary: Disable managed installation of Gateway API CRDs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21528,7 +21528,7 @@ def test_aks_jwtauthenticator_cmds(self, resource_group, resource_group_location
@AKSCustomResourceGroupPreparer(
random_name_length=17, name_prefix="clitest", location="centraluseuap"
)
def test_aks_create_with_gateway_api_and_azureservicemesh(
def test_aks_create_and_update_with_gateway_api_and_azureservicemesh(

@FumingZhang FumingZhang Jan 13, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Queued live test to validate the change, test passed!

self, resource_group, resource_group_location
):
aks_name = self.create_random_name("cliakstest", 16)
Expand Down Expand Up @@ -21589,65 +21589,5 @@ def test_aks_create_with_gateway_api_and_azureservicemesh(
],
)


@AllowLargeResponse()
@AKSCustomResourceGroupPreparer(
random_name_length=17, name_prefix="clitest", location="centraluseuap"
)
def test_aks_managed_gateway_requires_service_mesh(
self, resource_group, resource_group_location
):
"""
Verify that enabling managed Gateway API requires a Gateway API implementation (e.g., Azure Service Mesh).

This test:
- Attempts and fails to create a cluster with --enable-gateway-api without ASM enabled.
- Creates a minimal cluster.
- Attempts and fails to update it with --enable-gateway-api (still without ASM).
"""

# reset the count so in replay mode the random names will start with 0
self.test_resources_count = 0

aks_name = self.create_random_name("cliakstest", 16)
self.kwargs.update(
{
"resource_group": resource_group,
"name": aks_name,
"ssh_key_value": self.generate_ssh_keys(),
"location": resource_group_location,
}
)

# Attempt and expect failure to create a cluster with Gateway API but without ASM
create_with_gateway_cmd = (
"aks create --resource-group={resource_group} --name={name} "
"--enable-gateway-api "
"--ssh-key-value={ssh_key_value} -o json "
"--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/ManagedGatewayAPIPreview "
)
self.cmd(create_with_gateway_cmd, expect_failure=True)

# Create a minimal cluster without Gateway API or ASM
create_minimal_cmd = (
"aks create --resource-group={resource_group} --name={name} "
"--ssh-key-value={ssh_key_value} -o json"
)
self.cmd(
create_minimal_cmd,
checks=[
self.check("provisioningState", "Succeeded"),
],
)

# Attempt and expect failure to enable Gateway API on an existing cluster without ASM
update_enable_gateway_cmd = (
"aks update --resource-group={resource_group} --name={name} "
"--enable-gateway-api "
"--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/ManagedGatewayAPIPreview "
)
self.cmd(update_enable_gateway_cmd, expect_failure=True)

# Cleanup
delete_cmd = "aks delete --resource-group={resource_group} --name={name} --yes --no-wait"
self.cmd(delete_cmd, checks=[self.is_empty()])
# TODO (zheweihu): add test `test_aks_create_and_update_with_gateway_api_without_azureservicemesh`
# once https://msazure.visualstudio.com/CloudNativeCompute/_git/aks-rp/pullrequest/14404771 is rolled out
Comment thread
Winbobob marked this conversation as resolved.
Comment thread
Winbobob marked this conversation as resolved.
Loading