apiVersion: apps/v1 kind: Deployment metadata: name: etcd spec: replicas: 1 selector: matchLabels: instance-type: etcd-pod template: metadata: creationTimestamp: null labels: instance-type: etcd-pod spec: containers: - args: - --name - $(MY_POD_NAME) - --advertise-client-urls - http://$(MY_POD_IP):2379,http://$(MY_POD_IP):4001 - --listen-client-urls - http://0.0.0.0:2379,http://0.0.0.0:4001 - --initial-advertise-peer-urls - http://$(MY_POD_IP):2380 - --listen-peer-urls - http://0.0.0.0:2380 # By default use a single pod cluster - --initial-cluster - $(MY_POD_NAME)=http://$(MY_POD_IP):2380 # Alternatively multi-pod clusters can be supported Using central discvovery. Run e.g. # curl https://discovery.etcd.io/new?size=3 | sed s/https/http/ # to get a discovery URL for a 3 pod cluster, substitute the returned value below, and # set replicas: 3 above. #- --discovery #- - --initial-cluster-state - new env: - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name image: {{ quay_repo }}/coreos/etcd:v2.2.5 name: etcd ports: - containerPort: 2379 - containerPort: 2380 - containerPort: 4001 livenessProbe: tcpSocket: port: 4001 initialDelaySeconds: 300 readinessProbe: tcpSocket: port: 4001 imagePullSecrets: - name: ~ restartPolicy: Always