Bump NTH to 1.16.4 and add support for scheduled instance change events

This commit is contained in:
Ole Markus With 2022-05-18 11:39:42 +02:00
parent 19aafca270
commit d08c028747
24 changed files with 94 additions and 43 deletions

View File

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

View File

@ -70,6 +70,10 @@ var (
name: "InstanceStateChange",
pattern: `{"source": ["aws.ec2"],"detail-type": ["EC2 Instance State-change Notification"]}`,
},
{
name: "InstanceScheduledChange",
pattern: `{"source": ["aws.health"],"detail-type": ["AWS Health Event"],"detail": {"service": ["EC2"],"eventTypeCategory": ["scheduledChange"]}}`,
},
}
)

View File

@ -79,7 +79,7 @@ func (b *NodeTerminationHandlerOptionsBuilder) BuildOptions(o interface{}) error
}
if nth.Version == nil {
nth.Version = fi.String("v1.16.1")
nth.Version = fi.String("v1.16.4")
}
return nil

View File

@ -216,7 +216,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 172.20.0.0/16
podCIDR: 172.20.128.0/17
secretStore: memfs://clusters.example.com/minimal.example.com/secrets

View File

@ -60,7 +60,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: af717441b7dfbb8b3220994545207f60415a8f3cef7e06b662c52894f1a63fda
manifestHash: dcc5a9d716ab85862138f9497f5ffcedb1a5af1de0bfee30fef6320063b08163
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -195,7 +195,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.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -218,7 +218,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 172.20.0.0/16
podCIDR: 172.20.128.0/17
secretStore: memfs://clusters.example.com/minimal.example.com/secrets

View File

@ -67,7 +67,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: af717441b7dfbb8b3220994545207f60415a8f3cef7e06b662c52894f1a63fda
manifestHash: dcc5a9d716ab85862138f9497f5ffcedb1a5af1de0bfee30fef6320063b08163
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -195,7 +195,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.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -217,7 +217,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 172.20.0.0/16
podCIDR: 172.20.128.0/17
secretStore: memfs://clusters.example.com/minimal.example.com/secrets

View File

@ -67,7 +67,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: af717441b7dfbb8b3220994545207f60415a8f3cef7e06b662c52894f1a63fda
manifestHash: dcc5a9d716ab85862138f9497f5ffcedb1a5af1de0bfee30fef6320063b08163
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -195,7 +195,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.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -215,7 +215,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 172.20.0.0/16
podCIDR: 172.20.128.0/17
secretStore: memfs://clusters.example.com/minimal.example.com/secrets

View File

@ -60,7 +60,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 56548e094bf217e87700adc8cf4cbaa18c1260a768217e758c26564cb57bec59
manifestHash: 78a9bf535eaf30637e7023548ece0aac4020e2979ff8cf0349243ab0c15dabab
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -191,7 +191,7 @@ spec:
value: "false"
- name: UPTIME_FROM_FILE
value: /proc/uptime
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -208,7 +208,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 172.20.0.0/16
podCIDR: 172.20.128.0/17
secretStore: memfs://clusters.example.com/minimal.example.com/secrets

View File

@ -60,7 +60,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: 56548e094bf217e87700adc8cf4cbaa18c1260a768217e758c26564cb57bec59
manifestHash: 78a9bf535eaf30637e7023548ece0aac4020e2979ff8cf0349243ab0c15dabab
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -191,7 +191,7 @@ spec:
value: "false"
- name: UPTIME_FROM_FILE
value: /proc/uptime
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
name: aws-node-termination-handler
resources:

View File

@ -991,6 +991,36 @@
]
}
},
"AWSEventsRulenthsqsresourceslongclusternameefkbaohInstanceScheduledChange": {
"Type": "AWS::Events::Rule",
"Properties": {
"Name": "nthsqsresources.longclustername.e-fkbaoh-InstanceScheduledChange",
"EventPattern": {
"detail": {
"eventTypeCategory": [
"scheduledChange"
],
"service": [
"EC2"
]
},
"detail-type": [
"AWS Health Event"
],
"source": [
"aws.health"
]
},
"Targets": [
{
"Id": "1",
"Arn": {
"Ref": "AWSSQSQueuenthsqsresourceslongclusternameexamplecomnth"
}
}
]
}
},
"AWSEventsRulenthsqsresourceslongclusternameefkbaohInstanceStateChange": {
"Type": "AWS::Events::Rule",
"Properties": {

View File

@ -0,0 +1 @@
{"source": ["aws.health"],"detail-type": ["AWS Health Event"],"detail": {"service": ["EC2"],"eventTypeCategory": ["scheduledChange"]}}

View File

@ -171,7 +171,7 @@ spec:
managedASGTag: aws-node-termination-handler/managed
memoryRequest: 64Mi
prometheusEnable: false
version: v1.16.1
version: v1.16.4
nonMasqueradeCIDR: 100.64.0.0/10
podCIDR: 100.96.0.0/11
secretStore: memfs://clusters.example.com/nthsqsresources.longclustername.example.com/secrets

View File

@ -47,7 +47,7 @@ spec:
version: 9.99.0
- id: k8s-1.11
manifest: node-termination-handler.aws/k8s-1.11.yaml
manifestHash: dbf40681e9a61a67f6e88466ddccc1ccbdeb801f0449ba7cc8694b739384962b
manifestHash: 55d757804d472165d4ad889bdac75ccd30e03301a14cc50798d56e4a512cbd06
name: node-termination-handler.aws
prune:
kinds:

View File

@ -9,7 +9,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -28,7 +28,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
rules:
@ -87,7 +87,7 @@ metadata:
app.kubernetes.io/managed-by: kops
app.kubernetes.io/name: aws-node-termination-handler
app.kubernetes.io/part-of: aws-node-termination-handler
app.kubernetes.io/version: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
name: aws-node-termination-handler
roleRef:
@ -110,7 +110,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: v1.16.1
app.kubernetes.io/version: v1.16.4
k8s-addon: node-termination-handler.aws
k8s-app: aws-node-termination-handler
name: aws-node-termination-handler
@ -208,7 +208,7 @@ spec:
value: https://sqs.us-test-1.amazonaws.com/123456789012/nthsqsresources-longclustername-example-com-nth
- name: WORKERS
value: "10"
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.1
image: public.ecr.aws/aws-ec2/aws-node-termination-handler:v1.16.4
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:

View File

@ -234,6 +234,16 @@ resource "aws_cloudwatch_event_rule" "nthsqsresources-longclustername-e-fkbaoh-A
}
}
resource "aws_cloudwatch_event_rule" "nthsqsresources-longclustername-e-fkbaoh-InstanceScheduledChange" {
event_pattern = file("${path.module}/data/aws_cloudwatch_event_rule_nthsqsresources.longclustername.e-fkbaoh-InstanceScheduledChange_event_pattern")
name = "nthsqsresources.longclustername.e-fkbaoh-InstanceScheduledChange"
tags = {
"KubernetesCluster" = "nthsqsresources.longclustername.example.com"
"Name" = "nthsqsresources.longclustername.e-fkbaoh-InstanceScheduledChange"
"kubernetes.io/cluster/nthsqsresources.longclustername.example.com" = "owned"
}
}
resource "aws_cloudwatch_event_rule" "nthsqsresources-longclustername-e-fkbaoh-InstanceStateChange" {
event_pattern = file("${path.module}/data/aws_cloudwatch_event_rule_nthsqsresources.longclustername.e-fkbaoh-InstanceStateChange_event_pattern")
name = "nthsqsresources.longclustername.e-fkbaoh-InstanceStateChange"
@ -269,6 +279,11 @@ resource "aws_cloudwatch_event_target" "nthsqsresources-longclustername-e-fkbaoh
rule = aws_cloudwatch_event_rule.nthsqsresources-longclustername-e-fkbaoh-ASGLifecycle.id
}
resource "aws_cloudwatch_event_target" "nthsqsresources-longclustername-e-fkbaoh-InstanceScheduledChange-Target" {
arn = aws_sqs_queue.nthsqsresources-longclustername-example-com-nth.arn
rule = aws_cloudwatch_event_rule.nthsqsresources-longclustername-e-fkbaoh-InstanceScheduledChange.id
}
resource "aws_cloudwatch_event_target" "nthsqsresources-longclustername-e-fkbaoh-InstanceStateChange-Target" {
arn = aws_sqs_queue.nthsqsresources-longclustername-example-com-nth.arn
rule = aws_cloudwatch_event_rule.nthsqsresources-longclustername-e-fkbaoh-InstanceStateChange.id