kubeadm-playground exits failing OS detection on Mac /w ansible 2.3.3.0

Created on 13 Jul 2018  ยท  7Comments  ยท  Source: kubernetes/kubeadm

Versions

kubeadm repo branch:
0840c14900073b74a59891fb53c85a5587314124 (master)

ansible:

โฏ ansible --version
ansible 2.3.3.0
  config file = /Users/leigh.schrandt/.ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.14 (default, Mar 22 2018, 15:04:47) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]

OS:
MacOS Sierra
Darwin Kernel Version 16.7.0: Thu Jun 21 20:07:39 PDT 2018; root:xnu-3789.73.14~1/RELEASE_X86_64 x86_64

What happened?

The devtool fails with this message when trying to provision a new dev cluster with the default spec:

~/go/src/k8s.io/kubeadm/vagrant/hack/ansible master
โฏ ../../kubeadm-playground start

KUBEADM PLAYGROUND [Checking machine status] **********************************
All the machines are already running

KUBEADM PLAYGROUND [Preparing for ansible execution] **************************

KUBEADM PLAYGROUND [Run ansible] **********************************************

PLAY [install ansible prerequisites] **********************************************************************************************************************************************

PLAY RECAP ************************************************************************************************************************************************************************
kubeadm-test-master        : ok=1    changed=0    unreachable=0    failed=0

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.

The error appears to have been in '/Users/leigh.schrandt/go/src/k8s.io/kubeadm/vagrant/hack/ansible/roles/common/tasks/main.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

---
- import_tasks: debian.yml
  ^ here


The error appears to have been in '/Users/leigh.schrandt/go/src/k8s.io/kubeadm/vagrant/hack/ansible/roles/common/tasks/main.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

---
- import_tasks: debian.yml
  ^ here


PLAY [creates the kubeadm config] *************************************************************************************************************************************************

TASK [kubeadm-config : gets the kubeadm version] **********************************************************************************************************************************
fatal: [kubeadm-test-master]: FAILED! => {"changed": false, "cmd": "/usr/bin/kubeadm version -o short", "failed": true, "msg": "[Errno 2] No such file or directory", "rc": 2}

PLAY RECAP ************************************************************************************************************************************************************************
kubeadm-test-master        : ok=1    changed=0    unreachable=0    failed=1

What you expect

We need to make sure the minimum amount of errors are possible with the dev tools.
These are not the first issues contributors should be faced with.

/cc @fabriziopandini

help wanted kinbug prioritbacklog sicluster-lifecycle

All 7 comments

The import_tasks module is failing because it's not available in that ansible version, it's new in version 2.4 https://docs.ansible.com/ansible/2.4/import_tasks_module.html

Thanks @aojea :+1:

worth noting:

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

https://docs.ansible.com/ansible/2.4/import_tasks_module.html

Replacing all instances of import_tasks and include_tasks with include made the playbooks fully functional for my setup. This core module is deprecated though.

We should consider shipping a requirements.txt with commands to create/update/delete a virtualenv for the proper ansible version.
Unfortunately, I'm not sure if it's very simple to use docker for an ansible client because of how docker implements networking on OSX.

@stealthybox what about something like this in the README?

pip install --upgrade pip virtualenv virtualenvwrapper virtualenv ansible2.4 source ansible2.4/bin/activate pip install ansible==2.4

@aojea that looks like a good addition
@fabriziopandini and I are also working on a non-ansible solution that may remove the dep -- more to come

( worth noting virtualenv would also be a new pre-req )

/assign @stealthybox

Is this still an issue?

Closing, b/c we are deprecating playground in favor of kind
/cc @fabriziopandini

Was this page helpful?
0 / 5 - 0 ratings