Skip to content
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

[WIP] Booting/testing something in CI #19

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

ijc
Copy link
Contributor

@ijc ijc commented Dec 5, 2017

Very incomplete right now, will work on it as time allows.

@ijc ijc force-pushed the ci-boot-something branch 9 times, most recently from 1b28512 to d0cd661 Compare December 7, 2017 11:06
@ijc
Copy link
Contributor Author

ijc commented Dec 7, 2017

This is hitting issues with the linuxkit build getting randomly SIGKILL'd, I think it is getting squashed by the OOM killer and raised moby/tool#191 to reduce the memory overheads. I'm also experimenting with the resource_class to see if that helps in the meantime (as a short term band-aid, although it looks like it will become a paid only feature before too long).

@ijc ijc force-pushed the ci-boot-something branch 2 times, most recently from ff41e99 to 7636f01 Compare December 7, 2017 11:36
@ijc
Copy link
Contributor Author

ijc commented Dec 7, 2017

Early indications are that medium+ (3 CPU 6GB RAM) is insufficient while large (4 CPU 8GB RAM) is enough.

In moby/tool#191 I observed the initial RAM usage before my changes was 6.7GB which seems consistent with getting SITH on a 6GB limit. I also noted that tar used more like 2GB, which explains why they mostly work since the default medium has 4GB RAM, although they do still fail occasionally so perhaps there can be spikes or differences around other factors like content trust.

@ijc ijc force-pushed the ci-boot-something branch 2 times, most recently from 8e10db4 to a22eacb Compare December 8, 2017 16:26
@GordonTheTurtle
Copy link
Collaborator

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:

$ git clone -b "ci-boot-something" [email protected]:ijc/linuxkit-kubernetes.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842354248512
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

@ijc
Copy link
Contributor Author

ijc commented Jan 15, 2018

We have no MacOS workers in circle (seems it is a paid only feature) so the jobs just hang forever waiting to be assigned.

It's been suggested we could try using the same gcp account as the linuxkit/linuxkit CI and use linuxkit run gcp. Need to take care not to leak VMs though and to thoroughly cleanup.

@errordeveloper
Copy link
Contributor

It's been suggested we could try using the same gcp account as the linuxkit/linuxkit CI and use linuxkit run gcp. Need to take care not to leak VMs though and to thoroughly cleanup.

This makes sense. The only concern that I have is how long would it take to upload a build from Circle to GCP... We would also have to cleanup image, as I'm pretty sure they charge for storing them. The alternative would be to build and run on a VM that supports nested virt. IIRC there is a new instance type GCP that supports nested virt.

@ijc
Copy link
Contributor Author

ijc commented Jan 17, 2018

@rn is experimenting with the nested virt stuff on the main linuxkit repo now, will wait and see how he gets on.

It might indeed be too much data to upload for each PR, may turn out better to deploy a VM to build the images whether we then test them nested or in a new VM altogether.

@errordeveloper
Copy link
Contributor

Also, if use nested virt, it means someone can reproduce the tests locally very easily, we could even provide a generalised script for folks to re-use in private LinuxKit projects. Just reiterating what I've said earlier...

@rn
Copy link
Member

rn commented Jan 17, 2018

linuxkit/linuxkit#2871 has the right runes for enabling nested virt. The image needs to have a "special license" (some string in the Licenses field) and the instance needs to be Haswell or newer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants