|
|
|
@ -0,0 +1,171 @@ |
|
|
|
apiVersion: template.openshift.io/v1 |
|
|
|
kind: Template |
|
|
|
labels: |
|
|
|
template: redis-persistent-template |
|
|
|
message: |- |
|
|
|
The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}. |
|
|
|
|
|
|
|
Password: ${REDIS_PASSWORD} |
|
|
|
Connection URL: redis://${DATABASE_SERVICE_NAME}:6379/ |
|
|
|
|
|
|
|
For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2. |
|
|
|
metadata: |
|
|
|
annotations: |
|
|
|
description: |- |
|
|
|
Redis in-memory data structure store, with persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/redis-container/blob/master/3.2. |
|
|
|
|
|
|
|
NOTE: You must have persistent volumes available in your cluster to use this template. |
|
|
|
iconClass: icon-redis |
|
|
|
openshift.io/display-name: Redis |
|
|
|
openshift.io/documentation-url: https://github.com/sclorg/redis-container/tree/master/3.2 |
|
|
|
openshift.io/long-description: This template provides a standalone Redis server. The |
|
|
|
data is stored on persistent storage. |
|
|
|
openshift.io/provider-display-name: Red Hat, Inc. |
|
|
|
openshift.io/support-url: https://access.redhat.com |
|
|
|
tags: database,redis |
|
|
|
creationTimestamp: null |
|
|
|
name: redis-persistent |
|
|
|
selfLink: /apis/template.openshift.io/v1/namespaces/openshift/templates/redis-persistent |
|
|
|
objects: |
|
|
|
- apiVersion: v1 |
|
|
|
kind: Secret |
|
|
|
metadata: |
|
|
|
annotations: |
|
|
|
template.openshift.io/expose-password: '{.data[''database-password'']}' |
|
|
|
name: ${DATABASE_SERVICE_NAME} |
|
|
|
stringData: |
|
|
|
database-password: ${REDIS_PASSWORD} |
|
|
|
- apiVersion: v1 |
|
|
|
kind: Service |
|
|
|
metadata: |
|
|
|
annotations: |
|
|
|
template.openshift.io/expose-uri: redis://{.spec.clusterIP}:{.spec.ports[?(.name=="redis")].port} |
|
|
|
name: ${DATABASE_SERVICE_NAME} |
|
|
|
spec: |
|
|
|
ports: |
|
|
|
- name: redis |
|
|
|
nodePort: 0 |
|
|
|
port: 6379 |
|
|
|
protocol: TCP |
|
|
|
targetPort: 6379 |
|
|
|
selector: |
|
|
|
name: ${DATABASE_SERVICE_NAME} |
|
|
|
sessionAffinity: None |
|
|
|
type: ClusterIP |
|
|
|
status: |
|
|
|
loadBalancer: {} |
|
|
|
- apiVersion: v1 |
|
|
|
kind: PersistentVolumeClaim |
|
|
|
metadata: |
|
|
|
name: ${DATABASE_SERVICE_NAME} |
|
|
|
spec: |
|
|
|
accessModes: |
|
|
|
- ReadWriteOnce |
|
|
|
resources: |
|
|
|
requests: |
|
|
|
storage: ${VOLUME_CAPACITY} |
|
|
|
- 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: REDIS_PASSWORD |
|
|
|
valueFrom: |
|
|
|
secretKeyRef: |
|
|
|
key: database-password |
|
|
|
name: ${DATABASE_SERVICE_NAME} |
|
|
|
image: ' ' |
|
|
|
imagePullPolicy: IfNotPresent |
|
|
|
livenessProbe: |
|
|
|
initialDelaySeconds: 30 |
|
|
|
tcpSocket: |
|
|
|
port: 6379 |
|
|
|
timeoutSeconds: 1 |
|
|
|
name: redis |
|
|
|
ports: |
|
|
|
- containerPort: 6379 |
|
|
|
protocol: TCP |
|
|
|
readinessProbe: |
|
|
|
exec: |
|
|
|
command: |
|
|
|
- /bin/sh |
|
|
|
- -i |
|
|
|
- -c |
|
|
|
- test "$(redis-cli -h 127.0.0.1 -a $REDIS_PASSWORD ping)" == "PONG" |
|
|
|
initialDelaySeconds: 5 |
|
|
|
timeoutSeconds: 1 |
|
|
|
resources: |
|
|
|
limits: |
|
|
|
memory: ${MEMORY_LIMIT} |
|
|
|
securityContext: |
|
|
|
capabilities: {} |
|
|
|
privileged: false |
|
|
|
terminationMessagePath: /dev/termination-log |
|
|
|
volumeMounts: |
|
|
|
- mountPath: /var/lib/redis/data |
|
|
|
name: ${DATABASE_SERVICE_NAME}-data |
|
|
|
dnsPolicy: ClusterFirst |
|
|
|
restartPolicy: Always |
|
|
|
volumes: |
|
|
|
- name: ${DATABASE_SERVICE_NAME}-data |
|
|
|
persistentVolumeClaim: |
|
|
|
claimName: ${DATABASE_SERVICE_NAME} |
|
|
|
triggers: |
|
|
|
- imageChangeParams: |
|
|
|
automatic: true |
|
|
|
containerNames: |
|
|
|
- redis |
|
|
|
from: |
|
|
|
kind: ImageStreamTag |
|
|
|
name: redis:${REDIS_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: redis |
|
|
|
- description: Password for the Redis connection user. |
|
|
|
displayName: Redis Connection Password |
|
|
|
from: '[a-zA-Z0-9]{16}' |
|
|
|
generate: expression |
|
|
|
name: REDIS_PASSWORD |
|
|
|
required: true |
|
|
|
- description: Volume space available for data, e.g. 512Mi, 2Gi. |
|
|
|
displayName: Volume Capacity |
|
|
|
name: VOLUME_CAPACITY |
|
|
|
required: true |
|
|
|
value: 1Gi |
|
|
|
- description: Version of Redis image to be used (3.2 or latest). |
|
|
|
displayName: Version of Redis Image |
|
|
|
name: REDIS_VERSION |
|
|
|
required: true |
|
|
|
value: "latest" |