kind: List
apiVersion: v1
metadata:
name: rabbitmq
namespace: "some-variable"
labels:
app: rabbitmq
items:
- kind: ConfigMap
apiVersion: v1
metadata:
name: rabbitmq-config
data:
enabled_plugins: |
[rabbitmq_federation,rabbitmq_management,rabbitmq_peer_discovery_k8s].
rabbitmq.conf: |
loopback_users.guest = false
listeners.tcp.default = 5672
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
cluster_formation.k8s.host = kubernetes.default.svc.cluster.local
cluster_formation.k8s.address_type = hostname
cluster_formation.node_cleanup.only_log_warning = true
- kind: ServiceAccount
apiVersion: v1
metadata:
name: rabbitmq
- kind: Secret
apiVersion: v1
metadata:
name: rabbit-secret
type: Opaque
data:
RABBITMQ_ERLANG_COOKIE: V0lXVkhDRFRDSVVBV0FOTE1RQVc=
- kind: Service
apiVersion: v1
metadata:
name: rabbitmq
spec:
clusterIP: None
ports:
- port: 15672
targetPort: 15672
name: discovery
- port: 5672
targetPort: 5672
name: amqp
selector:
app: rabbitmq
- kind: StatefulSet
apiVersion: apps/v1
metadata:
name: rabbitmq
namespace: "some-variable"
spec:
serviceName: rabbitmq
replicas: 3
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
serviceAccountName: rabbitmq
initContainers:
- name: config
image: busybox
command: ['/bin/sh', '-c', 'cp /tmp/config/rabbitmq.conf /config/rabbitmq.conf && ls -l /config/ && cp /tmp/config/enabled_plugins /etc/rabbitmq/enabled_plugins']
volumeMounts:
- name: config
mountPath: /tmp/config/
readOnly: false
- name: config-file
mountPath: /config/
- name: plugins-file
mountPath: /etc/rabbitmq/
containers:
- name: rabbitmq
image: "some-variable"/"some-variable"/dil-rabbitmq-svc:"some-variable"
ports:
- containerPort: 15672
name: discovery
- containerPort: 5672
name: amqp
env:
- name: RABBIT_POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
- name: RABBIT_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: RABBITMQ_NODENAME
value: rabbit@$(RABBIT_POD_NAME).rabbitmq.$(RABBIT_POD_NAMESPACE).svc.cluster.local
- name: RABBITMQ_USE_LONGNAME
value: "true"
- name: RABBITMQ_CONFIG_FILE
value: "/config/rabbitmq"
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: rabbit-secret
key: RABBITMQ_ERLANG_COOKIE
- name: K8S_HOSTNAME_SUFFIX
value: .rabbitmq.$(RABBIT_POD_NAMESPACE).svc.cluster.local
volumeMounts:
- name: broker-amq-volume
mountPath: /var/lib/rabbitmq
readOnly: false
- name: config-file
mountPath: /config/
- name: plugins-file
mountPath: /etc/rabbitmq/
volumes:
- name: config-file
emptyDir: {}
- name: plugins-file
emptyDir: {}
- name: config
configMap:
name: rabbitmq-config
defaultMode: 0755
- name: broker-amq-volume
persistentVolumeClaim:
claimName: broker-amq-claim
- kind: Route
metadata:
name: rabbitmq-route
spec:
to:
kind: Service
name: rabbitmq
weight: 100
port:
targetPort: discovery
wildcardPolicy: None