{ "kind": "Template", "apiVersion": "v1", "metadata": { "name": "etcd", "creationTimestamp": null, "annotations": { "openshift.io/display-name": "etcd", "description": "An example of a clustered etcd key value store. For more information about using this template, including OpenShift considerations, see https://github.com/openshift/origin/blob/master/examples/etcd/README.md.", "iconClass": "icon-database", "tags": "database,etcd" } }, "message": "The following service(s) have been created in your project: etcd, etcd-discovery.\n\nFor more information about using this template, including OpenShift considerations, see https://github.com/openshift/origin/blob/master/examples/etcd/README.md.", "labels": { "template": "etcd" }, "objects": [ { "kind": "ImageStream", "apiVersion": "v1", "metadata": { "name": "etcd", "creationTimestamp": null }, "spec": { "dockerImageRepository": "${ETCD_IMAGE}", "tags": [ { "name": "latest", "annotations": { "description": "Provides etcd v2.0.10", "iconClass": "icon-database", "tags": "database,etcd", "version": "2.0.10" } } ] }, "status": { "dockerImageRepository": "" } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "etcd-discovery", "creationTimestamp": null, "labels": { "name": "etcd-discovery" } }, "spec": { "ports": [ { "protocol": "TCP", "port": 2379, "targetPort": 2379, "nodePort": 0 } ], "selector": { "name": "etcd-discovery" }, "clusterIP": "None", "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "Service", "apiVersion": "v1", "metadata": { "name": "etcd", "creationTimestamp": null, "labels": { "name": "etcd" } }, "spec": { "ports": [ { "name": "client", "protocol": "TCP", "port": 2379, "targetPort": 2379, "nodePort": 0 }, { "name": "server", "protocol": "TCP", "port": 2380, "targetPort": 2380, "nodePort": 0 } ], "selector": { "name": "etcd" }, "clusterIP": "None", "type": "ClusterIP", "sessionAffinity": "None" }, "status": { "loadBalancer": {} } }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "etcd-discovery", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate", "resources": {} }, "triggers": [ { "type": "ConfigChange" } ], "replicas": 1, "selector": { "name": "etcd-discovery" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "etcd-discovery" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": { "medium": "" } } ], "containers": [ { "name": "discovery", "image": "${ETCD_IMAGE}", "args": [ "etcd-discovery.sh" ], "ports": [ { "containerPort": 2379, "protocol": "TCP" } ], "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/etcd" } ], "resources": {}, "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "securityContext": { "capabilities": {}, "privileged": false } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} }, { "kind": "DeploymentConfig", "apiVersion": "v1", "metadata": { "name": "etcd", "creationTimestamp": null }, "spec": { "strategy": { "type": "Recreate", "resources": {} }, "triggers": [ { "type": "ConfigChange" } ], "replicas": 3, "selector": { "name": "etcd" }, "template": { "metadata": { "creationTimestamp": null, "labels": { "name": "etcd" } }, "spec": { "volumes": [ { "name": "data", "emptyDir": { "medium": "" } } ], "containers": [ { "name": "member", "image": "${ETCD_IMAGE}", "ports": [ { "containerPort": 2379, "protocol": "TCP" }, { "containerPort": 2380, "protocol": "TCP" } ], "env": [ { "name": "ETCD_NUM_MEMBERS", "value": "${ETCD_NUM_MEMBERS}" }, { "name": "ETCD_INITIAL_CLUSTER_STATE", "value": "new" }, { "name": "ETCD_INITIAL_CLUSTER_TOKEN", "value": "${ETCD_CLUSTER_TOKEN}" }, { "name": "ETCD_DISCOVERY_TOKEN", "value": "${ETCD_DISCOVERY_TOKEN}" }, { "name": "ETCD_DISCOVERY_URL", "value": "${ETCD_DISCOVERY_URL}" }, { "name": "ETCDCTL_PEERS", "value": "http://etcd:2379" } ], "volumeMounts": [ { "name": "data", "mountPath": "/var/lib/etcd" } ], "resources": {}, "terminationMessagePath": "/dev/termination-log", "imagePullPolicy": "IfNotPresent", "securityContext": { "capabilities": {}, "privileged": false } } ], "restartPolicy": "Always", "dnsPolicy": "ClusterFirst" } } }, "status": {} } ], "parameters": [ { "name": "ETCD_IMAGE", "description": "The name of etcd Docker image to use", "value": "openshift/etcd-20-centos7" }, { "name": "ETCD_NUM_MEMBERS", "description": "Maximum number of members to launch (have to match with # of replicas)", "value": "3" }, { "name": "ETCD_DISCOVERY_URL", "description": "Discovery URL connects etcd instances together by storing a list of peer addresses, metadata and the initial size of the cluster under a unique address", "value": "http://etcd-discovery:2379" }, { "name": "ETCD_DISCOVERY_TOKEN", "description": "A unique token used by the discovery service", "generate": "expression", "from": "[a-z0-9]{40}" }, { "name": "ETCD_CLUSTER_TOKEN", "description": "A token etcd use to generate unique cluster ID and member ID", "generate": "expression", "from": "etcd-cluster-[a-z0-9]{5}" } ] }