Skip to content

Commit a549b82

Browse files
authored
[AKS] GA Kubernetes version alias (#22456)
1 parent 5c6804b commit a549b82

3 files changed

Lines changed: 45 additions & 4 deletions

File tree

src/azure-cli/azure/cli/command_modules/acs/_format.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def _aks_table_format(result):
6767
location: location,
6868
resourceGroup: resourceGroup,
6969
kubernetesVersion: kubernetesVersion,
70+
currentKubernetesVersion: currentKubernetesVersion,
7071
provisioningState: provisioningState,
7172
fqdn: fqdn || privateFqdn
7273
}""")

src/azure-cli/azure/cli/command_modules/acs/_validators.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ def validate_k8s_version(namespace):
9696
"""Validates a string as a possible Kubernetes version. An empty string is also valid, which tells the server
9797
to use its default version."""
9898
if namespace.kubernetes_version:
99-
k8s_release_regex = re.compile(r'^[v|V]?(\d+\.\d+\.\d+.*)$')
99+
k8s_release_regex = re.compile(r'^[v|V]?(\d+\.\d+(?:\.\d+)?)$')
100100
found = k8s_release_regex.findall(namespace.kubernetes_version)
101101
if found:
102102
namespace.kubernetes_version = found[0]
103103
else:
104-
raise CLIError('--kubernetes-version should be the full version number, '
105-
'such as "1.11.8" or "1.12.6"')
104+
raise CLIError('--kubernetes-version should be the full version number or major.minor version number, '
105+
'such as "1.7.12" or "1.7"')
106106

107107

108108
def validate_nodepool_name(namespace):

src/azure-cli/azure/cli/command_modules/acs/tests/latest/test_validators.py

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,10 @@ def test_IPv6(self):
9595

9696

9797
class Namespace:
98-
def __init__(self, api_server_authorized_ip_ranges=None, cluster_autoscaler_profile=None):
98+
def __init__(self, api_server_authorized_ip_ranges=None, cluster_autoscaler_profile=None, kubernetes_version=None):
9999
self.api_server_authorized_ip_ranges = api_server_authorized_ip_ranges
100100
self.cluster_autoscaler_profile = cluster_autoscaler_profile
101+
self.kubernetes_version = kubernetes_version
101102

102103

103104
class TestVNetSubnetId(unittest.TestCase):
@@ -419,6 +420,45 @@ def test_valid_format(self):
419420

420421
validators.validate_credential_format(namespace)
421422

423+
class TestValidateKubernetesVersion(unittest.TestCase):
424+
425+
def test_valid_full_kubernetes_version(self):
426+
kubernetes_version = "1.11.8"
427+
namespace = Namespace(kubernetes_version=kubernetes_version)
428+
429+
validators.validate_k8s_version(namespace)
430+
431+
def test_valid_alias_minor_version(self):
432+
kubernetes_version = "1.11"
433+
namespace = Namespace(kubernetes_version=kubernetes_version)
434+
435+
validators.validate_k8s_version(namespace)
436+
437+
def test_valid_empty_kubernetes_version(self):
438+
kubernetes_version = ""
439+
namespace = Namespace(kubernetes_version=kubernetes_version)
440+
441+
validators.validate_k8s_version(namespace)
442+
443+
def test_invalid_kubernetes_version(self):
444+
kubernetes_version = "1.2.3.4"
445+
446+
namespace = Namespace(kubernetes_version=kubernetes_version)
447+
err = ("--kubernetes-version should be the full version number or major.minor version number, "
448+
"such as \"1.7.12\" or \"1.7\"")
449+
450+
with self.assertRaises(CLIError) as cm:
451+
validators.validate_k8s_version(namespace)
452+
self.assertEqual(str(cm.exception), err)
453+
454+
kubernetes_version = "1."
455+
456+
namespace = Namespace(kubernetes_version=kubernetes_version)
457+
458+
with self.assertRaises(CLIError) as cm:
459+
validators.validate_k8s_version(namespace)
460+
self.assertEqual(str(cm.exception), err)
461+
422462

423463
if __name__ == "__main__":
424464
unittest.main()

0 commit comments

Comments
 (0)