kind: Template apiVersion: template.openshift.io/v1 metadata: annotations: openshift.io/display-name: MongoDB (Ephemeral) openshift.io/documentation-url: 'https://docs.okd.io/latest/using_images/db_images/mongodb.html' tags: 'database,mongodb' description: >- MongoDB database service, without persistent storage. For more information about using this template, including OpenShift considerations, see documentation in the upstream repository: https://github.com/sclorg/mongodb-container. WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing 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/support-url: 'https://access.redhat.com' iconClass: icon-mongodb openshift.io/provider-display-name: 'Red Hat, Inc.' name: mongodb-ephemeral labels: samples.operator.openshift.io/managed: 'false' 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 documentation in the upstream repository: https://github.com/sclorg/mongodb-container. 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}' labels: app.kubernetes.io/name: mongodb app.kubernetes.io/part-of: workshop spec: replicas: 1 selector: name: '${DATABASE_SERVICE_NAME}' strategy: type: Recreate template: metadata: labels: name: '${DATABASE_SERVICE_NAME}' spec: containers: - resources: limits: memory: '${MEMORY_LIMIT}' 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 terminationMessagePath: /dev/termination-log name: mongodb livenessProbe: initialDelaySeconds: 30 tcpSocket: port: 27017 timeoutSeconds: 1 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}' securityContext: capabilities: {} privileged: false ports: - containerPort: 27017 protocol: TCP imagePullPolicy: IfNotPresent volumeMounts: - mountPath: /var/lib/mongodb/data name: '${DATABASE_SERVICE_NAME}-data' capabilities: {} image: ' ' 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. generate: expression from: 'user[A-Z0-9]{3}' required: true - name: MONGODB_PASSWORD displayName: MongoDB Connection Password description: Password for the MongoDB connection user. generate: expression from: '[a-zA-Z0-9]{16}' 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 (3.6 or latest). value: '3.6' required: true labels: template: mongodb-ephemeral-template