When deploying charms on AWS public cloud, there is a constraint which allows us to deploy into named instance types.
It works something like this (Some details here):
juju deploy tiny-bash --constraints 'instance-type=t4g.nano'
Now this is very useful as it allows us to have control over spent resources and how they are composed at deploy time.
My feature request is that this feature would be carried over to LXD clouds making use of the LXD profile feature.
This would if implemented in a good way allow us to define custom or named LXD profiles to be used very much like for AWS instance-types.
We could imagine that this would look something like this:
juju deploy tiny-bash --constraints 'lxd-profile=small'
This would open up for supplying good default profiles for things like cuda, usb-support, x11, multi-nic, infiniband etc. etc. But custom profiles are what I personally would love to have access to for my LXD clouds.
It is possible today, to include a lxd profile yaml to a charm codebase (Like in this lxd-profile charm). This has the drawback, that it is very static and doesn’t allow a charmer to alter the deployment of the same charm to different profiles. Making changes to the profile, require changes to the charm which is not as dynamic.
Let me know your thoughts on this.
Oh, and for knowledge, this instance-type feature for AWS is not documented well and especially not with “juju deploy --help” @tmihoc which makes it a bit of a secret killer feature nobody knows about. =)