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.
helm repo add mattermost https://helm.mattermost.com
Install a version of the preferred chart by running:
helm install mm-push-proxy mattermost/mattermost-push-proxy --namespace mm-push-proxy --create-namespace
To upgrade an existing release, modify the config.yaml
with your desired changes and then use:
helm upgrade -f values.yaml <your-release-name> mattermost/mattermost-push-proxy
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
where 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:
- Run
kubectl describe svc your-nginx-ingress-controller
- Replace
your-nginx-ingress-controller
with the name of your ingress controller service
- Replace
- Copy the domain name beside
LoadBalancer Ingress:
- 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
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 install
.
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.