Created
March 29, 2018 00:16
-
-
Save jasonmimick/4c5ba0dc177cfda5d036239168fca2bd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: v1 | |
kind: Template | |
labels: | |
template: mongodb-openshift-dev-preview-template | |
message: |- | |
This is the MongoDB Enterprise Openshift Developer Preview. | |
Sweet! | |
metadata: | |
annotations: | |
description: |- | |
Provisions MongoDB replica set and agent-only pods which are managed by MongoDB Ops Manager. | |
NOTE: Sharded clusters are not supported yet. Security is not automatically enabled. | |
iconClass: icon-mongodb | |
openshift.io/display-name: MongoDB Enterprise | |
openshift.io/documentation-url: https://docs.openshift.org/latest/using_images/db_images/mongodb.html | |
openshift.io/long-description: This template provisions a MongoDB replica | |
set which is managed by an instance of MongoDB Ops Manager. | |
openshift.io/provider-display-name: MongoDB, Inc. | |
openshift.io/support-url: https://access.redhat.com | |
tags: database,mongodb | |
creationTimestamp: 2018-03-28T13:46:42Z | |
name: mongodb-openshift-dev-preview | |
namespace: openshift | |
resourceVersion: "332" | |
selfLink: /oapi/v1/namespaces/openshift/templates/mongodb-openshift-dev-preview | |
objects: | |
- apiVersion: v1 | |
kind: Secret | |
metadata: | |
name: ${CLUSTER_NAME}-secret | |
annotations: | |
template.openshift.io/expose-group-id: '{.data[''MMS_GROUP_ID'']}' | |
template.openshift.io/expose-agent-apikey: '{.data[''MMS_AGENT_APIKEY'']}' | |
template.openshift.io/expose-base-url: '{.data[''MMS_BASE_URL'']}' | |
namespace: ${NAMESPACE} | |
type: Opaque | |
state: present | |
string_data: | |
agent-apikey: ${MMS_AGENT_APIKEY} | |
group-id: ${MMS_GROUP_ID} | |
base-url: ${MMS_BASE_URL} | |
- apiVersion: v1 | |
kind: Service | |
metadata: | |
name: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
labels: | |
name: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
replSet: ${CLUSTER_NAME} | |
spec: | |
selector: | |
app: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
ports: | |
- port: ${MONGODB_PORT} | |
name: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
clusterIp: None | |
- apiVersion: "apps/v1beta1" | |
kind: StatefulSet | |
metadata: | |
name: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
namespace: ${NAMESPACE} | |
spec: | |
serviceName: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
replicas: "${NUMBER_REPLICAS}" | |
template: | |
metadata: | |
labels: | |
app: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
spec: | |
terminationGracePeriodSeconds: 10 | |
containers: | |
- name: mongodb-${MMS_PROJECT_NAME}-${CLUSTER_NAME} | |
image: centos | |
env: | |
- name: MMS_BASE_URL_INTERNAL | |
valueFrom: | |
secretKeyRef: | |
name: ${CLUSTER_NAME}-secret | |
key: base-url | |
- name: MMS_AGENT_APIKEY | |
valueFrom: | |
secretKeyRef: | |
name: ${CLUSTER_NAME}-secret | |
key: agent-apikey | |
- name: MMS_GROUP_ID | |
valueFrom: | |
secretKeyRef: | |
name: ${CLUSTER_NAME}-secret | |
key: group-id | |
- name: MMS_BOOTSTRAP_URL | |
value: "https://raw.githubusercontent.com/jasonmimick/mongodb-openshift-dev-preview/master/install-automation-agent.sh" | |
command: [ "/bin/sh", "-c" ] | |
args: [ "cd /tmp && curl -OL $(MMS_BOOTSTRAP_URL) && chmod +x install-automation-agent.sh && ./install-automation-agent.sh" ] | |
ports: | |
volumeMounts: | |
- name: "pvc" | |
mountPath: /data | |
volumeClaimTemplates: | |
- name: "pvc" | |
metadata: | |
name: "pvc" | |
spec: | |
accessModes: [ "ReadWriteOnce" ] | |
resources: | |
requests: | |
storage: ${DISK_SIZE_GB}Gi | |
parameters: | |
- description: Maximum amount of memory the container can use. | |
displayName: Memory Limit | |
name: MEMORY_LIMIT | |
required: true | |
value: 512Mi | |
- description: URL for MongoDB Ops Manager | |
name: MMS_BASE_URL | |
displayName: Ops Manager URL | |
required: true | |
value: "http://jasonsmacbook55.lan:8080" | |
- description: MongoDB Ops Manager User | |
name: MMS_USER | |
displayName: Ops Manager user | |
required: true | |
value: [email protected] | |
- description: MongoDB Ops Manager API key for user | |
name: MMS_USER_APIKEY | |
displayName: User"s Ops Manager API key | |
required: true | |
value: "01804670-3aa4-4e61-a978-0f3b427e3ed4" | |
- description: Name for Ops Manager Project | |
name: MMS_PROJECT_NAME | |
displayName: Project to create replica set in | |
required: true | |
from: user[A-Z0-9]{3} | |
generate: expression | |
- description: Ops Manager Organization ID | |
name: MMS_DEFAULT_ORGID | |
displayName: Organization for new project | |
required: true | |
value: "5aafd7af6cef470b4fa811a2" | |
- description: API Timeout | |
name: MMS_API_TIMEOUT | |
displayName: MongoDB Ops Manager API Timeout in seconds | |
required: true | |
value: "30" | |
- description: Cluster Name | |
name: CLUSTER_NAME | |
displayName: MongoDB Cluster Name | |
required: true | |
from: user[A-Z0-9]{3} | |
generate: expression | |
- description: Version of MongoDB to deploy | |
name: MONGODB_VERSION | |
displayName: MongoDB Version | |
required: true | |
value: "3.4.13" | |
- description: Path for MongoDB data files in container | |
name: MONGODB_DBPATH | |
displayName: Path for data files | |
required: true | |
value: "/data" | |
- description: Log file destination | |
name: MONGODB_LOGPATH | |
displayName: Full path and name of database logfile | |
required: true | |
value: "/data/mongodb.log" | |
- description: MongoDB port | |
name: MONGODB_PORT | |
required: true | |
displayName: Port for MongoDB to listen on | |
value: "27000" | |
- description: Size of disk | |
name: DISK_SIZE_GB | |
displayName: Size in Gb for persistent storage claim on data node | |
required: true | |
value: "5" | |
- description: Number of members in replica set | |
name: NUMBER_PODS_RS | |
displayName: Number of nodes in Replica Set | |
required: true | |
value: "3" | |
- description: Name for secret to store meta data | |
name: CLUSTER_SECRET | |
displayName: k8s secret name | |
required: true | |
value: ${CLUSTER_NAME}-secret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment