--- 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}. Username: ${POSTGRESQL_USER} Password: ${POSTGRESQL_PASSWORD} Database Name: ${POSTGRESQL_DATABASE} Connection URL: postgresql://${DATABASE_SERVICE_NAME}:5432/ For 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/. WARNING: 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 samples.operator.openshift.io/version: 4.18.25 tags: database,postgresql creationTimestamp: "2025-10-11T10:37:44Z" 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:labels: .: {} f:samples.operator.openshift.io/managed: {} f:objects: {} f:parameters: {} manager: cluster-samples-operator operation: Update time: "2025-10-11T10:37:44Z" name: postgresql-ephemeral namespace: openshift resourceVersion: "17401" uid: 3721bd8c-ba9e-412a-a168-5a4f6246014c 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: apps.openshift.io/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-el7, 10-el8, or latest). displayName: Version of PostgreSQL Image name: POSTGRESQL_VERSION required: true value: 10-el8