@@ -1069,6 +1069,52 @@ func TestAccEKSNodeGroup_update(t *testing.T) {
10691069 })
10701070}
10711071
1072+ func TestAccEKSNodeGroup_updateStrategy (t * testing.T ) {
1073+ ctx := acctest .Context (t )
1074+ var nodeGroup1 , nodeGroup2 types.Nodegroup
1075+ rName := sdkacctest .RandomWithPrefix (acctest .ResourcePrefix )
1076+ resourceName := "aws_eks_node_group.test"
1077+
1078+ resource .ParallelTest (t , resource.TestCase {
1079+ PreCheck : func () { acctest .PreCheck (ctx , t ); testAccPreCheck (ctx , t ) },
1080+ ErrorCheck : acctest .ErrorCheck (t , names .EKSServiceID ),
1081+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories ,
1082+ CheckDestroy : testAccCheckNodeGroupDestroy (ctx ),
1083+ Steps : []resource.TestStep {
1084+ {
1085+ Config : testAccNodeGroupConfig_update1 (rName ),
1086+ Check : resource .ComposeTestCheckFunc (
1087+ testAccCheckNodeGroupExists (ctx , resourceName , & nodeGroup1 ),
1088+ resource .TestCheckResourceAttr (resourceName , "update_config.#" , "1" ),
1089+ resource .TestCheckResourceAttr (resourceName , "update_config.0.max_unavailable" , "1" ),
1090+ resource .TestCheckResourceAttr (resourceName , "update_config.0.max_unavailable_percentage" , "0" ),
1091+ ),
1092+ },
1093+ {
1094+ Config : testAccNodeGroupConfig_updateStrategy (rName , "DEFAULT" ),
1095+ Check : resource .ComposeTestCheckFunc (
1096+ testAccCheckNodeGroupExists (ctx , resourceName , & nodeGroup1 ),
1097+ resource .TestCheckResourceAttr (resourceName , "update_config.#" , "1" ),
1098+ resource .TestCheckResourceAttr (resourceName , "update_config.0.update_strategy" , "DEFAULT" ),
1099+ ),
1100+ },
1101+ {
1102+ ResourceName : resourceName ,
1103+ ImportState : true ,
1104+ ImportStateVerify : true ,
1105+ },
1106+ {
1107+ Config : testAccNodeGroupConfig_updateStrategy (rName , "MINIMAL" ),
1108+ Check : resource .ComposeTestCheckFunc (
1109+ testAccCheckNodeGroupExists (ctx , resourceName , & nodeGroup2 ),
1110+ resource .TestCheckResourceAttr (resourceName , "update_config.#" , "1" ),
1111+ resource .TestCheckResourceAttr (resourceName , "update_config.0.update_strategy" , "MINIMAL" ),
1112+ ),
1113+ },
1114+ },
1115+ })
1116+ }
1117+
10721118func TestAccEKSNodeGroup_version (t * testing.T ) {
10731119 ctx := acctest .Context (t )
10741120 var nodeGroup1 , nodeGroup2 types.Nodegroup
@@ -2403,6 +2449,35 @@ resource "aws_eks_node_group" "test" {
24032449` , rName ))
24042450}
24052451
2452+ func testAccNodeGroupConfig_updateStrategy (rName , updateStrategy string ) string {
2453+ return acctest .ConfigCompose (testAccNodeGroupConfig_base (rName ), fmt .Sprintf (`
2454+ resource "aws_eks_node_group" "test" {
2455+ cluster_name = aws_eks_cluster.test.name
2456+ node_group_name = %[1]q
2457+ node_role_arn = aws_iam_role.node.arn
2458+ subnet_ids = aws_subnet.test[*].id
2459+
2460+ scaling_config {
2461+ desired_size = 1
2462+ max_size = 3
2463+ min_size = 1
2464+ }
2465+
2466+ update_config {
2467+ max_unavailable = 1
2468+ update_strategy = %[2]q
2469+ }
2470+
2471+ depends_on = [
2472+ aws_iam_role_policy_attachment.node-AmazonEKSWorkerNodePolicy,
2473+ aws_iam_role_policy_attachment.node-AmazonEKS_CNI_Policy,
2474+ aws_iam_role_policy_attachment.node-AmazonEC2ContainerRegistryReadOnly,
2475+ aws_iam_role_policy_attachment.node-AmazonEKSWorkerNodeMinimalPolicy,
2476+ ]
2477+ }
2478+ ` , rName , updateStrategy ))
2479+ }
2480+
24062481func testAccNodeGroupConfig_version (rName , version string ) string {
24072482 return acctest .ConfigCompose (testAccNodeGroupConfig_versionBase (rName , version ), fmt .Sprintf (`
24082483resource "aws_eks_node_group" "test" {
0 commit comments