Semantics and meaning of the official image aliases for Ubuntu builds

Hi there,

when looking at the output of lxc image info ubuntu:lts I was wondering when looking at the list of aliases.

Aliases:
    - 16.04
    - 16.04/amd64
    - default
    - default/amd64
    - lts
    - lts/amd64
    - x
    - x/amd64
    - xenial
    - xenial/amd64

The following aliases do not name a particular release:

    - default
    - default/amd64
    - lts
    - lts/amd64

Instead they refer to a “trait” of the image (“default” and “lts” respectively).

Does that mean if I keep a local up-to-date copy of ubuntu:lts (via lxc image copy ubuntu:lts local: --copy-aliases --auto-update), it will automatically update the image to the most recent LTS release? I.e. will this become the Bionic Beaver release with the release of 18.04? For LTS I’d somehow expect that to happen.

Also, in particular the semantics of default would be interesting as well. Does that always point to the latest LTS release or does it have a subtly different meaning from lts? What is its meaning?

Thank you!

Yep, copying ubuntu:lts will make the copied image update to Ubuntu 18.04 at some point after its release (we may wait a little while before flipping the alias).

default is the “magic” alias we have to control what you get when you do lxc launch ubuntu:, the current logic is to have it point to the latest LTS release too.

Ah, excellent. Thanks for the swift and concise response. And also thanks for giving the world LXC and LXD.