mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 13:07:17 -04:00
This would help, but not fix #5120. It's now supports the running of multiple pods for scaling, without the issue that the session will not known on the backend pod.
354 lines
9.9 KiB
YAML
354 lines
9.9 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: Template
|
|
labels:
|
|
template: wekan-mongodb-persistent-template
|
|
message: |-
|
|
The following service(s) have been created in your project: ${WEKAN_SERVICE_NAME}.
|
|
metadata:
|
|
annotations:
|
|
description: |-
|
|
This template provides a Wekan instance backed by a standalone MongoDB
|
|
server. The database is stored on persistent storage.
|
|
iconClass: pficon-trend-up
|
|
openshift.io/display-name: Wekan backed by MongoDB
|
|
openshift.io/documentation-url: https://wekan.github.io/
|
|
openshift.io/long-description: This template provides a Wekan platform
|
|
with a MongoDB database created. The database is stored on persistent storage. The
|
|
database name, username, and password are chosen via parameters when provisioning
|
|
this service.
|
|
tags: wekan,kanban,mongodb
|
|
name: wekan-mongodb-persistent
|
|
objects:
|
|
- apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: ${WEKAN_SERVICE_NAME}
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
- apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
annotations:
|
|
template.openshift.io/expose-admin_password: "{.data['database-admin-password']}"
|
|
template.openshift.io/expose-database_name: "{.data['database-name']}"
|
|
template.openshift.io/expose-password: "{.data['database-password']}"
|
|
template.openshift.io/expose-username: "{.data['database-user']}"
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
stringData:
|
|
database-admin-password: "${MONGODB_ADMIN_PASSWORD}"
|
|
database-name: "${MONGODB_DATABASE}"
|
|
database-password: "${MONGODB_PASSWORD}"
|
|
database-user: "${MONGODB_USER}"
|
|
- apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
annotations:
|
|
template.openshift.io/expose-uri: http://{.spec.clusterIP}:{.spec.ports[?(.name=="wekan")].port}
|
|
name: "${WEKAN_SERVICE_NAME}"
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
ports:
|
|
- name: wekan
|
|
nodePort: 0
|
|
port: 8080
|
|
protocol: TCP
|
|
targetPort: 8080
|
|
selector:
|
|
name: "${WEKAN_SERVICE_NAME}"
|
|
sessionAffinity: ClientIP
|
|
type: ClusterIP
|
|
- apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
annotations:
|
|
template.openshift.io/expose-uri: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port}
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
ports:
|
|
- name: mongo
|
|
nodePort: 0
|
|
port: 27017
|
|
protocol: TCP
|
|
targetPort: 27017
|
|
selector:
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
sessionAffinity: None
|
|
type: ClusterIP
|
|
- apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: "${VOLUME_CAPACITY}"
|
|
- apiVersion: image.openshift.io/v1
|
|
kind: ImageStream
|
|
metadata:
|
|
labels:
|
|
app: wekan
|
|
name: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
tags:
|
|
- from:
|
|
kind: DockerImage
|
|
name: ${WEKAN_IMAGE}
|
|
generation: 2
|
|
name: latest
|
|
referencePolicy:
|
|
type: Source
|
|
- apiVersion: v1
|
|
kind: DeploymentConfig
|
|
metadata:
|
|
name: ${WEKAN_SERVICE_NAME}
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
app: wekan
|
|
deploymentconfig: ${WEKAN_SERVICE_NAME}
|
|
strategy:
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
deploymentconfig: ${WEKAN_SERVICE_NAME}
|
|
template: wekan
|
|
name: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
containers:
|
|
- name: ${WEKAN_SERVICE_NAME}
|
|
image: ${WEKAN_IMAGE}
|
|
imagePullPolicy: Always
|
|
env:
|
|
- name: MONGO_URL
|
|
value: mongodb://${MONGODB_USER}:${MONGODB_PASSWORD}@${DATABASE_SERVICE_NAME}:27017/${MONGODB_DATABASE}
|
|
- name: ROOT_URL
|
|
value: https://${FQDN}/
|
|
- name: PORT
|
|
value: "8080"
|
|
ports:
|
|
- containerPort: 8080
|
|
name: ${WEKAN_SERVICE_NAME}
|
|
protocol: TCP
|
|
terminationMessagePath: /dev/termination-log
|
|
livenessProbe:
|
|
failureThreshold: 30
|
|
httpGet:
|
|
path: /
|
|
port: 8080
|
|
initialDelaySeconds: 240
|
|
timeoutSeconds: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /
|
|
port: 8080
|
|
initialDelaySeconds: 3
|
|
timeoutSeconds: 3
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|
|
serviceAccount: ${WEKAN_SERVICE_NAME}
|
|
serviceAccountName: ${WEKAN_SERVICE_NAME}
|
|
terminationGracePeriodSeconds: 30
|
|
triggers:
|
|
- type: ConfigChange
|
|
- type: ImageChange
|
|
imageChangeParams:
|
|
automatic: true
|
|
containerNames:
|
|
- ${WEKAN_SERVICE_NAME}
|
|
from:
|
|
kind: ImageStreamTag
|
|
name: ${WEKAN_SERVICE_NAME}:latest
|
|
lastTriggeredImage: ""
|
|
- apiVersion: v1
|
|
kind: DeploymentConfig
|
|
metadata:
|
|
annotations:
|
|
template.alpha.openshift.io/wait-for-ready: 'true'
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
labels:
|
|
app: wekan
|
|
service: ${WEKAN_SERVICE_NAME}
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
strategy:
|
|
type: Recreate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
spec:
|
|
containers:
|
|
- capabilities: {}
|
|
env:
|
|
- name: MONGODB_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: database-user
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
- name: MONGODB_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: database-password
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
- name: MONGODB_ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: database-admin-password
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
- name: MONGODB_DATABASE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
key: database-name
|
|
name: "${DATABASE_SERVICE_NAME}"
|
|
image: " "
|
|
imagePullPolicy: IfNotPresent
|
|
livenessProbe:
|
|
initialDelaySeconds: 30
|
|
tcpSocket:
|
|
port: 27017
|
|
timeoutSeconds: 1
|
|
name: mongodb
|
|
ports:
|
|
- containerPort: 27017
|
|
protocol: TCP
|
|
readinessProbe:
|
|
exec:
|
|
command:
|
|
- "/bin/sh"
|
|
- "-i"
|
|
- "-c"
|
|
- mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USER -p $MONGODB_PASSWORD
|
|
--eval="quit()"
|
|
initialDelaySeconds: 3
|
|
timeoutSeconds: 1
|
|
resources:
|
|
limits:
|
|
memory: "${MEMORY_LIMIT}"
|
|
securityContext:
|
|
capabilities: {}
|
|
privileged: false
|
|
terminationMessagePath: "/dev/termination-log"
|
|
volumeMounts:
|
|
- mountPath: "/var/lib/mongodb/data"
|
|
name: "${DATABASE_SERVICE_NAME}-data"
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|
|
volumes:
|
|
- name: "${DATABASE_SERVICE_NAME}-data"
|
|
persistentVolumeClaim:
|
|
claimName: "${DATABASE_SERVICE_NAME}"
|
|
triggers:
|
|
- imageChangeParams:
|
|
automatic: true
|
|
containerNames:
|
|
- mongodb
|
|
from:
|
|
kind: ImageStreamTag
|
|
name: mongodb:${MONGODB_VERSION}
|
|
namespace: "openshift"
|
|
lastTriggeredImage: ''
|
|
type: ImageChange
|
|
- type: ConfigChange
|
|
- apiVersion: route.openshift.io/v1
|
|
kind: Route
|
|
metadata:
|
|
labels:
|
|
app: wekan
|
|
service: wekan
|
|
template: wekan-mongodb-persistent-template
|
|
name: wekan
|
|
namespace: ${NAMESPACE}
|
|
spec:
|
|
host: ${FQDN}
|
|
port:
|
|
targetPort: wekan
|
|
tls:
|
|
termination: edge
|
|
to:
|
|
kind: Service
|
|
name: wekan
|
|
weight: 100
|
|
wildcardPolicy: None
|
|
parameters:
|
|
- description: The Fully Qualified Hostname (FQDN) of the application
|
|
displayName: FQDN
|
|
name: FQDN
|
|
required: true
|
|
- description: Maximum amount of memory the container can use.
|
|
displayName: Memory Limit
|
|
name: MEMORY_LIMIT
|
|
required: true
|
|
value: 512Mi
|
|
- description: The OpenShift Namespace where the ImageStream resides.
|
|
displayName: Namespace
|
|
name: NAMESPACE
|
|
- description: The name of the OpenShift Service exposed for the database.
|
|
displayName: Database Service Name
|
|
name: DATABASE_SERVICE_NAME
|
|
required: true
|
|
value: wekan-mongodb
|
|
- description: Username for MongoDB user that will be used for accessing the database.
|
|
displayName: MongoDB Connection Username
|
|
from: user[A-Z0-9]{3}
|
|
generate: expression
|
|
name: MONGODB_USER
|
|
required: true
|
|
- description: Password for the MongoDB connection user.
|
|
displayName: MongoDB Connection Password
|
|
from: "[a-zA-Z0-9]{16}"
|
|
generate: expression
|
|
name: MONGODB_PASSWORD
|
|
required: true
|
|
- description: Name of the MongoDB database accessed.
|
|
displayName: MongoDB Database Name
|
|
name: MONGODB_DATABASE
|
|
required: true
|
|
value: wekan
|
|
- description: Password for the database admin user.
|
|
displayName: MongoDB Admin Password
|
|
from: "[a-zA-Z0-9]{16}"
|
|
generate: expression
|
|
name: MONGODB_ADMIN_PASSWORD
|
|
required: true
|
|
- description: Volume space available for data, e.g. 512Mi, 2Gi.
|
|
displayName: Volume Capacity
|
|
name: VOLUME_CAPACITY
|
|
required: true
|
|
value: 1Gi
|
|
- description: Version of MongoDB image to be used (3.6, 4.0.10).
|
|
displayName: Version of MongoDB Image
|
|
name: MONGODB_VERSION
|
|
required: true
|
|
value: '3.6'
|
|
- name: WEKAN_SERVICE_NAME
|
|
displayName: Wekan Service Name
|
|
value: wekan
|
|
required: true
|
|
- name: WEKAN_IMAGE
|
|
displayName: Wekan Docker Image
|
|
value: quay.io/wekan/wekan
|
|
description: The metabase docker image to use
|
|
required: true
|