mattermost #0

Supports: kubernetes

Deploy this charm on Kubernetes with the CLI. Find out how by reading the docs.


Mattermost is a flexible, open source messaging platform that enables secure team collaboration.

Mattermost Kubernetes Operator

A Juju charm deploying and managing Mattermost on Kubernetes, configurable to use a PostgreSQL backend.


Mattermost offers both a Team Edition and an Enterprise Edition. This charm supports both, with the default image deploying the Team Edition. Supported features include authentication via SAML, Push Notifications, clustering, the storage of images and attachments in S3, and a Prometheus exporter for performance monitoring.


For details on using Kubernetes with Juju see here, and for details on using Juju with MicroK8s for easy local testing see here.

To get started deploying the charm in a test environment within a Juju Kubernetes model:

juju deploy cs:~postgresql-charmers/postgresql-k8s postgresql
juju deploy cs:~mattermost-charmers/mattermost --config juju-external-hostname=foo.internal
juju add-relation mattermost postgresql:db
juju expose mattermost

Once the deployment has completed and the "mattermost" workload state in juju status has changed to "active" you can visit http://${mattermost_ip}:8065 in a browser and log in to your Mattermost instance, and you'll be presented with a screen to create an initial admin account. Further accounts must be created using this admin account, or by setting up an external authentication source, such as SAML.

For further details, see here.


(boolean) Enable clustering. This feature requires a Mattermost Enterprise Edition licence.
(boolean) Set the Mattermost log level to DEBUG, otherwise INFO.
(boolean) The image proxy is used by the Mattermost apps to prevent them from connecting directly to remote servers. This anonymizes their connections and prevents them from accessing insecure content. Currently only the "local" image proxy type is supported.
(string) A comma-separated list of CIDRs to store in the annotation. This can be used to lock down access to Mattermost based on source IP address.
(string) The contents of the licence file as supplied by Mattermost. Some features are not available without a licence. For more information, consult the Mattermost documentation.
(string) The password associated with mattermost_image_username for accessing the registry specified in mattermost_image_path.
(string) The location of the image to use, e.g. "". This setting is required.
(string) The username for accessing the registry specified in mattermost_image_path.
(int) The maximum file size, in megabytes. If there is a reverse proxy in front of Mattermost, it may need to be configured to handle the requested size. For more information, see the Mattermost documentation.
(string) The proxy to use for outbound requests.
(string) A list of destinations for which the outbound proxy will not be used. This can be configured as a set of comma-separated IP addresses (e.g. ""), IP address ranges specified in CIDR notation (e.g. ""), or domain names. An IP address or domain name can also include a port number. When a domain name is specified, the domain and all of its subdomains are matched. However, a domain name with a leading "." only matches the subdomains. For example, "" matches both "" and "" while "" only matches the latter.
(boolean) When set, Prometheus metrics are exposed via HTTP on port 8067 at the path "/metrics". For more information, see This feature requires a Mattermost Enterprise Edition licence.
(string) The primary team of which users on the server are members. When a primary team is set, the options to join other teams or leave the primary team are disabled. If the team URL of the primary team is "", then set the value to "myteam".
(string) The push notification server to use.
(boolean) If enabled, push notification payloads include the sender, the channel, and a snippet of the message itself, which may include confidential information. If disabled, push notification payloads include the sender, the channel, and an ID to let the client retrieve the message directly from Mattermost.
(string) The S3 access key ID to use.
(string) The S3 bucket to use.
(boolean) Store files and attachments in an S3-compatible object storage service instead of a local directory.
(string) The S3 endpoint to use. This may be a non-Amazon S3-compatible endpoint. For more information, see the Mattermost documentation.
(string) The S3 region to use.
(string) The S3 secret key to use.
(boolean) Whether to use S3 Server-Side Encryption. This requires configuration on the S3 side, as well as a suitable Mattermost licence.
(string) The URL by which the site is reached. This must be set for all of Mattermost's features to work correctly. For more information, see
(string) The hostname or IP address of the outgoing SMTP relay host.
(boolean) Whether to use Ubuntu SSO to log in. This will not work unless the administrators of have created a suitable SAML config first.
(string) The name of the Kubernetes secret to be associated with the ingress resource. This setting is ignored unless site_url begins with "https".
(boolean) If set, apply miscellaneous Mattermost settings as used by Canonical.
(boolean) If set, use the built-in Mattermost SAML library. Otherwise, use xmlsec1 to verify logins.