Add instance state change notification to nth

This commit is contained in:
Ole Markus With 2021-08-31 22:09:32 +02:00
parent fc91d0d459
commit b52008d9b6
14 changed files with 63 additions and 22 deletions

View File

@ -1033,6 +1033,7 @@ func (i *integrationTest) runTestTerraformAWS(t *testing.T) {
"aws_cloudwatch_event_rule_" + i.clusterName + "-ASGLifecycle_event_pattern",
"aws_cloudwatch_event_rule_" + i.clusterName + "-RebalanceRecommendation_event_pattern",
"aws_cloudwatch_event_rule_" + i.clusterName + "-SpotInterruption_event_pattern",
"aws_cloudwatch_event_rule_" + i.clusterName + "-InstanceStateChange_event_pattern",
"aws_sqs_queue_" + strings.Replace(i.clusterName, ".", "-", -1) + "-nth_policy",
}...)
}

View File

@ -64,6 +64,10 @@ var (
name: "RebalanceRecommendation",
pattern: `{"source": ["aws.ec2"],"detail-type": ["EC2 Instance Rebalance Recommendation"]}`,
},
{
name: "InstanceStateChange",
pattern: `{"source": ["aws.ec2"],"detail-type": ["EC2 Instance State-change Notification"]}`,
},
}
)

View File

@ -52,7 +52,7 @@ spec:
selector: null
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 9330666b0382e3ef54ce357319899e040f7b1477d63d7e4f1f592cb79eb3d395
manifestHash: 921107cec6ff139ad757c3167c9d479ef87804e39efdf172d23b7b0b3c453a14
name: node-termination-handler.aws
selector:
k8s-addon: node-termination-handler.aws

View File

@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -90,7 +90,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -166,7 +166,7 @@ spec:
value: arn:aws-test:iam::123456789012:role/aws-node-termination-handler.kube-system.sa.minimal.example.com
- name: AWS_WEB_IDENTITY_TOKEN_FILE
value: /var/run/secrets/amazonaws.com/token
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -52,7 +52,7 @@ spec:
selector: null
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 964641df31815a1c0740ac78a342fc422676509c05ec8f090368b3c4b16a8e13
manifestHash: aff5c358e9068af057fc266041105328dd9e11e473cd051f393f67182edc47fb
name: node-termination-handler.aws
selector:
k8s-addon: node-termination-handler.aws

View File

@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -90,7 +90,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -162,7 +162,7 @@ spec:
value: "false"
- name: LOG_LEVEL
value: info
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -52,7 +52,7 @@ spec:
selector: null
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 964641df31815a1c0740ac78a342fc422676509c05ec8f090368b3c4b16a8e13
manifestHash: aff5c358e9068af057fc266041105328dd9e11e473cd051f393f67182edc47fb
name: node-termination-handler.aws
selector:
k8s-addon: node-termination-handler.aws

View File

@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -90,7 +90,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -162,7 +162,7 @@ spec:
value: "false"
- name: LOG_LEVEL
value: info
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -989,6 +989,26 @@
]
}
},
"AWSEventsRulenthsqsresourcesexamplecomInstanceStateChange": {
"Type": "AWS::Events::Rule",
"Properties": {
"Name": "nthsqsresources.example.com-InstanceStateChange",
"EventPattern": {
"detail-type": [
"EC2 Instance State-change Notification"
],
"source": [
"aws.ec2"
]
},
"Targets": [
{
"Id": "1",
"Arn": "arn:aws:sqs:us-test-1:123456789012:nthsqsresources-example-com-nth"
}
]
}
},
"AWSEventsRulenthsqsresourcesexamplecomRebalanceRecommendation": {
"Type": "AWS::Events::Rule",
"Properties": {

View File

@ -0,0 +1 @@
{"source": ["aws.ec2"],"detail-type": ["EC2 Instance State-change Notification"]}

View File

@ -41,7 +41,7 @@ spec:
k8s-addon: dns-controller.addons.k8s.io
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 2fbd4c41bf3c8cfd8651b82cc9335431f0ad5931abb82b92dbb4fe713df2e1aa
manifestHash: 0d47866cd451a44675257bc40b4902d3dce29ebe88ab3f9f43f31e246e6ce7f1
name: node-termination-handler.aws
selector:
k8s-addon: node-termination-handler.aws

View File

@ -7,7 +7,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -90,7 +90,7 @@ metadata:
app.kubernetes.io/instance: aws-node-termination-handler
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/version: 1.13.0
app.kubernetes.io/version: 1.13.3
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -199,7 +199,7 @@ spec:
value: aws-node-termination-handler/managed
- name: WORKERS
value: "10"
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -229,6 +229,16 @@ resource "aws_cloudwatch_event_rule" "nthsqsresources-example-com-ASGLifecycle"
}
}
resource "aws_cloudwatch_event_rule" "nthsqsresources-example-com-InstanceStateChange" {
event_pattern = file("${path.module}/data/aws_cloudwatch_event_rule_nthsqsresources.example.com-InstanceStateChange_event_pattern")
name = "nthsqsresources.example.com-InstanceStateChange"
tags = {
"KubernetesCluster" = "nthsqsresources.example.com"
"Name" = "nthsqsresources.example.com-InstanceStateChange"
"kubernetes.io/cluster/nthsqsresources.example.com" = "owned"
}
}
resource "aws_cloudwatch_event_rule" "nthsqsresources-example-com-RebalanceRecommendation" {
event_pattern = file("${path.module}/data/aws_cloudwatch_event_rule_nthsqsresources.example.com-RebalanceRecommendation_event_pattern")
name = "nthsqsresources.example.com-RebalanceRecommendation"
@ -254,6 +264,11 @@ resource "aws_cloudwatch_event_target" "nthsqsresources-example-com-ASGLifecycle
rule = aws_cloudwatch_event_rule.nthsqsresources-example-com-ASGLifecycle.id
}
resource "aws_cloudwatch_event_target" "nthsqsresources-example-com-InstanceStateChange-Target" {
arn = "arn:aws:sqs:us-test-1:123456789012:nthsqsresources-example-com-nth"
rule = aws_cloudwatch_event_rule.nthsqsresources-example-com-InstanceStateChange.id
}
resource "aws_cloudwatch_event_target" "nthsqsresources-example-com-RebalanceRecommendation-Target" {
arn = "arn:aws:sqs:us-test-1:123456789012:nthsqsresources-example-com-nth"
rule = aws_cloudwatch_event_rule.nthsqsresources-example-com-RebalanceRecommendation.id

View File

@ -1,5 +1,5 @@
{{ with .NodeTerminationHandler }}
# Sourced from https://github.com/aws/aws-node-termination-handler/releases/download/v1.13.0/all-resources.yaml
# Sourced from https://github.com/aws/aws-node-termination-handler/releases/download/v1.13.3/all-resources.yaml
---
# Source: aws-node-termination-handler/templates/serviceaccount.yaml
apiVersion: v1
@ -11,7 +11,7 @@ metadata:
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/instance: aws-node-termination-handler
k8s-app: aws-node-termination-handler
app.kubernetes.io/version: "1.13.0"
app.kubernetes.io/version: "1.13.3"
---
# Source: aws-node-termination-handler/templates/clusterrole.yaml
kind: ClusterRole
@ -78,7 +78,7 @@ metadata:
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/instance: aws-node-termination-handler
k8s-app: aws-node-termination-handler
app.kubernetes.io/version: "1.13.0"
app.kubernetes.io/version: "1.13.3"
spec:
replicas: 1
selector:
@ -117,7 +117,7 @@ spec:
fsGroup: 1000
containers:
- name: aws-node-termination-handler
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
@ -220,7 +220,7 @@ metadata:
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/instance: aws-node-termination-handler
k8s-app: aws-node-termination-handler
app.kubernetes.io/version: "1.13.0"
app.kubernetes.io/version: "1.13.3"
spec:
updateStrategy:
rollingUpdate:
@ -264,7 +264,7 @@ spec:
dnsPolicy: "ClusterFirstWithHostNet"
containers:
- name: aws-node-termination-handler
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.0
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.13.3
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true