https://github.com/goern/mattermost-openshift
An OpenShift 3 application template for mattermost
https://github.com/goern/mattermost-openshift
mattermost mattermost-application openshift slack
Last synced: 8 months ago
JSON representation
An OpenShift 3 application template for mattermost
- Host: GitHub
- URL: https://github.com/goern/mattermost-openshift
- Owner: goern
- License: gpl-3.0
- Archived: true
- Created: 2016-04-06T08:10:00.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2018-09-12T15:59:57.000Z (almost 8 years ago)
- Last Synced: 2025-01-28T21:38:40.175Z (over 1 year ago)
- Topics: mattermost, mattermost-application, openshift, slack
- Language: Python
- Size: 88.9 KB
- Stars: 26
- Watchers: 5
- Forks: 26
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Mattermost for OpenShift Origin 3
This is instant Mattermost application for OpenShift Origin 3.
The license applies to all files inside this repository, not Mattermost itself.
## TL;DR
```
oc new-project mattermost
oc new-app postgresql-persistent -p POSTGRESQL_USER=mmuser -p POSTGRESQL_PASSWORD=mostest \
-p POSTGRESQL_DATABASE=mattermost -p MEMORY_LIMIT=128Mi
oc create --filename mattermost.yaml
oc create serviceaccount mattermost
oc create secret generic mattermost-database --from-literal=user=mmuser --from-literal=password=mostest
oc secrets link mattermost mattermost-database
oc new-app --template=mattermost --labels=app=mattermost
oc expose service/mattermost --labels=app=mattermost
```
### Warning: Security
Mattermost images has hardocoded 1001 user to run with. This is bad practice when running containers in OpenShift which prefers restricted SCC which uses a random uid greater than 1000000.
To workaround it, we can put the mattermost service account in anyuid scc and adjust the uid range for the namespace to run with.
```
oc adm policy add-scc-to-user anyuid system:serviceaccount:mattermost:mattermost
oc annotate namespace mattermost openshift.io/sa.scc.uid-range=1001/1001 --overwrite
```
## Prerequisites
OpenShift Origin 3 up and running, including the capability to create a new project. The simple way is to use `oc cluster up` or [Minishift](https://docs.okd.io/latest/minishift/getting-started/installing.html)
And you need to deploy PostgreSQL, described below.
## Disclaimer
This template and Mattermost startup script `mattermost-launch.sh` only supports PostgreSQL.
Support for this work is provided as 'best can do' via GitHub.
## Installation
### Configuration
First of all, let's create a project for mattermost: `oc new-project mattermost`
We will use a [ServiceAccount](https://docs.okd.io/3.10/dev_guide/service_accounts.html) to run Mattermost, this account will have access to the database [Secrets](https://docs.okd.io/3.10/dev_guide/secrets.html):
```
oc create --filename mattermost.yaml # to import the template
oc create serviceaccount mattermost # our deployment will use this
oc create secret generic mattermost-database --from-literal=user=mmuser --from-literal=password=mostest
oc secrets link mattermost mattermost-database # make the secret available to the serviceaccount
```
### Deployment
As Mattermost depends on it, let's deploy PostgreSQL...
Next step, import the current image from quay.io and tag it as latest:
```
oc import-image registry.centos.org/mattermost/mattermost-team:5.2-PCP --confirm
oc tag mattermost-team:5.2-PCP mattermost-team:latest
```
If you build your own image dont forget to push it to OpenShift's ImageStreamTag `mattermost/mattermost-team:latest`.
Main step: deploy Mattermost app using the provided template: `oc new-app --template=mattermost --labels=app=mattermost`. Deployments and Services will be created for you.
And a route:
`oc expose service/mattermost --labels=app=mattermost --hostname=mattermost.example.com`
## Usage
Point your browser at `mattermost.example.com`, the first user you create will
be an Administrator of Mattermost.
## Updates
If a new Mattermost container image is available, or if you build one yourself, you need to import it to the ImageStream and retag latest to it. This will automatically deploy the new version.
## Building
The actual mattermost-team container image used is build by the CentOS Container Index, have a look at: https://registry.centos.org/mattermost/mattermost-team
## Copyright
Copyright (C) 2016-2018 Red Hat Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
The GNU General Public License is provided within the file LICENSE.