Created
March 24, 2021 01:51
-
-
Save hguerrero/742a6f5b3d386beb5298059096c3176d 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": "template.openshift.io/v1", | |
"kind": "Template", | |
"labels": { | |
"template": "postgresql-ephemeral-template" | |
}, | |
"message": "The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.\n\n Username: ${POSTGRESQL_USER}\n Password: ${POSTGRESQL_PASSWORD}\n Database Name: ${POSTGRESQL_DATABASE}\n Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.", | |
"metadata": { | |
"annotations": { | |
"description": "PostgreSQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/.\n\nWARNING: Any data stored will be lost upon pod destruction. Only use this template for testing", | |
"iconClass": "icon-postgresql", | |
"openshift.io/display-name": "PostgreSQL (Ephemeral)", | |
"openshift.io/documentation-url": "https://docs.okd.io/latest/using_images/db_images/postgresql.html", | |
"openshift.io/long-description": "This template provides a standalone PostgreSQL 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,postgresql" | |
}, | |
"name": "postgresql-ephemeral" | |
}, | |
"objects": [ | |
{ | |
"apiVersion": "v1", | |
"kind": "Secret", | |
"metadata": { | |
"annotations": { | |
"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-name": "${POSTGRESQL_DATABASE}", | |
"database-password": "${POSTGRESQL_PASSWORD}", | |
"database-user": "${POSTGRESQL_USER}" | |
} | |
}, | |
{ | |
"apiVersion": "v1", | |
"kind": "Service", | |
"metadata": { | |
"annotations": { | |
"template.openshift.io/expose-uri": "postgres://{.spec.clusterIP}:{.spec.ports[?(.name==\"postgresql\")].port}" | |
}, | |
"name": "${DATABASE_SERVICE_NAME}" | |
}, | |
"spec": { | |
"ports": [ | |
{ | |
"name": "postgresql", | |
"nodePort": 0, | |
"port": 5432, | |
"protocol": "TCP", | |
"targetPort": 5432 | |
} | |
], | |
"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": "POSTGRESQL_USER", | |
"valueFrom": { | |
"secretKeyRef": { | |
"key": "database-user", | |
"name": "${DATABASE_SERVICE_NAME}" | |
} | |
} | |
}, | |
{ | |
"name": "POSTGRESQL_PASSWORD", | |
"valueFrom": { | |
"secretKeyRef": { | |
"key": "database-password", | |
"name": "${DATABASE_SERVICE_NAME}" | |
} | |
} | |
}, | |
{ | |
"name": "POSTGRESQL_DATABASE", | |
"valueFrom": { | |
"secretKeyRef": { | |
"key": "database-name", | |
"name": "${DATABASE_SERVICE_NAME}" | |
} | |
} | |
} | |
], | |
"image": " ", | |
"imagePullPolicy": "IfNotPresent", | |
"livenessProbe": { | |
"exec": { | |
"command": [ | |
"/usr/libexec/check-container", | |
"--live" | |
] | |
}, | |
"initialDelaySeconds": 120, | |
"timeoutSeconds": 10 | |
}, | |
"name": "postgresql", | |
"ports": [ | |
{ | |
"containerPort": 5432, | |
"protocol": "TCP" | |
} | |
], | |
"readinessProbe": { | |
"exec": { | |
"command": [ | |
"/usr/libexec/check-container" | |
] | |
}, | |
"initialDelaySeconds": 5, | |
"timeoutSeconds": 1 | |
}, | |
"resources": { | |
"limits": { | |
"memory": "${MEMORY_LIMIT}" | |
} | |
}, | |
"securityContext": { | |
"capabilities": {}, | |
"privileged": false | |
}, | |
"terminationMessagePath": "/dev/termination-log", | |
"volumeMounts": [ | |
{ | |
"mountPath": "/var/lib/pgsql/data", | |
"name": "${DATABASE_SERVICE_NAME}-data" | |
} | |
] | |
} | |
], | |
"dnsPolicy": "ClusterFirst", | |
"restartPolicy": "Always", | |
"volumes": [ | |
{ | |
"emptyDir": { | |
"medium": "" | |
}, | |
"name": "${DATABASE_SERVICE_NAME}-data" | |
} | |
] | |
} | |
}, | |
"triggers": [ | |
{ | |
"imageChangeParams": { | |
"automatic": true, | |
"containerNames": [ | |
"postgresql" | |
], | |
"from": { | |
"kind": "ImageStreamTag", | |
"name": "postgresql:${POSTGRESQL_VERSION}", | |
"namespace": "${NAMESPACE}" | |
}, | |
"lastTriggeredImage": "" | |
}, | |
"type": "ImageChange" | |
}, | |
{ | |
"type": "ConfigChange" | |
} | |
] | |
}, | |
"status": {} | |
} | |
], | |
"parameters": [ | |
{ | |
"description": "Maximum amount of memory the container can use.", | |
"displayName": "Memory Limit", | |
"name": "MEMORY_LIMIT", | |
"required": true, | |
"value": "512Mi" | |
}, | |
{ | |
"description": "The OpenShift Namespace where the ImageStream resides.", | |
"displayName": "Namespace", | |
"name": "NAMESPACE", | |
"value": "openshift" | |
}, | |
{ | |
"description": "The name of the OpenShift Service exposed for the database.", | |
"displayName": "Database Service Name", | |
"name": "DATABASE_SERVICE_NAME", | |
"required": true, | |
"value": "postgresql" | |
}, | |
{ | |
"description": "Username for PostgreSQL user that will be used for accessing the database.", | |
"displayName": "PostgreSQL Connection Username", | |
"from": "user[A-Z0-9]{3}", | |
"generate": "expression", | |
"name": "POSTGRESQL_USER", | |
"required": true | |
}, | |
{ | |
"description": "Password for the PostgreSQL connection user.", | |
"displayName": "PostgreSQL Connection Password", | |
"from": "[a-zA-Z0-9]{16}", | |
"generate": "expression", | |
"name": "POSTGRESQL_PASSWORD", | |
"required": true | |
}, | |
{ | |
"description": "Name of the PostgreSQL database accessed.", | |
"displayName": "PostgreSQL Database Name", | |
"name": "POSTGRESQL_DATABASE", | |
"required": true, | |
"value": "sampledb" | |
}, | |
{ | |
"description": "Version of PostgreSQL image to be used (10 or latest).", | |
"displayName": "Version of PostgreSQL Image", | |
"name": "POSTGRESQL_VERSION", | |
"required": true, | |
"value": "10" | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment