64 lines
1.9 KiB
YAML
64 lines
1.9 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: Pod
|
|
metadata:
|
|
name: auxiliary-etcd
|
|
namespace: kube-system
|
|
labels:
|
|
component: auxiliary-etcd
|
|
promenade: genesis
|
|
spec:
|
|
hostNetwork: true
|
|
{%- with etcd_name = 'auxiliary', client_port = 12379, peer_port = 12380 %}
|
|
containers:
|
|
{% include "genesis-etcd/server-container.yaml" with context %}
|
|
- name: monitor
|
|
image: {{ config['Genesis:images.kubernetes.etcd'] }}
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |-
|
|
set -x
|
|
MEMBER_COUNT=$(etcdctl member list | grep '\bstarted\b' | wc -l)
|
|
if [ $MEMBER_COUNT -gt 1 ]; then
|
|
MEMBER_ID=$(etcdctl member list | grep auxiliary | awk -F ', ' '{ print $1 }')
|
|
if [ -n $MEMBER_ID ]; then
|
|
while [ $MEMBER_COUNT -lt 3 ]; do
|
|
sleep 30
|
|
MEMBER_COUNT=$(etcdctl member list | grep '\bstarted\b' | wc -l)
|
|
done
|
|
set -e
|
|
etcdctl member remove $MEMBER_ID
|
|
fi
|
|
|
|
rm -rf /var/lib/etcd/* /manifests/auxiliary-kubernetes-etcd.yaml
|
|
sleep 10000
|
|
fi
|
|
env:
|
|
- name: ETCDCTL_API
|
|
value: '3'
|
|
- name: ETCDCTL_DIAL_TIMEOUT
|
|
value: 3s
|
|
- name: ETCDCTL_ENDPOINTS
|
|
value: https://127.0.0.1:2379
|
|
- name: ETCDCTL_CACERT
|
|
value: /etc/etcd/pki/client-ca.pem
|
|
- name: ETCDCTL_CERT
|
|
value: /etc/etcd/pki/etcd-client.pem
|
|
- name: ETCDCTL_KEY
|
|
value: /etc/etcd/pki/etcd-client-key.pem
|
|
volumeMounts:
|
|
- name: data
|
|
mountPath: /var/lib/etcd
|
|
- name: pki
|
|
mountPath: /etc/etcd/pki
|
|
- name: manifest
|
|
mountPath: /manifests
|
|
volumes:
|
|
{% include "genesis-etcd/common-volumes.yaml" with context %}
|
|
- name: manifest
|
|
hostPath:
|
|
path: /etc/kubernetes/manifests
|
|
{%- endwith %}
|
|
...
|