Skip to content

Commit 7dea629

Browse files
authored
Merge pull request #8891 from zalando-incubator/kube-node-decommissioner
Add kube-node-decommissioner CronJob
2 parents 47c9246 + 18351af commit 7dea629

File tree

4 files changed

+97
-0
lines changed

4 files changed

+97
-0
lines changed

cluster/config-defaults.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,9 @@ kube_proxy_memory_limit: "200Mi"
417417
kube_proxy_sync_period: "15m0s"
418418
kube_proxy_verbose_level: "2"
419419

420+
# kube-node-decommissioner
421+
kube_node_decommissioner_enabled: "true"
422+
420423
# flannel settings
421424
flannel_cpu: "25m"
422425
flannel_memory_request: "100Mi"

cluster/manifests/deletions.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,3 +410,15 @@ post_apply:
410410
kind: ServiceAccount
411411
namespace: kube-system
412412
{{- end}}
413+
{{- if ne .Cluster.ConfigItems.kube_node_decommissioner_enabled "true"}}
414+
- name: kube-node-decommissioner
415+
kind: CronJob
416+
namespace: kube-system
417+
- name: kube-node-decommissioner
418+
kind: ClusterRole
419+
- name: kube-node-decommissioner
420+
kind: ClusterRoleBinding
421+
- name: kube-node-decommissioner
422+
kind: ServiceAccount
423+
namespace: kube-system
424+
{{- end}}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# {{ if eq .Cluster.ConfigItems.kube_node_decommissioner_enabled "true" }}
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
name: "kube-node-decommissioner"
6+
namespace: "kube-system"
7+
annotations:
8+
application: kubernetes
9+
component: kube-node-decommissioner
10+
---
11+
apiVersion: rbac.authorization.k8s.io/v1
12+
kind: ClusterRole
13+
metadata:
14+
name: kube-node-decommissioner
15+
labels:
16+
application: kubernetes
17+
component: kube-node-decommissioner
18+
rules:
19+
- apiGroups: [""]
20+
resources: ["nodes"]
21+
verbs: ["list", "patch"]
22+
---
23+
# This role binding allows service-account "kube-node-decommissioner" to
24+
# list and patch nodes.
25+
apiVersion: rbac.authorization.k8s.io/v1
26+
kind: ClusterRoleBinding
27+
metadata:
28+
name: kube-node-decommissioner
29+
labels:
30+
application: kubernetes
31+
component: kube-node-decommissioner
32+
roleRef:
33+
kind: ClusterRole
34+
name: kube-node-decommissioner
35+
apiGroup: rbac.authorization.k8s.io
36+
subjects:
37+
- kind: ServiceAccount
38+
name: "kube-node-decommissioner"
39+
namespace: "kube-system"
40+
# {{ end }}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# {{ if eq .Cluster.ConfigItems.kube_node_decommissioner_enabled "true" }}
2+
apiVersion: batch/v1
3+
kind: CronJob
4+
metadata:
5+
name: kube-node-decommissioner
6+
namespace: "kube-system"
7+
labels:
8+
application: kubernetes
9+
component: kube-node-decommissioner
10+
spec:
11+
schedule: "*/1 * * * *"
12+
concurrencyPolicy: Forbid
13+
startingDeadlineSeconds: 300
14+
successfulJobsHistoryLimit: 1
15+
failedJobsHistoryLimit: 1
16+
jobTemplate:
17+
spec:
18+
activeDeadlineSeconds: 300
19+
backoffLimit: 0
20+
template:
21+
metadata:
22+
labels:
23+
application: kubernetes
24+
component: kube-node-decommissioner
25+
annotations:
26+
logging/destination: "{{.Cluster.ConfigItems.log_destination_infra}}"
27+
spec:
28+
serviceAccountName: kube-node-decommissioner
29+
restartPolicy: Never
30+
containers:
31+
- name: kube-node-decommissioner
32+
image: container-registry.zalando.net/teapot/kube-node-decommissioner:main-1
33+
args:
34+
- --debug
35+
resources:
36+
limits:
37+
cpu: 100m
38+
memory: 100Mi
39+
requests:
40+
cpu: 100m
41+
memory: 100Mi
42+
# {{ end }}

0 commit comments

Comments
 (0)