--- apiVersion: template.openshift.io/v1 kind: Template labels: app.openshift.io/runtime: mysql-database template: mysql-ephemeral-template message: |- The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}. Username: ${MYSQL_USER} Password: ${MYSQL_PASSWORD} Database Name: ${MYSQL_DATABASE} Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/ For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/8.0/root/usr/share/container-scripts/mysql/README.md. metadata: annotations: description: |- MySQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/8.0/root/usr/share/container-scripts/mysql/README.md. WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing iconClass: icon-mysql-database openshift.io/display-name: MySQL (Ephemeral) openshift.io/documentation-url: https://docs.okd.io/latest/using_images/db_images/mysql.html openshift.io/long-description: This template provides a standalone MySQL 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,mysql 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:app.openshift.io/runtime: {} 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: mysql-ephemeral namespace: openshift resourceVersion: "17451" uid: 3826219f-62ea-4bb4-ad7c-734d1327869e 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-root_password: '{.data[''database-root-password'']}' template.openshift.io/expose-username: '{.data[''database-user'']}' name: ${DATABASE_SERVICE_NAME} stringData: database-name: ${MYSQL_DATABASE} database-password: ${MYSQL_PASSWORD} database-root-password: ${MYSQL_ROOT_PASSWORD} database-user: ${MYSQL_USER} - apiVersion: v1 kind: Service metadata: annotations: template.openshift.io/expose-uri: mysql://{.spec.clusterIP}:{.spec.ports[?(.name=="mysql")].port} name: ${DATABASE_SERVICE_NAME} spec: ports: - name: mysql nodePort: 0 port: 3306 protocol: TCP targetPort: 3306 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: MYSQL_USER valueFrom: secretKeyRef: key: database-user name: ${DATABASE_SERVICE_NAME} - name: MYSQL_PASSWORD valueFrom: secretKeyRef: key: database-password name: ${DATABASE_SERVICE_NAME} - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: key: database-root-password name: ${DATABASE_SERVICE_NAME} - name: MYSQL_DATABASE valueFrom: secretKeyRef: key: database-name name: ${DATABASE_SERVICE_NAME} image: ' ' imagePullPolicy: IfNotPresent livenessProbe: exec: command: - /bin/sh - -i - -c - MYSQL_PWD="$MYSQL_PASSWORD" mysqladmin -u $MYSQL_USER ping initialDelaySeconds: 30 timeoutSeconds: 1 name: mysql ports: - containerPort: 3306 protocol: TCP readinessProbe: exec: command: - /bin/sh - -i - -c - MYSQL_PWD="$MYSQL_PASSWORD" mysqladmin -u $MYSQL_USER ping initialDelaySeconds: 5 timeoutSeconds: 1 resources: limits: memory: ${MEMORY_LIMIT} securityContext: capabilities: {} privileged: false terminationMessagePath: /dev/termination-log volumeMounts: - mountPath: /var/lib/mysql/data name: ${DATABASE_SERVICE_NAME}-data dnsPolicy: ClusterFirst restartPolicy: Always volumes: - emptyDir: medium: "" name: ${DATABASE_SERVICE_NAME}-data triggers: - imageChangeParams: automatic: true containerNames: - mysql from: kind: ImageStreamTag name: mysql:${MYSQL_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: mysql - description: Username for MySQL user that will be used for accessing the database. displayName: MySQL Connection Username from: user[A-Z0-9]{3} generate: expression name: MYSQL_USER required: true - description: Password for the MySQL connection user. displayName: MySQL Connection Password from: '[a-zA-Z0-9]{16}' generate: expression name: MYSQL_PASSWORD required: true - description: Password for the MySQL root user. displayName: MySQL root user Password from: '[a-zA-Z0-9]{16}' generate: expression name: MYSQL_ROOT_PASSWORD required: true - description: Name of the MySQL database accessed. displayName: MySQL Database Name name: MYSQL_DATABASE required: true value: sampledb - description: Version of MySQL image to be used (8.0-el7, 8.0-el8, or latest). displayName: Version of MySQL Image name: MYSQL_VERSION required: true value: 8.0-el8