Issue 1:
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.): No

What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.): configure-helper.sh

Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT

Kubernetes version (use kubectl version): 1.5 beta

Environment:

Cloud provider or hardware configuration: GCE (using GCI for the master)

OS (e.g. from /etc/os-release): GCI

Kernel (e.g. uname -a):

Install tools: kube-up.sh

Others:

What happened: #37257 exposed a bug where configure-helper.sh was broken. The script got past mounting the master PD, so fixing it locally and trying to re-run it has no effect because it gets to the step where it tries to mount the master PD and then errors out. We should fix the script to be tolerant of having the master PD be mounted so that if the script gets interrupted for some reason and then re-run by systemd it can run to completion.

What you expected to happen: configure-helper.sh should be able to run successfully even if the master PD has already been mounted

How to reproduce it (as minimally and precisely as possible):

sync to master release-1.4 branch; run make clean; make quick-release; run cluster/kube-up.sh

sync to the release-1.5 branch; run cluster/gce/upgrade.sh -M v1.5.0-beta.1

Log into the kubernetes master, fix the error in the shell script (vi /home/kubernetes/bin/configure-helper.sh and fix line 809 as was done in #37358) then run sudo /home/kubernetes/bin/configure-helper.sh to see the script bail out

Issue 2:
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.): no

What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.): kubeadm

Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT

Kubernetes version (use kubectl version):

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.0", GitCommit:"a16c0a7f71a6f93c7e0f222d961f4675cd97a46b", GitTreeState:"clean", BuildDate:"2016-09-26T18:16:57Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.0", GitCommit:"a16c0a7f71a6f93c7e0f222d961f4675cd97a46b", GitTreeState:"clean", BuildDate:"2016-09-26T18:10:32Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

Environment: kubeadm install on fresh Ubuntu 16.04 machine

Cloud provider or hardware configuration: VirtualBox VM, host = x86_64 = guest

OS (e.g. from /etc/os-release): 16.04 LTS (Xenial Xerus)

Kernel (e.g. uname -a): Linux mvespa4-2 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Install tools: kubeadm

Others:

$ sudo docker info
Containers: 14
Running: 12
Paused: 0
Stopped: 2
Images: 8
Server Version: 1.12.2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 49
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: null host bridge overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-43-generic
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.796 GiB
Name: mvespa4-2
ID: 33RL:MPT4:RYCF:HH2K:POGH:MPGE:NID7:VVV6:IMYC:2NYU:BECI:YQQZ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

What happened:

I ran the first two steps of http://kubernetes.io/docs/getting-started-guides/kubeadm/ . I found a duplicated command argument in the manifest for the apiserver:

root@mvespa4-2:/etc/kubernetes/manifests# cat kube-apiserver.json
{
"kind": "Pod",
"apiVersion": "v1",
"metadata": {...}
},
"spec": {
"volumes": [...],
"containers": [
{
"name": "kube-apiserver",
"image": "gcr.io/google_containers/kube-apiserver-amd64:v1.4.0",
"command": [
"/usr/local/bin/kube-apiserver",
"--v=4",
"--insecure-bind-address=127.0.0.1",
"--etcd-servers=http://127.0.0.1:2379",
"--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota",
"--service-cluster-ip-range=100.64.0.0/12",
"--service-account-key-file=/etc/kubernetes/pki/apiserver-key.pem",
"--client-ca-file=/etc/kubernetes/pki/ca.pem",
"--tls-cert-file=/etc/kubernetes/pki/apiserver.pem",
"--tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem",
"--token-auth-file=/etc/kubernetes/pki/tokens.csv",
"--secure-port=443",
"--allow-privileged",
"--etcd-servers=http://127.0.0.1:2379"
],
...

What you expected to happen:

I expected no duplicated arguments.

How to reproduce it (as minimally and precisely as possible):

Follow the first two steps of the cited doc on a fresh Ubuntu 16.04 machine with Docker 1.12.2.

Anything else do we need to know: