Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 4 additions & 0 deletions src/aks-preview/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ To release a new version, please select a new version number (usually plus 1 to

Pending
+++++++

18.0.0b39
+++++++
* Add option `AzureLinuxOSGuard` and `AzureLinux3OSGuard` to `--os-sku` for `az aks nodepool add` and `az aks nodepool update`.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if this new version will release the pending features as well, it is better to include the changelog into this new version

Copy link
Copy Markdown
Member Author

@miz060 miz060 Sep 22, 2025

Choose a reason for hiding this comment

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

Moved pending features to release 18.0.0b39. Please help take another look. Thanks!
(and if it looks good, can you also help merge it as I don't have write access?)

@FumingZhang @yanzhudd

* Add machine command `az aks machine add` to add a machine to an existing machine pool.
* Add blue-green upgrade strategy support for AKS node pools:
- `az aks nodepool add/update/upgrade`: Add `--upgrade-strategy` parameter to switch between rolling and blue-green nodepool upgrades.
Expand Down
2 changes: 2 additions & 0 deletions src/aks-preview/azext_aks_preview/_consts.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
CONST_OS_SKU_AZURELINUX3 = "AzureLinux3"
CONST_OS_SKU_UBUNTU2204 = "Ubuntu2204"
CONST_OS_SKU_UBUNTU2404 = "Ubuntu2404"
CONST_OS_SKU_AZURELINUXOSGUARD = "AzureLinuxOSGuard"
CONST_OS_SKU_AZURELINUX3OSGUARD = "AzureLinux3OSGuard"

# vm set type
CONST_VIRTUAL_MACHINE_SCALE_SETS = "VirtualMachineScaleSets"
Expand Down
2 changes: 1 addition & 1 deletion src/aks-preview/azext_aks_preview/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -1928,7 +1928,7 @@
short-summary: The OS Type. Linux or Windows. Windows not supported yet for "VirtualMachines" VM set type.
- name: --os-sku
type: string
short-summary: The os-sku of the agent node pool. Ubuntu, Ubuntu2204, Ubuntu2404, CBLMariner, AzureLinux or AzureLinux3 when os-type is Linux, default is Ubuntu if not set; Windows2019, Windows2022 or WindowsAnnual when os-type is Windows, the current default is Windows2022 if not set.
short-summary: The os-sku of the agent node pool. Ubuntu, Ubuntu2204, Ubuntu2404, CBLMariner, AzureLinux, AzureLinux3, AzureLinuxOSGuard, or AzureLinux3OSGuard when os-type is Linux, default is Ubuntu if not set; Windows2019, Windows2022 or WindowsAnnual when os-type is Windows, the current default is Windows2022 if not set.
- name: --enable-fips-image
type: bool
short-summary: Use FIPS-enabled OS on agent nodes.
Expand Down
6 changes: 6 additions & 0 deletions src/aks-preview/azext_aks_preview/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@
CONST_OS_SKU_AZURELINUX3,
CONST_OS_SKU_CBLMARINER,
CONST_OS_SKU_MARINER,
CONST_OS_SKU_AZURELINUXOSGUARD,
CONST_OS_SKU_AZURELINUX3OSGUARD,
CONST_OS_SKU_UBUNTU,
CONST_OS_SKU_UBUNTU2204,
CONST_OS_SKU_UBUNTU2404,
Expand Down Expand Up @@ -282,6 +284,8 @@
CONST_OS_SKU_MARINER,
CONST_OS_SKU_UBUNTU2204,
CONST_OS_SKU_UBUNTU2404,
CONST_OS_SKU_AZURELINUXOSGUARD,
CONST_OS_SKU_AZURELINUX3OSGUARD,
]
node_os_skus = node_os_skus_create + [
CONST_OS_SKU_WINDOWS2019,
Expand All @@ -294,6 +298,8 @@
CONST_OS_SKU_UBUNTU,
CONST_OS_SKU_UBUNTU2204,
CONST_OS_SKU_UBUNTU2404,
CONST_OS_SKU_AZURELINUXOSGUARD,
CONST_OS_SKU_AZURELINUX3OSGUARD,
]
scale_down_modes = [CONST_SCALE_DOWN_MODE_DELETE, CONST_SCALE_DOWN_MODE_DEALLOCATE]
workload_runtimes = [
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2960,6 +2960,90 @@ def test_aks_nodepool_add_with_ossku_azurelinux3(self, resource_group, resource_
self.cmd(
'aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()])

@AllowLargeResponse()
@AKSCustomResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='eastus2euap')
def test_aks_nodepool_add_with_ossku_azurelinuxosguard(self, resource_group, resource_group_location):
aks_name = self.create_random_name('cliakstest', 16)
node_pool_name = self.create_random_name('c', 6)
node_pool_name_second = self.create_random_name('c', 6)
self.kwargs.update({
'resource_group': resource_group,
'name': aks_name,
'node_pool_name': node_pool_name,
'node_pool_name_second': node_pool_name_second,
'ssh_key_value': self.generate_ssh_keys()
})

create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \
'--nodepool-name {node_pool_name} -c 1 ' \
'--ssh-key-value={ssh_key_value}'
self.cmd(create_cmd, checks=[
self.check('provisioningState', 'Succeeded'),
])

# add nodepool with AzureLinuxOSGuard OS SKU and security features
self.cmd('aks nodepool add '
'--resource-group={resource_group} '
'--cluster-name={name} '
'--name={node_pool_name_second} '
'--node-vm-size Standard_D2s_v5 '
'--os-sku AzureLinuxOSGuard '
'--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AzureLinuxOSGuardPreview '
'--tags SkipLinuxAzSecPack=true '
'--enable-fips-image '
'--enable-secure-boot '
'--enable-vtpm',
checks=[
self.check('provisioningState', 'Succeeded'),
self.check('osSku', 'AzureLinuxOSGuard'),
])

# delete
self.cmd(
'aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()])

@AllowLargeResponse()
@AKSCustomResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='eastus2euap')
def test_aks_nodepool_add_with_ossku_azurelinux3osguard(self, resource_group, resource_group_location):
aks_name = self.create_random_name('cliakstest', 16)
node_pool_name = self.create_random_name('c', 6)
node_pool_name_second = self.create_random_name('c', 6)
self.kwargs.update({
'resource_group': resource_group,
'name': aks_name,
'node_pool_name': node_pool_name,
'node_pool_name_second': node_pool_name_second,
'ssh_key_value': self.generate_ssh_keys()
})

create_cmd = 'aks create --resource-group={resource_group} --name={name} ' \
'--nodepool-name {node_pool_name} -c 1 ' \
'--ssh-key-value={ssh_key_value}'
self.cmd(create_cmd, checks=[
self.check('provisioningState', 'Succeeded'),
])

# add nodepool with AzureLinux3OSGuard OS SKU and security features
self.cmd('aks nodepool add '
'--resource-group={resource_group} '
'--cluster-name={name} '
'--name={node_pool_name_second} '
'--node-vm-size Standard_D2s_v5 '
'--os-sku AzureLinux3OSGuard '
'--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AzureLinuxOSGuardPreview '
'--tags SkipLinuxAzSecPack=true '
'--enable-fips-image '
'--enable-secure-boot '
'--enable-vtpm',
checks=[
self.check('provisioningState', 'Succeeded'),
self.check('osSku', 'AzureLinux3OSGuard'),
])

# delete
self.cmd(
'aks delete -g {resource_group} -n {name} --yes --no-wait', checks=[self.is_empty()])

@AllowLargeResponse()
@AKSCustomResourceGroupPreparer(
random_name_length=17, name_prefix="clitest", location="westus2"
Expand Down
2 changes: 1 addition & 1 deletion src/aks-preview/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

from setuptools import find_packages, setup

VERSION = "18.0.0b38"
VERSION = "18.0.0b39"

CLASSIFIERS = [
"Development Status :: 4 - Beta",
Expand Down
Loading