Skip to content

Commit e74f904

Browse files
committed
Fix update workflow
1 parent 3dc80d3 commit e74f904

5 files changed

Lines changed: 232 additions & 0 deletions

File tree

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,6 +1098,9 @@
10981098
- name: --disable-container-network-logs
10991099
type: bool
11001100
short-summary: Disable container network log collection functionalities on a cluster.
1101+
- name: --enable-high-log-scale-mode
1102+
type: bool
1103+
short-summary: Enable High Log Scale Mode for Container Logs. Auto-enabled when --enable-container-network-logs is specified.
11011104
- name: --nrg-lockdown-restriction-level
11021105
type: string
11031106
short-summary: Restriction level on the managed node resource group.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,8 @@ def load_arguments(self, _):
664664
c.argument("acns_advanced_networkpolicies", arg_type=get_enum_type(advanced_networkpolicies))
665665
c.argument('enable_container_network_logs', action='store_true')
666666
c.argument('disable_container_network_logs', action='store_true')
667+
# monitoring addons
668+
c.argument('enable_high_log_scale_mode', arg_type=get_three_state_flag())
667669
# private cluster parameters
668670
c.argument('enable_apiserver_vnet_integration', action='store_true')
669671
c.argument('apiserver_subnet_id', validator=validate_apiserver_subnet_id)

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,8 @@ def aks_update(
11651165
acns_advanced_networkpolicies=None,
11661166
enable_container_network_logs=None,
11671167
disable_container_network_logs=None,
1168+
# monitoring addons
1169+
enable_high_log_scale_mode=None,
11681170
# network isoalted cluster
11691171
bootstrap_artifact_source=None,
11701172
bootstrap_container_registry_resource_id=None,

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13206,6 +13206,42 @@ def test_aks_create_acns_with_flow_logs(
1320613206
],
1320713207
)
1320813208

13209+
# update: disable container network logs
13210+
disable_cnl_cmd = (
13211+
"aks update --resource-group={resource_group} --name={name} "
13212+
"--disable-container-network-logs "
13213+
)
13214+
self.cmd(
13215+
disable_cnl_cmd,
13216+
checks=[
13217+
self.check("provisioningState", "Succeeded"),
13218+
],
13219+
)
13220+
13221+
# update: enable high log scale mode independently via aks update
13222+
enable_hlsm_cmd = (
13223+
"aks update --resource-group={resource_group} --name={name} "
13224+
"--enable-high-log-scale-mode "
13225+
)
13226+
self.cmd(
13227+
enable_hlsm_cmd,
13228+
checks=[
13229+
self.check("provisioningState", "Succeeded"),
13230+
],
13231+
)
13232+
13233+
# update: re-enable container network logs (should auto-enable HLSM)
13234+
enable_cnl_cmd = (
13235+
"aks update --resource-group={resource_group} --name={name} "
13236+
"--enable-container-network-logs "
13237+
)
13238+
self.cmd(
13239+
enable_cnl_cmd,
13240+
checks=[
13241+
self.check("provisioningState", "Succeeded"),
13242+
],
13243+
)
13244+
1320913245
# delete
1321013246
self.cmd(
1321113247
"aks delete -g {resource_group} -n {name} --yes --no-wait",

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

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14436,6 +14436,195 @@ def test_enable_container_network_logs(self):
1443614436
):
1443714437
dec_8.set_up_addon_profiles(mc_8)
1443814438

14439+
# Case 9: UPDATE - enable HLSM only (no CNL), monitoring with MSI auth enabled
14440+
dec_9 = AKSManagedClusterUpdateDecorator(
14441+
self.cmd,
14442+
self.client,
14443+
{
14444+
"enable_high_log_scale_mode": True,
14445+
},
14446+
ResourceType.MGMT_CONTAINERSERVICE,
14447+
)
14448+
mc_9 = self.models.ManagedCluster(
14449+
location="test_location",
14450+
network_profile=self.models.ContainerServiceNetworkProfile(
14451+
network_plugin="azure",
14452+
network_plugin_mode="overlay",
14453+
network_dataplane="cilium",
14454+
advanced_networking=self.models.AdvancedNetworking(
14455+
enabled=True,
14456+
),
14457+
),
14458+
addon_profiles={
14459+
"omsagent": self.models.ManagedClusterAddonProfile(
14460+
enabled=True,
14461+
config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14462+
)
14463+
},
14464+
)
14465+
dec_9.context.attach_mc(mc_9)
14466+
dec_mc_9 = dec_9.update_monitoring_profile_flow_logs(mc_9)
14467+
# HLSM should be enabled but CNL remains unset — no enableRetinaNetworkFlags change
14468+
# The monitoring_addon_postprocessing_required intermediate should be set
14469+
self.assertTrue(
14470+
dec_9.context.get_intermediate("monitoring_addon_postprocessing_required")
14471+
)
14472+
14473+
# Case 10: UPDATE - disable HLSM while CNL is active -> should ERROR
14474+
dec_10 = AKSManagedClusterUpdateDecorator(
14475+
self.cmd,
14476+
self.client,
14477+
{
14478+
"enable_high_log_scale_mode": False,
14479+
},
14480+
ResourceType.MGMT_CONTAINERSERVICE,
14481+
)
14482+
mc_10 = self.models.ManagedCluster(
14483+
location="test_location",
14484+
network_profile=self.models.ContainerServiceNetworkProfile(
14485+
network_plugin="azure",
14486+
network_plugin_mode="overlay",
14487+
network_dataplane="cilium",
14488+
advanced_networking=self.models.AdvancedNetworking(
14489+
enabled=True,
14490+
),
14491+
),
14492+
addon_profiles={
14493+
"omsagent": self.models.ManagedClusterAddonProfile(
14494+
enabled=True,
14495+
config={
14496+
CONST_MONITORING_USING_AAD_MSI_AUTH: "true",
14497+
"enableRetinaNetworkFlags": "True",
14498+
},
14499+
)
14500+
},
14501+
)
14502+
dec_10.context.attach_mc(mc_10)
14503+
with self.assertRaises(MutuallyExclusiveArgumentError):
14504+
dec_10.update_monitoring_profile_flow_logs(mc_10)
14505+
14506+
# Case 11: UPDATE - enable CNL + HLSM=true together
14507+
dec_11 = AKSManagedClusterUpdateDecorator(
14508+
self.cmd,
14509+
self.client,
14510+
{
14511+
"enable_container_network_logs": True,
14512+
"enable_high_log_scale_mode": True,
14513+
},
14514+
ResourceType.MGMT_CONTAINERSERVICE,
14515+
)
14516+
mc_11 = self.models.ManagedCluster(
14517+
location="test_location",
14518+
network_profile=self.models.ContainerServiceNetworkProfile(
14519+
network_plugin="azure",
14520+
network_plugin_mode="overlay",
14521+
network_dataplane="cilium",
14522+
advanced_networking=self.models.AdvancedNetworking(
14523+
enabled=True,
14524+
),
14525+
),
14526+
addon_profiles={
14527+
"omsagent": self.models.ManagedClusterAddonProfile(
14528+
enabled=True,
14529+
config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14530+
)
14531+
},
14532+
)
14533+
dec_11.context.attach_mc(mc_11)
14534+
dec_mc_11 = dec_11.update_monitoring_profile_flow_logs(mc_11)
14535+
self.assertEqual(
14536+
dec_mc_11.addon_profiles["omsagent"].config["enableRetinaNetworkFlags"],
14537+
"True",
14538+
)
14539+
self.assertTrue(
14540+
dec_11.context.get_intermediate("monitoring_addon_postprocessing_required")
14541+
)
14542+
14543+
# Case 12: UPDATE - enable HLSM without monitoring addon -> should ERROR
14544+
dec_12 = AKSManagedClusterUpdateDecorator(
14545+
self.cmd,
14546+
self.client,
14547+
{
14548+
"enable_high_log_scale_mode": True,
14549+
},
14550+
ResourceType.MGMT_CONTAINERSERVICE,
14551+
)
14552+
mc_12 = self.models.ManagedCluster(
14553+
location="test_location",
14554+
network_profile=self.models.ContainerServiceNetworkProfile(
14555+
network_plugin="azure",
14556+
network_plugin_mode="overlay",
14557+
network_dataplane="cilium",
14558+
advanced_networking=self.models.AdvancedNetworking(
14559+
enabled=True,
14560+
),
14561+
),
14562+
)
14563+
dec_12.context.attach_mc(mc_12)
14564+
with self.assertRaises(RequiredArgumentMissingError):
14565+
dec_12.update_monitoring_profile_flow_logs(mc_12)
14566+
14567+
# Case 13: UPDATE - enable HLSM without MSI auth -> should ERROR
14568+
dec_13 = AKSManagedClusterUpdateDecorator(
14569+
self.cmd,
14570+
self.client,
14571+
{
14572+
"enable_high_log_scale_mode": True,
14573+
},
14574+
ResourceType.MGMT_CONTAINERSERVICE,
14575+
)
14576+
mc_13 = self.models.ManagedCluster(
14577+
location="test_location",
14578+
network_profile=self.models.ContainerServiceNetworkProfile(
14579+
network_plugin="azure",
14580+
network_plugin_mode="overlay",
14581+
network_dataplane="cilium",
14582+
advanced_networking=self.models.AdvancedNetworking(
14583+
enabled=True,
14584+
),
14585+
),
14586+
addon_profiles={
14587+
"omsagent": self.models.ManagedClusterAddonProfile(
14588+
enabled=True,
14589+
config={CONST_MONITORING_USING_AAD_MSI_AUTH: "false"},
14590+
)
14591+
},
14592+
)
14593+
dec_13.context.attach_mc(mc_13)
14594+
with self.assertRaises(RequiredArgumentMissingError):
14595+
dec_13.update_monitoring_profile_flow_logs(mc_13)
14596+
14597+
# Case 14: UPDATE - enable CNL + HLSM=false -> should ERROR
14598+
dec_14 = AKSManagedClusterUpdateDecorator(
14599+
self.cmd,
14600+
self.client,
14601+
{
14602+
"enable_container_network_logs": True,
14603+
"enable_high_log_scale_mode": False,
14604+
},
14605+
ResourceType.MGMT_CONTAINERSERVICE,
14606+
)
14607+
mc_14 = self.models.ManagedCluster(
14608+
location="test_location",
14609+
network_profile=self.models.ContainerServiceNetworkProfile(
14610+
network_plugin="azure",
14611+
network_plugin_mode="overlay",
14612+
network_dataplane="cilium",
14613+
advanced_networking=self.models.AdvancedNetworking(
14614+
enabled=True,
14615+
),
14616+
),
14617+
addon_profiles={
14618+
"omsagent": self.models.ManagedClusterAddonProfile(
14619+
enabled=True,
14620+
config={CONST_MONITORING_USING_AAD_MSI_AUTH: "true"},
14621+
)
14622+
},
14623+
)
14624+
dec_14.context.attach_mc(mc_14)
14625+
with self.assertRaises(MutuallyExclusiveArgumentError):
14626+
dec_14.update_monitoring_profile_flow_logs(mc_14)
14627+
1443914628

1444014629
if __name__ == "__main__":
1444114630
unittest.main()

0 commit comments

Comments
 (0)