Kubeadm: `kubeadm init --config` is broken

Created on 14 Jul 2017  路  8Comments  路  Source: kubernetes/kubeadm

Is this a BUG REPORT or FEATURE REQUEST?

BUG REPORT

Versions

kubeadm version (use kubeadm version):

kubeadm version: &version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.0-alpha.1.1104+f5757bce5b2eb1", GitCommit:"f5757bce5b2eb123aa0c2f513f65d3ce7b8ace7f", GitTreeState:"clean", BuildDate:"2017-07-13T23:28:21Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Environment:

  • Kubernetes version (use kubectl version): v1.7.0

What happened?

I ran kubeadm init --config /path/to/my/config.yaml (with no additional arguments) and got this output:

[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.7.0
[init] Using Authorization mode: [Node RBAC]
[init] WARNING: For cloudprovider integrations to work --cloud-provider must be set for all kubelets in the cluster.
    (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf should be edited for this purpose)
[preflight] Running pre-flight checks
[preflight] Starting the kubelet service
can not mix '--config' with other arguments

What you expected to happen?

I expected kubeadm to load my YAML configuration. The can not mix '--config' with other arguments error should only occur if other flags are also passed.

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

  1. Save this to minimal.yaml:
---
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
  1. Run kubeadm init --config minimal.yaml

Anything else we need to know?

This was introduced in https://github.com/kubernetes/kubernetes/pull/43558 (13 days ago). That change was also cherry picked into the release-1.7 branch, so we need to be careful to avoid releasing a regression on 1.7.

I'm working on a fix for this.

cc @luxas (Slack discussion from earlier today)

Most helpful comment

I'm working around this issue on Ubuntu by manually installing kubeadm version 1.7.0:

apt-get install kubeadm=1.7.0-00

@luxas note this bug breaks your kubeadm-workshop script: https://github.com/luxas/kubeadm-workshop/blob/master/e2e-script.sh#L1

All 8 comments

Merged to master and cherrypick is approved. Thanks!

@luxas

do you tell me how install previous version on ubuntu???
apt-get install -y kubelet=1.7.0 kubeadm=1.7.0

same issue

root@kube1:~/up/dot# kubeadm init --config ~/up/dot/master-configuration.yml                                                                                                                     
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.            
[init] Using Kubernetes version: v1.7.1         
[init] Using Authorization modes: [Node RBAC]   
[preflight] Running pre-flight checks           
can not mix '--config' with other arguments  

@luxas @mattmoyer @caesarxuchao I tried compiling but get this error:
install steps

    sudo su
    apt-get install software-properties-common build-essential
    add-apt-repository ppa:longsleep/golang-backports
    apt-get update
    apt-get install golang-go
    wget https://github.com/kubernetes/kubernetes/archive/v1.7.0.tar.gz
    tar -xzvf v1.7.0.tar.gz && cd kubernetes-1.7.0
    make
        ...... after the error.:
        rm -rf .make/
        make clean

Error

    cmd/gke-certificates-controller                                                                                                                                                              
# k8s.io/kubernetes/cmd/kubelet                                                                                                                                                                  
/usr/lib/go-1.8/pkg/tool/linux_amd64/link: running gcc failed: fork/exec /usr/bin/gcc: cannot allocate memory                                                                                    

# k8s.io/kubernetes/federation/cmd/kubefed                                                                                                                                                       
/usr/lib/go-1.8/pkg/tool/linux_amd64/link: running gcc failed: fork/exec /usr/bin/gcc: cannot allocate memory                                                                                    

# k8s.io/kubernetes/cmd/gendocs                                                                                                                                                                  
fatal error: runtime: out of memory                                                                                                                                                              

runtime stack:  

@jujes sorry to hear that. It looks like you need more available memory on your build machine.

The fix for this bug should be backported to the next 1.7 point release (1.7.2) sometime soon. Unfortunately, I don't know exactly when that will be available. The PR to watch is https://github.com/kubernetes/kubernetes/pull/48946.

@mattmoyer Planned sometime this week, depending on test health

hi @mattmoyer thanks for reply my issue

until sometime soon and from the last 4 days I spend a lot of time trying to work with kubeadm, I think kubeadm is vital piece for beginners like me, following this idea, I sugest offer an clear guide for use stable version or a way to change it for a previus working version...

I need pass etcd: endpoints: into --config file.yaml what is only possible using this file, no way under flag definitions?? @luxas @caesarxuchao

thanks in advance,

I'm working around this issue on Ubuntu by manually installing kubeadm version 1.7.0:

apt-get install kubeadm=1.7.0-00

@luxas note this bug breaks your kubeadm-workshop script: https://github.com/luxas/kubeadm-workshop/blob/master/e2e-script.sh#L1

@jbw976 I know. Fix is in for v1.7.2 which is coming tomorrow

Was this page helpful?
0 / 5 - 0 ratings