55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
|
apiVersion: v1
|
||
|
kind: ReplicationController
|
||
|
metadata:
|
||
|
name: etcd-{{cell}}
|
||
|
spec:
|
||
|
replicas: {{replicas}}
|
||
|
template:
|
||
|
metadata:
|
||
|
labels:
|
||
|
component: etcd
|
||
|
cell: {{cell}}
|
||
|
app: vitess
|
||
|
spec:
|
||
|
volumes:
|
||
|
- name: certs
|
||
|
hostPath: {path: /etc/ssl/certs}
|
||
|
containers:
|
||
|
- name: etcd
|
||
|
image: vitess/etcd:v2.0.13-lite
|
||
|
volumeMounts:
|
||
|
- name: certs
|
||
|
readOnly: true
|
||
|
mountPath: /etc/ssl/certs
|
||
|
resources:
|
||
|
limits:
|
||
|
memory: "128Mi"
|
||
|
cpu: "100m"
|
||
|
command:
|
||
|
- bash
|
||
|
- "-c"
|
||
|
- >-
|
||
|
ipaddr=$(hostname -i)
|
||
|
|
||
|
global_etcd=$ETCD_GLOBAL_SERVICE_HOST:$ETCD_GLOBAL_SERVICE_PORT
|
||
|
|
||
|
cell="{{cell}}" &&
|
||
|
local_etcd_host_var="ETCD_${cell^^}_SERVICE_HOST" &&
|
||
|
local_etcd_port_var="ETCD_${cell^^}_SERVICE_PORT" &&
|
||
|
local_etcd=${!local_etcd_host_var}:${!local_etcd_port_var}
|
||
|
|
||
|
if [ "{{cell}}" != "global" ]; then
|
||
|
until etcdctl -C "http://$global_etcd"
|
||
|
set "/vt/cells/{{cell}}" "http://$local_etcd"; do
|
||
|
echo "[$(date)] waiting for global etcd to register cell '{{cell}}'";
|
||
|
sleep 1;
|
||
|
done;
|
||
|
fi
|
||
|
|
||
|
etcd -name $HOSTNAME -discovery {{discovery}}
|
||
|
-advertise-client-urls http://$ipaddr:4001
|
||
|
-initial-advertise-peer-urls http://$ipaddr:7001
|
||
|
-listen-client-urls http://$ipaddr:4001
|
||
|
-listen-peer-urls http://$ipaddr:7001
|
||
|
|