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/.):

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

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

Kubernetes version (use kubectl version):

1.5 custom built master

Environment:

Cloud provider or hardware configuration: azure

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

Kernel (e.g. uname -a): Linux ma-kub8ms0 3.10.0-327.36.3.el7.x86_64 #1 SMP Mon Oct 24 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Install tools: ansible + kubeadm

Others:

What happened:

When passing --cloud-provider to kubeadm, the flag is only passed to the controller manager. It is however not passed to the kubelet, which makes Azure Disk mounting (and probably other cloud features?) not work. Also, the --cloud-config flag is not passed into the kubelet.

It looks like the kubelet is able to figure out the appropriate cloud provider (azure) by itself. Not sure how it does this, maybe it gets a hint from the controller manager. Nevertheless, if users provide a cloud provider to kubeadm, this one should be explicitly passed to all services which offer such an option. Also, the (correct) auto guessing does not help when there is no cloud config given to the kubelet.

I currently have to provide a custom systemd dropin which overrides the KUBELET_EXTRA_ARGS env var.

An idea how to fix this: Add an optional environment file (/etc/kubernetes/kubeadm-kubelet-args.env) to the 10-kubeadm.conf dropin. The kubeadm could then write appropriate cloud-config (and other?) flags to this file.

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: fresh install by kubeadm on Ubuntu 16.04

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: apt, kubeam

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 am following the instructions at http://kubernetes.io/docs/getting-started-guides/kubeadm/ . I have done the first two steps. I discovered that the installed version of kubernetes is 1.4.0. For example, the manifest for the API server says the image to use is gcr.io/google_containers/kube-apiserver-amd64:v1.4.0.

FYI:

$ dpkg -l 'kube*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=======================-================-================-====================================================
ii kubeadm 1.5.0-alpha.0-15 amd64 Kubernetes Cluster Bootstrapping Tool
ii kubectl 1.4.0-00 amd64 Kubernetes Command Line Tool
ii kubelet 1.4.0-00 amd64 Kubernetes Node Agent
ii kubernetes-cni 0.3.0.1-07a8a2-0 amd64 Kubernetes CNI

What you expected to happen:

The latest release is currently 1.4.1 and http://kubernetes.io/docs/admin/kubeadm/#kubeadm-init says I should expect that to be the version I got (it says "--use-kubernetes-version (default ‘v1.4.1’) the kubernetes version to initialise").

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

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

Anything else do we need to know: