Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/cassandra/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v1
appVersion: "1.0"
description: Helm chart for deploying cassandra
name: cassandra
version: 0.0.6
version: 0.0.7
icon: "https://storage.googleapis.com/zopdev-test-bucket/zop/files/originals/20241223/d7c22b49-c87b-4d41-a109-334a83b44f8d-cassandra.png"
maintainers:
- name: ZopDev
Expand Down
21 changes: 21 additions & 0 deletions charts/cassandra/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,27 @@ helm install my-cassandra zopdev/cassandra -f values.yaml

---

## Pod Scheduling

`nodeSelector`, `tolerations` and `affinity` are passed straight through to the pod spec. All three are empty by default and render nothing, so leaving them unset changes nothing for an existing release.

Together they place the workload on a dedicated node pool — the `nodeSelector` picks the pool, the toleration gets past its taint:

```yaml
nodeSelector:
workload: stateful

tolerations:
- key: workload
operator: Equal
value: stateful
effect: NoSchedule
```

`affinity` takes a full [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) object and is rendered verbatim.

---

## Contributing

We welcome contributions to improve this Helm chart. Please refer to the [CONTRIBUTING.md](../../CONTRIBUTING.md) file for contribution guidelines.
Expand Down
12 changes: 12 additions & 0 deletions charts/cassandra/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@ spec:
labels:
app: {{ .Release.Name }}-cassandra
spec:
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: cassandra
image: "bitnami/cassandra:5.0.2-debian-12-r3"
Expand Down
24 changes: 24 additions & 0 deletions charts/cassandra/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,30 @@
},
"required": ["name", "database"]
}
},

"nodeSelector": {
"category": "advanced",
"type": "object",
"description": "Node labels the pod must match, for pinning the workload to a node pool",
"default": {},
"mutable": true
},

"tolerations": {
"category": "advanced",
"type": "array",
"description": "Taints the pod tolerates, so it can schedule onto a tainted node pool",
"default": [],
"mutable": true
},

"affinity": {
"category": "advanced",
"type": "object",
"description": "Pod affinity / anti-affinity rules, applied verbatim to the pod spec",
"default": {},
"mutable": true
}
}
}
16 changes: 15 additions & 1 deletion charts/cassandra/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,18 @@ resources:
memory: "4000Mi"
cpu: "1000m"

diskSize: 10Gi
diskSize: 10Gi

# Pod scheduling. All three are optional and render nothing when left empty,
# so existing releases are unaffected. Use them to pin the workload to a
# dedicated (optionally tainted) node pool.
nodeSelector: {}
# workload: stateful

tolerations: []
# - key: workload
# operator: Equal
# value: stateful
# effect: NoSchedule

affinity: {}
2 changes: 1 addition & 1 deletion charts/chromadb/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "1.0"
description: Helm chart for deploying chromadb datastore
name: chromadb
version: 0.0.4
version: 0.0.5
icon: "https://storage.googleapis.com/zopdev-test-bucket/zop/files/originals/20241205/f21ef909-e0ea-4969-8963-0848602a5e4b-ImageEditor.jpg"
maintainers:
- name: ZopDev
Expand Down
21 changes: 21 additions & 0 deletions charts/chromadb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,27 @@ helm install my-chromadb zopdev/chromadb -f values.yaml

---

## Pod Scheduling

`nodeSelector`, `tolerations` and `affinity` are passed straight through to the pod spec. All three are empty by default and render nothing, so leaving them unset changes nothing for an existing release.

Together they place the workload on a dedicated node pool — the `nodeSelector` picks the pool, the toleration gets past its taint:

```yaml
nodeSelector:
workload: stateful

tolerations:
- key: workload
operator: Equal
value: stateful
effect: NoSchedule
```

`affinity` takes a full [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) object and is rendered verbatim.

---

## Contributing

We welcome contributions to improve this Helm chart. Please refer to the [CONTRIBUTING.md](../../CONTRIBUTING.md) file for contribution guidelines.
Expand Down
12 changes: 12 additions & 0 deletions charts/chromadb/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@ spec:
labels:
{{- include "chromadb.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: chromadb
image: "ghcr.io/chroma-core/chroma:{{.Values.version}}"
Expand Down
24 changes: 24 additions & 0 deletions charts/chromadb/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,30 @@
},
"required": ["name"]
}
},

"nodeSelector": {
"category": "advanced",
"type": "object",
"description": "Node labels the pod must match, for pinning the workload to a node pool",
"default": {},
"mutable": true
},

"tolerations": {
"category": "advanced",
"type": "array",
"description": "Taints the pod tolerates, so it can schedule onto a tainted node pool",
"default": [],
"mutable": true
},

"affinity": {
"category": "advanced",
"type": "object",
"description": "Pod affinity / anti-affinity rules, applied verbatim to the pod spec",
"default": {},
"mutable": true
}
}
}
16 changes: 15 additions & 1 deletion charts/chromadb/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,18 @@ resources:
memory: "2Gi"
cpu: "1000m"

diskSize: "10Gi"
diskSize: "10Gi"

# Pod scheduling. All three are optional and render nothing when left empty,
# so existing releases are unaffected. Use them to pin the workload to a
# dedicated (optionally tainted) node pool.
nodeSelector: {}
# workload: stateful

tolerations: []
# - key: workload
# operator: Equal
# value: stateful
# effect: NoSchedule

affinity: {}
2 changes: 1 addition & 1 deletion charts/clickhouse/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "1.0"
description: Helm chart for deploying clickhouse datastore
name: clickhouse
version: 0.0.4
version: 0.0.5
icon: "https://storage.googleapis.com/zopdev-blog-resources/1/files/originals/20260608/f641a725-da8d-450a-b57b-c959551a07bc-clickhouse.png"
maintainers:
- name: ZopDev
Expand Down
21 changes: 21 additions & 0 deletions charts/clickhouse/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,27 @@ The chart enables ClickHouse's built-in Prometheus endpoint (no sidecar exporter

---

## Pod Scheduling

`nodeSelector`, `tolerations` and `affinity` are passed straight through to the pod spec. All three are empty by default and render nothing, so leaving them unset changes nothing for an existing release.

Together they place the workload on a dedicated node pool — the `nodeSelector` picks the pool, the toleration gets past its taint:

```yaml
nodeSelector:
workload: stateful

tolerations:
- key: workload
operator: Equal
value: stateful
effect: NoSchedule
```

`affinity` takes a full [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) object and is rendered verbatim.

---

## Contributing

We welcome contributions to improve this Helm chart. Please refer to the [CONTRIBUTING.md](../../CONTRIBUTING.md) file for guidelines.
Expand Down
12 changes: 12 additions & 0 deletions charts/clickhouse/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ spec:
app.kubernetes.io/part-of: clickhouse
app: {{ .Release.Name }}-clickhouse
spec:
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
securityContext:
# The clickhouse-server image runs as uid/gid 101; fsGroup lets it own
# the freshly provisioned data volume.
Expand Down
24 changes: 24 additions & 0 deletions charts/clickhouse/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,30 @@
},
"required": ["name", "database"]
}
},

"nodeSelector": {
"category": "advanced",
"type": "object",
"description": "Node labels the pod must match, for pinning the workload to a node pool",
"default": {},
"mutable": true
},

"tolerations": {
"category": "advanced",
"type": "array",
"description": "Taints the pod tolerates, so it can schedule onto a tainted node pool",
"default": [],
"mutable": true
},

"affinity": {
"category": "advanced",
"type": "object",
"description": "Pod affinity / anti-affinity rules, applied verbatim to the pod spec",
"default": {},
"mutable": true
}
}
}
14 changes: 14 additions & 0 deletions charts/clickhouse/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,17 @@ customConfig: ""
services: []
# - name: orders
# database: analytics

# Pod scheduling. All three are optional and render nothing when left empty,
# so existing releases are unaffected. Use them to pin the workload to a
# dedicated (optionally tainted) node pool.
nodeSelector: {}
# workload: stateful

tolerations: []
# - key: workload
# operator: Equal
# value: stateful
# effect: NoSchedule

affinity: {}
2 changes: 1 addition & 1 deletion charts/cockroachdb/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: v2
appVersion: "1.0"
description: Helm chart for deploying cockroachdb datastore
name: cockroachdb
version: 0.0.5
version: 0.0.6
icon: "https://storage.googleapis.com/zopdev-test-bucket/zop/files/originals/20250402/331014cf-f38d-484f-9246-1c9a045cb9a0-cockroachicon.png"
maintainers:
- name: ZopDev
Expand Down
23 changes: 23 additions & 0 deletions charts/cockroachdb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,29 @@ helm install my-cockroachdb zopdev/cockroachdb -f values.yaml

---

## Pod Scheduling

`nodeSelector`, `tolerations` and `affinity` are passed straight through to the pod spec. All three are empty by default and render nothing, so leaving them unset changes nothing for an existing release.

They also apply to the cluster-init Job. A Job that could not tolerate the pool while the StatefulSet could would leave the cluster uninitialised, with the release still reporting `deployed`.

Together they place the workload on a dedicated node pool — the `nodeSelector` picks the pool, the toleration gets past its taint:

```yaml
nodeSelector:
workload: stateful

tolerations:
- key: workload
operator: Equal
value: stateful
effect: NoSchedule
```

`affinity` takes a full [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) object. Note that setting it **replaces** the chart's default soft pod-anti-affinity (which spreads replicas across nodes) rather than merging with it — restate the anti-affinity alongside your own rules if you still want it.

---

## Contributing

We welcome contributions to improve this Helm chart. Please refer to the [CONTRIBUTING.md](../../CONTRIBUTING.md) file for contribution guidelines.
Expand Down
12 changes: 12 additions & 0 deletions charts/cockroachdb/templates/job.init.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,18 @@ spec:
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/component: init
spec:
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
restartPolicy: OnFailure
terminationGracePeriodSeconds: 0
containers:
Expand Down
Loading
Loading