130 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
| {{- if and (eq (lower (default "rmq" .Values.cozeServer.env.COZE_MQ_TYPE)) "rmq") .Values.rocketmq.enabled }}
 | |
| apiVersion: apps/v1
 | |
| kind: StatefulSet
 | |
| metadata:
 | |
|   name: {{ include "opencoze.fullname" . }}-rocketmq-broker
 | |
|   labels:
 | |
|     {{- include "opencoze.labels" . | nindent 4 }}
 | |
| spec:
 | |
|   serviceName: {{ .Release.Name }}-rocketmq-broker
 | |
|   replicas: 1
 | |
|   selector:
 | |
|     matchLabels:
 | |
|       app.kubernetes.io/component: rocketmq-broker
 | |
|       app.kubernetes.io/instance: {{ .Release.Name }}
 | |
|       app.kubernetes.io/name: {{ include "opencoze.name" . }}
 | |
|   template:
 | |
|     metadata:
 | |
|       labels:
 | |
|         app.kubernetes.io/component: rocketmq-broker
 | |
|         app.kubernetes.io/instance: {{ .Release.Name }}
 | |
|         app.kubernetes.io/name: {{ include "opencoze.name" . }}
 | |
|     spec:
 | |
|       initContainers:
 | |
|         - name: wait-for-namesrv
 | |
|           image: opencoze-cn-beijing.cr.volces.com/iac/busybox:latest
 | |
|           command: ['sh', '-c', 'until nc -z {{ .Release.Name }}-rocketmq-namesrv 9876; do echo waiting for namesrv; sleep 2; done']
 | |
|       volumes:
 | |
|         - name: broker-config
 | |
|           configMap:
 | |
|             name: {{ include "opencoze.fullname" . }}-broker-config
 | |
|       containers:
 | |
|         - name: broker
 | |
|           image: "{{ .Values.rocketmq.broker.image.repository }}:{{ .Values.rocketmq.broker.image.tag }}"
 | |
|           env:
 | |
|             - name: NAMESRV_ADDR
 | |
|               value: "{{ include "opencoze.fullname" . }}-rocketmq-namesrv:9876"
 | |
|             - name: POD_IP
 | |
|               valueFrom:
 | |
|                 fieldRef:
 | |
|                   fieldPath: status.podIP
 | |
|           command:
 | |
|             - /bin/bash
 | |
|             - -c
 | |
|             - |
 | |
|               set -ex
 | |
|               mkdir -p /home/rocketmq/logs/rocketmqlogs /home/rocketmq/store
 | |
|               touch /home/rocketmq/logs/rocketmqlogs/tools.log \
 | |
|                     /home/rocketmq/logs/rocketmqlogs/tools_default.log
 | |
|               chown -R rocketmq:rocketmq /home/rocketmq/logs /home/rocketmq/store
 | |
|               chmod g+s /home/rocketmq/logs /home/rocketmq/store
 | |
| 
 | |
|               echo "Starting RocketMQ Broker..."
 | |
|               cp /home/rocketmq/conf/broker.conf /tmp/broker.conf
 | |
|               sed -i "s/__POD_IP__/$POD_IP/g" /tmp/broker.conf
 | |
|               echo "broker.conf content after sed:"
 | |
|               cat /tmp/broker.conf
 | |
|               /home/rocketmq/rocketmq-5.3.2/bin/mqbroker -c /tmp/broker.conf &
 | |
|               broker_ready=false
 | |
|               for i in {1..60}; do
 | |
|                 if /home/rocketmq/rocketmq-5.3.2/bin/mqadmin clusterList -n $NAMESRV_ADDR | grep -q "DefaultCluster.*broker-a"; then
 | |
|                   echo "Registered."
 | |
|                   broker_ready=true
 | |
|                   break
 | |
|                 fi
 | |
|                 echo "Not ready, retry $i/60..."
 | |
|                 sleep 1
 | |
|               done
 | |
|               if [ "$broker_ready" = false ]; then
 | |
|                 echo "ERROR: registration timed out."
 | |
|                 exit 1
 | |
|               fi
 | |
| 
 | |
|               touch /tmp/rocketmq_ready
 | |
|               echo "Broker started successfully."
 | |
| 
 | |
|               echo "Creating topics..."
 | |
|               {{- range .Values.rocketmq.topics }}
 | |
|               /home/rocketmq/rocketmq-5.3.2/bin/mqadmin updateTopic -n $NAMESRV_ADDR -c DefaultCluster -t "{{ . }}"
 | |
|               {{- end }}
 | |
| 
 | |
|               echo "Creating consumer groups..."
 | |
|               {{- range .Values.rocketmq.consumerGroups }}
 | |
|               /home/rocketmq/rocketmq-5.3.2/bin/mqadmin updateSubGroup -n $NAMESRV_ADDR -c DefaultCluster -g "{{ . }}"
 | |
|               {{- end }}
 | |
| 
 | |
|               wait              
 | |
|           readinessProbe:
 | |
|             exec:
 | |
|               command:
 | |
|                 - sh
 | |
|                 - -c
 | |
|                 - "[ -f /tmp/rocketmq_ready ]"
 | |
|             initialDelaySeconds: 30
 | |
|             periodSeconds: 10
 | |
|           securityContext:
 | |
|             privileged: true
 | |
|             runAsUser: 0
 | |
|           ports:
 | |
|             - containerPort: 10909
 | |
|             - containerPort: 10911
 | |
|           volumeMounts:
 | |
|             - name: broker-store
 | |
|               mountPath: /home/rocketmq/store
 | |
|             - name: broker-logs
 | |
|               mountPath: /home/rocketmq/logs
 | |
|             - name: broker-config
 | |
|               mountPath: /home/rocketmq/conf/broker.conf
 | |
|               subPath: broker.conf
 | |
|   volumeClaimTemplates:
 | |
|     - metadata:
 | |
|         name: broker-store
 | |
|       spec:
 | |
|         accessModes: [ "ReadWriteOnce" ]
 | |
|       {{- if .Values.rocketmq.broker.persistence.store.storageClassName }}
 | |
|         storageClassName: {{ .Values.rocketmq.broker.persistence.store.storageClassName | quote }}
 | |
|       {{- end }}
 | |
|         resources:
 | |
|           requests:
 | |
|             storage: {{ .Values.rocketmq.broker.persistence.store.size | quote }}
 | |
|     - metadata:
 | |
|         name: broker-logs
 | |
|       spec:
 | |
|         accessModes: [ "ReadWriteOnce" ]
 | |
|       {{- if .Values.rocketmq.broker.persistence.logs.storageClassName }}
 | |
|         storageClassName: {{ .Values.rocketmq.broker.persistence.logs.storageClassName | quote }}
 | |
|       {{- end }}
 | |
|         resources:
 | |
|           requests:
 | |
|             storage: {{ .Values.rocketmq.broker.persistence.logs.size | quote }}
 | |
| {{- end }} |