ansibleplaybookbundle/ansible-playbook-bundle

“apb list”: Exception occurred! [Errno 2] No such file or directory: '/root/.kube/config'

silencehe09 opened this issue · 3 comments

Dear author:
I need your help. I have commented the condition "apb should not be run as root" in apb-docker-run.sh , because I have to run docker with root user (without considering about security in my experimental env). And I have run "apb init apb-demo && cd apb-demo && apb build " successfully. But I got exception when executing "apb list", "apb bootstrap" and so on. I have already logged in openshift with cluster-admin role . The following are some shell cmds and output:

[root@localhost data]# apb init apb-demo
Running APB image: ansibleplaybookbundle/apb-tools:latest
groupadd: GID '0' already exists
usermod: group 'apb' does not exist
Initializing /mnt/apb-demo for an APB.
Generating playbook files
Successfully initialized project directory at: /mnt/apb-demo
Please run *apb prepare* inside of this directory after editing files.
[root@localhost data]# cd apb-demo
[root@localhost apb-demo]# apb build
Running APB image: ansibleplaybookbundle/apb-tools:latest
groupadd: GID '0' already exists
usermod: group 'apb' does not exist
Finished writing dockerfile.
Building APB using tag: [apb-demo]
Successfully built APB image: apb-demo
[root@localhost apb-demo]# docker images | grep apb-demo
apb-demo                                             latest              7c7fb3baf209        14 seconds ago      603.8 MB
[root@localhost apb-demo]# apb list
Running APB image: ansibleplaybookbundle/apb-tools:latest
groupadd: GID '0' already exists
usermod: group 'apb' does not exist
Exception occurred! [Errno 2] No such file or directory: '/root/.kube/config'
[root@localhost apb-demo]# oc whoami
XXXXX(my user name)
[root@localhost apb-demo]# cat /root/.kube/config
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: xxx
  name: xxxx
...

The Linux version is CentOS7 (Linux localhost.localdomain 3.10.0-514.el7.x86_64).

Edit the script again, and in the place where it says -u $UID put -u 1000 . If that works well I'll send a patch to fix it, like in this one here

-u $UID $APB_IMAGE "$@"

I run into the same problem, and I can confirm this fixed the issue.

Cheers

The more elegant solution is just add the KUBECONFIG variable to match the volume path

-e KUBECONFIG=/.kube/config

And that will work with any $UID and will prevent errors like if the $HOME/.kube dir ownership is by uid
which is not 1000.