Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
27 changes: 17 additions & 10 deletions src/aks-preview/azext_aks_preview/managed_cluster_decorator.py
Original file line number Diff line number Diff line change
Expand Up @@ -851,15 +851,15 @@ def get_enable_cilium_dataplane(self) -> bool:
return bool(self.raw_param.get('enable_cilium_dataplane'))

def get_acns_enablement(self) -> Tuple[
Comment thread
santhoshmprabhu marked this conversation as resolved.
Union[bool, None],
Union[bool, None],
Union[bool, None],
Union[bool, None]
]:
"""Get the enablement of acns (not including the performance suite)
:return: Tuple of 3 elements which can be bool or None
"""Get the enablement of acns
:return: Tuple of 4 elements which can be bool or None
"""
enable_acns, enable_acns_observability, enable_acns_security, _ = self.get_acns_enablement_with_perf()
return enable_acns, enable_acns_observability, enable_acns_security
return self.get_acns_enablement_with_perf()
Comment thread
santhoshmprabhu marked this conversation as resolved.

def get_acns_enablement_with_perf(self) -> Tuple[
Union[bool, None],
Expand Down Expand Up @@ -4068,7 +4068,7 @@ def set_up_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
network_profile.network_dataplane = self.context.get_network_dataplane()

acns = None
(acns_enabled, acns_observability_enabled, acns_security_enabled) = self.context.get_acns_enablement()
(acns_enabled, acns_observability_enabled, acns_security_enabled, _) = self.context.get_acns_enablement()
acns_advanced_networkpolicies = self.context.get_acns_advanced_networkpolicies()
acns_transit_encryption_type = self.context.get_acns_transit_encryption_type()
acns_datapath_acceleration_mode = self.context.get_acns_datapath_acceleration_mode()
Expand Down Expand Up @@ -5747,7 +5747,8 @@ def update_acns_in_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
self._ensure_mc(mc)

acns = None
(acns_enabled, acns_observability_enabled, acns_security_enabled) = self.context.get_acns_enablement()
(acns_enabled, acns_observability_enabled,
acns_security_enabled, acns_perf_enabled) = self.context.get_acns_enablement()
acns_advanced_networkpolicies = self.context.get_acns_advanced_networkpolicies()
acns_transit_encryption_type = self.context.get_acns_transit_encryption_type()
acns_datapath_acceleration_mode = self.context.get_acns_datapath_acceleration_mode()
Expand Down Expand Up @@ -5776,10 +5777,16 @@ def update_acns_in_network_profile(self, mc: ManagedCluster) -> ManagedCluster:
if acns.security.transit_encryption is None:
acns.security.transit_encryption = self.models.AdvancedNetworkingSecurityTransitEncryption()
acns.security.transit_encryption.type = acns_transit_encryption_type
if acns_datapath_acceleration_mode is not None:
if acns.performance is None:
acns.performance = self.models.AdvancedNetworkingPerformance()
acns.performance.acceleration_mode = acns_datapath_acceleration_mode
if acns_perf_enabled is not None:
acns.performance = self.models.AdvancedNetworkingPerformance(
acceleration_mode=acns_datapath_acceleration_mode,
Comment thread
santhoshmprabhu marked this conversation as resolved.
)
elif not acns_enabled:
acns.performance = self.models.AdvancedNetworkingPerformance(
acceleration_mode=CONST_ACNS_DATAPATH_ACCELERATION_MODE_NONE,
)
elif mc.network_profile.advanced_networking is not None:
acns.performance = mc.network_profile.advanced_networking.performance
mc.network_profile.advanced_networking = acns
return mc

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18972,6 +18972,23 @@ def test_aks_create_with_acns_performance(
],
)

# Update unrelated acns field
update_cmd = (
"aks update --resource-group={resource_group} --name={name} "
"--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AdvancedNetworkingPerformancePreview,"
"AKSHTTPCustomFeatures=Microsoft.ContainerService/AdvancedNetworkingL7PolicyPreview "
"--enable-acns --acns-advanced-networkpolicies L7"
)

self.cmd(
update_cmd,
checks=[
self.check("provisioningState", "Succeeded"),
self.check("networkProfile.advancedNetworking.performance.accelerationMode", "None"),
self.check("networkProfile.advancedNetworking.security.advancedNetworkPolicies", "L7")
],
)

# Update acceleration mode to None
update_cmd = (
"aks update --resource-group={resource_group} --name={name} "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1049,7 +1049,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_1.get_acns_enablement_with_perf(), (None, None, None, None))
self.assertEqual(ctx_1.get_acns_enablement(), (None, None, None, None))

# Flag set to True.
ctx_2 = AKSPreviewManagedClusterContext(
Expand All @@ -1062,7 +1062,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_2.get_acns_enablement_with_perf(), (True, None, None, None))
self.assertEqual(ctx_2.get_acns_enablement(), (True, None, None, None))

# Flag set to True.
ctx_3 = AKSPreviewManagedClusterContext(
Expand All @@ -1075,7 +1075,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_3.get_acns_enablement_with_perf(), (True, None, None, None))
self.assertEqual(ctx_3.get_acns_enablement(), (True, None, None, None))

# Flag set to True and False.
ctx_4 = AKSPreviewManagedClusterContext(
Expand All @@ -1091,7 +1091,7 @@ def test_mc_get_acns_enablement(self):
)
# fail on get_acns mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_4.get_acns_enablement_with_perf()
ctx_4.get_acns_enablement()

# Flag set to False.
ctx_5 = AKSPreviewManagedClusterContext(
Expand All @@ -1104,7 +1104,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_5.get_acns_enablement_with_perf(), (False, None, None, None))
self.assertEqual(ctx_5.get_acns_enablement(), (False, None, None, None))

ctx_6 = AKSPreviewManagedClusterContext(
self.cmd,
Expand All @@ -1117,7 +1117,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_6.get_acns_enablement_with_perf(), (True, False, None, None))
self.assertEqual(ctx_6.get_acns_enablement(), (True, False, None, None))

ctx_7 = AKSPreviewManagedClusterContext(
self.cmd,
Expand All @@ -1130,7 +1130,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_7.get_acns_enablement_with_perf(), (True, None, False, None))
self.assertEqual(ctx_7.get_acns_enablement(), (True, None, False, None))

# Cannot disable observability with enabling acns
ctx_8 = AKSPreviewManagedClusterContext(
Expand All @@ -1143,7 +1143,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_8.get_acns_enablement_with_perf(), (None, None, None, None))
self.assertEqual(ctx_8.get_acns_enablement(), (None, None, None, None))

# Cannot disable security with enabling acns
ctx_9 = AKSPreviewManagedClusterContext(
Expand All @@ -1156,7 +1156,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_9.get_acns_enablement_with_perf(), (None, None, None, None))
self.assertEqual(ctx_9.get_acns_enablement(), (None, None, None, None))

# Illegal flags enable acns, disable acns security, disable acns observability
ctx_10 = AKSPreviewManagedClusterContext(
Expand All @@ -1171,9 +1171,9 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
# fail on get_acns_enablement_with_perf mutual exclusive error
# fail on get_acns_enablement mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_10.get_acns_enablement_with_perf()
ctx_10.get_acns_enablement()

# Illegal flags disable acns and disable acns observability
ctx_11 = AKSPreviewManagedClusterContext(
Expand All @@ -1187,9 +1187,9 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
# fail on get_acns_enablement_with_perf mutual exclusive error
# fail on get_acns_enablement mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_11.get_acns_enablement_with_perf()
ctx_11.get_acns_enablement()

# Illegal flags disable acns and disable acns security
ctx_12 = AKSPreviewManagedClusterContext(
Expand All @@ -1203,9 +1203,9 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
# fail on get_acns_enablement_with_perf mutual exclusive error
# fail on get_acns_enablement mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_12.get_acns_enablement_with_perf()
ctx_12.get_acns_enablement()

# Enable ACNS and ACNS performance
ctx_13 = AKSPreviewManagedClusterContext(
Expand All @@ -1219,7 +1219,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_13.get_acns_enablement_with_perf(), (True, None, None, True))
self.assertEqual(ctx_13.get_acns_enablement(), (True, None, None, True))

# Enable ACNS and ACNS performance with disable acns security, acns observability
ctx_14 = AKSPreviewManagedClusterContext(
Expand All @@ -1235,7 +1235,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
self.assertEqual(ctx_14.get_acns_enablement_with_perf(), (True, False, False, True))
self.assertEqual(ctx_14.get_acns_enablement(), (True, False, False, True))

# Enable all of ACNS (security and observability unspecified)
ctx_15 = AKSPreviewManagedClusterContext(
Expand All @@ -1249,7 +1249,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_15.get_acns_enablement_with_perf(), (True, None, None, True))
self.assertEqual(ctx_15.get_acns_enablement(), (True, None, None, True))

# Enable ACNS, disable performance, security and observability unspecified
ctx_15 = AKSPreviewManagedClusterContext(
Expand All @@ -1263,7 +1263,7 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
self.assertEqual(ctx_15.get_acns_enablement_with_perf(), (True, None, None, False))
self.assertEqual(ctx_15.get_acns_enablement(), (True, None, None, False))

# Illegal flags disable acns and disable acns performance
ctx_16 = AKSPreviewManagedClusterContext(
Expand All @@ -1277,9 +1277,9 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.UPDATE,
)
# fail on get_acns_enablement_with_perf mutual exclusive error
# fail on get_acns_enablement mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_16.get_acns_enablement_with_perf()
ctx_16.get_acns_enablement()

# Illegal flags enable acns and all suites disabled
ctx_17 = AKSPreviewManagedClusterContext(
Expand All @@ -1295,9 +1295,9 @@ def test_mc_get_acns_enablement(self):
self.models,
decorator_mode=DecoratorMode.CREATE,
)
# fail on get_acns_enablement_with_perf mutual exclusive error
# fail on get_acns_enablement mutual exclusive error
with self.assertRaises(MutuallyExclusiveArgumentError):
ctx_17.get_acns_enablement_with_perf()
ctx_17.get_acns_enablement()

def test_get_enable_managed_identity(self):
# custom value
Expand Down
Loading