diff --git a/MongooseIM/templates/mongoose-deploy.yaml b/MongooseIM/templates/mongoose-deploy.yaml new file mode 100644 index 0000000..6b87992 --- /dev/null +++ b/MongooseIM/templates/mongoose-deploy.yaml @@ -0,0 +1,87 @@ +{{ if eq .Values.workloadAPI "Deployment" -}} +{{ $mnesia_enabled := or (eq .Values.volatileDatabase "mnesia") (eq .Values.persistentDatabase "mnesia") -}} +{{ if $mnesia_enabled -}} +{{ required "Deployment does not support Mnesia" "" -}} +{{ end -}} + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongooseim + namespace: + labels: + app: mongooseim +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: mongooseim + template: + metadata: + labels: + app: mongooseim + annotations: + rollout: {{ .Values.rolloutId | default (randAlphaNum 24) }} + spec: + subdomain: mongooseim + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + containers: + - name: mongooseim + image: {{ .Values.image.repository }}:{{or .Values.image.tag .Chart.AppVersion}} + env: + - name: JOIN_CLUSTER + value: "false" + - name: NODE_TYPE + value: "name" + - name: NODE_NAME + value: {{ .Values.nodeName }} + - name: NODE_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + ports: + - name: epmd + containerPort: 4369 + - name: c2s + containerPort: 5222 + - name: s2s + containerPort: 5269 + - name: bosh-ws + containerPort: 5280 + - name: bosh-wss + containerPort: 5285 + - name: erlang-dist + containerPort: 9100 + - name: gql-admin + containerPort: 5551 + - name: gql-dom-admin + containerPort: 5541 + - name: gql-user + containerPort: 5561 + readinessProbe: + tcpSocket: + port: c2s + initialDelaySeconds: 10 + periodSeconds: 10 + volumeMounts: + - name: config-map + mountPath: /member + {{- if .Values.tlsCertSecret }} + - name: tls + mountPath: /usr/lib/mongooseim/priv/ssl + readOnly: true + {{- end }} + volumes: + - name: config-map + configMap: + name: mongooseim + {{- if .Values.tlsCertSecret }} + - name: tls + secret: + secretName: {{ .Values.tlsCertSecret }} + {{- end }} + setHostnameAsFQDN: true +{{ end }} diff --git a/MongooseIM/templates/mongoose-sts.yaml b/MongooseIM/templates/mongoose-sts.yaml index aa3b0d9..83cd889 100644 --- a/MongooseIM/templates/mongoose-sts.yaml +++ b/MongooseIM/templates/mongoose-sts.yaml @@ -1,3 +1,4 @@ +{{ if eq .Values.workloadAPI "StatefulSet" -}} {{ $mnesia_enabled := or (eq .Values.volatileDatabase "mnesia") (eq .Values.persistentDatabase "mnesia") -}} apiVersion: apps/v1 @@ -42,6 +43,12 @@ spec: value: "name" - name: NODE_NAME value: {{ .Values.nodeName }} + {{- if .Values.skipClusterDNS }} + - name: NODE_HOST + valueFrom: + fieldRef: + fieldPath: status.podIP + {{- end }} ports: - name: epmd containerPort: 4369 @@ -97,3 +104,4 @@ spec: requests: storage: 1Gi {{- end }} +{{- end }} diff --git a/MongooseIM/values.yaml b/MongooseIM/values.yaml index e196d3a..eba3d05 100644 --- a/MongooseIM/values.yaml +++ b/MongooseIM/values.yaml @@ -61,6 +61,9 @@ mimConfig: "" rolloutId: "" tlsCertSecret: {} +workloadAPI: "StatefulSet" +skipClusterDNS: false + volatileDatabase: "mnesia" persistentDatabase: "mnesia"