Skip to content

Commit 3641d80

Browse files
authored
[Helm] Added additional configuration to values (#125)
- Added support for setting KUBERNETES_NODE_SELECTORS and KUBERNETES_TOLERATIONS for polytomic app - Added nodeSelector and affinity support for vector
1 parent 3fe883b commit 3641d80

File tree

7 files changed

+56
-4
lines changed

7 files changed

+56
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ This repository contains multiple deployment components, each with its own chang
88

99
See [helm/charts/polytomic/CHANGELOG.md](helm/charts/polytomic/CHANGELOG.md)
1010

11-
- **Current Version**: 1.2.0
12-
- **Latest Tag**: `polytomic-1.2.0`
11+
- **Current Version**: 1.2.1
12+
- **Latest Tag**: `polytomic-1.2.1`
1313

1414
### Terraform Modules
1515

helm/charts/polytomic/CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ All notable changes to the Polytomic Helm chart will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.2.1] - 2026-02-20
9+
10+
### Added
11+
12+
- **Kubernetes task executor scheduling options**: New `polytomic.kubernetes.nodeSelectors` and `polytomic.kubernetes.tolerations` values allow scheduling dynamically created task executor pods on specific nodes. These are passed to the application as `KUBERNETES_NODE_SELECTORS` and `KUBERNETES_TOLERATIONS` environment variables.
13+
14+
- **Vector DaemonSet scheduling options**: New `polytomic.vector.daemonset.nodeSelector` and `polytomic.vector.daemonset.affinity` values allow scheduling Vector DaemonSet pods on specific nodes, complementing the existing `tolerations` option.
15+
16+
| Value | Default | Description |
17+
| ---------------------------------------- | ------- | ---------------------------------------------------------- |
18+
| `polytomic.kubernetes.nodeSelectors` | `""` | Node selectors for task pods (format: `key=value,key=value`) |
19+
| `polytomic.kubernetes.tolerations` | `""` | Tolerations for task pods (format: `key:operator:value:effect`) |
20+
| `polytomic.vector.daemonset.nodeSelector`| `{}` | Node selector for Vector DaemonSet pods |
21+
| `polytomic.vector.daemonset.affinity` | `{}` | Affinity rules for Vector DaemonSet pods |
22+
23+
---
24+
825
## [1.2.0] - 2026-02-19
926

1027
### Added

helm/charts/polytomic/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 1.0.2
18+
version: 1.2.1
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

helm/charts/polytomic/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ Kubernetes: `>=1.34.0-0`
143143
| polytomic.field_change_tracking | bool | `true` | |
144144
| polytomic.integrations | object | `{}` | Integration credentials Configure OAuth credentials and API keys for third-party integrations. Only non-empty values will be included in the deployment secret. Supports all integration environment variables in UPPER_CASE format. Common integrations: SALESFORCE_CLIENT_ID / SALESFORCE_CLIENT_SECRET HUBSPOT_CLIENT_ID / HUBSPOT_CLIENT_SECRET GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET / GITHUB_DEPLOY_KEY SHOPIFY_CLIENT_ID / SHOPIFY_CLIENT_SECRET STRIPE_SECRET_KEY GOOGLEADS_CLIENT_ID / GOOGLEADS_CLIENT_SECRET / GOOGLEADS_DEVELOPER_TOKEN GSHEETS_API_KEY / GSHEETS_APP_ID / GSHEETS_CLIENT_ID / GSHEETS_CLIENT_SECRET And many more - see documentation for full list Example: integrations: SALESFORCE_CLIENT_ID: "your-client-id" SALESFORCE_CLIENT_SECRET: "your-client-secret" HUBSPOT_CLIENT_ID: "your-hubspot-id" HUBSPOT_CLIENT_SECRET: "your-hubspot-secret" |
145145
| polytomic.internal_execution_logs | bool | `false` | |
146+
| polytomic.kubernetes | object | `{"nodeSelectors":"","tolerations":""}` | Kubernetes task executor scheduling configuration These settings control how Polytomic schedules dynamically created job pods |
147+
| polytomic.kubernetes.nodeSelectors | string | `""` | Node selectors for task executor pods (comma-separated key=value pairs) Format: key=value,key=value Example: "disktype=ssd,node-type=sync-worker" |
148+
| polytomic.kubernetes.tolerations | string | `""` | Tolerations for task executor pods (comma-separated) Format: key:operator:value:effect,key:operator:value:effect Example: "dedicated:Equal:sync-jobs:NoSchedule,gpu:Exists::NoSchedule" |
146149
| polytomic.log_level | string | `"info"` | |
147150
| polytomic.metrics | bool | `false` | Telemetry |
148151
| polytomic.query_workers | int | `10` | |
@@ -167,9 +170,11 @@ Kubernetes: `>=1.34.0-0`
167170
| polytomic.sync_workers | int | `10` | |
168171
| polytomic.tracing | bool | `false` | |
169172
| polytomic.tx_buffer_size | int | `1000` | |
170-
| polytomic.vector.daemonset | object | `{"enabled":true,"image":"polytomic-vector","imagePullPolicy":"IfNotPresent","podLabelSelector":"vector.dev/include=true","resources":{"limits":{"cpu":"200m","memory":"256Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"serviceAccount":{"roleArn":""},"tag":"","tolerations":[]}` | Vector DaemonSet for stdout/stderr log collection Collects container logs from all Polytomic pods on each node Default: true (matches ECS behavior where polytomic_use_logger defaults to true) |
173+
| polytomic.vector.daemonset | object | `{"affinity":{},"enabled":true,"image":"polytomic-vector","imagePullPolicy":"IfNotPresent","nodeSelector":{},"podLabelSelector":"vector.dev/include=true","resources":{"limits":{"cpu":"200m","memory":"256Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"serviceAccount":{"roleArn":""},"tag":"","tolerations":[]}` | Vector DaemonSet for stdout/stderr log collection Collects container logs from all Polytomic pods on each node Default: true (matches ECS behavior where polytomic_use_logger defaults to true) |
174+
| polytomic.vector.daemonset.affinity | object | `{}` | Affinity rules for Vector DaemonSet pods |
171175
| polytomic.vector.daemonset.enabled | bool | `true` | Set to false to disable DaemonSet log collection Consider disabling for: - Development environments to save resources - Cost-sensitive deployments where only business logs are needed - When using alternative cluster-wide log collection - Security/compliance restrictions on DaemonSets |
172176
| polytomic.vector.daemonset.image | string | `"polytomic-vector"` | Image name for Vector DaemonSet (registry is set via imageRegistry). MUST use Polytomic's Vector image with ptconf for secret decryption. |
177+
| polytomic.vector.daemonset.nodeSelector | object | `{}` | Node selector for Vector DaemonSet pods |
173178
| polytomic.vector.daemonset.podLabelSelector | string | `"vector.dev/include=true"` | Label selector to filter which pods to collect logs from. Uses vector.dev/include=true which is set on all Polytomic pod templates, making collection independent of the Helm release name. |
174179
| polytomic.vector.daemonset.serviceAccount | object | `{"roleArn":""}` | ServiceAccount configuration for Vector DaemonSet |
175180
| polytomic.vector.daemonset.serviceAccount.roleArn | string | `""` | IAM role ARN for IRSA (EKS only) |

helm/charts/polytomic/templates/_helpers.tpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,12 @@ KUBERNETES_SERVICE_ACCOUNT: {{ include "polytomic.serviceAccountName" . | quote
377377
{{- if .Values.imagePullSecrets }}
378378
KUBERNETES_IMAGE_PULL_SECRET: {{ (index .Values.imagePullSecrets 0).name | quote }}
379379
{{- end }}
380+
{{- if .Values.polytomic.kubernetes.nodeSelectors }}
381+
KUBERNETES_NODE_SELECTORS: {{ .Values.polytomic.kubernetes.nodeSelectors | quote }}
382+
{{- end }}
383+
{{- if .Values.polytomic.kubernetes.tolerations }}
384+
KUBERNETES_TOLERATIONS: {{ .Values.polytomic.kubernetes.tolerations | quote }}
385+
{{- end }}
380386
{{- /* Integration credentials - only output non-empty values */ -}}
381387
{{- range $key, $value := .Values.polytomic.integrations }}
382388
{{- if $value }}

helm/charts/polytomic/templates/vector-daemonset.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ spec:
107107
hostPath:
108108
path: /var/lib/vector
109109
type: DirectoryOrCreate
110+
{{- with .Values.polytomic.vector.daemonset.nodeSelector }}
111+
nodeSelector:
112+
{{- toYaml . | nindent 8 }}
113+
{{- end }}
114+
{{- with .Values.polytomic.vector.daemonset.affinity }}
115+
affinity:
116+
{{- toYaml . | nindent 8 }}
117+
{{- end }}
110118
{{- with .Values.polytomic.vector.daemonset.tolerations }}
111119
tolerations:
112120
{{- toYaml . | nindent 8 }}

helm/charts/polytomic/values.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@ polytomic:
219219

220220
internal_execution_logs: false
221221

222+
# -- Kubernetes task executor scheduling configuration
223+
# These settings control how Polytomic schedules dynamically created job pods
224+
kubernetes:
225+
# -- Node selectors for task executor pods (comma-separated key=value pairs)
226+
# Format: key=value,key=value
227+
# Example: "disktype=ssd,node-type=sync-worker"
228+
nodeSelectors: ""
229+
# -- Tolerations for task executor pods (comma-separated)
230+
# Format: key:operator:value:effect,key:operator:value:effect
231+
# Example: "dedicated:Equal:sync-jobs:NoSchedule,gpu:Exists::NoSchedule"
232+
tolerations: ""
233+
222234
# Vector logging configuration
223235
vector:
224236
# -- Vector DaemonSet for stdout/stderr log collection
@@ -257,6 +269,10 @@ polytomic:
257269
# By default no tolerations are set, so Vector only runs on schedulable worker nodes.
258270
# Add tolerations here if your nodes have custom taints that Polytomic pods also tolerate.
259271
tolerations: []
272+
# -- Node selector for Vector DaemonSet pods
273+
nodeSelector: {}
274+
# -- Affinity rules for Vector DaemonSet pods
275+
affinity: {}
260276

261277
# -- ServiceAccount configuration for Vector DaemonSet
262278
serviceAccount:

0 commit comments

Comments
 (0)