From d2dc554d0bc290561d442f69cb1faf96cb3fe397 Mon Sep 17 00:00:00 2001 From: "evan.rush" Date: Fri, 23 Apr 2021 14:51:29 +0000 Subject: [PATCH] Elastic Integration --- CHANGELOG.md | 3 ++ chart/Chart.yaml | 2 +- chart/templates/env-secret.yaml | 23 ++++++++++++++- chart/templates/mattermost.yaml | 52 +++++++++++++++++++++++++++++++++ chart/values.yaml | 23 +++++++++++++++ 5 files changed, 101 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 819ad4b..e372004 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- +## [0.1.4-bb.0] - 2021-04-23 +### Added +- Added Elastic Search declaritive coniguration. ## [0.1.3-bb.2] - 2021-04-19 ### Changed diff --git a/chart/Chart.yaml b/chart/Chart.yaml index 4c7ffe9..d9a77fb 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: mattermost type: application -version: "0.1.3-bb.2" +version: "0.1.4-bb.0" appVersion: "5.32.1" description: "Deployment of mattermost" keywords: diff --git a/chart/templates/env-secret.yaml b/chart/templates/env-secret.yaml index 792de57..9dd5e1e 100644 --- a/chart/templates/env-secret.yaml +++ b/chart/templates/env-secret.yaml @@ -1,4 +1,4 @@ -{{- if or .Values.mattermostEnvs .Values.sso.enabled .Values.minio.install }} +{{- if or .Values.mattermostEnvs .Values.sso.enabled .Values.minio.install .Values.elasticsearch.enabled }} apiVersion: v1 kind: Secret metadata: @@ -25,4 +25,25 @@ stringData: {{- if .Values.minio.install }} MM_FILESETTINGS_AMAZONS3SSL: "false" {{- end }} + {{- if .Values.elasticsearch.enabled }} + MM_ELASTICSEARCHSETTINGS_CONNECTIONURL: "{{ .Values.elasticsearch.connectionurl }}" + MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE: "{{ .Values.elasticsearch.enableautocomplete }}" + MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING: "{{ .Values.elasticsearch.enableindexing }}" + MM_ELASTICSEARCHSETTINGS_INDEXPREFIX: "{{ .Values.elasticsearch.indexprefix }}" + MM_ELASTICSEARCHSETTINGS_BULKINDEXINGTIMEWINDOWSECONDS: "{{ .Values.elasticsearch.bulkindexingtimewindowseconds }}" + MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING: "{{ .Values.elasticsearch.enablesearching }}" + MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION: "{{ .Values.elasticsearch.skiptlsverification }}" + MM_ELASTICSEARCHSETTINGS_SNIFF: "{{ .Values.elasticsearch.sniff }}" + MM_ELASTICSEARCHSETTINGS_USERNAME: {{ .Values.elasticsearch.username | default "elastic" }} + {{- end }} + {{- if .Values.elasticsearch.password }} + MM_ELASTICSEARCHSETTINGS_PASSWORD: {{ .Values.elasticsearch.password }} + {{- else }} + {{ $secretname := printf "%s-es-elastic-user" ( .Values.elasticsearch.name | default "logging-ek" )}} + SECRET_NAME: {{ $secretname }} + NAMESPACE: {{ .Values.elasticsearch.namespace | default "logging" }} + {{- with lookup "v1" "Secret" (.Values.elasticsearch.namespace | default "logging" ) $secretname }} + MM_ELASTICSEARCHSETTINGS_PASSWORD: {{ .data.elastic | b64dec }} + {{- end }} + {{- end }} {{- end }} diff --git a/chart/templates/mattermost.yaml b/chart/templates/mattermost.yaml index 353c9bb..190ebeb 100644 --- a/chart/templates/mattermost.yaml +++ b/chart/templates/mattermost.yaml @@ -72,6 +72,58 @@ spec: key: MM_FILESETTINGS_AMAZONS3SSL name: "mattermost-envs" {{- end }} + {{- if .Values.elasticsearch.enabled }} + - name: MM_ELASTICSEARCHSETTINGS_CONNECTIONURL + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_CONNECTIONURL + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_ENABLEAUTOCOMPLETE + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_ENABLEINDEXING + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_INDEXPREFIX + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_INDEXPREFIX + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_BULKINDEXINGTIMEWINDOWSECONDS + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_BULKINDEXINGTIMEWINDOWSECONDS + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_ENABLESEARCHING + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_SKIPTLSVERIFICATION + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_SNIFF + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_SNIFF + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_USERNAME + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_USERNAME + name: "mattermost-envs" + - name: MM_ELASTICSEARCHSETTINGS_PASSWORD + valueFrom: + secretKeyRef: + key: MM_ELASTICSEARCHSETTINGS_PASSWORD + name: "mattermost-envs" + {{- end }} {{- range .Values.existingSecretEnvs }} - {{ tpl (toYaml .) $ | nindent 4 }} {{- end }} diff --git a/chart/values.yaml b/chart/values.yaml index 293e314..f10de22 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -152,3 +152,26 @@ fileStore: url: "" # Bucket for existing file store, leave empty for chart created minio bucket: "" + +elasticsearch: + # NOTE: Elasticsearch settings can be defined, but will not work unless enterprise mode is enabled. + enabled: false + # The address of the Elasticsearch server, default is internal elasticsearch + connectionurl: "https://logging-ek-es-http.logging.svc.cluster.local:9200" + # if using BB elasticsearch leave user/pass blank + username: "" + password: "" + # When true, indexing of new posts occurs automatically. Search queries will use database search until "Enable Elasticsearch for search queries" is enabled. + enableindexing: true + # Elasticsearch index prefix + indexprefix: "mm-" + # When true, Mattermost will not require the Elasticsearch certificate to be signed by a trusted Certificate Authority + skiptlsverification: true + # Frequency to index to elasticsearch + bulkindexingtimewindowseconds: 3600 + # When true, sniffing finds and connects to all data nodes in your cluster automatically. + sniff: false + # When true, Elasticsearch will be used for all search queries using the latest index. Search results may be incomplete until a bulk index of the existing post database is finished. When false, database search is used. + enablesearching: true + # When true, Elasticsearch will be used for all autocompletion queries on users and channels using the latest index. Autocompletion results may be incomplete until a bulk index of the existing users and channels database is finished. When false, database autocomplete is used. + enableautocomplete: true -- GitLab