From c51ed4bbb7d89d5a30ba27db707c3f53b2ed2df3 Mon Sep 17 00:00:00 2001
From: Smaine Kahlouch <smaine.kahlouch@arkena.com>
Date: Mon, 21 Mar 2016 22:25:09 +0100
Subject: [PATCH] use master election option instead of podmaster

---
 README.md                                     |  2 +
 roles/kubernetes/master/tasks/main.yml        |  9 +---
 .../kube-controller-manager.manifest.j2       |  1 +
 .../manifests/kube-podmaster.manifest.j2      | 46 -------------------
 .../manifests/kube-scheduler.manifest.j2      |  1 +
 5 files changed, 6 insertions(+), 53 deletions(-)
 delete mode 100644 roles/kubernetes/master/templates/manifests/kube-podmaster.manifest.j2

diff --git a/README.md b/README.md
index 9cc72e94e..7ad831c27 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,5 @@
 ![Kubespray Logo](http://s9.postimg.org/md5dyjl67/kubespray_logoandkubespray_small.png)
 
 The documentation can be found [THERE](https://docs.kubespray.io)
+
+[![Build Status](https://travis-ci.org/kubespray/kubespray.svg)](https://travis-ci.org/kubespray/kubespray)
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index e79631f61..5124e152b 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -75,17 +75,12 @@
 - name: Write kube-controller-manager manifest
   template:
     src: manifests/kube-controller-manager.manifest.j2
-    dest: "{{ kube_config_dir }}/kube-controller-manager.manifest"
+    dest: "{{ kube_manifest_dir }}/kube-controller-manager.manifest"
 
 - name: Write kube-scheduler manifest
   template:
     src: manifests/kube-scheduler.manifest.j2
-    dest: "{{ kube_config_dir }}/kube-scheduler.manifest"
-
-- name: Write podmaster manifest
-  template:
-    src: manifests/kube-podmaster.manifest.j2
-    dest: "{{ kube_manifest_dir }}/kube-podmaster.manifest"
+    dest: "{{ kube_manifest_dir }}/kube-scheduler.manifest"
 
 - name: restart kubelet
   service:
diff --git a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
index c692f758f..4b9ed2f74 100644
--- a/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
@@ -12,6 +12,7 @@ spec:
     - /hyperkube
     - controller-manager
     - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}}
+    - --leader-elect=true
     - --service-account-private-key-file={{ kube_cert_dir }}/apiserver-key.pem
     - --root-ca-file={{ kube_cert_dir }}/ca.pem
     - --v={{ kube_log_level | default('2') }}
diff --git a/roles/kubernetes/master/templates/manifests/kube-podmaster.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-podmaster.manifest.j2
deleted file mode 100644
index 86447badf..000000000
--- a/roles/kubernetes/master/templates/manifests/kube-podmaster.manifest.j2
+++ /dev/null
@@ -1,46 +0,0 @@
-apiVersion: v1
-kind: Pod
-metadata:
-  name: kube-podmaster
-  namespace: kube-system
-spec:
-  hostNetwork: true
-  containers:
-  - name: scheduler-elector
-    image: gcr.io/google_containers/podmaster:1.1
-    command:
-    - /podmaster
-    - --etcd-servers={% for srv in groups['etcd'] %}http://{{ srv }}:2379{% if not loop.last %},{% endif %}{% endfor %}
-
-    - --key=scheduler
-    - --source-file={{ kube_config_dir}}/kube-scheduler.manifest
-    - --dest-file={{ kube_manifest_dir }}/kube-scheduler.manifest
-    volumeMounts:
-    - mountPath: {{ kube_config_dir }}
-      name: manifest-src
-      readOnly: true
-    - mountPath: {{ kube_manifest_dir }}
-      name: manifest-dst
-  - name: controller-manager-elector
-    image: gcr.io/google_containers/podmaster:1.1
-    command:
-    - /podmaster
-    - --etcd-servers={% for srv in groups['etcd'] %}http://{{ srv }}:2379{% if not loop.last %},{% endif %}{% endfor %}
-
-    - --key=controller
-    - --source-file={{ kube_config_dir }}/kube-controller-manager.manifest
-    - --dest-file={{ kube_manifest_dir }}/kube-controller-manager.manifest
-    terminationMessagePath: /dev/termination-log
-    volumeMounts:
-    - mountPath: {{ kube_config_dir }}
-      name: manifest-src
-      readOnly: true
-    - mountPath: {{ kube_manifest_dir }}
-      name: manifest-dst
-  volumes:
-  - hostPath:
-      path: {{ kube_config_dir }}
-    name: manifest-src
-  - hostPath:
-      path: {{ kube_manifest_dir }}
-    name: manifest-dst
diff --git a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2 b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2
index 9e8579548..f642fbf70 100644
--- a/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2
+++ b/roles/kubernetes/master/templates/manifests/kube-scheduler.manifest.j2
@@ -11,6 +11,7 @@ spec:
     command:
     - /hyperkube
     - scheduler
+    - --leader-elect=true
     - --master=http://127.0.0.1:{{kube_apiserver_insecure_port}}
     - --v={{ kube_log_level | default('2') }}
     livenessProbe:
-- 
GitLab