Skip to content
This repository was archived by the owner on May 13, 2025. It is now read-only.

Commit 5c7b82d

Browse files
Merge branch 'Azure:main' into release-1.2.5
2 parents 0386cea + 99dd4ab commit 5c7b82d

33 files changed

+3799
-8859
lines changed

src/aks-preview/HISTORY.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ To release a new version, please select a new version number (usually plus 1 to
1212
Pending
1313
+++++++
1414

15+
* Support disabling Azure KeyVault KMS.
16+
1517
0.5.91
1618
++++++
1719

src/aks-preview/azext_aks_preview/_help.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,9 @@
771771
- name: --enable-azure-keyvault-kms
772772
type: bool
773773
short-summary: Enable Azure KeyVault Key Management Service.
774+
- name: --disable-azure-keyvault-kms
775+
type: bool
776+
short-summary: Disable Azure KeyVault Key Management Service.
774777
- name: --azure-keyvault-kms-key-id
775778
type: string
776779
short-summary: Identifier of Azure Key Vault key.

src/aks-preview/azext_aks_preview/_params.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,7 @@ def load_arguments(self, _):
389389
c.argument('enable_workload_identity', arg_type=get_three_state_flag())
390390
c.argument('enable_oidc_issuer', action='store_true', is_preview=True)
391391
c.argument('enable_azure_keyvault_kms', action='store_true', is_preview=True)
392+
c.argument('disable_azure_keyvault_kms', action='store_true', is_preview=True)
392393
c.argument('azure_keyvault_kms_key_id', validator=validate_azure_keyvault_kms_key_id, is_preview=True)
393394
c.argument('azure_keyvault_kms_key_vault_network_access', arg_type=get_enum_type(keyvault_network_access_types), is_preview=True)
394395
c.argument('azure_keyvault_kms_key_vault_resource_id', validator=validate_azure_keyvault_kms_key_vault_resource_id, is_preview=True)

src/aks-preview/azext_aks_preview/custom.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,7 @@ def aks_update(
766766
enable_workload_identity=None,
767767
enable_oidc_issuer=False,
768768
enable_azure_keyvault_kms=False,
769+
disable_azure_keyvault_kms=False,
769770
azure_keyvault_kms_key_id=None,
770771
azure_keyvault_kms_key_vault_network_access=None,
771772
azure_keyvault_kms_key_vault_resource_id=None,

src/aks-preview/azext_aks_preview/managed_cluster_decorator.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,37 @@ def get_enable_azure_keyvault_kms(self) -> bool:
680680
"""
681681
return self._get_enable_azure_keyvault_kms(enable_validation=True)
682682

683+
def _get_disable_azure_keyvault_kms(self, enable_validation: bool = False) -> bool:
684+
"""Internal function to obtain the value of disable_azure_keyvault_kms.
685+
686+
This function supports the option of enable_validation. When enabled, if both enable_azure_keyvault_kms and disable_azure_keyvault_kms are
687+
specified, raise a MutuallyExclusiveArgumentError.
688+
689+
:return: bool
690+
"""
691+
# Read the original value passed by the command.
692+
disable_azure_keyvault_kms = self.raw_param.get("disable_azure_keyvault_kms")
693+
694+
# This option is not supported in create mode, hence we do not read the property value from the `mc` object.
695+
# This parameter does not need dynamic completion.
696+
if enable_validation:
697+
if disable_azure_keyvault_kms and self._get_enable_azure_keyvault_kms(enable_validation=False):
698+
raise MutuallyExclusiveArgumentError(
699+
"Cannot specify --enable-azure-keyvault-kms and --disable-azure-keyvault-kms at the same time."
700+
)
701+
702+
return disable_azure_keyvault_kms
703+
704+
def get_disable_azure_keyvault_kms(self) -> bool:
705+
"""Obtain the value of disable_azure_keyvault_kms.
706+
707+
This function will verify the parameter by default. If both enable_azure_keyvault_kms and disable_azure_keyvault_kms are specified, raise a
708+
MutuallyExclusiveArgumentError.
709+
710+
:return: bool
711+
"""
712+
return self._get_disable_azure_keyvault_kms(enable_validation=True)
713+
683714
def _get_azure_keyvault_kms_key_id(self, enable_validation: bool = False) -> Union[str, None]:
684715
"""Internal function to obtain the value of azure_keyvault_kms_key_id according to the context.
685716
@@ -1964,6 +1995,18 @@ def update_azure_keyvault_kms(self, mc: ManagedCluster) -> ManagedCluster:
19641995
self.context.get_azure_keyvault_kms_key_vault_resource_id()
19651996
)
19661997

1998+
if self.context.get_disable_azure_keyvault_kms():
1999+
# get kms profile
2000+
if mc.security_profile is None:
2001+
mc.security_profile = self.models.ManagedClusterSecurityProfile()
2002+
azure_key_vault_kms_profile = mc.security_profile.azure_key_vault_kms
2003+
if azure_key_vault_kms_profile is None:
2004+
azure_key_vault_kms_profile = self.models.AzureKeyVaultKms()
2005+
mc.security_profile.azure_key_vault_kms = azure_key_vault_kms_profile
2006+
2007+
# set enabled to False
2008+
azure_key_vault_kms_profile.enabled = False
2009+
19672010
return mc
19682011

19692012
def update_storage_profile(self, mc: ManagedCluster) -> ManagedCluster:

0 commit comments

Comments
 (0)