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