Skip to content

Commit 07c5515

Browse files
authored
Add taint remover (#1527)
* add taint remover * fix chart name * fix storage ns * Refactor terminationGracePeriod handling
1 parent d8a4678 commit 07c5515

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- Add `capa-karpenter-taint-remover` to handle CAPA - Karpenter taint race condition.
13+
1014
### Changed
1115

1216
- Set `terminationGracePeriod` default to 30m, to avoid having `karpenter` nodes stuck in `Deleting` state due to `Pods` blocking the deletion i.e. PDBs.

helm/cluster-aws/templates/_karpenter_machine_pools.tpl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,7 @@ spec:
155155
{{- end }}
156156
{{- end }}
157157
{{- end }}
158-
{{- with $value.terminationGracePeriod }}
159-
terminationGracePeriod: {{ . | default "30m" }}
160-
{{- end }}
158+
terminationGracePeriod: {{ $value.terminationGracePeriod | default "30m" }}
161159
---
162160
{{ end }}
163161
{{ end }}

helm/cluster-aws/templates/karpenter-helmrelease.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,4 +94,40 @@ spec:
9494
optional: {{ $config.optional | default false }}
9595
{{- end }}
9696
{{- end }}
97+
---
98+
apiVersion: helm.toolkit.fluxcd.io/v2
99+
kind: HelmRelease
100+
metadata:
101+
name: {{ include "resource.default.name" $ }}-karpenter-taint
102+
namespace: {{ $.Release.Namespace }}
103+
annotations:
104+
cluster.giantswarm.io/description: "{{ .Values.global.metadata.description }}"
105+
labels:
106+
cluster-apps-operator.giantswarm.io/watching: ""
107+
{{- include "labels.common" . | nindent 4 }}
108+
spec:
109+
suspend: false
110+
releaseName: karpenter-taint
111+
targetNamespace: karpenter
112+
storageNamespace: karpenter
113+
chart:
114+
spec:
115+
chart: capa-karpenter-taint-remover
116+
{{- $_ := set $ "appName" "capa-karpenter-taint-remover" }}
117+
version: {{ include "cluster.app.version" $ }}
118+
sourceRef:
119+
kind: HelmRepository
120+
name: {{ include "resource.default.name" $ }}-{{ include "cluster.app.catalog" $ }}
121+
kubeConfig:
122+
secretRef:
123+
name: {{ include "resource.default.name" $ }}-kubeconfig
124+
interval: 5m
125+
timeout: 15m # We need a bigger timeout because it could take a while for IRSA (via CloudFront) to become available
126+
install:
127+
createNamespace: true
128+
remediation:
129+
retries: -1
130+
upgrade:
131+
remediation:
132+
retries: -1
97133
{{- end }}

0 commit comments

Comments
 (0)