Open igalic opened 6 years ago
i just realized this is a resurrection of #202. and honestly, i think it's very necessary.
if we want to provide backwards compatibility, we should do this shims that our users can install themselves in place of the iocace_legacy
Great idea, that would allow us to be more strict/consequent with the CLI command logic. For example
ioc create <jail>
or ioc create -b <jail> [<jail_options>]
ioc set <jail> <jail_options>
We should offload the discussion to the Wiki and see where we hit issues.
i was thinking about the documentation, especially in the context of copy on the iocage website, which uses the word cage on the front-page.
if we start from the definition of a cage is a zfs backed jail, then we should be constantly talking of cage not jail within (lib)iocage.
Before we move this issue any further, I'd like to discuss
to do that, i'd first like to document the commands we have right now, and group them by the Object they work on:
Command | Description |
---|---|
activate | Set a zpool active for iocage usage. |
clone | Clone and promote jails. |
console | Login to a jail. |
create | Create a jail. |
deactivate | Disable a ZFS pool for libioc. |
destroy | Destroy specified resource |
exec | Run the given command inside the specified... |
export | Export a jail to a backup archive |
fetch | Fetch and update a Release to create Jails... |
fstab | View and manipulate a jails fstab file. |
get | Gets the specified property. |
import | Import a jail from a backup archive |
list | List a specified dataset type, by default... |
migrate | Migrate jails to the latest format. |
pkg | Manage packages in a jail. |
promote | Clone and promote jails. |
provision | Trigger provisioning of jails. |
rename | Rename a stopped jail. |
restart | Restarts the specified jails. |
set | Sets the specified property. |
snapshot | Take and manage resource snapshots. |
start | Starts the specified jails or ALL. |
stop | Stops the specified jails or ALL. |
update | Update a jail to a new release or patchlevel. |
The first obvious "object" i can identify is the one that uses the commands start
, stop
, restart
, exec
and console
— none of those commands work without a "live" jail.
but after that, it gets kinda hazy (for me)
for reasons of backwards compatibility, we've made
ioc
's command line interface as inconsistent as its predecessors'.currently we have three formats, which mostly differ where the
<jail>
, that is being operated on is placed, and how it's passed.via the
--name
option:as first (and only parameter)
as first parameter of infinitely many:
as last parameter of infinitely many:
i propose standardizing on one format. if we want to provide backwards compatibility, we should do this shims that our users can install themselves in place of the iocace_legacy (
/usr/local/sbin/iocage
) or iocage (/usr/local/bin/iocage
) binaries.