{
"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}"
}
]
}