See also: How to manage actions

In Juju, an action is a script that is triggered via the juju CLI client and applied to a unit. It contains a list of commands defined by a charm to allow a user with the right access level to interact with an application in ways specific to the application. This may include anything from creating a snapshot of a database, adding a user to a system, dumping debug information, etc.

See examples: Charmhub | kafka > Actions, Charmhub | prometheus-k8s > Actions, etc.

(Starting with juju v.3.0: ) Actions are identified by integers (instead of UUIDs).

(Starting with juju v.3.0: ) Running an action defaults to waiting for the output before returning. This synchronous behaviour allows actions to be easily included in command-line pipelines.

(Starting with juju v.3.0: ) The execution of an action is organised into tasks and operations. (If an action defines a named unit of work – e.g., back up the database – that can be executed on selected units, a task is the execution of the action on each target unit, and an operation is the group of tasks queued by running an action across one or more units.)