diff --git a/tests/integration/update_cluster/minimal-warmpool/data/aws_iam_role_policy_nodes.minimal-warmpool.example.com_policy b/tests/integration/update_cluster/minimal-warmpool/data/aws_iam_role_policy_nodes.minimal-warmpool.example.com_policy index 685e423d5e..757fd5f638 100644 --- a/tests/integration/update_cluster/minimal-warmpool/data/aws_iam_role_policy_nodes.minimal-warmpool.example.com_policy +++ b/tests/integration/update_cluster/minimal-warmpool/data/aws_iam_role_policy_nodes.minimal-warmpool.example.com_policy @@ -27,6 +27,7 @@ { "Action": [ "autoscaling:DescribeAutoScalingInstances", + "autoscaling:DescribeLifecycleHooks", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "iam:GetServerCertificate", @@ -35,6 +36,16 @@ ], "Effect": "Allow", "Resource": "*" + }, + { + "Action": "autoscaling:CompleteLifecycleAction", + "Condition": { + "StringEquals": { + "aws:ResourceTag/KubernetesCluster": "" + } + }, + "Effect": "Allow", + "Resource": "*" } ], "Version": "2012-10-17" diff --git a/tests/integration/update_cluster/minimal-warmpool/data/aws_launch_template_nodes.minimal-warmpool.example.com_user_data b/tests/integration/update_cluster/minimal-warmpool/data/aws_launch_template_nodes.minimal-warmpool.example.com_user_data index 80e81e78d4..0b2985d050 100644 --- a/tests/integration/update_cluster/minimal-warmpool/data/aws_launch_template_nodes.minimal-warmpool.example.com_user_data +++ b/tests/integration/update_cluster/minimal-warmpool/data/aws_launch_template_nodes.minimal-warmpool.example.com_user_data @@ -166,7 +166,7 @@ CloudProvider: aws ConfigBase: memfs://clusters.example.com/minimal-warmpool.example.com InstanceGroupName: nodes InstanceGroupRole: Node -NodeupConfigHash: xgDmL/trdNoIqYoD9V9u43wESCWFGJ4mb1Do5pv5A7w= +NodeupConfigHash: UjegVvxXJ+jbQaNuHnMwHSxxtZLwVHGLrg2vzkYEMtI= __EOF_KUBE_ENV diff --git a/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_cluster-completed.spec_content b/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_cluster-completed.spec_content index b59ba9a0c7..17b227704f 100644 --- a/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_cluster-completed.spec_content +++ b/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_cluster-completed.spec_content @@ -216,4 +216,5 @@ spec: type: Public masters: public nodes: public - warmPool: {} + warmPool: + enableLifecycleHook: true diff --git a/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_nodeupconfig-nodes_content b/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_nodeupconfig-nodes_content index 039af5d5a1..e27ff74be1 100644 --- a/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_nodeupconfig-nodes_content +++ b/tests/integration/update_cluster/minimal-warmpool/data/aws_s3_bucket_object_nodeupconfig-nodes_content @@ -32,6 +32,7 @@ CAs: 9B7UD2ushcVFPtaeoL9Gfu8aY4KJBeqqg5ojl4qmRnThjw== -----END CERTIFICATE----- ClusterName: minimal-warmpool.example.com +EnableLifecycleHook: true Hooks: - null - null diff --git a/tests/integration/update_cluster/minimal-warmpool/in-v1alpha2.yaml b/tests/integration/update_cluster/minimal-warmpool/in-v1alpha2.yaml index b77afff3cb..4fa33ca039 100644 --- a/tests/integration/update_cluster/minimal-warmpool/in-v1alpha2.yaml +++ b/tests/integration/update_cluster/minimal-warmpool/in-v1alpha2.yaml @@ -41,7 +41,8 @@ spec: name: us-test-1a type: Public zone: us-test-1a - warmPool: {} + warmPool: + enableLifecycleHook: true --- diff --git a/tests/integration/update_cluster/minimal-warmpool/kubernetes.tf b/tests/integration/update_cluster/minimal-warmpool/kubernetes.tf index 3374b703ec..730301232e 100644 --- a/tests/integration/update_cluster/minimal-warmpool/kubernetes.tf +++ b/tests/integration/update_cluster/minimal-warmpool/kubernetes.tf @@ -198,6 +198,14 @@ resource "aws_autoscaling_group" "nodes-minimal-warmpool-example-com" { vpc_zone_identifier = [aws_subnet.us-test-1a-minimal-warmpool-example-com.id] } +resource "aws_autoscaling_lifecycle_hook" "kops-warmpool-nodes" { + autoscaling_group_name = aws_autoscaling_group.nodes-minimal-warmpool-example-com.id + default_result = "ABANDON" + heartbeat_timeout = 600 + lifecycle_transition = "autoscaling:EC2_INSTANCE_LAUNCHING" + name = "kops-warmpool" +} + resource "aws_ebs_volume" "us-test-1a-etcd-events-minimal-warmpool-example-com" { availability_zone = "us-test-1a" encrypted = false