New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix vagrant not use runc #3546
Fix vagrant not use runc #3546
Conversation
May be we can pin Docker version to one where runc works. As while working on Mac if I need to try/test out any runc related aspect I rely on Vagrant image. So if it works with some older version we can pin Docker to that and keep runc enabled |
The problem vagrant is using ubuntu16 and installs latest stable, for example 18.03.0-ce, so the invoker image would need to be rebuild with the matching version. If you are trying and testing runc related things, then is better to experiment with the latest stable release. I added docs for this special case, for an user to experiment with runc. The version we recommend and we currently test in Travis and have it pinned in the invoker is an older version 1.12 |
I was able to figure out how to increase the size of the disk with a vagrant plugin. @mdeuser check if the plugin works on windows. |
c26a82a
to
9e94af5
Compare
@mdeuser can you test this branch one more time. I remove the disksize plugin since you reported problems running on Windows. I just a got a clean deploy
skipping the runtimes I was able to not run out of disk space
My timings:
|
@csantanapr Are the steps to change box size similar to one posted by @neerajmangal here. In that case can we at least leave the config in |
@chetanmeh not the same procedure At least in OSX I was able to use a vagrant plugin to which requires one line in Vagrant :-) tonset new size of disk like 50GB Another option is to create a second disk and configure docker to use it for images, but I have not figure out how easy to do that. My intention is to merge this PR to unblock folks and deal with building all images later if required. |
Can you share the command so that at least Mac users can workaround if required
+1. Makes sense to deal with this later. For now ~4GB of free space should be good enough |
tools/vagrant/README.md
Outdated
## Safe Re-deploy (after VM restart) | ||
## Using docker-runc | ||
Only for experimental use: | ||
To use docker-runc the docker-runc CLI use in the invoker needs to match the version on the docker engine host. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"To use docker-runc,
the docker-runc CLI used
in by
the invoker"
tools/vagrant/README.md
Outdated
@@ -156,6 +158,14 @@ vagrant ssh | |||
wsk action invoke /whisk.system/utils/echo -p message hello --result | |||
``` | |||
|
|||
## Other Runntimes | |||
The default vagrant deploy only deploys nodejs:6 runtime kind, as the image runs out of space if all runtimes are built. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"runtime kind , asbecause
the image runs"
tools/vagrant/README.md
Outdated
The CLI is available in `../../bin`. There you will find binaries specific to | ||
various operating systems and architectures (e.g. `../../bin/mac/amd64/wsk`). | ||
The CLI is available in `../../bin`. | ||
The CLI in `../../bin/wsk` would be for Linux amd64. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"The CLI in ../../bin/wsk
would be is"
tools/vagrant/README.md
Outdated
## Using docker-runc | ||
Only for experimental use: | ||
To use docker-runc the docker-runc CLI use in the invoker needs to match the version on the docker engine host. | ||
Get the version of the docker engine like the following: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this to find the version of the docker-runc
CLI used for deploying openwhisk docker images or the one used by the invoker? i'm thinking this is the former.. probably should say so for clarity
tools/vagrant/README.md
Outdated
$ docker version | grep Version | ||
Version: 18.03.0-ce | ||
``` | ||
Update the Invoker Dockerfile to download a newer version of the docker-cli |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think this sentence is implying
- compare the docker-runc version obtained on the local system against the docker-runc configured for the invoker
- if the versions are different, only then do you need to update the invoker dockerfile to point to the matching docker download
``` | ||
Then update line with the curl download command like | ||
``` | ||
RUN curl -sSL -o docker-${DOCKER_VERSION}.tgz https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just wondering. the current line is RUN curl -sSL -o docker-${DOCKER_VERSION}.tgz https://get.docker.com/builds/Linux/x86_64/docker-${DOCKER_VERSION}.tgz && \
it's interesting that the docker 1.12.0 version has a different download template URL (i.e. host name is different, some path segments are different), so i'm wondering if this path may be docker version specific..?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
newer version have a different location.
tools/vagrant/README.md
Outdated
ansible-playbook -i environments/local initdb.yml | ||
# recreate main db for entities | ||
ansible-playbook -i environments/local wipe.yml | ||
# teardown all containers expect couchdb container |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"expect except
" typo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually is all container to take down
su vagrant -c 'ansible-playbook -i environments/local setup.yml' | ||
su vagrant -c 'ansible-playbook -i environments/local prereq.yml' | ||
su vagrant -c 'ansible-playbook -i environments/vagrant setup.yml' | ||
su vagrant -c 'ansible-playbook -i environments/vagrant prereq.yml' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
currently, the -i environments/local
is used for vagrant installations. will that continue to work with this new vagrant installation/environment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes for the most part is the same
tools/vagrant/README.md
Outdated
``` | ||
Then update the ansible configuration to enable the use of runc, edit [](../../ansible/environments/vagrant/group_vars/all) | ||
``` | ||
invoker_use_runc: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
will the following Vagrantfile command update in this PR
su vagrant -c 'ansible-playbook -i environments/vagrant openwhisk.yml -e invoker_use_runc=False'
override that ansible property value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
@mdeuser updated the readme with your comments. |
* fix vagrant to not use runc * setup gitattributes for auth files * address review comments for readme
Travis doesn't support vagrant, I tried linux and osx.