135 lines
4.2 KiB
Smarty
135 lines
4.2 KiB
Smarty
{{- include "nplus.init" $ -}}
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: {{ .component.fullName }}
|
|
{{- if .this.utils.includeNamespace }}
|
|
namespace: {{ .Release.Namespace }}
|
|
{{- end }}
|
|
labels:
|
|
{{- include "nplus.instanceLabels" . | nindent 4 }}
|
|
annotations:
|
|
{{- include "nplus.argoWave" . | nindent 4 }}
|
|
{{- include "nplus.annotations" . | nindent 4 }}
|
|
{{- include "nplus.securityAnnotations" . | nindent 4 }}
|
|
spec:
|
|
serviceName: {{ .component.fullName }}
|
|
selector:
|
|
matchLabels:
|
|
{{- include "nplus.selectorLabels" . | nindent 6 }}
|
|
replicas: {{ .Values.replicaCount }}
|
|
podManagementPolicy: OrderedReady
|
|
updateStrategy:
|
|
type: {{ .Values.updateStrategy | default "OnDelete" }}
|
|
minReadySeconds: 5
|
|
|
|
template:
|
|
metadata:
|
|
labels:
|
|
{{- include "nplus.templateLabels" . | nindent 8 }}
|
|
annotations:
|
|
{{- include "nplus.templateAnnotations" . | nindent 8 }}
|
|
{{- include "nplus.securityAnnotations" . | nindent 8 }}
|
|
spec:
|
|
{{- include "nplus.imagePullSecrets" . | nindent 6 }}
|
|
{{- include "nplus.podSecurityContext" . | nindent 6 }}
|
|
{{- include "nplus.securityIllumioReadinessGates" . | nindent 6 }}
|
|
{{- include "nplus.terminationGracePeriodSeconds" . | nindent 6 }}
|
|
|
|
initContainers:
|
|
{{- include "nplus.waitFor" . | nindent 6 }}
|
|
{{- include "nplus.copyConfig" . | nindent 6 }}
|
|
|
|
containers:
|
|
- name: pipeliner
|
|
image: {{ include "nplus.image" (dict "global" .Values.global "image" .Values.image) }}
|
|
imagePullPolicy: {{ include "nplus.imagePullPolicy" .Values.image }}
|
|
{{- include "nplus.containerSecurityContext" . | nindent 8 }}
|
|
env:
|
|
{{- include "nplus.environment" . | nindent 8 }}
|
|
|
|
{{- if .this.utils.maintenance }}
|
|
{{- include "nplus.idle" . | nindent 8 }}
|
|
{{- else }}
|
|
startupProbe:
|
|
exec:
|
|
command:
|
|
- "java"
|
|
- "-jar"
|
|
- "/opt/ceyoniq/nscale-pipeliner/javalibs/PipelinerCheck.jar"
|
|
- "localhost"
|
|
- "4173"
|
|
initialDelaySeconds: 10
|
|
failureThreshold: 12
|
|
periodSeconds: 10
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- "java"
|
|
- "-jar"
|
|
- "/opt/ceyoniq/nscale-pipeliner/javalibs/PipelinerCheck.jar"
|
|
- "localhost"
|
|
- "4173"
|
|
periodSeconds: 30
|
|
timeoutSeconds: 3
|
|
# -- Ceyoniq does currently not define an *official* livenessProbe, so we use
|
|
# one that quickly checks the main socket on Layer 4.
|
|
livenessProbe:
|
|
tcpSocket:
|
|
port: tcp
|
|
# initialDelaySeconds: 20
|
|
periodSeconds: 10
|
|
{{- end }}
|
|
|
|
ports:
|
|
- containerPort: {{ required "Pipeliner tcp port must be set" ((.this.meta).ports).tcp }}
|
|
name: tcp
|
|
|
|
{{- include "nplus.resources" . | nindent 8 }}
|
|
|
|
volumeMounts:
|
|
{{- include "nplus.defaultMounts" . | nindent 8 }}
|
|
|
|
{{- if .Values.dav }}
|
|
- name: {{ .Release.Namespace }}-nplus-webdav-container
|
|
image: {{ include "nplus.image" (dict "global" .Values.global "image" .Values.dav.image) }}
|
|
imagePullPolicy: {{ include "nplus.imagePullPolicy" .Values.dav.image }}
|
|
{{- include "nplus.containerSecurityContext" . | nindent 8 }}
|
|
{{- include "nplus.sidecarResources" . | nindent 8 }}
|
|
|
|
command: [ "/nplus/davserver" ]
|
|
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: "/webdav"
|
|
subPath: {{ .component.storagePath | quote }}
|
|
|
|
env:
|
|
# -- DAV Connection Credentials
|
|
{{- include "nplus.envCredentials" (list
|
|
"DAV_USER" ($.this.dav).account
|
|
"DAV_PASSWORD" ($.this.dav).password
|
|
($.this.dav).secret
|
|
) | nindent 10 }}
|
|
|
|
- name: DAV_ROOT
|
|
value: "/{{ .component.name }}"
|
|
|
|
ports:
|
|
{{- if not (.this.security).zeroTrust }}
|
|
- containerPort: 8080
|
|
name: http
|
|
{{- end }}
|
|
|
|
readinessProbe:
|
|
tcpSocket:
|
|
port: 8080
|
|
initialDelaySeconds: 15
|
|
periodSeconds: 10
|
|
|
|
{{- end }}
|
|
|
|
volumes:
|
|
{{- include "nplus.defaultVolumes" . | nindent 6 }}
|
|
|