--- kind: Template apiVersion: v1 metadata: name: heketi labels: glusterfs: heketi-template annotations: description: Heketi service deployment template tags: glusterfs,heketi objects: - kind: Service apiVersion: v1 metadata: name: heketi-${CLUSTER_NAME} labels: glusterfs: heketi-${CLUSTER_NAME}-service annotations: description: Exposes Heketi service spec: ports: - name: heketi port: 8080 targetPort: 8080 selector: glusterfs: heketi-${CLUSTER_NAME}-pod - kind: Route apiVersion: v1 metadata: name: ${HEKETI_ROUTE} labels: glusterfs: heketi-${CLUSTER_NAME}-route spec: to: kind: Service name: heketi-${CLUSTER_NAME} - kind: DeploymentConfig apiVersion: v1 metadata: name: heketi-${CLUSTER_NAME} labels: glusterfs: heketi-${CLUSTER_NAME}-dc annotations: description: Defines how to deploy Heketi spec: replicas: 1 selector: glusterfs: heketi-${CLUSTER_NAME}-pod triggers: - type: ConfigChange strategy: type: Recreate template: metadata: name: heketi-${CLUSTER_NAME} labels: glusterfs: heketi-${CLUSTER_NAME}-pod spec: serviceAccountName: heketi-${CLUSTER_NAME}-service-account containers: - name: heketi image: ${IMAGE_NAME}:${IMAGE_VERSION} imagePullPolicy: IfNotPresent env: - name: HEKETI_USER_KEY value: ${HEKETI_USER_KEY} - name: HEKETI_ADMIN_KEY value: ${HEKETI_ADMIN_KEY} - name: HEKETI_EXECUTOR value: ${HEKETI_EXECUTOR} - name: HEKETI_FSTAB value: /var/lib/heketi/fstab - name: HEKETI_SNAPSHOT_LIMIT value: '14' - name: HEKETI_KUBE_GLUSTER_DAEMONSET value: '1' - name: HEKETI_KUBE_NAMESPACE value: ${HEKETI_KUBE_NAMESPACE} ports: - containerPort: 8080 volumeMounts: - name: db mountPath: /var/lib/heketi - name: config mountPath: /etc/heketi readinessProbe: timeoutSeconds: 3 initialDelaySeconds: 3 httpGet: path: /hello port: 8080 livenessProbe: timeoutSeconds: 3 initialDelaySeconds: 30 httpGet: path: /hello port: 8080 volumes: - name: db glusterfs: endpoints: heketi-db-${CLUSTER_NAME}-endpoints path: heketidbstorage - name: config secret: secretName: heketi-${CLUSTER_NAME}-config-secret parameters: - name: HEKETI_USER_KEY displayName: Heketi User Secret description: Set secret for those creating volumes as type _user_ - name: HEKETI_ADMIN_KEY displayName: Heketi Administrator Secret description: Set secret for administration of the Heketi service as user _admin_ - name: HEKETI_EXECUTOR displayName: heketi executor type description: Set the executor type, kubernetes or ssh value: kubernetes - name: HEKETI_KUBE_NAMESPACE displayName: Namespace description: Set the namespace where the GlusterFS pods reside value: default - name: HEKETI_ROUTE displayName: heketi route name description: Set the hostname for the route URL value: "heketi-glusterfs" - name: IMAGE_NAME displayName: heketi container image name required: True - name: IMAGE_VERSION displayName: heketi container image version required: True - name: CLUSTER_NAME displayName: GlusterFS cluster name description: A unique name to identify this heketi service, useful for running multiple heketi instances value: glusterfs