|  | @@ -0,0 +1,341 @@
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +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 platphorm
 | 
	
		
			
				|  |  | +      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: None
 | 
	
		
			
				|  |  | +    type: ClusterIP
 | 
	
		
			
				|  |  | +  status:
 | 
	
		
			
				|  |  | +    loadBalancer: {}
 | 
	
		
			
				|  |  | +- 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
 | 
	
		
			
				|  |  | +  status:
 | 
	
		
			
				|  |  | +    loadBalancer: {}
 | 
	
		
			
				|  |  | +- 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: http://localhost
 | 
	
		
			
				|  |  | +          - 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: "${NAMESPACE}"
 | 
	
		
			
				|  |  | +        lastTriggeredImage: ''
 | 
	
		
			
				|  |  | +      type: ImageChange
 | 
	
		
			
				|  |  | +    - type: ConfigChange
 | 
	
		
			
				|  |  | +  status: {}
 | 
	
		
			
				|  |  | +parameters:
 | 
	
		
			
				|  |  | +- 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
 | 
	
		
			
				|  |  | +  value: openshift
 | 
	
		
			
				|  |  | +- description: The name of the OpenShift Service exposed for the database.
 | 
	
		
			
				|  |  | +  displayName: Database Service Name
 | 
	
		
			
				|  |  | +  name: DATABASE_SERVICE_NAME
 | 
	
		
			
				|  |  | +  required: true
 | 
	
		
			
				|  |  | +  value: 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 (2.4, 2.6, 3.2 or latest).
 | 
	
		
			
				|  |  | +  displayName: Version of MongoDB Image
 | 
	
		
			
				|  |  | +  name: MONGODB_VERSION
 | 
	
		
			
				|  |  | +  required: true
 | 
	
		
			
				|  |  | +  value: '3.2'
 | 
	
		
			
				|  |  | +- name: WEKAN_SERVICE_NAME
 | 
	
		
			
				|  |  | +  displayName: WeKan Service Name
 | 
	
		
			
				|  |  | +  value: wekan
 | 
	
		
			
				|  |  | +  required: true
 | 
	
		
			
				|  |  | +- name: WEKAN_IMAGE
 | 
	
		
			
				|  |  | +  displayName: WeKan Docker Image
 | 
	
		
			
				|  |  | +  value: quay.io/wekan/wekan:latest
 | 
	
		
			
				|  |  | +  description: The metabase docker image to use
 | 
	
		
			
				|  |  | +  required: true
 | 
	
		
			
				|  |  | +- name: WEKAN_SERVICE_NAME
 | 
	
		
			
				|  |  | +  displayName: WeKan Service Name
 | 
	
		
			
				|  |  | +  value: wekan
 | 
	
		
			
				|  |  | +  required: true
 | 
	
		
			
				|  |  | +
 |