--- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: contiv-etcd namespace: kube-system spec: updateStrategy: type: RollingUpdate selector: matchLabels: name: contiv-etcd template: metadata: namespace: kube-system labels: name: contiv-etcd annotations: scheduler.alpha.kubernetes.io/critical-pod: "" spec: serviceAccountName: contiv-etcd hostNetwork: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: {% for node in groups.oo_masters_to_config %} - "{{ node }}" {% endfor %} tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule initContainers: - name: contiv-etcd-init image: "{{ contiv_etcd_init_image_repo }}:{{ contiv_etcd_init_image_tag }}" env: - name: ETCD_INIT_ARGSFILE value: "{{ contiv_etcd_conf_dir }}/contiv-etcd-args" - name: ETCD_INIT_LISTEN_PORT value: "{{ contiv_etcd_port }}" - name: ETCD_INIT_PEER_PORT value: "{{ contiv_etcd_peer_port }}" - name: ETCD_INIT_CLUSTER value: "{{ contiv_etcd_peers }}" - name: ETCD_INIT_DATA_DIR value: "{{ contiv_etcd_data_dir }}" volumeMounts: - name: contiv-etcd-conf-dir mountPath: "{{ contiv_etcd_conf_dir }}" securityContext: runAsUser: "{{ contiv_etcd_system_uid }}" fsGroup: "{{ contiv_etcd_system_gid }}" containers: - name: contiv-etcd image: "{{ contiv_etcd_image_repo }}:{{ contiv_etcd_image_tag }}" command: - sh - -c - 'exec 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 }}" securityContext: runAsUser: "{{ contiv_etcd_system_uid }}" fsGroup: "{{ contiv_etcd_system_gid }}" volumes: - name: contiv-etcd-data-dir hostPath: type: DirectoryOrCreate path: "{{ contiv_etcd_data_dir }}" - name: contiv-etcd-conf-dir hostPath: type: DirectoryOrCreate path: "{{ contiv_etcd_conf_dir }}"