@@ -2630,6 +2630,81 @@ def test_aks_machine_add_cmds(self, resource_group, resource_group_location):
26302630 checks=[self.is_empty()],
26312631 )
26322632
2633+ @AllowLargeResponse()
2634+ @AKSCustomResourceGroupPreparer(
2635+ random_name_length=17, name_prefix="clitest", location="westus2"
2636+ )
2637+ def test_aks_machine_add_spot_and_ultra_ssd(self, resource_group, resource_group_location):
2638+ aks_name = self.create_random_name("cliakstest", 16)
2639+ self.kwargs.update(
2640+ {
2641+ "resource_group": resource_group,
2642+ "location": resource_group_location,
2643+ "name": aks_name,
2644+ "ssh_key_value": self.generate_ssh_keys(),
2645+ }
2646+ )
2647+ # create aks cluster
2648+ create_cmd = "aks create --resource-group={resource_group} --name={name} --ssh-key-value={ssh_key_value}"
2649+ self.cmd(
2650+ create_cmd,
2651+ checks=[
2652+ self.check("provisioningState", "Succeeded"),
2653+ ],
2654+ )
2655+
2656+ node_pool_name = self.create_random_name("c", 6)
2657+ self.kwargs.update(
2658+ {
2659+ "resource_group": resource_group,
2660+ "name": aks_name,
2661+ "node_pool_name": node_pool_name,
2662+ "ssh_key_value": self.generate_ssh_keys(),
2663+ "machine_name": "machinespot",
2664+ "vm_size": "Standard_D4s_v4",
2665+ }
2666+ )
2667+
2668+ # add machines nodepool
2669+ self.cmd(
2670+ "aks nodepool add --resource-group={resource_group} --cluster-name={name} --name={node_pool_name} --mode=Machines",
2671+ checks=[self.check("provisioningState", "Succeeded"), self.check("mode", "Machines")],
2672+ )
2673+
2674+ # add machine with spot priority, eviction policy, spot-max-price, and ultra ssd
2675+ self.cmd(
2676+ "aks machine add "
2677+ " --resource-group={resource_group} "
2678+ " --cluster-name={name} "
2679+ " --nodepool-name={node_pool_name} "
2680+ " --machine-name={machine_name} "
2681+ " --vm-size={vm_size} "
2682+ " --priority Spot "
2683+ " --eviction-policy Delete "
2684+ " --spot-max-price 0.5 "
2685+ " --enable-ultra-ssd"
2686+ )
2687+
2688+ # show the machine and verify spot/eviction/ultra-ssd settings
2689+ show_cmd = (
2690+ "aks machine show "
2691+ " --resource-group={resource_group} "
2692+ " --cluster-name={name} "
2693+ " --nodepool-name={node_pool_name} "
2694+ " --machine-name={machine_name} -o json"
2695+ )
2696+ machine_show = self.cmd(show_cmd).get_output_in_json()
2697+ assert machine_show["properties"]["priority"] == "Spot"
2698+ assert machine_show["properties"]["evictionPolicy"] == "Delete"
2699+ assert machine_show["properties"]["billing"]["spotMaxPrice"] == 0.5
2700+ assert machine_show["properties"]["hardware"]["enableUltraSSD"] is True
2701+
2702+ # delete AKS cluster
2703+ self.cmd(
2704+ "aks delete -g {resource_group} -n {name} --yes --no-wait",
2705+ checks=[self.is_empty()],
2706+ )
2707+
26332708 @AllowLargeResponse()
26342709 @AKSCustomResourceGroupPreparer(
26352710 random_name_length=17, name_prefix="clitest", location="westus2"
0 commit comments