nats chart provisoning
This commit is contained in:
106
opencloud/charts/nats/files/stateful-set/nats-container.yaml
Normal file
106
opencloud/charts/nats/files/stateful-set/nats-container.yaml
Normal file
@@ -0,0 +1,106 @@
|
||||
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 }}
|
||||
Reference in New Issue
Block a user