Version 4 bundles are identical to version 3 bundles except for a few key differences: the branch attribute of the application spec is no longer supported, they may contain a **machine specification**, and their **deployment directives are different** from version 3 bundles."
We currently use the "machines" section for our large bundles.
It may not be the most elegant way and we might need to think on how to improve large bundle experience in terms of using placement directives (e.g. using "--to 42" isn't the most descriptive directive) but it is a valid format.
Tim,
Without machine definitions it certainly does work - tested originally this way in a dup:
https:/ /bugs.launchpad .net/juju/ +bug/1713247
I can see that v3 vs v4 bundle spec differences are, in part, about having the "machines" section though:
https:/ /github. com/juju/ charmstore/ blob/v5- unstable/ docs/bundles. md#version- 4-bundles
"Version 4 bundles
Version 4 bundles are identical to version 3 bundles except for a few key differences: the branch attribute of the application spec is no longer supported, they may contain a **machine specification**, and their **deployment directives are different** from version 3 bundles."
https:/ /github. com/juju/ charmstore/ blob/v5- unstable/ docs/bundles. md#deployment- directives
"Deployment directives
Version 4 deployment directives (the to attribute on the application spec) is a YAML list of items following the format:
(<containertype >:)?(<unit> |<machine> |new)"
https:/ /github. com/juju/ juju-bundlelib/ blob/0. 5.4/jujubundlel ib/validation. py#L318- L325
is_legacy_bundle = machines is None
We currently use the "machines" section for our large bundles.
It may not be the most elegant way and we might need to think on how to improve large bundle experience in terms of using placement directives (e.g. using "--to 42" isn't the most descriptive directive) but it is a valid format.