Редактировать: мне нужно установить некоторые дополнительные параметры rabbit vhost / users / pass на рулевом графике для rabbitMQ, который мы используем в K8s, я пробовал через curl в ловушке postStart жизненного цикла:
Вот пример:
lifecycle:
postStart:
exec:
command: ["'/bin/sh', '-c','curl -i -u guest:guest -H ''content-type:application/json'' -XPUT -d '''{'password':'1234','tags':'monitoring'}''' http://localhost:15672/api/users/deleteme'"]
Но не получается:
Killing container with id docker://rabbitmq:FailedPostStartHook
Я попытался изменить цитату, а также установить ее следующим образом:
command:
- "sh":
- "-c":
- etc....
Безуспешно, я впервые пользуюсь крючками, какой-нибудь совет, пожалуйста?
Спасибо!
полный набор состояний:
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: {{ .Chart.Name }}
labels:
app: {{ .Chart.Name }}
spec:
serviceName: {{ .Chart.Name }}
replicas: {{ .Values.replicaCount }}
updateStrategy:
type: {{ .Values.updateStrategy }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
spec:
terminationGracePeriodSeconds: 10
containers:
- name: {{ .Chart.Name }}
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- name: epmd
protocol: TCP
containerPort: 4369
- name: amqp
protocol: TCP
containerPort: 5672
- name: http
protocol: TCP
containerPort: 15672
livenessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 30
timeoutSeconds: 5
readinessProbe:
exec:
command:
- rabbitmqctl
- status
initialDelaySeconds: 10
timeoutSeconds: 5
env:
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: RABBITMQ_USE_LONGNAME
value: "true"
- name: RABBITMQ_NODENAME
value: "rabbit@$(MY_POD_IP)"
- name: K8S_SERVICE_NAME
value: {{ .Chart.Name }}
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: {{ .Chart.Name }}
key: rabbitmq-erlang-cookie
- name: RABBITMQ_DEFAULT_USER
value: {{ .Values.rabbitmqUsername | quote }}
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: {{ .Chart.Name }}
key: rabbitmq-password
- name: RABBITMQ_DEFAULT_VHOST
value: {{ .Values.rabbitmqVhost | quote }}
volumeMounts:
- name: data
mountPath: /var/lib/rabbitmq
- name: config
mountPath: /etc/rabbitmq
lifecycle:
postStart:
exec:
command:
- "sh"
- "-c"
- "curl -i -u guest:guest -H \"content-type:application/json\" -XPUT -d \"{\"password\":\"1234\",\"tags\":\"monitoring\"}\" http://rabbitmq:15672/api/users/deleteme"
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
topologyKey: kubernetes.io/hostname
labelSelector:
matchLabels:
app: {{ .Chart.Name }}
volumes:
- name: config
configMap:
name: {{ .Chart.Name }}
- name: data
emptyDir: {}
Я мог бы закончить тем, что использовал значения или попытался установить его в configmap:
https://github.com/helm/charts/tree/master/stable/rabbitmq-ha
Если есть лучший способ, было бы здорово.