dad95c873b
Use a etcd-initer init container to generate etcd args, it determines etcd name by comparing its ip and etcd cluster ips. This way will make etcd configuration independent to the ansible templating so that could be easier on adding master nodes.
66 lines
2 KiB
Django/Jinja
66 lines
2 KiB
Django/Jinja
---
|
|
kind: DaemonSet
|
|
apiVersion: extensions/v1beta1
|
|
metadata:
|
|
name: contiv-etcd
|
|
namespace: {{ system_namespace }}
|
|
labels:
|
|
k8s-app: contiv-etcd
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
k8s-app: contiv-etcd
|
|
template:
|
|
metadata:
|
|
labels:
|
|
k8s-app: contiv-etcd
|
|
annotations:
|
|
scheduler.alpha.kubernetes.io/critical-pod: ''
|
|
spec:
|
|
hostNetwork: true
|
|
hostPID: true
|
|
nodeSelector:
|
|
node-role.kubernetes.io/master: "true"
|
|
tolerations:
|
|
- key: node-role.kubernetes.io/master
|
|
effect: NoSchedule
|
|
initContainers:
|
|
- name: contiv-etcd-init
|
|
image: ferest/etcd-initer:latest
|
|
imagePullPolicy: Always
|
|
env:
|
|
- name: ETCD_INIT_ARGSFILE
|
|
value: '{{ contiv_etcd_conf_dir }}/contiv-etcd-args'
|
|
- name: ETCD_INIT_LISTEN_PORT
|
|
value: '{{ contiv_etcd_listen_port }}'
|
|
- name: ETCD_INIT_PEER_PORT
|
|
value: '{{ contiv_etcd_peer_port }}'
|
|
- name: ETCD_INIT_CLUSTER
|
|
value: '{{ contiv_etcd_endpoints }}'
|
|
- name: ETCD_INIT_DATA_DIR
|
|
value: '{{ contiv_etcd_data_dir }}'
|
|
volumeMounts:
|
|
- name: contiv-etcd-conf-dir
|
|
mountPath: {{ contiv_etcd_conf_dir }}
|
|
containers:
|
|
- name: contiv-etcd
|
|
image: {{ contiv_etcd_image_repo }}:{{ contiv_etcd_image_tag }}
|
|
command:
|
|
- sh
|
|
- -c
|
|
- "/usr/local/bin/etcd $(cat $ETCD_INIT_ARGSFILE)"
|
|
env:
|
|
- name: ETCD_INIT_ARGSFILE
|
|
value: {{ contiv_etcd_conf_dir }}/contiv-etcd-args
|
|
volumeMounts:
|
|
- name: contiv-etcd-conf-dir
|
|
mountPath: {{ contiv_etcd_conf_dir }}
|
|
- name: contiv-etcd-data-dir
|
|
mountPath: {{ contiv_etcd_data_dir }}
|
|
volumes:
|
|
- name: contiv-etcd-data-dir
|
|
hostPath:
|
|
path: {{ contiv_etcd_data_dir }}
|
|
- name: contiv-etcd-conf-dir
|
|
hostPath:
|
|
path: {{ contiv_etcd_conf_dir }}
|