Jip-Hop / jailmaker

Persistent Linux 'jails' on TrueNAS SCALE to install software (docker-compose, portainer, podman, etc.) with full access to all files via bind mounts thanks to systemd-nspawn!
GNU Lesser General Public License v3.0
313 stars 31 forks source link

Remove jlmkr install command #176

Closed Jip-Hop closed 4 days ago

Jip-Hop commented 2 weeks ago

Beginning with 24.04 (Dragonfish), TrueNAS SCALE includes the systemd-nspawn containerization program in the base system. Technically there's nothing to install.

Running jlmkr.py install currently automatically sets up an alias so the user can run jlmkr conveniently. But because this is done automatically, the user doesn't know what jailmaker is actually doing under the hood during install (actually very little). So the user can't easily undo/modify these actions, since the user didn't manually execute them. Creating an alias is really all there is to it since 24.04 (and even that could be considered optional)!

So to get rid of legacy code and prevent questions like this: https://github.com/Jip-Hop/jailmaker/discussions/93#discussioncomment-9278199, https://github.com/Jip-Hop/jailmaker/issues/117 and https://github.com/Jip-Hop/jailmaker/issues/175.

I should remove jlmkr.py install. Update the documentation on how to manually create a shell alias for jlmkr and ask stux to create a new video (or add annotations to skip running install and instead manually create an alias).

Since removing a command would be a breaking change I'm planning this for the next major version.

Removing the install command would make this release of jailmaker incompatible with any (past and future) release which doesn't include systemd-nspawn.

Past releases which don't include systemd-nspawn:

https://github.com/Jip-Hop/jailmaker/issues/16

https://ixsystems.atlassian.net/browse/NAS-123533

Version 23.10 includes all dependencies as well (albeit implicitly). So removing the install command from v2.0.0 basically means dropping support for TrueNAS SCALE 22.12.

TheFou commented 1 week ago

Hi! Why make the "install" process more complicated (even this little) by removing this command ? You should simplify it instead by adding a uninstall / remove command, which would remove the aliases. And maybe bulletproof the install command a little more, so you can be sure it recreates the aliases if needed, to prevent issues you mention.

the user doesn't know what jailmaker is actually doing under the hood during install

The user shouldn't 😄

Lockszmith-GH commented 1 week ago

I'm on the side of "The user should defintly know", otherwise they shouldn't use jails - stick to the GUI with VMs and Apps.

Setting up jails is an involved process, the user MUST understand networking and volume binds, not to mention permissions.

Personally, I don't want anything to touch my USER environment files, as they are highly customized. So letting users know they need to know the full path, or add an alias in their .bashrc seems like a good step forward.

This isn't over-complicating it for the user, but it is simplifying the support process of those users.