Resources
Mattermost
-
db
postgres
Ready
-
app
mattermost/mattermost-team-edition:10.12
Running
-
ingress
chat.example.com
Live
Parameters
Deploy Mattermost
App Name required
mattermost
Domain required
chat.example.com
Site name
Mattermost
Open server
Off
Anyone with the link can create an account
Allow plugin uploads
On
Max upload (MB)
100
SMTP host
smtp.example.com
Outgoing mail for invites and notifications. Optional.
SMTP port
587
SMTP username
SMTP password
app password
From address
Storage
5Gi
Volume for uploads
Enable HTTPS
On
Cancel Deploy
YAML
apiVersion: leaf/v1
kind: Template
metadata:
name: mattermost
displayName: 'Mattermost'
description: 'Team chat with channels, threads and calls. The team edition, on your own Postgres.'
icon: https://github.com/mattermost.png?size=256
version: '1.0.0'
category: community
tags: ['chat', 'team', 'messaging', 'slack']
keywords: ['slack alternative', 'discord', 'channels', 'rocket.chat', 'workspace']
homepage: https://github.com/mattermost/mattermost
license: MIT
parameters:
- name: appName
displayName: 'App Name'
type: string
default: 'mattermost'
required: true
validation:
pattern: '^[a-z][a-z0-9-]{1,58}[a-z0-9]$'
message: 'Must be lowercase alphanumeric with hyphens, 3-60 chars'
- name: domain
displayName: 'Domain'
type: string
required: true
placeholder: 'chat.example.com'
- name: siteName
displayName: 'Site name'
type: string
default: 'Mattermost'
- name: openServer
displayName: 'Open server'
description: 'Anyone with the link can create an account'
type: boolean
default: false
- name: pluginUploads
displayName: 'Allow plugin uploads'
type: boolean
default: true
- name: maxFileSizeMb
displayName: 'Max upload (MB)'
type: number
default: 100
validation:
min: 1
- name: smtpHost
displayName: 'SMTP host'
description: 'Outgoing mail for invites and notifications. Optional.'
type: string
default: ''
placeholder: 'smtp.example.com'
- name: smtpPort
displayName: 'SMTP port'
type: number
default: 587
- name: smtpUser
displayName: 'SMTP username'
type: string
default: ''
placeholder: '[email protected]'
- name: smtpPassword
displayName: 'SMTP password'
type: string
default: ''
placeholder: 'app password'
- name: mailFrom
displayName: 'From address'
type: string
default: ''
placeholder: '[email protected]'
- name: storage
displayName: 'Storage'
description: 'Volume for uploads'
type: string
default: '5Gi'
- name: enableTls
displayName: 'Enable HTTPS'
type: boolean
default: true
resources:
- name: db
type: database
config:
name: '{{ params.appName }}-db'
- name: app
type: deployment
config:
name: '{{ params.appName }}'
image: mattermost/mattermost-team-edition:10.12
replicas: 1
ports:
- name: http
containerPort: 8065
servicePort: 8065
protocol: TCP
volumes:
- name: data
type: pvc
mountPath: /mattermost/data
storageSize: '{{ params.storage }}'
- name: config
type: pvc
mountPath: /mattermost/config
storageSize: '1Gi'
- name: plugins
type: pvc
mountPath: /mattermost/plugins
storageSize: '2Gi'
- name: client-plugins
type: pvc
mountPath: /mattermost/client/plugins
storageSize: '1Gi'
env:
- key: MM_SQLSETTINGS_DRIVERNAME
value: postgres
- key: MM_SQLSETTINGS_DATASOURCE
value: '{{ resources.db.connectionString }}?sslmode=disable&connect_timeout=10'
secret: true
- key: MM_SERVICESETTINGS_SITEURL
value: 'https://{{ params.domain }}'
- key: MM_SERVICESETTINGS_LISTENADDRESS
value: ':8065'
- key: MM_TEAMSETTINGS_SITENAME
value: '{{ params.siteName }}'
- key: MM_TEAMSETTINGS_ENABLEOPENSERVER
value: '{{ params.openServer }}'
- key: MM_PLUGINSETTINGS_ENABLEUPLOADS
value: '{{ params.pluginUploads }}'
- key: MM_FILESETTINGS_MAXFILESIZE
value: '{{ params.maxFileSizeMb }}000000'
- key: MM_EMAILSETTINGS_CONNECTIONSECURITY
value: STARTTLS
- key: MM_EMAILSETTINGS_ENABLESMTPAUTH
value: 'true'
- key: MM_EMAILSETTINGS_SMTPSERVER
value: '{{ params.smtpHost }}'
- key: MM_EMAILSETTINGS_SMTPPORT
value: '{{ params.smtpPort }}'
- key: MM_EMAILSETTINGS_SMTPUSERNAME
value: '{{ params.smtpUser }}'
- key: MM_EMAILSETTINGS_SMTPPASSWORD
value: '{{ params.smtpPassword }}'
secret: true
- key: MM_EMAILSETTINGS_FEEDBACKEMAIL
value: '{{ params.mailFrom }}'
- name: ingress
type: ingress
config:
host: '{{ params.domain }}'
tlsEnabled: '{{ params.enableTls }}'
routes:
- path: /
serviceName: '{{ resources.app.serviceName }}'
servicePort: 8065