Skip to content
Open
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/gpu-process-exporter/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: gpu-process-exporter
description: A Helm chart for gpu-process-exporter
type: application
icon: https://kubex.ai/wp-content/uploads/kubex-logo-landscape.svg
version: 1.0.0
version: 1.0.1
keywords:
- kubex
- gpu
Expand Down
4 changes: 4 additions & 0 deletions charts/gpu-process-exporter/templates/daemonset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ spec:
spec:
hostPID: true
nodeSelector:
kubernetes.io/os: linux
nvidia.com/gpu.present: "true"
{{- with .Values.nodeSelector }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I am not mistaken, the node selector values have to override the default ones. Typically the Nvidia GPU operator (node discovery feature) will place the nvidia.com/gpu.present: "true" label on each node with Nvidia GPUs. But in case it does not run and/or configured differently, this label may not be there. There was a request to allow us to override the node selector (not to append to them). Or we can keep the OS label and made the other ones overridable.

{{- toYaml . | nindent 8 }}
{{- end }}
tolerations:
- key: nvidia.com/gpu
operator: Exists
Expand Down
2 changes: 2 additions & 0 deletions charts/gpu-process-exporter/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ resources:
limits:
memory: 256Mi

nodeSelector: {}

hostProcMount: null

nvmlSearchPath: null
18 changes: 17 additions & 1 deletion charts/kubex-automation-stack/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,22 @@
All notable changes to the kubex-automation-stack chart will be documented in this file.


## [1.0.19] - 2026-07-14

### Added
- Added Linux OS requirement to nodeSelector for all stack components to ensure proper scheduling on Linux nodes
- Added configurable nodeSelector to gpu-process-exporter chart
- Added ephemeral storage metrics scaling configurations for all cluster size overlays (xsmall/small/medium/large)
- Configured polling intervals, API rate limits, and concurrency settings scaled by cluster size
- Added resource requests and limits for ephemeral storage metrics collector
- Enabled garbage collection for medium and large clusters to handle pod churn
- Extended probe timeouts for medium and large clusters to prevent false restarts during long polling cycles

### Changed
- Updated gpu-process-exporter dependency to v1.0.1
- Updated Prometheus chart dependency to v29.17.0
- Updated Beyla chart dependency to v1.16.10

## [1.0.18] - 2026-07-03

### Security
Expand All @@ -14,7 +30,7 @@ All notable changes to the kubex-automation-stack chart will be documented in th
## [1.0.17] - 2026-06-23

### Changed
- Upgraded Prometheus chart dependency to v29.13.0 to overcome KSM sharding issues with v2.19.0
- Upgraded Prometheus chart dependency to v29.14.0 to overcome KSM sharding issues with v2.19.0

## [1.0.16] - 2026-06-11

Expand Down
8 changes: 4 additions & 4 deletions charts/kubex-automation-stack/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ dependencies:
version: 4.0.17
- name: prometheus
repository: https://prometheus-community.github.io/helm-charts
version: 29.14.0
version: 29.17.0
- name: beyla
repository: https://grafana.github.io/helm-charts
version: 1.16.8
version: 1.16.10
- name: k8s-ephemeral-storage-metrics
repository: https://densify-dev.github.io/helm-charts
version: 1.21.0
Expand All @@ -17,5 +17,5 @@ dependencies:
- name: node-labeler
repository: https://densify-dev.github.io/helm-charts
version: 0.1.2
digest: sha256:d4b36dc243779019f4a3277b17c487f1be80c39d5a6ce5a3b40979a42dbc5955
generated: "2026-07-03T17:48:40.199770372Z"
digest: sha256:9f8ea4af17af3e7387dd4e191d60931f0715110eefa69f06d07872a3c94c9f7a
generated: "2026-07-14T11:34:52.714796435+01:00"
2 changes: 1 addition & 1 deletion charts/kubex-automation-stack/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
description: Kubex Collection Stack
name: kubex-automation-stack
version: 1.0.18
version: 1.0.19
type: application
icon: https://kubex.ai/wp-content/uploads/kubex-logo-landscape.svg
dependencies:
Expand Down
21 changes: 21 additions & 0 deletions charts/kubex-automation-stack/values-large.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,24 @@ beyla:
cpu: "50m"
limits:
memory: "1Gi"

k8s-ephemeral-storage-metrics:
interval: 45
max_node_concurrency: 30
client_go_qps: 15
client_go_burst: 30
metrics:
gc_enabled: true
gc_interval: 3
gc_batch_size: 1000
resources:
requests:
memory: "512Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "2000m"
livenessProbe:
timeoutSeconds: 60
readinessProbe:
timeoutSeconds: 60
21 changes: 21 additions & 0 deletions charts/kubex-automation-stack/values-medium.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,24 @@ beyla:
cpu: "50m"
limits:
memory: "512Mi"

k8s-ephemeral-storage-metrics:
interval: 30
max_node_concurrency: 20
client_go_qps: 10
client_go_burst: 20
metrics:
gc_enabled: true
gc_interval: 5
gc_batch_size: 500
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "512Mi"
cpu: "1000m"
livenessProbe:
timeoutSeconds: 45
readinessProbe:
timeoutSeconds: 45
13 changes: 13 additions & 0 deletions charts/kubex-automation-stack/values-small.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,16 @@ beyla:
cpu: "50m"
limits:
memory: "512Mi"

k8s-ephemeral-storage-metrics:
interval: 25
max_node_concurrency: 15
client_go_qps: 8
client_go_burst: 15
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
13 changes: 13 additions & 0 deletions charts/kubex-automation-stack/values-xsmall.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,16 @@ beyla:
cpu: "50m"
limits:
memory: "512Mi"

k8s-ephemeral-storage-metrics:
interval: 15
max_node_concurrency: 10
client_go_qps: 5
client_go_burst: 10
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "200m"
16 changes: 16 additions & 0 deletions charts/kubex-automation-stack/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,18 @@ stack:

gpu-process-exporter:
enabled: true
nodeSelector:
kubernetes.io/os: linux

node-labeler:
enabled: false
nodeSelector:
kubernetes.io/os: linux

container-optimization-data-forwarder:
nameOverride: kubex-stack
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
Expand Down Expand Up @@ -50,6 +56,8 @@ prometheus:
enabled: false
kube-state-metrics:
prometheusScrape: false
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
Expand Down Expand Up @@ -95,12 +103,16 @@ prometheus:
- ALL
seccompProfile:
type: RuntimeDefault
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
effect: "NoSchedule"
server:
fullnameOverride: kubex-prometheus-server
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
Expand Down Expand Up @@ -218,6 +230,8 @@ beyla:
privileged: true
contextPropagation:
enabled: false # Survey only - no context propagation needed
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
Expand Down Expand Up @@ -260,6 +274,8 @@ beyla:
k8s-ephemeral-storage-metrics:
enabled: true
nameOverride: kubex-ephemeral-storage-collector
nodeSelector:
kubernetes.io/os: linux
tolerations:
- key: "kubernetes.io/arch"
operator: "Exists"
Expand Down