扣子智能体
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
coze_studio/helm/charts/opencoze/templates/rocketmq-broker-statefulset...

130 lines
4.9 KiB

{{- 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: "{{ .Values.images.busybox }}"
command: ['sh', '-c', 'until nc -z {{ include "opencoze.fullname" . }}-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 }}