-
Notifications
You must be signed in to change notification settings - Fork 6
/
eks-cluster.config.yaml
71 lines (66 loc) · 1.8 KB
/
eks-cluster.config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Default configuration
detailed_monitoring: false
draining_lambda:
custom_policies:
DrainerPolicies:
action:
- autoscaling:CompleteLifecycleAction
- ec2:DescribeInstances
- eks:DescribeCluster
- sts:GetCallerIdentity
roles:
Draining:
policies_inline:
- DrainerPolicies
- cloudwatch-logs
functions:
Drainer:
code: drainer
handler: handler.lambda_handler
runtime: python3.11
timeout: 300
role: Draining
package_cmd: 'pip install -r requirements.txt -t .'
environment:
CLUSTER_NAME:
Ref: EksCluster
event:
pattern:
source:
- "aws.autoscaling"
detail-type:
- "EC2 Instance-terminate Lifecycle Action"
detail:
AutoScalingGroupName:
- Fn::Sub: '${EksNodeAutoScalingGroup}'
targets:
-
Arn:
Fn::GetAtt:
- "Drainer"
- "Arn"
Id: "EksDrainerFunction"
iam:
services:
- ec2
managed_policies:
- arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
- arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
- arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
policies:
cluster-autoscaler:
action:
- autoscaling:DescribeAutoScalingGroups
- autoscaling:DescribeAutoScalingInstances
- autoscaling:DescribeLaunchConfigurations
- autoscaling:DescribeTags
- autoscaling:SetDesiredCapacity
- autoscaling:TerminateInstanceInAutoScalingGroup
- ec2:DescribeLaunchTemplateVersions
eks_bootstrap: |
/etc/eks/bootstrap.sh ${EksCluster} ${BootstrapArguments}
cfnsignal: |
/opt/aws/bin/cfn-signal --exit-code $? \
--stack ${AWS::StackName} \
--resource NodeGroup \
--region ${AWS::Region}