Skip to content

Instantly share code, notes, and snippets.

@goern
Created April 6, 2016 10:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goern/aa13182c12e8ae88e0508d2c00e698bb to your computer and use it in GitHub Desktop.
Save goern/aa13182c12e8ae88e0508d2c00e698bb to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Template
metadata:
name: mattermost
objects:
- apiVersion: v1
kind: BuildConfig
metadata:
name: ${APPLICATION_NAME}
spec:
output:
to:
kind: ImageStreamTag
name: ${APPLICATION_NAME}:latest
source:
git:
uri: https://github.com/goern/mattermost-openshift
ref: "centos7"
type: Git
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: centos:latest
type: Docker
triggers:
- type: ConfigChange
- imageChange: {}
type: ImageChange
- apiVersion: v1
kind: DeploymentConfig
metadata:
name: ${APPLICATION_NAME}
spec:
selector:
name: ${APPLICATION_NAME}
replicas: 1
template:
metadata:
labels:
name: ${APPLICATION_NAME}
spec:
containers:
- image: ${APPLICATION_NAME}
imagePullPolicy: Always
name: ${APPLICATION_NAME}
ports:
- containerPort: 8065
env:
- name: DRIVER_NAME
value: mysql
- name: DATABASE_SERVICE_NAME
value: ${DATABASE_SERVICE_NAME}
- name: MYSQL_USER
value: ${MYSQL_USER}
- name: MYSQL_PASSWORD
value: ${MYSQL_PASSWORD}
- name: MYSQL_DATABASE
value: ${MYSQL_DATABASE}
triggers:
- imageChangeParams:
automatic: true
containerNames:
- ${APPLICATION_NAME}
from:
kind: ImageStreamTag
name: ${APPLICATION_NAME}:latest
type: ImageChange
- type: ConfigChange
- apiVersion: v1
kind: ImageStream
metadata:
name: ${APPLICATION_NAME}
- apiVersion: v1
kind: ImageStream
metadata:
name: centos
spec:
dockerImageRepository: docker.io/centos
- apiVersion: v1
kind: Service
metadata:
name: ${APPLICATION_NAME}
spec:
ports:
- name: 8065-tcp
port: 8065
protocol: TCP
targetPort: 8065
selector:
deploymentconfig: ${APPLICATION_NAME}
- apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
name: ${DATABASE_SERVICE_NAME}
spec:
portalIP: ""
ports:
- name: mysql
nodePort: 0
port: 3306
protocol: TCP
targetPort: 3306
selector:
name: ${DATABASE_SERVICE_NAME}
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${DATABASE_SERVICE_NAME}
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: ${VOLUME_CAPACITY}
- apiVersion: v1
kind: DeploymentConfig
metadata:
creationTimestamp: null
name: ${DATABASE_SERVICE_NAME}
spec:
replicas: 1
selector:
name: ${DATABASE_SERVICE_NAME}
strategy:
resources: {}
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
name: ${DATABASE_SERVICE_NAME}
spec:
containers:
- capabilities: {}
env:
- name: MYSQL_USER
value: ${MYSQL_USER}
- name: MYSQL_PASSWORD
value: ${MYSQL_PASSWORD}
- name: MYSQL_DATABASE
value: ${MYSQL_DATABASE}
image: mysql
imagePullPolicy: IfNotPresent
name: mysql
ports:
- containerPort: 3306
protocol: TCP
resources: {}
securityContext:
capabilities: {}
privileged: false
terminationMessagePath: /dev/termination-log
volumeMounts:
- mountPath: /var/lib/mysql/data
name: ${DATABASE_SERVICE_NAME}-data
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
- name: ${DATABASE_SERVICE_NAME}-data
emptyDir: {}
triggers:
- imageChangeParams:
automatic: true
containerNames:
- mysql
from:
kind: ImageStreamTag
name: mysql:5.6
namespace: openshift
lastTriggeredImage: ""
type: ImageChange
- type: ConfigChange
status: {}
parameters:
- name: APPLICATION_NAME
required: true
value: mattermost
- description: Database service name
name: DATABASE_SERVICE_NAME
required: true
value: mysql
- description: Username for MySQL user that will be used for accessing the database
from: user[A-Z0-9]{3}
generate: expression
name: MYSQL_USER
required: true
- description: Password for the MySQL user
from: '[a-zA-Z0-9]{16}'
generate: expression
name: MYSQL_PASSWORD
required: true
- description: Database name
name: MYSQL_DATABASE
required: true
value: mattermost
- description: Volume space available for data, e.g. 512Mi, 2Gi
name: VOLUME_CAPACITY
required: true
value: 1Gi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment