107 lines
2.5 KiB
YAML
107 lines
2.5 KiB
YAML
name: nats
|
|
{{ include "nats.image" (merge (pick $.Values "global") .Values.container.image) }}
|
|
|
|
ports:
|
|
{{- range $protocol := list "nats" "leafnodes" "websocket" "mqtt" "cluster" "gateway" "monitor" "profiling" }}
|
|
{{- $configProtocol := get $.Values.config $protocol }}
|
|
{{- $containerPort := get $.Values.container.ports $protocol }}
|
|
{{- if or (eq $protocol "nats") $configProtocol.enabled }}
|
|
- {{ merge (dict "name" $protocol "containerPort" $configProtocol.port) $containerPort | toYaml | nindent 2 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
args:
|
|
- --config
|
|
- /etc/nats-config/nats.conf
|
|
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: SERVER_NAME
|
|
value: {{ printf "%s$(POD_NAME)" .Values.config.serverNamePrefix | quote }}
|
|
{{- with .Values.container.env }}
|
|
{{- include "nats.env" . }}
|
|
{{- end }}
|
|
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
# send the lame duck shutdown signal to trigger a graceful shutdown
|
|
command:
|
|
- nats-server
|
|
- -sl=ldm=/var/run/nats/nats.pid
|
|
|
|
{{- with .Values.config.monitor }}
|
|
{{- if .enabled }}
|
|
startupProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: monitor
|
|
{{- if .tls.enabled }}
|
|
scheme: HTTPS
|
|
{{- end}}
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 5
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
failureThreshold: 90
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthz?js-server-only=true
|
|
port: monitor
|
|
{{- if .tls.enabled }}
|
|
scheme: HTTPS
|
|
{{- end}}
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 5
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
failureThreshold: 3
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz?js-enabled-only=true
|
|
port: monitor
|
|
{{- if .tls.enabled }}
|
|
scheme: HTTPS
|
|
{{- end}}
|
|
initialDelaySeconds: 10
|
|
timeoutSeconds: 5
|
|
periodSeconds: 30
|
|
successThreshold: 1
|
|
failureThreshold: 3
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
volumeMounts:
|
|
# nats config
|
|
- name: config
|
|
mountPath: /etc/nats-config
|
|
# PID volume
|
|
- name: pid
|
|
mountPath: /var/run/nats
|
|
# JetStream PVC
|
|
{{- with .Values.config.jetstream }}
|
|
{{- if and .enabled .fileStore.enabled .fileStore.pvc.enabled }}
|
|
{{- with .fileStore }}
|
|
- name: {{ .pvc.name }}
|
|
mountPath: {{ .dir | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
# resolver PVC
|
|
{{- with .Values.config.resolver }}
|
|
{{- if and .enabled .pvc.enabled }}
|
|
- name: {{ .pvc.name }}
|
|
mountPath: {{ .dir | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
# tlsCA
|
|
{{- include "nats.tlsCAVolumeMount" $ }}
|
|
# secrets
|
|
{{- range (include "nats.secretNames" $ | fromJson).secretNames }}
|
|
- name: {{ .name | quote }}
|
|
mountPath: {{ .dir | quote }}
|
|
{{- end }}
|