Skip to content

Instantly share code, notes, and snippets.

@welshstew
Last active December 3, 2020 13:18
Show Gist options
  • Select an option

  • Save welshstew/d36392ae47f6e1a11e938edf8855b9d6 to your computer and use it in GitHub Desktop.

Select an option

Save welshstew/d36392ae47f6e1a11e938edf8855b9d6 to your computer and use it in GitHub Desktop.
Some supporting YAML for a presentation
apiVersion: template.openshift.io/v1
kind: Template
labels:
template: nodejs-mongo-deployment
message: |-
The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.
For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.
metadata:
annotations:
description: An example Node.js application with a MongoDB database. For more
information about using this template, including OpenShift considerations, see
https://github.com/sclorg/nodejs-ex/blob/master/README.md.
iconClass: icon-nodejs
openshift.io/display-name: Node.js + MongoDB as Deployments
openshift.io/provider-display-name: Stu
tags: quickstart,nodejs
name: nodejs-mongo-deployment
objects:
- apiVersion: v1
kind: Secret
metadata:
labels:
template: ${NAME}
name: ${NAME}
stringData:
database-admin-password: ${DATABASE_ADMIN_PASSWORD}
database-password: ${DATABASE_PASSWORD}
database-user: ${DATABASE_USER}
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes and load balances the application pods
service.alpha.openshift.io/dependencies: '[{"name": "${DATABASE_SERVICE_NAME}",
"kind": "Service"}]'
labels:
template: ${NAME}
name: ${NAME}
spec:
ports:
- name: web
port: 8080
targetPort: 8080
selector:
name: ${NAME}
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
template: ${NAME}
name: ${NAME}
spec:
host: ${APPLICATION_DOMAIN}
to:
kind: Service
name: ${NAME}
- apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
description: Defines how to deploy the application server
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: ${NAME}
name: ${NAME}
spec:
replicas: 1
selector:
matchLabels:
name: ${NAME}
strategy:
type: Recreate
template:
metadata:
labels:
name: ${NAME}
name: ${NAME}
spec:
containers:
- env:
- name: DATABASE_SERVICE_NAME
value: mongodb
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${NAME}
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${NAME}
- name: MONGODB_DATABASE
value: ${DATABASE_NAME}
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: ${NAME}
image: ${NODEJS_APP_IMAGE}
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 3
name: ${NAME}
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 3
timeoutSeconds: 3
resources:
limits:
memory: 512Mi
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
template: ${NAME}
name: ${DATABASE_SERVICE_NAME}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: ${VOLUME_CAPACITY}
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes the database server
labels:
template: ${NAME}
name: ${DATABASE_SERVICE_NAME}
spec:
ports:
- name: mongodb
port: 27017
targetPort: 27017
selector:
name: ${DATABASE_SERVICE_NAME}
- apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
description: Defines how to deploy the database
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: ${NAME}
name: ${DATABASE_SERVICE_NAME}
spec:
replicas: 1
selector:
matchLabels:
name: ${DATABASE_SERVICE_NAME}
strategy:
type: Recreate
template:
metadata:
labels:
name: ${DATABASE_SERVICE_NAME}
name: ${DATABASE_SERVICE_NAME}
spec:
containers:
- env:
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${NAME}
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${NAME}
- name: MONGODB_DATABASE
value: ${DATABASE_NAME}
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: ${NAME}
image: ${MONGODB_IMAGE}
livenessProbe:
initialDelaySeconds: 30
tcpSocket:
port: 27017
timeoutSeconds: 1
name: mongodb
ports:
- containerPort: 27017
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_MONGODB_LIMIT}
volumeMounts:
- mountPath: /var/lib/mongodb/data
name: ${DATABASE_SERVICE_NAME}-data
volumes:
- name: ${DATABASE_SERVICE_NAME}-data
persistentVolumeClaim:
claimName: ${DATABASE_SERVICE_NAME}
parameters:
- description: The name assigned to all of the frontend objects defined in this template.
displayName: Name
name: NAME
required: true
value: nodejs-mongo-deployment
- description: NodeJS App image to be used.
displayName: NodeJS App image to be used.
name: NODEJS_APP_IMAGE
required: true
value: "quay.io/swinches/nodejs-mongo-persistent:1.1"
- description: MongoDB image to be used (3.6 or latest).
displayName: MongoDB Image
name: MONGODB_IMAGE
required: true
value: "registry.redhat.io/rhscl/mongodb-36-rhel7:1"
- description: Maximum amount of memory the Node.js container can use.
displayName: Memory Limit
name: MEMORY_LIMIT
required: true
value: 512Mi
- description: Maximum amount of memory the MongoDB container can use.
displayName: Memory Limit (MongoDB)
name: MEMORY_MONGODB_LIMIT
required: true
value: 512Mi
- description: Volume space available for data, e.g. 512Mi, 2Gi
displayName: Volume Capacity
name: VOLUME_CAPACITY
required: true
value: 1Gi
- description: The exposed hostname that will route to the Node.js service, if left
blank a value will be defaulted.
displayName: Application Hostname
name: APPLICATION_DOMAIN
- 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 Username
from: user[A-Z0-9]{3}
generate: expression
name: DATABASE_USER
- description: Password for the MongoDB user.
displayName: MongoDB Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: DATABASE_PASSWORD
- displayName: Database Name
name: DATABASE_NAME
required: true
value: sampledb
- description: Password for the database admin user.
displayName: Database Administrator Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: DATABASE_ADMIN_PASSWORD
apiVersion: v1
items:
- apiVersion: v1
kind: Secret
metadata:
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
stringData:
database-admin-password: dyDtHUQh04JDhpkQ
database-password: hkot3TUP62lkwgLn
database-user: user1CR
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes and load balances the application pods
service.alpha.openshift.io/dependencies: '[{"name": "mongodb", "kind": "Service"}]'
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
ports:
- name: web
port: 8080
targetPort: 8080
selector:
name: nodejs-mongo-persistent
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
host: ""
to:
kind: Service
name: nodejs-mongo-persistent
- apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
description: Defines how to deploy the application server
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
replicas: 1
selector:
matchLabels:
name: nodejs-mongo-persistent
strategy:
type: Recreate
template:
metadata:
labels:
name: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
containers:
- env:
- name: DATABASE_SERVICE_NAME
value: mongodb
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: nodejs-mongo-persistent
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: nodejs-mongo-persistent
- name: MONGODB_DATABASE
value: sampledb
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: nodejs-mongo-persistent
image: quay.io/swinches/nodejs-mongo-persistent:1.0
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 3
name: nodejs-mongo-persistent
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 3
timeoutSeconds: 3
resources:
limits:
memory: 512Mi
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes the database server
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
ports:
- name: mongodb
port: 27017
targetPort: 27017
selector:
name: mongodb
- apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
description: Defines how to deploy the database
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
replicas: 1
selector:
matchLabels:
name: mongodb
strategy:
type: Recreate
template:
metadata:
labels:
name: mongodb
name: mongodb
spec:
containers:
- env:
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: nodejs-mongo-persistent
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: nodejs-mongo-persistent
- name: MONGODB_DATABASE
value: sampledb
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: nodejs-mongo-persistent
image: registry.redhat.io/rhscl/mongodb-36-rhel7:1
livenessProbe:
initialDelaySeconds: 30
tcpSocket:
port: 27017
timeoutSeconds: 1
name: mongodb
ports:
- containerPort: 27017
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: 512Mi
volumeMounts:
- mountPath: /var/lib/mongodb/data
name: mongodb-data
volumes:
- name: mongodb-data
persistentVolumeClaim:
claimName: mongodb
kind: List
metadata: {}
apiVersion: v1
items:
- apiVersion: v1
kind: Secret
metadata:
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
stringData:
database-admin-password: dyDtHUQh04JDhpkQ
database-password: hkot3TUP62lkwgLn
database-user: user1CR
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes and load balances the application pods
service.alpha.openshift.io/dependencies: '[{"name": "mongodb", "kind": "Service"}]'
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
ports:
- name: web
port: 8080
targetPort: 8080
selector:
name: nodejs-mongo-persistent
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
host: ""
to:
kind: Service
name: nodejs-mongo-persistent
- apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
annotations:
description: Keeps track of changes in the application image
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
- apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
annotations:
description: Defines how to build the application
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
output:
to:
kind: ImageStreamTag
name: nodejs-mongo-persistent:latest
postCommit:
script: npm test
source:
contextDir: ""
git:
ref: ""
uri: https://github.com/sclorg/nodejs-ex.git
type: Git
strategy:
sourceStrategy:
env:
- name: NPM_MIRROR
value: ""
from:
kind: ImageStreamTag
name: nodejs:12
namespace: openshift
type: Source
triggers:
- type: ImageChange
- type: ConfigChange
- github:
secret: 0ntSDEEDuJ8Ye3wAMn0uscIEnBr6D5TCPefugXBL
type: GitHub
- generic:
secret: NUOJD1QTx3rx4iCgvfuyk2r7DICGCWfwYhX65XQA
type: Generic
- apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
annotations:
description: Defines how to deploy the application server
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
replicas: 1
selector:
name: nodejs-mongo-persistent
strategy:
type: Recreate
template:
metadata:
labels:
name: nodejs-mongo-persistent
name: nodejs-mongo-persistent
spec:
containers:
- env:
- name: DATABASE_SERVICE_NAME
value: mongodb
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: nodejs-mongo-persistent
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: nodejs-mongo-persistent
- name: MONGODB_DATABASE
value: sampledb
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: nodejs-mongo-persistent
image: ' '
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 3
name: nodejs-mongo-persistent
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 3
timeoutSeconds: 3
resources:
limits:
memory: 512Mi
triggers:
- imageChangeParams:
automatic: true
containerNames:
- nodejs-mongo-persistent
from:
kind: ImageStreamTag
name: nodejs-mongo-persistent:latest
type: ImageChange
- type: ConfigChange
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes the database server
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
ports:
- name: mongodb
port: 27017
targetPort: 27017
selector:
name: mongodb
- apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
annotations:
description: Defines how to deploy the database
template.alpha.openshift.io/wait-for-ready: "true"
labels:
template: nodejs-mongo-persistent
name: mongodb
spec:
replicas: 1
selector:
name: mongodb
strategy:
type: Recreate
template:
metadata:
labels:
name: mongodb
name: mongodb
spec:
containers:
- env:
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: nodejs-mongo-persistent
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: nodejs-mongo-persistent
- name: MONGODB_DATABASE
value: sampledb
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: nodejs-mongo-persistent
image: ' '
livenessProbe:
initialDelaySeconds: 30
tcpSocket:
port: 27017
timeoutSeconds: 1
name: mongodb
ports:
- containerPort: 27017
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: 512Mi
volumeMounts:
- mountPath: /var/lib/mongodb/data
name: mongodb-data
volumes:
- name: mongodb-data
persistentVolumeClaim:
claimName: mongodb
triggers:
- imageChangeParams:
automatic: true
containerNames:
- mongodb
from:
kind: ImageStreamTag
name: mongodb:3.6
namespace: openshift
type: ImageChange
- type: ConfigChange
kind: List
metadata: {}
apiVersion: template.openshift.io/v1
kind: Template
labels:
template: nodejs-mongo-persistent
message: |-
The following service(s) have been created in your project: ${NAME}, ${DATABASE_SERVICE_NAME}.
For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/nodejs-ex/blob/master/README.md.
metadata:
annotations:
description: An example Node.js application with a MongoDB database. For more
information about using this template, including OpenShift considerations, see
https://github.com/sclorg/nodejs-ex/blob/master/README.md.
iconClass: icon-nodejs
openshift.io/display-name: Node.js + MongoDB
openshift.io/documentation-url: https://github.com/sclorg/nodejs-ex
openshift.io/long-description: This template defines resources needed to develop
a NodeJS application, including a build configuration, application deployment
configuration, and database deployment configuration.
openshift.io/provider-display-name: Red Hat, Inc.
openshift.io/support-url: https://access.redhat.com
samples.operator.openshift.io/version: 4.5.13
tags: quickstart,nodejs
template.openshift.io/bindable: "false"
creationTimestamp: "2020-09-14T21:14:08Z"
labels:
samples.operator.openshift.io/managed: "true"
managedFields:
- apiVersion: template.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:labels:
.: {}
f:template: {}
f:message: {}
f:metadata:
f:annotations:
.: {}
f:description: {}
f:iconClass: {}
f:openshift.io/display-name: {}
f:openshift.io/documentation-url: {}
f:openshift.io/long-description: {}
f:openshift.io/provider-display-name: {}
f:openshift.io/support-url: {}
f:samples.operator.openshift.io/version: {}
f:tags: {}
f:template.openshift.io/bindable: {}
f:labels:
.: {}
f:samples.operator.openshift.io/managed: {}
f:objects: {}
f:parameters: {}
manager: cluster-samples-operator
operation: Update
time: "2020-10-12T09:32:55Z"
name: nodejs-mongo-persistent
namespace: openshift
resourceVersion: "13364280"
selfLink: /apis/template.openshift.io/v1/namespaces/openshift/templates/nodejs-mongo-persistent
uid: d2ba425d-da6d-429e-ab86-fb56902581a0
objects:
- apiVersion: v1
kind: Secret
metadata:
name: ${NAME}
stringData:
database-admin-password: ${DATABASE_ADMIN_PASSWORD}
database-password: ${DATABASE_PASSWORD}
database-user: ${DATABASE_USER}
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes and load balances the application pods
service.alpha.openshift.io/dependencies: '[{"name": "${DATABASE_SERVICE_NAME}",
"kind": "Service"}]'
name: ${NAME}
spec:
ports:
- name: web
port: 8080
targetPort: 8080
selector:
name: ${NAME}
- apiVersion: v1
kind: Route
metadata:
name: ${NAME}
spec:
host: ${APPLICATION_DOMAIN}
to:
kind: Service
name: ${NAME}
- apiVersion: v1
kind: ImageStream
metadata:
annotations:
description: Keeps track of changes in the application image
name: ${NAME}
- apiVersion: v1
kind: BuildConfig
metadata:
annotations:
description: Defines how to build the application
template.alpha.openshift.io/wait-for-ready: "true"
name: ${NAME}
spec:
output:
to:
kind: ImageStreamTag
name: ${NAME}:latest
postCommit:
script: npm test
source:
contextDir: ${CONTEXT_DIR}
git:
ref: ${SOURCE_REPOSITORY_REF}
uri: ${SOURCE_REPOSITORY_URL}
type: Git
strategy:
sourceStrategy:
env:
- name: NPM_MIRROR
value: ${NPM_MIRROR}
from:
kind: ImageStreamTag
name: nodejs:${NODEJS_VERSION}
namespace: ${NAMESPACE}
type: Source
triggers:
- type: ImageChange
- type: ConfigChange
- github:
secret: ${GITHUB_WEBHOOK_SECRET}
type: GitHub
- generic:
secret: ${GENERIC_WEBHOOK_SECRET}
type: Generic
- apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
description: Defines how to deploy the application server
template.alpha.openshift.io/wait-for-ready: "true"
name: ${NAME}
spec:
replicas: 1
selector:
name: ${NAME}
strategy:
type: Recreate
template:
metadata:
labels:
name: ${NAME}
name: ${NAME}
spec:
containers:
- env:
- name: DATABASE_SERVICE_NAME
value: ${DATABASE_SERVICE_NAME}
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${NAME}
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${NAME}
- name: MONGODB_DATABASE
value: ${DATABASE_NAME}
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: ${NAME}
image: ' '
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
timeoutSeconds: 3
name: nodejs-mongo-persistent
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 3
timeoutSeconds: 3
resources:
limits:
memory: ${MEMORY_LIMIT}
triggers:
- imageChangeParams:
automatic: true
containerNames:
- nodejs-mongo-persistent
from:
kind: ImageStreamTag
name: ${NAME}:latest
type: ImageChange
- type: ConfigChange
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ${DATABASE_SERVICE_NAME}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: ${VOLUME_CAPACITY}
- apiVersion: v1
kind: Service
metadata:
annotations:
description: Exposes the database server
name: ${DATABASE_SERVICE_NAME}
spec:
ports:
- name: mongodb
port: 27017
targetPort: 27017
selector:
name: ${DATABASE_SERVICE_NAME}
- apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
description: Defines how to deploy the database
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}
name: ${DATABASE_SERVICE_NAME}
spec:
containers:
- env:
- name: MONGODB_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${NAME}
- name: MONGODB_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${NAME}
- name: MONGODB_DATABASE
value: ${DATABASE_NAME}
- name: MONGODB_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: database-admin-password
name: ${NAME}
image: ' '
livenessProbe:
initialDelaySeconds: 30
tcpSocket:
port: 27017
timeoutSeconds: 1
name: mongodb
ports:
- containerPort: 27017
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_MONGODB_LIMIT}
volumeMounts:
- mountPath: /var/lib/mongodb/data
name: ${DATABASE_SERVICE_NAME}-data
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}
type: ImageChange
- type: ConfigChange
parameters:
- description: The name assigned to all of the frontend objects defined in this template.
displayName: Name
name: NAME
required: true
value: nodejs-mongo-persistent
- description: The OpenShift Namespace where the ImageStream resides.
displayName: Namespace
name: NAMESPACE
required: true
value: openshift
- description: Version of NodeJS image to be used (10, 12, or latest).
displayName: Version of NodeJS Image
name: NODEJS_VERSION
required: true
value: "12"
- description: Version of MongoDB image to be used (3.6 or latest).
displayName: Version of MongoDB Image
name: MONGODB_VERSION
required: true
value: "3.6"
- description: Maximum amount of memory the Node.js container can use.
displayName: Memory Limit
name: MEMORY_LIMIT
required: true
value: 512Mi
- description: Maximum amount of memory the MongoDB container can use.
displayName: Memory Limit (MongoDB)
name: MEMORY_MONGODB_LIMIT
required: true
value: 512Mi
- description: Volume space available for data, e.g. 512Mi, 2Gi
displayName: Volume Capacity
name: VOLUME_CAPACITY
required: true
value: 1Gi
- description: The URL of the repository with your application source code.
displayName: Git Repository URL
name: SOURCE_REPOSITORY_URL
required: true
value: https://github.com/sclorg/nodejs-ex.git
- description: Set this to a branch name, tag or other ref of your repository if you
are not using the default branch.
displayName: Git Reference
name: SOURCE_REPOSITORY_REF
- description: Set this to the relative path to your project if it is not in the root
of your repository.
displayName: Context Directory
name: CONTEXT_DIR
- description: The exposed hostname that will route to the Node.js service, if left
blank a value will be defaulted.
displayName: Application Hostname
name: APPLICATION_DOMAIN
- description: Github trigger secret. A difficult to guess string encoded as part
of the webhook URL. Not encrypted.
displayName: GitHub Webhook Secret
from: '[a-zA-Z0-9]{40}'
generate: expression
name: GITHUB_WEBHOOK_SECRET
- description: A secret string used to configure the Generic webhook.
displayName: Generic Webhook Secret
from: '[a-zA-Z0-9]{40}'
generate: expression
name: GENERIC_WEBHOOK_SECRET
- 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 Username
from: user[A-Z0-9]{3}
generate: expression
name: DATABASE_USER
- description: Password for the MongoDB user.
displayName: MongoDB Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: DATABASE_PASSWORD
- displayName: Database Name
name: DATABASE_NAME
required: true
value: sampledb
- description: Password for the database admin user.
displayName: Database Administrator Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: DATABASE_ADMIN_PASSWORD
- description: The custom NPM mirror URL
displayName: Custom NPM Mirror URL
name: NPM_MIRROR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment