OpenMediaVault-Plugin-Developers / openmediavault-omvextrasorg

OpenMediaVault plugin for omv-extras.org repository
150 stars 53 forks source link

Docker daemon.json additional options #85

Closed muchachagrande closed 1 year ago

muchachagrande commented 1 year ago

Hi, recently I configured my docker daemon to use IPv6. It is actually in experimental state but very stable as of 2023. The way to enable IPv6 on docker to work in a way like IPv4 (masquerading the host IP with the docker network IP) is adding some options to daemon.json. These are the options to enable IPv6: } "ip6tables": true, "experimental" : true, "userland-proxy": true } Once IPv6 is enabled this way, one can create a new bridge that includes an IPv6 network and it will work with dual IP stack. The problem I found is that daemon.json is rewritten on each reconfiguration so the previous options don't survive a reload.

Is it possible to add a text box to configure docker daemon with custom options? or a checkbox that enables "Experimental IPv6 using NAT" that adds these three options to daemon.json?

NOTE: When enabling IPv6 it is possible to add a default IPv6 network to the docker0 default bridge, but being that it is experimental and that most docker containers don't need IPv6 at all the best approach is to use an additional bridge with IPv6 enabled and that can be created using the command line and is retained on docker configuration.

ryecoaaron commented 1 year ago

If you leave the path textbox blank, the plugin will not change the daemon.json file at all.

muchachagrande commented 1 year ago

So, to recap, first I configure the path I need and then I clear the textbox and the daemon.json will keep the last configured path ?

ryecoaaron commented 1 year ago

No. Always keep the path blank if you want to customize daemon.json.

muchachagrande commented 1 year ago

Ok, understood. Thank you. I think that this is a workaround to achieve what I was needing, so I'll close this issue.

muchachagrande commented 1 year ago

Just to give a feedback. The intended workaround didn't work because the plugin throws an error when trying to apply the configuration with an empty path.

ryecoaaron commented 1 year ago

You must have the testing repo enabled and you are using a non-stable version of omv-extras. If you were using the stable version, it literally skips touching the daemon.json file if the field is blank - https://github.com/OpenMediaVault-Plugin-Developers/openmediavault-omvextrasorg/blob/9a54f3cfca7377e667dbc5e55be0dcc6902da81a/usr/sbin/omv-installdocker#L325

As for re-opening the issue, I am not going to release the version in the testing repo. So, it won't be "fixed". I am in process of changing lots of things.

ryecoaaron commented 1 year ago

So, uninstall omv-extras. Then reinstall it using the script. Do not enable the testing repo.

muchachagrande commented 1 year ago

Ok. Thank you and sorry for re-opening I wanted to just give a feedback and I pressed the wrong button.

ryecoaaron commented 1 year ago

No problem. I changed a lot of things in the testing version that I didn't like and will be going a different direction. I will make sure that the field can be left empty in the next release.