--- apiVersion: v1 kind: Template labels: template: mongodb-ephemeral-template message: |- The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}. Username: ${MONGODB_USER} Password: ${MONGODB_PASSWORD} Database Name: ${MONGODB_DATABASE} Connection URL: mongodb://${MONGODB_USER}:${MONGODB_PASSWORD}@${DATABASE_SERVICE_NAME}/${MONGODB_DATABASE} For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md. metadata: annotations: description: |- MongoDB database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mongodb-container/blob/master/3.2/README.md. WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing iconClass: icon-mongodb openshift.io/display-name: MongoDB (Ephemeral) openshift.io/documentation-url: https://docs.openshift.org/latest/using_images/db_images/mongodb.html openshift.io/long-description: This template provides a standalone MongoDB server with a database created. The database is not stored on persistent storage, so any restart of the service will result in all data being lost. The database name, username, and password are chosen via parameters when provisioning this service. openshift.io/provider-display-name: Red Hat, Inc. openshift.io/support-url: https://access.redhat.com tags: database,mongodb name: mongodb-ephemeral objects: - 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}" 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: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port} name: "${DATABASE_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: DeploymentConfig metadata: annotations: template.alpha.openshift.io/wait-for-ready: 'true' name: "${DATABASE_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: - emptyDir: medium: '' name: "${DATABASE_SERVICE_NAME}-data" triggers: - imageChangeParams: automatic: true containerNames: - mongodb from: kind: ImageStreamTag name: mongodb:${MONGODB_VERSION} namespace: "${NAMESPACE}" lastTriggeredImage: '' type: ImageChange - type: ConfigChange status: {} parameters: - name: MEMORY_LIMIT displayName: Memory Limit description: Maximum amount of memory the container can use. value: 512Mi required: true - name: NAMESPACE displayName: Namespace description: The OpenShift Namespace where the ImageStream resides. value: openshift - name: DATABASE_SERVICE_NAME displayName: Database Service Name description: The name of the OpenShift Service exposed for the database. value: mongodb required: true - name: MONGODB_USER displayName: MongoDB Connection Username description: Username for MongoDB user that will be used for accessing the database. value: username required: true - name: MONGODB_PASSWORD displayName: MongoDB Connection Password description: Password for the MongoDB connection user. value: password required: true - name: MONGODB_DATABASE displayName: MongoDB Database Name description: Name of the MongoDB database accessed. value: sampledb required: true - name: MONGODB_ADMIN_PASSWORD displayName: MongoDB Admin Password description: Password for the database admin user. generate: expression from: "[a-zA-Z0-9]{16}" required: true - name: MONGODB_VERSION displayName: Version of MongoDB Image description: Version of MongoDB image to be used (2.4, 2.6, 3.2 or latest). value: '3.2' required: true