You can use a supported Azure Marketplace Container Offer to install Mattermost on your existing Azure infrastructure.
Before you begin¶
Before deploying, make sure you have the following:
An AKS cluster: with the Application Gateway Ingress Controller (AGIC) add-on enabled or another Ingress controller deployed.
PostgreSQL v13.0+ database: Azure Database for PostgreSQL - Flexible Server with Private Access is recommended. Deploy one by following this Microsoft quick start guide.
Private Network Connectivity: Verify that there is network connectivity between your AKS cluster and the PostgreSQL database.
Valid DNS name and TLS certificate: You must have access to a DNS zone and provide a valid TLS key and certificate for the Ingress Controller.
Node Capacity: At least 2 AKS nodes for high availability when deploying for 100 users or more.
License Key: Trial or Enterprise license to test high availability and other Enterprise features.
Installation steps¶
The installation process includes deploying Mattermost and updating the server.
Step 1: Deploy Mattermost¶
Deploy Mattermost from the Azure Marketplace Container Offer and select Get it now.
Alternatively, you can go to the
Extensions + Applications
section of your AKS cluster and install the Mattermost offering from there. Visit the Microsoft cluster extensions documentation to learn more.
Choose the Resource Group and the Region of your installed AKS and PostgreSQL database.
Choose your AKS cluster.
Fill in the details for your PostgreSQL database. Ensure the user specified has full access.
Specify Deployment Details including Deployment Name and Deployment Size. Click the checkbox to Deploy Minio, a required utility for this installation that will provide filestore functionality for your Mattermost instance.
Configure Mattermost installation hostname and Ingress details. The AGIC add-on is used in the following example to show the ingress annotations required.
You can use any pre-installed Ingress Controller in your cluster as long as it supports Kubernetes Ingress and TLS termination.
kubernetes.io/ingress.class: azure/application-gateway appgw.ingress.kubernetes.io/ssl-redirect: "true"
Additionally, we recommend considering:
Enforcing a minimum TLS version (e.g., TLS 1.2).
Deploying a Web Application Firewall (WAF) for additional protection, if supported by your ingress controller.
Limiting access using Kubernetes Network Policies.
![]()
Ensure that everything is running. You should be able to check the installed plugin from the AKS Extensions + Applications page under the Settings menu.
When the deployment is complete, obtain the hostname or IP address of your Mattermost deployment using the following command:
kubectl -n mattermost-operator get ingress
Use your IP address from the
ADDRESS
column, and create a DNS record in your domain registration service.Access your working Mattermost installation at the URL you’ve determined in your DNS record.
Learn more about administrating your Mattermost server by visiting the Administration Guide.
Step 2: Upgrade Mattermost via your AKS cluster¶
Visit the
Extensions + Applications
section of your AKS cluster where your Mattermost installation is deployed.You can enable minor version auto upgrades since these are not updating Mattermost version
Expand the
Configuration Settings
table and add the below configuration and the version you want to install as a value.
global.azure.mattermost.version .. image:: /_static/images/global-azure-mattermost-version.png :alt: An example of using custom Mattermost version.
Select Save and wait for the upgrade.
Important
You are responsible for Azure costs associated with any infrastructure you spin up to host a Mattermost server, and Azure credits cannot be applied towards the purchase of a Mattermost license.