CLI v1.13.0
Using the CLI
Control the Edera Protect daemon.
protect [OPTIONS] <COMMAND>Subcommands:
zoneManage the zones on Edera Protect.workloadManage the workloads on Edera Protect.imageManage the images on Edera Protect.networkManage the network on Edera Protect.deviceManage the devices on Edera Protect.hostManage the host of Edera Protect.object-capabilityInspect and use object capabilities.completionOutput shell completion code for the specified shell.
Options:
-c,--connection <CONNECTION>The connection URL to the Edera Protect daemon [default value:unix:///var/lib/edera/protect/daemon.socket].--user-agent <USER_AGENT>User agent to connect to the daemon as [default value:edera-protect-ctl/0.0.1].
zone
Manage the zones on Edera Protect.
protect zone <COMMAND>Subcommands:
attachAttach to the zone console. CTRL+] to exit.listList zone information.vcpu-listDisplay information about a zone’s vCPUs and their pinning.resolveResolve a zone name to matching zone ids.launchLaunch a new zone.destroyDestroy a zone.suspendSuspend a running zone.resumeResume a suspended zone.exportExport a zone’s full state to a snapshot file.importImport a zone from a snapshot file.forkFork a running zone into a new memory-shared child zone.execExecute a command inside the zone.port-forwardForward local TCP connections to a port inside a zone.forgetForget destroyed zones (clear their tombstones).logsView the logs of a zone.metricsRead metrics from the zone.topDashboard for running zones.watchWatch for zone changes.update-resourcesUpdate the available resources to a zone.configure-networkConfigure the network of an external network backend zone.advertise-serviceAdvertise a service in a zone.unadvertise-serviceUnadvertise a service in a zone.kernel-eventsManage kernel events from zones.
attach
Attach to the zone console. CTRL+] to exit.
protect zone attach <ZONE>Arguments:
<ZONE>Zone to attach to, either the name or the uuid.
list
List zone information.
protect zone list [OPTIONS] [ZONE]Arguments:
<ZONE>Limit to a single zone, either the name or the uuid.
Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].-l,--selector <SELECTOR>A selector for filtering the result set. Currently only supports ‘=’ and the ‘status.state’ field. Supported states include ‘creating’, ‘created’, ‘ready’, ‘destroying’, ‘destroyed’, ‘failed’, ‘suspending’, ‘suspended’, ‘resuming’ and ‘forking’, with or without the ‘zone_state_’ prefix. (e.g.--selector status.state=failedor--selector status.state=ZONE_STATE_FAILED).
vcpu-list
Display information about a zone’s vCPUs and their pinning.
protect zone vcpu-list [OPTIONS] [ZONE]Arguments:
<ZONE>Zone to list vCPUs for, either the name or the uuid.
Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
resolve
Resolve a zone name to matching zone ids.
protect zone resolve [OPTIONS] <NAME>Arguments:
<NAME>The zone name to resolve.
Options:
-f,--firstIf there are multiple matching zones, only print the first zone id.
launch
Launch a new zone.
protect zone launch [OPTIONS]Options:
--pull-overwrite-cacheOverwrite image cache on pull.--pull-updateUpdate image on pull.-n,--name <NAME>Name of the zone.--min-cpus <MIN_CPUS>Minimum vCPUs available for the zone [default value:4].-C,--max-cpus <MAX_CPUS>Maximum vCPUs available for the zone [default value:4].-c,--target-cpus <TARGET_CPUS>Target vCPUs for the zone to use [default value:1].--cpus-hard-affinity <CPUS_HARD_AFFINITY>vCPUs to host CPUs hard affinity.--cpus-soft-affinity <CPUS_SOFT_AFFINITY>vCPUs to host CPUs soft affinity.--min-memory <MIN_MEMORY>Minimum memory available to the zone, in megabytes [default value:0].-M,--max-memory <MAX_MEMORY>Maximum memory available to the zone, in megabytes [default value:1024].-m,--target-memory <TARGET_MEMORY>Target memory for the zone to use, in megabytes [default value:1024].--create-scratch-disk <CREATE_SCRATCH_DISK>Create a scratch disk of size, in MiB.--attach-scratch-disk <ATTACH_SCRATCH_DISK>Attach a host disk as a scratch disk.-D,--device <DEVICE>Devices to request for the zone.-k,--kernel <KERNEL>OCI kernel image for zone to use [deprecated: prefer –kernel-variant].--kernel-variant <KERNEL_VARIANT>Named kernel variant to use. Takes precedence over –kernel if both are given. Useprotect-ctl image list-kernel-variantsto see available kernels.-I,--initrd <INITRD>OCI initrd image for zone to use.--kernel-verboseEnable verbose logging on the kernel.--kernel-cmdline <KERNEL_CMDLINE>Additional kernel cmdline options.--kernel-module <KERNEL_MODULE>Additional kernel modules to load.--kernel-module-parameter <KERNEL_MODULE_PARAMETER>Additional kernel module parameters to add.--kernel-cmdline-append <KERNEL_CMDLINE_APPEND>Additional kernel cmdline options (raw).--assume-network-reservation <ASSUME_NETWORK_RESERVATION>Assume an already allocated network reservation.--retain-network-reservationRetain network reservation after zone destruction.-R,--resource-adjustment-policy <RESOURCE_ADJUSTMENT_POLICY>Resource adjustment policy [possible values:static,dynamic].-V,--virt-backend <VIRT_BACKEND>Virtualization backend [possible values:auto,pv,pvh].-N,--network-backend <NETWORK_BACKEND>Network backend [possible values:default,none,external,passthrough].--numa-nodes <NUMA_NODES>Requested vNUMA node count; 0 (default) lets the daemon pick based on vCPU count and host topology [default value:0].--numa-strategy <NUMA_STRATEGY>Strategy for selecting additional NUMA nodes beyond the seed [default value:compact] [possible values:compact,scatter].-A,--addon <ADDON>Addons for the zone.--sysctl <SYSCTL>sysctl parameters to set on the zone.--vm-image <VM_IMAGE>Boot the zone from this VM disk image (filename under the daemon’s vm-image directory). Mutually exclusive with the container payload flags (–kernel, –initrd, –addon, –create-scratch-disk, –attach-scratch-disk).--vm-image-format <VM_IMAGE_FORMAT>Disk image format for –vm-image; required when –vm-image is set [possible values:raw,qcow2].--timeout <TIMEOUT>Seconds to wait for the zone to be ready before giving up; 0 waits indefinitely. Only used with –wait/–attach [default value:60].-a,--attachAttach to the zone after zone starts, implies –wait.-W,--waitWait for the zone to be ready, implied by –attach.-S,--with-spireRun a SPIRE agent in the zone.--pki-adapterRun the certificate adapter from the daemon’s [pki.adapter] config in the zone.
destroy
Destroy a zone.
protect zone destroy [OPTIONS] [ZONE_IDENTIFIER]Arguments:
<ZONE_IDENTIFIER>Zone to destroy, either the name or the uuid. Optional when--selectoris specified.
Options:
-W,--waitWait for the destruction of the zone to complete.-A,--allDestroy all zones matching the input.-l,--selector <SELECTOR>A selector for filtering the result set. Currently only supports ‘=’ and the ‘status.state’ field. Supported states include ‘creating’, ‘created’, ‘ready’, ‘destroying’, ‘destroyed’, ‘failed’, ‘suspending’, ‘suspended’, ‘resuming’ and ‘forking’, with or without the ‘zone_state_’ prefix. (e.g.--selector status.state=failedor--selector status.state=ZONE_STATE_FAILED).
suspend
Suspend a running zone.
protect zone suspend [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to suspend, either the name or the uuid.
Options:
-W,--waitWait for the zone to be suspended.
resume
Resume a suspended zone.
protect zone resume [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to resume, either the name or the uuid.
Options:
-W,--waitWait for the zone to be ready.
export
Exports a zone’s vcpus, memory, hypervisor configuration, device topology, spec and workloads into a single snapshot file that protect zone import turns back into a running zone.
The zone is suspended for the whole export so the snapshot is one consistent instant, then resumed unless –leave-suspended is given; a zone that was already suspended is exported as it is and left suspended.
A zone whose workloads mount host paths, or which has passthrough devices, is refused: neither would work in the imported zone.
The contents of the zone’s writable disks are always embedded; read-only images are referenced by path.
–file is where the snapshot goes and –output is how this command reports what it did. With the snapshot itself on stdout (--file -) the report goes to stderr, so it cannot end up inside the snapshot; -o quiet suppresses it, and the progress indicator with it.
protect zone export [OPTIONS] --file <FILE> <ZONE>Arguments:
<ZONE>Zone to export, either the name or the uuid.
Options:
-f,--file <FILE>File to write the snapshot to;-writes tostdout.-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].-S,--leave-suspendedLeave the zone suspended after the export instead of resuming it.-c,--compressCompress the snapshot.
import
Rebuilds a zone from a file produced by protect zone export, resuming the guest exactly where it was exported.
The imported zone gets a fresh id and, on the default network backend, a fresh address, so a snapshot can be imported alongside the zone it came from.
–count imports the same snapshot more than once, giving that many independent zones from one export. Each copy is a separate upload of the file, so it cannot be combined with reading the snapshot from stdin.
Left to itself, an import keeps the exported zone’s name when it is free and otherwise takes the next free 2, 3 suffix, as does every further copy. –name overrides the exported name and is used as given, with copies after the first named <name>2, <name>3 and so on, skipping any name already taken.
The import is refused, with every reason, if this host cannot continue the guest: a different CPU vendor or missing CPU features, a clock it would have to emulate, an older hypervisor, a different zone agent protocol, or read-only images the snapshot references that are missing or changed here.
–smart-fork changes how –count makes the copies after the first: it uploads the snapshot once, imports one zone from it, suspends that zone, forks the rest from the one instant, and resumes it. The copies share the first one’s memory, so they cost a fraction of the time and disk – and because there is only one upload, –smart-fork works with a snapshot on stdin and with –zone-id. It needs the fork feature enabled as well as snapshot.
The default output is one zone id per line, which is what a script reads to find out what it just made. The other formats name and describe the zones instead, which costs a listing to find out; -o quiet prints nothing.
protect zone import [OPTIONS] --file <FILE>Options:
-f,--file <FILE>Snapshot file to import, or ‘-’ to read from stdin.-n,--name <NAME>Name for the imported zone; overrides the snapshot’s.--zone-id <ZONE_ID>Import under this zone id instead of a freshly allocated one.-c,--count <COUNT>Number of copies to import from the snapshot; the file is uploaded once per copy unless –smart-fork is given [default value:1].--smart-forkWith –count, import one zone and fork the rest from it, uploading the snapshot only once.-W,--waitWait for the imported zone to be ready.-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
fork
Fork a running zone into a new memory-shared child zone.
protect zone fork [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to fork, either the name or the uuid.
Options:
-n,--name <NAME>Name for the forked child zone.-c,--count <COUNT>Number of forks to create; each child name is suffixed with its index [default value:1].-W,--waitWait for each forked zone to be ready.
exec
Execute a command inside the zone.
protect zone exec [OPTIONS] <ZONE> [COMMAND]...Arguments:
<ZONE>Zone to exec inside, either the name or the uuid.<COMMAND>Command to run inside the zone.
Options:
-e,--env <ENV>Environment variables.-w,--working-directory <WORKING_DIRECTORY>Working directory.-t,--ttyAllocate tty.
port-forward
Forward local TCP connections to a port inside a zone.
protect zone port-forward [OPTIONS] <ZONE> <PORTS>Arguments:
<ZONE>Zone to forward to, either the name or the uuid.<PORTS>Ports to forward, as [BIND_ADDRESS:]LOCAL_PORT:REMOTE_PORT.
Options:
--remote-address <REMOTE_ADDRESS>Address to dial inside the zone [default value:127.0.0.1].
forget
Clears the tombstone record for destroyed zones. Tombstones are the in-memory record retained after a zone is destroyed so post-mortem tooling (protect zone logs, debug reports) can still inspect them. They expire automatically after the daemon’s linger window; this command evicts them sooner – most importantly so a new zone can reuse a destroyed zone’s name without ambiguity.
Forgetting a tombstone is low-risk: the live zone is already gone, so the only consequence of being wrong is losing post-mortem visibility into the destroyed zone. That’s why a bare protect zone forget (no arguments) forgets every tombstone – it’s the most common operation (“tidy up”) and has no failure mode worth gating behind a flag.
protect zone forget [OPTIONS] [ZONE]Arguments:
<ZONE>Optional zone name or uuid. If omitted, every tombstone is forgotten. If a name matches multiple tombstones,--allis required to disambiguate.
Options:
-A,--allWhen<ZONE>is a name matching multiple tombstones, forget all of them rather than refusing.
logs
View the logs of a zone.
protect zone logs [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to show logs for, either the name or the uuid.
Options:
-f,--followFollow output from the zone.
metrics
Read metrics from the zone.
protect zone metrics [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to read metrics for, either the name or the uuid.
Options:
-o,--output <OUTPUT>Output format [default value:tree] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
top
Dashboard for running zones.
protect zone topwatch
Watch for zone changes.
protect zone watch [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
update-resources
Update the available resources to a zone.
protect zone update-resources [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to update resources of, either the name or the uuid.
Options:
--min-cpus <MIN_CPUS>Minimum vCPUs available to the zone (0 means previous value) [default value:0].-C,--max-cpus <MAX_CPUS>Maximum vCPUs available to the zone (0 means previous value) [default value:0].-c,--target-cpus <TARGET_CPUS>Target vCPUs for the zone to use (0 means previous value) [default value:0].--cpus-hard-affinity <CPUS_HARD_AFFINITY>vCPUs to host CPUs hard affinity.--cpus-soft-affinity <CPUS_SOFT_AFFINITY>vCPUs to host CPUs soft affinity.--min-memory <MIN_MEMORY>Minimum memory available to the zone, in megabytes (0 means previous value) [default value:0].-M,--max-memory <MAX_MEMORY>Maximum memory available to the zone, in megabytes (0 means previous value) [default value:0].-m,--target-memory <TARGET_MEMORY>Target memory for the zone to use, in megabytes (0 means previous value) [default value:0].-p,--adjustment-policy <ADJUSTMENT_POLICY>Adjustment policy [possible values:static,dynamic].
configure-network
Configure the network of an external network backend zone.
protect zone configure-network [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to update resources of, either the name or the uuid.
Options:
--zone-interface <ZONE_INTERFACE>Zone Network Interface.--zone-ipv4 <ZONE_IPV4>Zone IPv4 Network.--zone-ipv6 <ZONE_IPV6>Zone IPv6 Network.--gateway-ipv4 <GATEWAY_IPV4>Zone Gateway IPv4 Network.--gateway-ipv6 <GATEWAY_IPV6>Zone Gateway IPv6 Network.--zone-mac <ZONE_MAC>Zone MAC Address.--mtu <MTU>Zone MTU.
advertise-service
Advertise a service in a zone.
protect zone advertise-service --service <SERVICE> <ZONE>Arguments:
<ZONE>Zone with the service, either the name or the uuid.
Options:
--service <SERVICE>Service Name.
unadvertise-service
Unadvertise a service in a zone.
protect zone unadvertise-service --service <SERVICE> <ZONE>Arguments:
<ZONE>Zone with the service, either the name or the uuid.
Options:
--service <SERVICE>Service Name.
kernel-events
Manage kernel events from zones.
protect zone kernel-events <COMMAND>Subcommands:
streamStream kernel events from a zone.list-syscallsList all available syscalls.
kernel-events stream
Stream kernel events from a zone.
protect zone kernel-events stream [OPTIONS] <ZONE>Arguments:
<ZONE>Zone to show logs for, either the name or the uuid.
Options:
-e,--enabled-events <ENABLED_EVENTS>Zone event types (syscall ids, etc) to enable notifications for.
kernel-events list-syscalls
List all available syscalls.
protect zone kernel-events list-syscallsworkload
Manage the workloads on Edera Protect.
protect workload <COMMAND>Subcommands:
launchLaunch a new workload.execExecute a command inside the workload.attachAttach to a workload console.resolveResolve a workload name to matching workload ids.startStart a workload.stopStop a workload.destroyDestroy a workload.listList workload information.watchWatch for workload changes.
launch
Launch a new workload.
protect workload launch [OPTIONS] --zone <ZONE> <OCI> [COMMAND]...Arguments:
<OCI>Container image for zone to use.<COMMAND>Command to run the workload.
Options:
--image-format <IMAGE_FORMAT>Image format [default value:squashfs] [possible values:squashfs].--pull-overwrite-cacheOverwrite image cache on pull.--pull-updateUpdate image on pull.-n,--name <NAME>Name of the workload.-W,--waitWait for the workload to be started.-t,--ttyAllocate tty for the workload.-a,--attachAttach to workload console.--disable-all-namespacesDisable all process namespaces.--disable-namespace <DISABLE_NAMESPACE>Process namespaces to disable [possible values:mount,uts,ipc,user,pid,net,cgroup,time].--strict-user-namespaceEnable strictness of user namespaces on the workload.--read-only-rootfsEnable read-only rootfs.--no-new-privsPrevent workload from requesting new privileges after launch.-e,--env <ENV>Environment variables set in the workload.-m,--mounts <MOUNTS>Mount host directories into the workload (in the formsrc=<HOSTDIR>:dst=<WORKLOAD_PATH>[:ro=true][:cache=cached|none]).-b,--block-device <BLOCK_DEVICE>Mount host block device into the workload (in the formsrc=<HOSTDEV>:dst=<WORKLOAD_PATH>[:ro=true]).--cap-add <CAP_ADD>Capabilities to add.--cap-ambient-add <CAP_AMBIENT_ADD>Ambient capabilities to add.--cap-drop <CAP_DROP>Capabilities to drop.--privilegedRun workload with elevated privileges.-w,--working-directory <WORKING_DIRECTORY>Working directory.--user <USER>User name or id.--group <GROUP>Group name or id.-z,--zone <ZONE>Zone to launch on, can be a name or id.--mount-scratch-disk <MOUNT_SCRATCH_DISK>Mount zone scratch disk on a certain directory.--hostname <HOSTNAME>Hostname inside the workload.--pci-device <PCI_DEVICE>PCI devices to attach to the workload.--ocap-consume <OCAP_CONSUME>Object capability to consume as NAME[=PROVIDER] (repeatable). NAME may be a capability type implemented by several providers; PROVIDER pins one implementation instead of taking the highest-priority one, e.g. ‘dev.edera/bar=dev.edera/foo’.--ocap-publish <OCAP_PUBLISH>Object capability to publish as NAME[=COMMAND ARGS] (repeatable). The command is split with shell word rules, so quote arguments containing spaces, e.g. ‘dev.edera/x/fetch=/bin/holder fetch 1’.--ocap-implements <OCAP_IMPLEMENTS>Capability types a published capability satisfies, as NAME=TYPE[,TYPE] (repeatable). NAME must match an –ocap-publish, e.g. ‘dev.edera/foo=dev.edera/bar’.--enable-spire-accessMount the SPIRE agent’s Workload API socket into the workload at /shared/zone/sockets/agent.sock, read-only, for workloads that can fetch their own SVID with a SPIFFE client. Requires a zone launched with –with-spire.--enable-identityHave the zone agent fetch this workload’s SVID and write it into the workload at /run/spire/identity, read-only, assvid.<n>.pem,svid.<n>.keyandbundle.<trust-domain>.pem, for workloads with no SPIFFE client. Requires a zone launched with –with-spire.--require-signatureGive this workload a SPIFFE identity only when its image has a verified signature from an identity the daemon’s [spire.sigstore] config allows. The daemon refuses the launch unless that config names allowed identities. With –enable-identity, the registered entry also requires edera:image-signature:verified.--squash-uid <SQUASH_UID>KVM only: squash this workload’s writable host mounts into its zone’s own host identity (also changes the owner of each mount’s host path), so guest writes never land as a real host account. A number pins the exact host UID, ‘auto’ opts in with one allocated from the zone’s credential pool. Setting either this or –squash-gid opts in; independent of it otherwise.--squash-gid <SQUASH_GID>KVM only: same as –squash-uid, for the host gid. Setting either this or –squash-uid opts in; independent of it otherwise.--ocap-priority <OCAP_PRIORITY>Preference weight for a published capability, as NAME=N (repeatable). Higher wins among providers of the same capability; NAME must match an –ocap-publish.
exec
Execute a command inside the workload.
protect workload exec [OPTIONS] <WORKLOAD> [COMMAND]...Arguments:
<WORKLOAD>Workload to exec inside, either the name or the uuid.<COMMAND>Command to run inside the zone.
Options:
-e,--env <ENV>Environment variables.-w,--working-directory <WORKING_DIRECTORY>Working directory.-t,--ttyAllocate tty.--user <USER>User name or id.--group <GROUP>Group name or id.
attach
Attach to a workload console.
protect workload attach <WORKLOAD>Arguments:
<WORKLOAD>Workload to attach to, either the name or the uuid.
resolve
Resolve a workload name to matching workload ids.
protect workload resolve [OPTIONS] <NAME>Arguments:
<NAME>The workload name to resolve.
Options:
-f,--firstIf there are multiple matching workloads, only print the first workload id.
start
Start a workload.
protect workload start <WORKLOAD>Arguments:
<WORKLOAD>Workload to start, either the name or the uuid.
stop
Stop a workload.
protect workload stop <WORKLOAD> [TIMEOUT]Arguments:
<WORKLOAD>Workload to stop, either the name or the uuid.<TIMEOUT>How long to wait for the workload to stop (in seconds) before forcibly killing it, default 0.
destroy
Destroy a workload.
protect workload destroy [OPTIONS] [WORKLOAD_IDENTIFIER]Arguments:
<WORKLOAD_IDENTIFIER>Workload to destroy, either the name or the uuid. Optional when--selectoris specified.
Options:
-W,--waitWait for the destruction of the workload to complete.-a,--allDestroy all workloads matching the input.-l,--selector <SELECTOR>A selector for filtering the result set. Currently only supports ‘=’ and the ‘status.state’ field. Supported states include ‘creating’, ‘created’, ‘running’, ‘completed’, ‘destroying’, ‘destroyed’ and ‘failed’, with or without the ‘workload_state_’ prefix. (e.g.--selector status.state=failedor--selector status.state=WORKLOAD_STATE_FAILED).
list
List workload information.
protect workload list [OPTIONS] [WORKLOAD]Arguments:
<WORKLOAD>Limit to a single workload, either the name or the uuid.
Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].-l,--selector <SELECTOR>A selector for filtering the result set. Currently only supports ‘=’ and the ‘status.state’ field. Supported states include ‘creating’, ‘created’, ‘running’, ‘completed’, ‘destroying’, ‘destroyed’ and ‘failed’, with or without the ‘workload_state_’ prefix. (e.g.--selector status.state=failedor--selector status.state=WORKLOAD_STATE_FAILED).
watch
Watch for workload changes.
protect workload watch [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
image
Manage the images on Edera Protect.
protect image <COMMAND>Subcommands:
pullPull an image into the cache.importImport an image into the cache.removeRemove an image from the cache.pruneRemove cached images whose linked blob is gone.listList cached images.list-kernel-variantsList the named kernel variants the daemon can resolve.
pull
Pull an image into the cache.
protect image pull [OPTIONS] <IMAGE>Arguments:
<IMAGE>Image name.
Options:
-s,--image-format <IMAGE_FORMAT>Image format [default value:squashfs] [possible values:squashfs,tar,directory].-n,--no-updateDon’t update from registry.-o,--overwrite-cacheOverwrite image cache.-U,--username <USERNAME>Auth username.-P,--password <PASSWORD>Auth password.-T,--registry-token <REGISTRY_TOKEN>Auth registry token.--identity-token <IDENTITY_TOKEN>Auth identity token.
import
Import an image into the cache.
protect image import [OPTIONS] --digest <DIGEST> --image <IMAGE>Options:
-d,--digest <DIGEST>Image digest.-n,--image <IMAGE>Image name.-s,--image-format <IMAGE_FORMAT>Image format [default value:squashfs] [possible values:squashfs,tar,directory].-o,--overwrite-cacheOverwrite image cache.-i <INPUT_FILE>Input image tar [default value:/dev/stdin].
remove
Remove an image from the cache.
protect image remove [OPTIONS] <DIGEST>Arguments:
<DIGEST>Image digest.
Options:
-s,--image-format <IMAGE_FORMAT>Image format [default value:all] [possible values:all,squashfs,tar,directory].
prune
Remove cached images whose linked blob is gone.
protect image prunelist
List cached images.
protect image list [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
list-kernel-variants
List the named kernel variants configured under [zone.kernel-variants] in daemon.toml. These names are the values accepted by zone launch --kernel-variant and the dev.edera/kernel-variant pod annotation.
protect image list-kernel-variants [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
network
Manage the network on Edera Protect.
protect network <COMMAND>Subcommands:
reservationManage network reservations.
reservation
Manage network reservations.
protect network reservation <COMMAND>Subcommands:
createCreate network reservation.destroyDestroy network reservation.listList network reservation information.
reservation create
Create network reservation.
protect network reservation createreservation destroy
Destroy network reservation.
protect network reservation destroy <RESERVATION>Arguments:
<RESERVATION>Reservation to destroy.
reservation list
List network reservation information.
protect network reservation list [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
device
Manage the devices on Edera Protect.
protect device <COMMAND>Subcommands:
listList device information.
list
List device information.
protect device list [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
host
Manage the host of Edera Protect.
protect host <COMMAND>Subcommands:
cpu-topologyDisplay information about the host CPU topology.resourcesGet aggregate memory, CPU, and topology resources of the host.statusGet information about the host.control-snoopSnoop on the Control API.idm-snoopSnoop on the IDM bus.hv-consoleDisplay hypervisor console output.hv-debug-infoRead hypervisor debug information.hv-zone-detailsDisplay per-domain memory and resource usage from the hypervisor.spire-startLaunch a SPIRE server zone (the daemon runs the server using its [spire] config).
cpu-topology
Display information about the host CPU topology.
protect host cpu-topology [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
resources
Get aggregate memory, CPU, and topology resources of the host.
protect host resources [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
status
Get information about the host.
protect host status [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
control-snoop
Snoop on the Control API.
protect host control-snoop [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].--filter-internalsFilters out user agents matching edera-protect-*, excluding the CLI.
idm-snoop
Snoop on the IDM bus.
protect host idm-snoop [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:simple] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
hv-console
Display hypervisor console output.
protect host hv-consolehv-debug-info
Read hypervisor debug information.
protect host hv-debug-infohv-zone-details
Display per-domain memory and resource usage from the hypervisor.
protect host hv-zone-details [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
spire-start
Launch a SPIRE server zone (the daemon runs the server using its [spire] config).
protect host spire-start [OPTIONS]Options:
--pull-overwrite-cacheOverwrite image cache on pull.--pull-updateUpdate image on pull.-n,--name <NAME>Name of the zone.--min-cpus <MIN_CPUS>Minimum vCPUs available for the zone [default value:4].-C,--max-cpus <MAX_CPUS>Maximum vCPUs available for the zone [default value:4].-c,--target-cpus <TARGET_CPUS>Target vCPUs for the zone to use [default value:1].--cpus-hard-affinity <CPUS_HARD_AFFINITY>vCPUs to host CPUs hard affinity.--cpus-soft-affinity <CPUS_SOFT_AFFINITY>vCPUs to host CPUs soft affinity.--min-memory <MIN_MEMORY>Minimum memory available to the zone, in megabytes [default value:0].-M,--max-memory <MAX_MEMORY>Maximum memory available to the zone, in megabytes [default value:1024].-m,--target-memory <TARGET_MEMORY>Target memory for the zone to use, in megabytes [default value:1024].--create-scratch-disk <CREATE_SCRATCH_DISK>Create a scratch disk of size, in MiB.--attach-scratch-disk <ATTACH_SCRATCH_DISK>Attach a host disk as a scratch disk.-D,--device <DEVICE>Devices to request for the zone.-k,--kernel <KERNEL>OCI kernel image for zone to use [deprecated: prefer –kernel-variant].--kernel-variant <KERNEL_VARIANT>Named kernel variant to use. Takes precedence over –kernel if both are given. Useprotect-ctl image list-kernel-variantsto see available kernels.-I,--initrd <INITRD>OCI initrd image for zone to use.--kernel-verboseEnable verbose logging on the kernel.--kernel-cmdline <KERNEL_CMDLINE>Additional kernel cmdline options.--kernel-module <KERNEL_MODULE>Additional kernel modules to load.--kernel-module-parameter <KERNEL_MODULE_PARAMETER>Additional kernel module parameters to add.--kernel-cmdline-append <KERNEL_CMDLINE_APPEND>Additional kernel cmdline options (raw).--assume-network-reservation <ASSUME_NETWORK_RESERVATION>Assume an already allocated network reservation.--retain-network-reservationRetain network reservation after zone destruction.-R,--resource-adjustment-policy <RESOURCE_ADJUSTMENT_POLICY>Resource adjustment policy [possible values:static,dynamic].-V,--virt-backend <VIRT_BACKEND>Virtualization backend [possible values:auto,pv,pvh].-N,--network-backend <NETWORK_BACKEND>Network backend [possible values:default,none,external,passthrough].--numa-nodes <NUMA_NODES>Requested vNUMA node count; 0 (default) lets the daemon pick based on vCPU count and host topology [default value:0].--numa-strategy <NUMA_STRATEGY>Strategy for selecting additional NUMA nodes beyond the seed [default value:compact] [possible values:compact,scatter].-A,--addon <ADDON>Addons for the zone.--sysctl <SYSCTL>sysctl parameters to set on the zone.--vm-image <VM_IMAGE>Boot the zone from this VM disk image (filename under the daemon’s vm-image directory). Mutually exclusive with the container payload flags (–kernel, –initrd, –addon, –create-scratch-disk, –attach-scratch-disk).--vm-image-format <VM_IMAGE_FORMAT>Disk image format for –vm-image; required when –vm-image is set [possible values:raw,qcow2].--timeout <TIMEOUT>Seconds to wait for the zone to be ready before giving up; 0 waits indefinitely. Only used with –wait/–attach [default value:60].-W,--waitWait for the zone to be ready before returning.
object-capability
Inspect and use object capabilities. Also available as protect ocap.
protect object-capability <COMMAND>Subcommands:
listList published object capabilities.dialRun a session against a published object capability.
list
List published object capabilities.
protect object-capability list [OPTIONS]Options:
-o,--output <OUTPUT>Output format [default value:table] [possible values:table,tree,json,json-pretty,jsonl,yaml,key-value,simple,quiet].
dial
Run a session against a published object capability.
protect object-capability dial [OPTIONS] <NAME> [ARGS]...Arguments:
<NAME>Capability requested, e.g.dev.edera/bar. May be a capability type implemented by several providers.<ARGS>Program and arguments to run.
Options:
--provider <PROVIDER>Pin the implementation published under this name instead of taking the highest-priority provider, e.g.dev.edera/foo.-t,--ttyAllocate an interactive tty.-e,--env <ENV>Environment variables (KEY=VALUE).
completion
Output shell completion code for the specified shell.
protect completion <SHELL>Arguments:
<SHELL>[possible values:bash,elvish,fish,powershell,zsh].