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
4 changes: 2 additions & 2 deletions charts/currents/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ home: https://currents.dev
type: application
# The chart version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.7.4
version: 0.7.5
Comment thread
twk3 marked this conversation as resolved.
# Version number of the application being deployed.
# Versions are not expected to follow Semantic Versioning. They should reflect the version the application is using.
appVersion: "2026-07-26-003"
appVersion: "2026-07-26-004"
maintainers:
- name: Currents-dev
url: https://currents.dev
Expand Down
4 changes: 4 additions & 0 deletions charts/currents/templates/changestreams/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ spec:
{{- with (concat .Values.global.env .Values.changestreams.env) }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.changestreams.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.changestreams.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand Down
4 changes: 4 additions & 0 deletions charts/currents/templates/director/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ spec:
- name: http
containerPort: {{ .Values.director.service.port }}
protocol: TCP
{{- with .Values.director.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.director.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand Down
6 changes: 5 additions & 1 deletion charts/currents/templates/scheduler/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ spec:
mountPath: /home/node/.pm2
- name: startup
mountPath: /app/packages/scheduler/dist/.startup
{{- with .Values.scheduler.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.scheduler.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand All @@ -77,7 +81,7 @@ spec:
volumes:
- name: pm2-data
emptyDir:
medium: "Memory"
sizeLimit: {{ .Values.scheduler.pm2HomeSizeLimit }}
- name: startup
persistentVolumeClaim:
claimName: {{ include "currents.scheduler.fullname" . }}-startup-tmp
Expand Down
6 changes: 5 additions & 1 deletion charts/currents/templates/server/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,10 @@ spec:
mountPath: /etc/currents/sso
readOnly: true
{{- end }}
{{- with .Values.server.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.server.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand All @@ -121,7 +125,7 @@ spec:
volumes:
- name: pm2-data
emptyDir:
medium: "Memory"
sizeLimit: {{ .Values.server.pm2HomeSizeLimit }}
{{- if .Values.currents.sso.saml.enabled }}
- name: sso-saml
secret:
Expand Down
6 changes: 5 additions & 1 deletion charts/currents/templates/webhooks/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ spec:
volumeMounts:
- name: pm2-data
mountPath: /home/node/.pm2
{{- with .Values.webhooks.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.webhooks.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand All @@ -74,7 +78,7 @@ spec:
volumes:
- name: pm2-data
emptyDir:
medium: "Memory"
sizeLimit: {{ .Values.webhooks.pm2HomeSizeLimit }}
{{- with .Values.global.volumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
Expand Down
8 changes: 7 additions & 1 deletion charts/currents/templates/writer/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ spec:
env:
- name: CURRENTS_ENV
value: "onprem"
- name: PM2_INSTANCES
value: {{ .Values.writer.pm2Instances | quote }}
{{- include "currents.connectionConfigEnv" . | nindent 12 }}
{{- include "currents.URLConfigEnv" . | nindent 12 }}
{{- include "currents.emailEnv" . | nindent 12 }}
Expand All @@ -54,6 +56,10 @@ spec:
volumeMounts:
- name: pm2-data
mountPath: /home/node/.pm2
{{- with .Values.writer.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.writer.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
Expand All @@ -75,7 +81,7 @@ spec:
volumes:
- name: pm2-data
emptyDir:
medium: "Memory"
sizeLimit: {{ .Values.writer.pm2HomeSizeLimit }}
{{- with .Values.global.volumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
Expand Down
143 changes: 136 additions & 7 deletions charts/currents/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ currents:
# @section -- Frequently Used
key: password
# -- The image tag to use for the Currents images
imageTag: 2026-07-26-003
imageTag: 2026-07-26-004
email:
# -- Which transport to send outgoing email through: `smtp` or `ses`.
# With `ses` the SMTP settings are ignored and no SMTP credentials are
Expand Down Expand Up @@ -290,16 +290,34 @@ director:
volumes: []
# -- Additional volumeMounts on the output Deployment definition.
volumeMounts: []
# -- Liveness probe to check if the container is alive
# -- Startup probe. While it is running the liveness and readiness probes are
# held off, so a slow start is not mistaken for an unhealthy container.
startupProbe:
httpGet:
path: /
port: http
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 30
# -- Liveness probe to check if the container is alive. `timeoutSeconds` is
# set explicitly: Kubernetes defaults it to 1 second, and a service that is
# merely busy answers more slowly than that under load, which turns a slow
# pod into a restarting one.
livenessProbe:
httpGet:
path: /
port: http
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 6
# -- Readiness probe to check if the container is ready
readinessProbe:
httpGet:
path: /
port: http
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
# -- Resources to provide
# [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
# @section -- Frequently Used
Expand Down Expand Up @@ -384,16 +402,39 @@ server:
volumes: []
# -- Additional volumeMounts on the output Deployment definition
volumeMounts: []
# -- Liveness probe to check if the container is alive
# -- Size of the emptyDir backing PM2_HOME (`/home/node/.pm2`). It holds pm2's
# sockets and, for services started from an ecosystem file, its log files.
# Disk-backed on purpose: on a memory-backed volume those log files count
# against the pod's memory limit and the container is OOMKilled under load.
pm2HomeSizeLimit: 256Mi
# -- Startup probe. While it is running the liveness and readiness probes are
# held off, so a slow start is not mistaken for an unhealthy container.
startupProbe:
httpGet:
path: /
port: http
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 30
# -- Liveness probe to check if the container is alive. `timeoutSeconds` is
# set explicitly: Kubernetes defaults it to 1 second, and a service that is
# merely busy answers more slowly than that under load, which turns a slow
# pod into a restarting one.
livenessProbe:
httpGet:
path: /
port: http
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 6
# -- Readiness probe to check if the container is ready
readinessProbe:
httpGet:
path: /
port: http
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
# -- Resources to provide
# [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
# @section -- Frequently Used
Expand Down Expand Up @@ -445,7 +486,7 @@ server:
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
# Server Configuration
# END Server Configuration

# Writer Configuration
writer:
Expand Down Expand Up @@ -479,20 +520,49 @@ writer:
volumes: []
# -- Additional volumeMounts on the output Deployment definition
volumeMounts: []
# -- Liveness probe to check if the container is alive
# -- Node processes pm2 runs per writer pod. Each is single threaded, so a
# pod with more than one core does no more work until this is raised. Matches
# the value the hosted service runs.
pm2Instances: 2
# -- Size of the emptyDir backing PM2_HOME (`/home/node/.pm2`). It holds pm2's
# sockets and, for services started from an ecosystem file, its log files.
# Disk-backed on purpose: on a memory-backed volume those log files count
# against the pod's memory limit and the container is OOMKilled under load.
pm2HomeSizeLimit: 256Mi
# -- Startup probe. While it is running the liveness and readiness probes are
# held off, so a slow start is not mistaken for an unhealthy container.
startupProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- writer-service
periodSeconds: 10
timeoutSeconds: 15
failureThreshold: 30
# -- Liveness probe to check if the container is alive. The command forks a
# Node CLI, which cannot finish within the 1 second Kubernetes defaults
# `timeoutSeconds` to while the container is under CPU pressure. Timed-out
# probe processes then accumulate and make the pressure worse.
livenessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- writer-service
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Readiness probe to check if the container is ready
readinessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- writer-service
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Resources to provide
# [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
# @section -- Frequently Used
Expand Down Expand Up @@ -547,20 +617,45 @@ scheduler:
volumes: []
# -- Additional volumeMounts on the output Deployment definition
volumeMounts: []
# -- Liveness probe to check if the container is alive
# -- Size of the emptyDir backing PM2_HOME (`/home/node/.pm2`). It holds pm2's
# sockets and, for services started from an ecosystem file, its log files.
# Disk-backed on purpose: on a memory-backed volume those log files count
# against the pod's memory limit and the container is OOMKilled under load.
pm2HomeSizeLimit: 256Mi
# -- Startup probe. While it is running the liveness and readiness probes are
# held off, so a slow start is not mistaken for an unhealthy container.
startupProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 10
timeoutSeconds: 15
failureThreshold: 30
# -- Liveness probe to check if the container is alive. The command forks a
# Node CLI, which cannot finish within the 1 second Kubernetes defaults
# `timeoutSeconds` to while the container is under CPU pressure. Timed-out
# probe processes then accumulate and make the pressure worse.
livenessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Readiness probe to check if the container is ready
readinessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Resources to provide
# [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
# @section -- Frequently Used
Expand Down Expand Up @@ -648,20 +743,45 @@ webhooks:
volumes: []
# -- Additional volumeMounts on the output Deployment definition
volumeMounts: []
# -- Liveness probe to check if the container is alive
# -- Size of the emptyDir backing PM2_HOME (`/home/node/.pm2`). It holds pm2's
# sockets and, for services started from an ecosystem file, its log files.
# Disk-backed on purpose: on a memory-backed volume those log files count
# against the pod's memory limit and the container is OOMKilled under load.
pm2HomeSizeLimit: 256Mi
# -- Startup probe. While it is running the liveness and readiness probes are
# held off, so a slow start is not mistaken for an unhealthy container.
startupProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 10
timeoutSeconds: 15
failureThreshold: 30
# -- Liveness probe to check if the container is alive. The command forks a
# Node CLI, which cannot finish within the 1 second Kubernetes defaults
# `timeoutSeconds` to while the container is under CPU pressure. Timed-out
# probe processes then accumulate and make the pressure worse.
livenessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Readiness probe to check if the container is ready
readinessProbe:
exec:
command:
- ./node_modules/.bin/pm2
- show
- dist
periodSeconds: 30
timeoutSeconds: 15
failureThreshold: 5
# -- Liveness probe to check if the container is alive
# -- Resources to provide
# [Resource Management for Pods and Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
Expand Down Expand Up @@ -755,6 +875,15 @@ redis:
enabled: false
master:
resourcesPreset: "none"
# -- Requests without limits, deliberately. With neither, the Redis pod is
# BestEffort and is the first thing the kubelet evicts under node memory
# pressure, which drops every service's queue connection at once. No limit
# is set so a queue backlog cannot turn into an OOMKill instead. Size this
# to your queue depth.
resources:
requests:
cpu: 500m
memory: 1Gi
replica:
resourcesPreset: "none"
sentinel:
Expand Down
Loading
Loading