--- apiVersion: v1 kind: Pod metadata: name: etcd namespace: kube-system spec: hostNetwork: true containers: - name: etcd image: quay.io/coreos/etcd:v2.2.2 resources: limits: cpu: 100m memory: 256M args: {% if inventory_hostname in groups['etcd'] %} - --name - etcd-{{inventory_hostname}}-master - --advertise-client-urls - "http://{{ hostvars[inventory_hostname]['ip'] | default( ansible_default_ipv4.address) }}:2379" - --listen-peer-urls - http://0.0.0.0:2380 - --initial-advertise-peer-urls - http://{{ hostvars[inventory_hostname]['ip'] | default( ansible_default_ipv4.address) }}:2380 - --data-dir - /var/etcd/data - --initial-cluster-state - new {% else %} - --proxy - 'on' {% endif %} - --listen-client-urls - "http://{{ hostvars[inventory_hostname]['ip'] | default( ansible_default_ipv4.address) }}:2379,http://127.0.0.1:2379" - --initial-cluster - "{% for host in groups['etcd'] %}etcd-{{host}}-master=http://{{ hostvars[host]['ip'] | default( hostvars[host]['ansible_default_ipv4']['address']) }}:2380{% if not loop.last %},{% endif %}{% endfor %}" - --initial-cluster-token - etcd-k8s-cluster ports: - name: etcd-client containerPort: 2379 hostPort: 2379 - name: etcd-peer containerPort: 2380 hostPort: 2380 volumeMounts: - name: varetcd mountPath: /var/etcd readOnly: false volumes: - name: varetcd hostPath: path: /containers/pods/etcd-{{inventory_hostname}}/rootfs/var/etcd