@@ -2730,6 +2730,131 @@ def test_aks_create_update_fips_flow(self, resource_group, resource_group_locati
27302730 )
27312731
27322732 # TODO(mheberling): Add kata tests
2733+ @AllowLargeResponse()
2734+ @AKSCustomResourceGroupPreparer(
2735+ random_name_length=17, name_prefix="clitest", location="westcentralus"
2736+ )
2737+ def test_aks_create_kata_flow(self, resource_group, resource_group_location):
2738+ # reset the count so in replay mode the random names will start with 0
2739+ self.test_resources_count = 0
2740+ aks_name = self.create_random_name("cliakstest", 16)
2741+ node_pool_name = self.create_random_name("c", 6)
2742+ # node_pool_name_second = self.create_random_name("c", 6)
2743+ self.kwargs.update(
2744+ {
2745+ "resource_group": resource_group,
2746+ "name": aks_name,
2747+ "dns_name_prefix": self.create_random_name("cliaksdns", 16),
2748+ "location": resource_group_location,
2749+ "resource_type": "Microsoft.ContainerService/ManagedClusters",
2750+ "node_pool_name": node_pool_name,
2751+ # "node_pool_name_second": node_pool_name_second,
2752+ # "ssh_key_value": self.generate_ssh_keys(),
2753+ }
2754+ )
2755+
2756+ # 1. create
2757+ create_cmd = (
2758+ "aks create --resource-group={resource_group} --name={name} --location={location} "
2759+ "--nodepool-name {node_pool_name} --os-sku AzureLinux --node-count 1 --workload-runtime KataVmIsolation "
2760+ "--vm-size Standard_D4s_v3"
2761+ # "--ssh-key-value={ssh_key_value} "
2762+ # '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview '
2763+ # "--enable-fips-image"
2764+ )
2765+ self.cmd(
2766+ create_cmd,
2767+ checks=[
2768+ self.check("provisioningState", "Succeeded"),
2769+ self.check("agentPoolProfiles[0].enableFips", True),
2770+ ],
2771+ )
2772+
2773+ # verify no flag no change
2774+ self.cmd(
2775+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name} "
2776+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview',
2777+ checks=[
2778+ self.check("provisioningState", "Succeeded"),
2779+ self.check("enableFips", True),
2780+ ],
2781+ )
2782+
2783+ # verify same update no change
2784+ self.cmd(
2785+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name} "
2786+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview '
2787+ "--enable-fips-image",
2788+ checks=[
2789+ self.check("provisioningState", "Succeeded"),
2790+ self.check("enableFips", True),
2791+ ],
2792+ )
2793+
2794+ # update nodepool1 to disable
2795+ self.cmd(
2796+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name} "
2797+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview '
2798+ "--disable-fips-image",
2799+ checks=[
2800+ self.check("provisioningState", "Succeeded"),
2801+ self.check("enableFips", False),
2802+ ],
2803+ )
2804+
2805+ # 2. add nodepool2
2806+ self.cmd(
2807+ "aks nodepool add "
2808+ "--resource-group={resource_group} "
2809+ "--cluster-name={name} "
2810+ "--name={node_pool_name_second} "
2811+ "--os-type Linux "
2812+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview ',
2813+ checks=[
2814+ self.check("provisioningState", "Succeeded"),
2815+ self.check("enableFips", False),
2816+ ],
2817+ )
2818+
2819+ # verify no flag no change
2820+ self.cmd(
2821+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name_second} "
2822+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview',
2823+ checks=[
2824+ self.check("provisioningState", "Succeeded"),
2825+ self.check("enableFips", False),
2826+ ],
2827+ )
2828+
2829+ # verify same update no change
2830+ self.cmd(
2831+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name_second} "
2832+ '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview '
2833+ "--disable-fips-image",
2834+ checks=[
2835+ self.check("provisioningState", "Succeeded"),
2836+ self.check("enableFips", False),
2837+ ],
2838+ )
2839+
2840+ # update nodepool2 to enable
2841+ self.cmd(
2842+ "aks nodepool update --resource-group={resource_group} --cluster-name={name} --name={node_pool_name_second} "
2843+ "--nodepool-name {node_pool_name} --os-sku AzureLinux --node-count 1 --workload-runtime KataVmIsolation "
2844+ "--vm-size Standard_D4s_v3"
2845+ # '--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/MutableFipsPreview '
2846+ # "--enable-fips-image",
2847+ checks=[
2848+ self.check("provisioningState", "Succeeded"),
2849+ self.check("enableFips", True),
2850+ ],
2851+ )
2852+
2853+ # delete
2854+ self.cmd(
2855+ "aks delete -g {resource_group} -n {name} --yes --no-wait",
2856+ checks=[self.is_empty()],
2857+ )
27332858
27342859 @AllowLargeResponse()
27352860 @AKSCustomResourceGroupPreparer(random_name_length=17, name_prefix='clitest', location='westus2')
0 commit comments