Application¶
See also: How to manage applications
In Juju, an application is a running abstraction of a charm in the Juju model. It is whatever software is defined by the charm. This could correspond to a traditional software package but it could also be less or more.
An application is always hosted within a model and consists of one or more units.
An application can have resources, a configuration, the ability to form relations, and actions.
Application endpoint¶
In Juju, an application endpoint is a struct defined in an application’s charm’s metadata.yaml
/ (since Charmcraft 2.5) charmcraft.yaml
consisting of
a name (charm-specific),
a role (one of
provides
,requires
= ‘can use’, orpeers
), andan interface
whose purpose is to help define a relation.
For example, the MySQL application deployed from the mysql
charm has an endpoint called mysql
with role provides
and interface mysql
and this can be used to form a non-subordinate relation <non-subordinate-relation relation with WordPress.
All charms have an implicit (not in their metadata.yaml
/ charmcraft.yaml
) endpoint with name juju-info
, role provides
, and interface juju-info
which can be used to form subordinate relations with subordinate charms that have an explicit endpoint with name juju-info
, role requires
, and interface juju-info
(e.g., mysql-router
).