How to tailor your application for a LXD cloud
This page is dedicated to more advanced topics related to using LXD with Juju. The main page is Using LXD with Juju.
The topics presented here are:
- Charms and LXD profiles
LXD Profiles
LXD profiles define a way to create and modify instances using configuration files. More information about LXD profiles can be found in their documentation.
Charms and LXD profiles
Juju (v.2.5.0
) supports LXD profiles for charms. This is implemented by including file lxd-profile.yaml
in a charm’s root directory. For example, here is a simple two-line file (this is taken from the Openvswitch charm):
config:
linux.kernel_modules: openvswitch,ip_tables,ip6_tables
The profile will be applied to a LXD container that the charm is deployed into. The following functionality is built in:
- A validity check is performed on the profile(s) during the deployment of the charm. This is based on a hardcoded list of allowed items, everything else being denied. The
--force
option can be used to bypass this check but this is not recommended. The list is:
config
-boot
-limits
-migration
devices
unix-char
unix-block
gpu
usb
- Profiles are upgraded during the upgrade of the charm (
juju upgrade-charm
). - Profiles are displayed at the machine level by using either the
show-machine
command or thestatus --format=yaml
command. Below is an example of the kind of information that can be obtained from either of these two commands:
lxd-profiles:
juju-default-lxd-profile-0:
config:
linux.kernel_modules: openvswitch,ip_tables,ip6_tables
See the LXD documentation to learn about the valid profile configuration options.
Last updated 2 months ago.