blob: c6c2271bd49b7cf09877711ba1df34e668378ae0 [file] [log] [blame]
{{- /*
SPDX-License-Identifier: APACHE-2.0
*/}}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "controller.fullname" . }}
labels:
{{- include "controller.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.controller.replicas }}
selector:
matchLabels:
{{- include "controller.selectorLabels" . | nindent 6 }}
serviceName: {{ include "controller.fullname" . }}
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/controller/configmap.yaml") . | sha256sum }}
labels:
{{- include "controller.labels" . | nindent 8 }}
spec:
{{- with .Values.controller.image.pullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.controller.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: controller
image: "{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{ .Values.controller.image.tag }}"
imagePullPolicy: {{ .Values.controller.image.pullPolicy }}
env:
- name: NODE_ROLE
value: controller
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
command: [ "/bin/sh" ]
args: [ "-c", "./mqcontroller -c /home/rocketmq/conf/$(POD_NAME)" ]
ports:
- name: main
containerPort: {{ .Values.controller.service.port }}
protocol: TCP
- name: internal
containerPort: {{ .Values.controller.service.internalport }}
protocol: TCP
livenessProbe:
{{- toYaml .Values.controller.livenessProbe | nindent 10 }}
readinessProbe:
{{- toYaml .Values.controller.readinessProbe | nindent 10 }}
startupProbe:
{{- toYaml .Values.controller.startupProbe | nindent 10 }}
resources:
{{- toYaml .Values.controller.resources | nindent 10 }}
volumeMounts:
- mountPath: /home/rocketmq/conf
name: controller-config
- mountPath: /home/rocketmq/logs
name: controller-storage
subPath: logs
- mountPath: /home/rocketmq/store
name: controller-storage
subPath: store
securityContext:
fsGroup: 3000
volumes:
- name: controller-config
configMap:
name: {{ include "controller.fullname" . }}-conf
{{- if not $.Values.controller.persistence.enabled }}
- name: controller-storage
emptyDir: { }
{{- else if .Values.controller.persistence.existingClaim }}
- name: controller-storage
persistentVolumeClaim:
claimName: {{ printf "%s" (tpl .Values.controller.persistence.existingClaim .) }}
{{- end }}
{{- if and .Values.controller.persistence.enabled (not .Values.controller.persistence.existingClaim) }}
volumeClaimTemplates:
- metadata:
name: controller-storage
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: {{ .Values.controller.persistence.size | quote }}
{{- if (eq "-" .Values.controller.persistence.storageClass) -}}
storageClassName: ""
{{- else }}
storageClassName: {{ .Values.controller.persistence.storageClass }}
{{- end -}}
{{- end }}