This document describes the Juju execution flow for a Kubernetes / machine charm.
The Juju controller sends an event to a unit agent that is in the charm container / VM. The unit agent executes the charm according to certain environment variables. When this happens, the environment variables are translated by the operator framework Ops into the events in the charm code, and the charm then responds with the event handlers in the charm code. All of this is represented schematically in the diagram below, where the top depicts the situation for a Kubernetes charm and the bottom – for a machine charm.