Machine

See also: How to manage machines

In Juju, a machine is the term used to describe a cloud instance that was requested by Juju. Specifically, it refers to compute resources, whether bare-metal servers, virtual machines, system containers, or Kubernetes pods.

Note: Although a Juju machine can denote any one of a bare-metal server, machine, system container, or Kubernetes pod, a machine charm refers strictly to charms that can run on physical machines, virtual machines, and LXD containers – charms made to run in Kubernetes are called Kubernetes charms.

See more: Charm(ed operator)

Machines will usually house a single unit of a deployed application, but this is not always the case. If directed by the user, a machine may house several units (e.g. to conserve resources) or possibly no units at all: a machine can be created independently of applications ( juju add-machine), though usually this is with the intention of eventually running an application on it.

Represented below are two Juju machines for a non-Kubernetes deployment. machine 0 has a single charm deployed directly to the machine whereas machine 1 has two charms, one deployed directly to the machine and one deployed to a LXD container within the machine:

machine

machine-lxd

It would be good to understand how to specify an image sku and instance type that the machine should be running in a cloud. Not even sure if that’s possible - can’t find documentation about it.

1 Like

Thanks for your feedback, @robgibbon! I will create a todo to ask the engineers about it.

Hi @robgibbon, Juju doesn’t allow specifying an Azure image SKU for new machines. The best you can do is specifying the series with add-machine --series foo, and setting constraints on the machine (see here for a list of possible constraints).

1 Like