Mattermost Push Proxy Helm Chart
This is the Helm chart for the Mattermost Push Proxy Notification service. It is used at Mattermost internally by our community.mattermost.com server to push notifications to iOS and Android devices. To learn more about Helm charts, see the Helm docs. You can find more information about Mattermost Push Proxy setup here.
A Mattermost hosted Push Notification service is offered and more details can be found here.
The push proxy source code lives here.
1.1 Kubernetes Cluster
You need a running Kubernetes cluster v1.8+. If you do not have one, find options and installation instructions here:
We recommend installing Helm v2.13.1 or later.
Once Helm is installed and initialized, run the following:
helm repo add mattermost https://helm.mattermost.com helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/
To start, copy mattermost-push-proxy/values.yaml and name it
config.yaml. This will be your configuration file for the Mattermost Push Proxy Helm chart.
2.1 Required Settings
At minimum these are the settings you need to update:
applePushSettings- set this section to be able to get notifications in iOS devices.
androidPushSettings- set this section to be able to get notifications in Android devices.
If you are using nginx-ingress, set the following:
ingress: enabled: true hosts: - push-proxy.example.com
push-proxy.example.com is your domain name and the url you will specify in your Mattermost Server as push-proxy target.
To run with HTTPS, add an SSL/TLS certificate as a secret to your Kubernetes cluster, either manually or using cert-manager.
Set the following to enable HTTPS:
ingress: enabled: true hosts: - push-proxy.example.com tls: - secretName: your-tls-secret-name hosts: - push-proxy.example.com
To route users from your domain name to your Mattermost Push Proxy installation, point your domain name at the external IP or domain that your ingress exposes.
Depending on the DNS service and Ingress you’re using, the steps can vary. If you are using nginx-ingress, you would do something like this:
kubectl describe svc your-nginx-ingress-controller
your-nginx-ingress-controllerwith the name of your ingress controller service
- Copy the domain name beside
- On your DNS service, create a CNAME record pointing from the domain you’d like to use to the domain name you just copied
- Save, and wait 10-15 minutes for the DNS change to propagate
After adding the Mattermost repo (see section 1.2) you can install a version of the preferred chart by running:
helm install --repo https://helm.mattermost.com <chart_name> --version <version_number>
helm install --repo https://helm.mattermost.com mattermost-push-proxy --version v0.2.1
If no Helm Chart version is specified the latest version will be installed.
To run with your custom
config.yaml, install using:
helm install -f config.yaml --repo https://helm.mattermost.com mattermost-push-proxy
To upgrade an existing release, modify the
config.yaml with your desired changes and then use:
helm upgrade -f config.yaml <your-release-name> --repo https://helm.mattermost.com mattermost-push-proxy
3.1 Uninstalling Mattermost Push Proxy Helm Chart
If you are done with your deployment and want to delete it, use
helm delete <your-release-name>. If you don’t know the name of your release, use
helm ls to find it.
If you are going to modify the helm charts, it is helpful to use
--dry-run (doesn’t do an actual deployment) and
--debug (print the generated config files) when running
Helm has partial support for pulling values out of a subchart via the requirements.yaml. It also has limited support for pushing values into subcharts. It does not support using templating inside a values.yaml file.
We recommend using kind for local development if you do not have access to Kubernetes cluster running in the cloud.