podman_quadlet
The podman_quadlet domain has 7 actions. On the meta surface they are all reached through arcane_podman_quadlet; on the individual surface each one is its own tool; on the dynamic surface run them with arcane_execute_action and the canonical ID.
Summary
Section titled “Summary”| Action | Title | Kind |
|---|---|---|
podman_quadlet.create | Install quadlet | write |
podman_quadlet.delete | Remove quadlet | destructive |
podman_quadlet.file_get | Get quadlet file | read |
podman_quadlet.get | Get quadlet | read |
podman_quadlet.lifecycle | Run quadlet lifecycle action | destructive |
podman_quadlet.list | List quadlets | read |
podman_quadlet.update | Update quadlet | destructive |
Actions
Section titled “Actions”podman_quadlet.create
Section titled “podman_quadlet.create”Install quadlet
- Kind: write
- Required parameters:
content,name - Meta tool:
arcane_podman_quadletwith"action": "create" - Individual tool:
arcane_podman_quadlet_create - Arcane route:
POST /api/environments/{id}/podman/quadlets - Operation ID:
install-podman-quadlet - Since: Arcane v2.17.0
- Usage: Installs a quadlet file, as
podman quadlet install: name includes the type extension (.container, .pod, .kube, .network, .volume, .image, .build or .artifact, anything else is refused with 400), content is the unit text ([Container] Image=…, Exec=…, [Install] WantedBy=default.target to start at boot), extraFiles go beside it, and app groups it into an application (Podman 6.1+). systemd is reloaded but the unit is not started: use podman_quadlet.lifecycle start. Returns installedQuadlets (source to installed path) and quadletErrors. Needs podman:quadlets. - Related actions:
podman_quadlet.lifecycle,podman_quadlet.get,podman_quadlet.list,podman_quadlet.update
podman_quadlet.delete
Section titled “podman_quadlet.delete”Remove quadlet
- Kind: destructive — requires
confirm: true - Required parameters:
name - Meta tool:
arcane_podman_quadletwith"action": "delete" - Individual tool:
arcane_podman_quadlet_delete - Arcane route:
DELETE /api/environments/{id}/podman/quadlets/{name} - Operation ID:
delete-podman-quadlet - Since: Arcane v2.17.0
- Usage: Removes a quadlet (name from podman_quadlet.list), as
podman quadlet rm --force: its unit is stopped (which removes a .container quadlet’s container and anonymous volumes) and the file deleted. Returns removed and errors (a failure answers 409 with the reason). Images and named volumes stay. Needs podman:quadlets. - Related actions:
podman_quadlet.list,podman_quadlet.lifecycle
podman_quadlet.file_get
Section titled “podman_quadlet.file_get”Get quadlet file
- Kind: read
- Required parameters:
name - Meta tool:
arcane_podman_quadletwith"action": "file_get" - Individual tool:
arcane_podman_quadlet_file_get - Arcane route:
GET /api/environments/{id}/podman/quadlets/{name}/file - Operation ID:
get-podman-quadlet-file - Since: Arcane v2.17.0
- Usage: The text of a quadlet file (name from podman_quadlet.list), to read or edit before podman_quadlet.update. Needs podman:read.
- Related actions:
podman_quadlet.update,podman_quadlet.get
podman_quadlet.get
Section titled “podman_quadlet.get”Get quadlet
Get a quadlet with its unit status and backing containers
- Kind: read
- Required parameters:
name - Meta tool:
arcane_podman_quadletwith"action": "get" - Individual tool:
arcane_podman_quadlet_get - Arcane route:
GET /api/environments/{id}/podman/quadlets/{name} - Operation ID:
get-podman-quadlet - Since: Arcane v2.17.0
- Usage: One quadlet by its file name (name from podman_quadlet.list, e.g. web.container) with its systemd unitStatus (activeState, subState) and the containers its unit runs. Not found fails with 404. Needs podman:read.
- Related actions:
podman_quadlet.file_get,podman_quadlet.lifecycle,podman_quadlet.list
podman_quadlet.lifecycle
Section titled “podman_quadlet.lifecycle”Run quadlet lifecycle action
Start, stop, or restart the quadlet’s systemd unit
- Kind: destructive — only when
action is stop or restart; those calls requireconfirm: true, the others do not - Required parameters:
name,action - Meta tool:
arcane_podman_quadletwith"action": "lifecycle" - Individual tool:
arcane_podman_quadlet_lifecycle - Arcane route:
POST /api/environments/{id}/podman/quadlets/{name}/{action} - Operation ID:
podman-quadlet-action - Since: Arcane v2.17.0
- Usage: Starts, stops or restarts the systemd unit of a quadlet (name from podman_quadlet.list, action start, stop or restart) and returns the unit’s state after the job (activeState, subState). stop and restart need confirm=true, start does not: the unit of a .container quadlet runs its container with —rm and removes it with its anonymous volumes when it stops, so stop and restart delete the container and that data (named volumes stay, and restart creates a new container), and a .kube quadlet’s stop tears its pods down (the action cannot tell the quadlet’s type, so stop and restart ask for every type). start runs the unit, whose podman run —replace removes any other container already using the quadlet’s container name (systemd-<name>), but that is rare and start stays unconfirmed. Template quadlets (name@.container) have no unit and answer 409. Arcane reaches systemd over D-Bus, so this works only when the agent runs on the Podman host (podman.status systemdAvailable). Containers a quadlet runs are also started and stopped through their unit by container.start/stop/restart, while container.redeploy, container.edit and container.delete refuse them with 409. Needs podman:quadlets:lifecycle.
- Related actions:
podman_quadlet.get,podman_quadlet.update,container.list
podman_quadlet.list
Section titled “podman_quadlet.list”List quadlets
List installed Podman quadlets with their systemd units
- Kind: read
- Required parameters: none
- Meta tool:
arcane_podman_quadletwith"action": "list" - Individual tool:
arcane_podman_quadlet_list - Arcane route:
GET /api/environments/{id}/podman/quadlets - Operation ID:
list-podman-quadlets - Since: Arcane v2.17.0
- Usage: A page of the quadlets installed on the Podman host (name such as web.container, unitName such as web.service, path, status, type, app, template). Filter with name, pod or status (lists, pod and status need Podman 6.0+), search name, unit, type, status or app, sort by name, type, status, unitName or app, page with start and limit. Quadlets need Podman 5.8+ (else 400) and systemd on the host (Podman answers 500 ‘connecting to systemd dbus’ without it). See podman.status. Needs podman:read.
- Related actions:
podman_quadlet.get,podman_quadlet.create,podman_quadlet.file_get,podman.status
podman_quadlet.update
Section titled “podman_quadlet.update”Update quadlet
Replace a quadlet file, keeping its application
- Kind: destructive — requires
confirm: true - Required parameters:
name,content - Meta tool:
arcane_podman_quadletwith"action": "update" - Individual tool:
arcane_podman_quadlet_update - Arcane route:
PUT /api/environments/{id}/podman/quadlets/{name} - Operation ID:
update-podman-quadlet - Since: Arcane v2.17.0
- Usage: Replaces a quadlet file (name from podman_quadlet.list) with content and its extraFiles, keeping its application. systemd is reloaded, but a running unit keeps its old definition until podman_quadlet.lifecycle restart. Read the current text with podman_quadlet.file_get first. Needs podman:quadlets.
- Related actions:
podman_quadlet.file_get,podman_quadlet.lifecycle