You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(chart): expose scheduling, command/args, and an optional PDB (#47)
Add nodeSelector, affinity, tolerations, topologySpreadConstraints,
imagePullSecrets, priorityClassName, command and args to the Deployment, all
empty by default so existing releases render unchanged. Add an optional
PodDisruptionBudget (off by default; defaults to maxUnavailable:1 when enabled)
for drain safety with replicas > 1: minAvailable and maxUnavailable are mutually
exclusive positive integers, and minAvailable >= replicas (the un-evictable
footgun) is rejected at render time. replicas is validated as a non-negative
integer. Bump the chart to 2.1.0.
Also correct the README image.tag default (latest -> "" / tracks appVersion),
which had drifted from values.yaml.
Co-authored-by: Jannes Stubbemann <jannes.stubbemann@gmail.com>
Copy file name to clipboardExpand all lines: charts/karpenter-provider-hetzner/Chart.yaml
+2-4Lines changed: 2 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@ apiVersion: v2
2
2
name: karpenter-provider-hetzner
3
3
description: Karpenter cloud provider for Hetzner Cloud
4
4
type: application
5
-
version: 2.0.0
5
+
version: 2.1.0
6
6
appVersion: "2.0.0"
7
7
# home points at Paperclip.inc (the project's canonical page) so listing
8
8
# "Homepage" links drive backlinks to the domain; GitHub stays as source.
@@ -31,7 +31,5 @@ annotations:
31
31
artifacthub.io/category: integration-delivery
32
32
artifacthub.io/containsSecurityUpdates: "false"
33
33
artifacthub.io/changes: |
34
-
- kind: changed
35
-
description: "BREAKING: HCloudNodeClass graduated from karpenter.hetzner.cloud/v1alpha1 to /v1; re-apply node classes (no conversion webhook)"
36
34
- kind: added
37
-
description: "k3s agent bootstrap example and guide (examples/k3s-nodeclass.yaml, docs/k3s-bootstrap.md)"
35
+
description: "Expose nodeSelector, affinity, tolerations, topologySpreadConstraints, imagePullSecrets, priorityClassName, command, args and an optional PodDisruptionBudget (minAvailable or maxUnavailable) on the Deployment via chart values"
{{- fail "podDisruptionBudget: set minAvailable OR maxUnavailable, not both." }}
7
+
{{- end }}
8
+
{{- if $hasMin }}
9
+
{{- include "karpenter-hetzner.requireInt" (dict "value" $pdb.minAvailable "name" "podDisruptionBudget.minAvailable") }}
10
+
{{- if ge (int $pdb.minAvailable) (int .Values.replicas) }}
11
+
{{- fail "podDisruptionBudget.minAvailable must be < replicas: minAvailable >= replicas makes the Deployment un-evictable and blocks all voluntary drains." }}
12
+
{{- end }}
13
+
{{- end }}
14
+
{{- if $hasMax }}
15
+
{{- include "karpenter-hetzner.requireInt" (dict "value" $pdb.maxUnavailable "name" "podDisruptionBudget.maxUnavailable") }}
0 commit comments