-
-
Notifications
You must be signed in to change notification settings - Fork 17
add network.allocate_ip option to allow for rootless CNI bridge utilisation #45
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
Conversation
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
|
For the test errors - this goes back to the sylabs name switch. I can either update the version or if you want to edit the file, if you go up to 3.8.1 ish I think it should work! It should be in .circleci/config.yaml. |
|
You'll also want to run |
|
Thanks @vsoch I will tweak the circleci config until I get it to work :) |
|
I think perhaps you forgot to save the circle config? |
|
🤦🏼♂️ That makes sense, I must be blind today lol |
|
I actually do that all the time - don't push control S hard enough and I forget to push one of my changes! |
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
|
It seems like the latest version I can point the org to is 3.7.3...any release beyond that has the asset file name changed from I will play with that more after lunch, thanks for the help vanessa |
vsoch
left a comment
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.
Looks like the circle config needs a bit more work:
make: Entering directory `/go/src/github.com/sylabs/singularity/builddir'
GEN /go/src/github.com/sylabs/singularity/scripts/go-generate
GO singularity
[+] GO_TAGS "containers_image_openpgp sylog oci_engine singularity_engine fakeroot_engine apparmor selinux seccomp"
# github.com/seccomp/libseccomp-golang
../vendor/github.com/seccomp/libseccomp-golang/seccomp_internal.go:26:2: error: #error Minimum supported version of Libseccomp is v2.2.0
#error Minimum supported version of Libseccomp is v2.2.0
If you can figure out a fix, that's great, but this is out of scope for what you are doing here, so feel free to wait for me to debug - I can probably make some time over the weekend.
In the meantime, we can still discuss the design here! A quick question I have is - is there any reason to have this as a command line param instead of an option or similar in a singularity-compose.yaml? Either we would have one or the other (for some logical reason) or both. I'm leaning towards having it in the yaml (and removing the command line option) unless this use case is special.
And the only other things beyond that will be to run formatting with black, and then add some notes to the documentation for what is the final implementation.
|
@PauloMigAlmeida sounds good! I'm thinking we might need a new release of the circle orb (that I own and can do) but probably won't be able to do it until the weekend. |
|
okay I have a new orb to test - |
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
Let me know if I can be of any assistance, I'm happy to help.
Good point. I thought that adding it as an item on Tbh, I'm flexible with the implementation though... what would you prefer?
Done |
|
Thank you! I should be able to test it from here! I do agree it's different/ separate from a singularity option. I think my question would be - is this something that you'd want to maintain with your singularity-compose.yaml (e.g., could the same recipe be run with and without this flag so it shouldn't be kept with the recipe itself?) If it's a consistent thing that is always needed, then I think it should be in the singularity-compose too. What about something like a network group? E.g., version: "2.0"
instances:
app:
build:
context: ./app
network:
allocate_ip: false # defaults to true |
|
On the code format subject, you may have come across with this one too. When running The error only happens when using the version <= I installed the version on that circle ci is installing via conda (so everything works out) but in case this happens in the future, you know why =) |
|
Ah thank you! Yes this has definitely happened to me before as well - black is a moving target! |
You are right, this should be kept at the compose.yml file which would be applied at the instance level rather than globally. I will change my implementation. |
|
okay I've tried everything that makes sense to no avail - I'm going to need to add for help from Sylabs on this one! Don't let the failing CI stop you from working on this - we will get it working soon! |
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
|
Thanks @vsoch! I changed the implementation to match the yaml structure that you suggested. Let me know if you have any comments on that |
|
okay posted an issue, hopefully will get some help! sylabs/singularity#338 |
|
It looks great! So we will just be waiting on the circle build - and I opened an issue on the Sylabs repo to ask for help about this error. If they don't have insight, I'll just try installing the correct version of libseccomp from source and call it a day. But hopefully they will have seen this error before. The only remaining thing to do for approval on the PR is to add notes to the docs about this field group. I think the most straight forward thing would be to add a "Network Group" section after "Network" here: https://github.com/singularityhub/singularity-compose/blob/master/docs/spec/spec-2.0.md#networking that explains the very simple options we currently have. |
The kernel version I see on the machine via the shell seems very old - so the parameter must not be taking.
Signed-off-by: Paulo Almeida <paulo.almeidarodenas@niwa.co.nz>
Sweet,
Just added a paragraph there, let me know if you want me to change anything |
|
okay I can't figure it out - I'm going to have to refactor the entire CI this weekend to not use the orb, it's beyond me why I'm getting this older kernel and what looks to be an ABI issue. Sorry for the slowness, and thanks for letting me test on this PR! |
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
vsoch
left a comment
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.
All is working! Docs look great, thanks for the changes.
|
Super! 🎉 thanks a lot @vsoch |
This PR is for a very specific scenario which has happened with me recently.
My scenario: I got access to server in which I do know (and will not possess) a privileged user and yet, I need set up the environment using singularity-composer.
It turns out that the only step in which fakeroot (for obvious reasons) won't suffice is to attach the allocated IP to a running container because that requires real root access (or at least CAP_NET_*).
So if we allow the user to run the services without allocating IPs then it can run without needing a priviledge used...something like this (fictitious example)