{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "heketi", "labels": { "glusterfs": "heketi-template" }, "annotations": { "description": "Heketi service deployment template", "tags": "glusterfs,heketi" } }, "labels": { "template": "heketi" }, "objects": [ { "kind": "PersistentVolume", "apiVersion": "v1", "metadata": { "name": "heketidb" }, "spec": { "persistentVolumeReclaimPolicy": "Retain", "glusterfs": { "endpoints": "gfs", "path": "heketidbstorage" }, "accessModes": [ "ReadWriteMany" ], "capacity": { "storage": "1Gi" }, "claimRef": { "name": "heketidb", "namespace": "default" } } }, { "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "heketidb" }, "spec": { "volumeName": "heketidb", "accessModes": [ "ReadWriteMany" ], "resources": { "requests": { "storage": "1Gi" } } } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "heketi", "labels": { "glusterfs": "heketi" }, "annotations": { "description": "Exposes Heketi service" } }, "spec": { "ports": [ { "name": "heketi", "port": 8080, "targetPort": 8080 } ], "selector": { "name": "heketi" } } }, { "kind": "Route", "apiVersion": "v1", "metadata": { "name": "heketi", "labels": { "glusterfs": "heketi" } }, "spec": { "host": "heketi.{{ openshift_master_default_subdomain }}", "to": { "kind": "Service", "name": "heketi" } } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "heketi", "labels": { "glusterfs": "heketi" }, "annotations": { "description": "Defines how to deploy Heketi" } }, "spec": { "replicas": 1, "selector": { "name": "heketi" }, "template": { "metadata": { "name": "heketi", "labels": { "name": "heketi", "glusterfs": "heketi" } }, "triggers": [ { "type": "ConfigChange" } ], "strategy": { "type": "Recreate" }, "spec": { "nodeSelector": { "master": "1" }, "containers": [ { "name": "heketi", "image": "heketi/heketi:dev", "imagePullPolicy": "Always", "env": [ { "name": "HEKETI_USER_KEY", "valueFrom": { "secretKeyRef": { "name": "heketi", "key": "user" } } }, { "name": "HEKETI_ADMIN_KEY", "valueFrom": { "secretKeyRef": { "name": "heketi", "key": "key" } } }, { "name": "HEKETI_FSTAB", "value": "/var/lib/heketi/fstab" }, { "name": "HEKETI_SNAPSHOT_LIMIT", "value": "14" } ], "ports": [ { "containerPort": 8080 } ], "volumeMounts": [ { "name": "config", "mountPath": "/etc/heketi", "readOnly": true }, { "name": "ssh", "mountPath": "/etc/heketi_keys", "readOnly": true }, { "name": "db", "mountPath": "/var/lib/heketi" } ], "readinessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 3, "httpGet": { "path": "/hello", "port": 8080 } }, "livenessProbe": { "timeoutSeconds": 3, "initialDelaySeconds": 30, "httpGet": { "path": "/hello", "port": 8080 } } } ], "volumes": [ { "name": "ssh", "secret": { "secretName": "ands-ssh" } }, { "name": "config", "configMap": { "name" : "heketi" } }, { "name": "db", "persistentVolumeClaim": { "claimName" : "heketidb" } } ] } } } } ] }