123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- ---
- 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
|