-
-
Save cbluth/f77b658e09781ef36f1ba317b41e1a31 to your computer and use it in GitHub Desktop.
apiVersion: apps/v1 | |
kind: StatefulSet | |
metadata: | |
labels: | |
app: vernemq | |
name: vernemq | |
spec: | |
podManagementPolicy: OrderedReady | |
replicas: 3 | |
selector: | |
matchLabels: | |
app: vernemq | |
serviceName: vernemq | |
template: | |
metadata: | |
labels: | |
app: vernemq | |
spec: | |
containers: | |
- env: | |
- name: MY_POD_NAME | |
valueFrom: | |
fieldRef: | |
apiVersion: v1 | |
fieldPath: metadata.name | |
envFrom: | |
- configMapRef: | |
name: vernemq | |
image: erlio/docker-vernemq:1.6.1 | |
imagePullPolicy: IfNotPresent | |
name: vernemq | |
ports: | |
- containerPort: 1883 | |
name: mqtt | |
- containerPort: 4369 | |
name: epmd | |
- containerPort: 44053 | |
name: vmq | |
- containerPort: 8888 | |
name: metrics | |
- containerPort: 9100 | |
- containerPort: 9101 | |
- containerPort: 9102 | |
- containerPort: 9103 | |
- containerPort: 9104 | |
- containerPort: 9105 | |
- containerPort: 9106 | |
- containerPort: 9107 | |
- containerPort: 9108 | |
- containerPort: 9109 | |
volumeMounts: | |
- mountPath: /etc/vernemq-passwd | |
name: vernemq-passwd | |
readOnly: true | |
volumes: | |
- name: vernemq-passwd | |
secret: | |
defaultMode: 420 | |
secretName: vernemq-passwd | |
updateStrategy: | |
type: RollingUpdate | |
--- | |
apiVersion: v1 | |
data: | |
DOCKER_VERNEMQ_ALLOW_PUBLISH_DURING_NETSPLIT: "on" | |
DOCKER_VERNEMQ_ALLOW_REGISTER_DURING_NETSPLIT: "on" | |
DOCKER_VERNEMQ_ALLOW_SUBSCRIBE_DURING_NETSPLIT: "on" | |
DOCKER_VERNEMQ_ALLOW_UNSUBSCRIBE_DURING_NETSPLIT: "on" | |
DOCKER_VERNEMQ_DISCOVERY_KUBERNETES: "1" | |
DOCKER_VERNEMQ_ERLANG.async_threads: "1024" | |
DOCKER_VERNEMQ_ERLANG__DISTRIBUTION__PORT_RANGE__MAXIMUM: "9109" | |
DOCKER_VERNEMQ_ERLANG__DISTRIBUTION__PORT_RANGE__MINIMUM: "9100" | |
DOCKER_VERNEMQ_KUBERNETES_APP_LABEL: vernemq | |
DOCKER_VERNEMQ_KUBERNETES_INSECURE: "1" | |
DOCKER_VERNEMQ_LISTENER__VMQ__CLUSTERING: 0.0.0.0:44053 | |
DOCKER_VERNEMQ_MAX_ONLINE_MESSAGES: "-1" | |
DOCKER_VERNEMQ_LISTENER__TCP__LOCALHOST: "127.0.0.1:1883" | |
DOCKER_VERNEMQ_VMQ_PASSWD__PASSWORD_FILE: /etc/vernemq-passwd/vmq.passwd | |
kind: ConfigMap | |
metadata: | |
name: vernemq | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
labels: | |
app: vernemq | |
name: vernemq-svc | |
spec: | |
ports: | |
- name: mqtt | |
port: 1883 | |
protocol: TCP | |
targetPort: 1883 | |
- name: metrics | |
port: 8888 | |
protocol: TCP | |
targetPort: 8888 | |
selector: | |
app: vernemq | |
sessionAffinity: None | |
type: ClusterIP | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
labels: | |
app: vernemq | |
name: vernemq | |
spec: | |
clusterIP: None | |
ports: | |
- port: 4369 | |
name: empd | |
selector: | |
app: vernemq | |
--- | |
apiVersion: v1 | |
data: | |
vmq.passwd: dXNlcm5hbWU6JDYkYUxHc1E3MllVbnR4YmlFQyQrM2xGRWlBS3lXblBEMTZjYU1neXQ3UjBnbFRwY3I3cVlhcW52UnVsMTc2bS9XbzNBeEJjSzNwOThmQlB6UzhtZ0daRS96WEZZbTRsRDV2VXFZTUNoZz09Cg== | |
# Username: username | |
# Password: password | |
kind: Secret | |
metadata: | |
annotations: | |
name: vernemq-passwd | |
type: Opaque |
I think there is no need for the
preStop
hook, that's already implemented in the entrypoint: https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh#L108-L115And you shouldn't need
DOCKER_VERNEMQ_KUBERNETES_NAMESPACE
anymore
i removed the hook and the variable, do you see any more improvements?
for the port forwarding to work I added this env variable:
# Add this localhost listener in order to get the port forwarding working
- name: DOCKER_VERNEMQ_LISTENER__TCP__LOCALHOST
value: "127.0.0.1:1883"
But I guess DOCKER_VERNEMQ_LISTENER__VMQ__CLUSTERING: 0.0.0.0:44053
does the same.
One more thing, statefulsets require a headless service, see Limitations.
My headless service looks like this:
apiVersion: v1
kind: Service
metadata:
labels:
app: vernemq
name: vernemq
spec:
clusterIP: None
ports:
- port: 4369
name: empd
selector:
app: vernemq
for the port forwarding to work I added this env variable:
# Add this localhost listener in order to get the port forwarding working - name: DOCKER_VERNEMQ_LISTENER__TCP__LOCALHOST value: "127.0.0.1:1883"
But I guess
DOCKER_VERNEMQ_LISTENER__VMQ__CLUSTERING: 0.0.0.0:44053
does the same.One more thing, statefulsets require a headless service, see Limitations.
My headless service looks like this:apiVersion: v1 kind: Service metadata: labels: app: vernemq name: vernemq spec: clusterIP: None ports: - port: 4369 name: empd selector: app: vernemq
@francois-travais
Thanks for your input, i have updated the gist.
I think there is no need for the
preStop
hook, that's already implemented in the entrypoint: https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh#L108-L115And you shouldn't need
DOCKER_VERNEMQ_KUBERNETES_NAMESPACE
anymore