I see in Charmhub there’s multiple channels for a charm, and there’s means to use --channel in upgrade-charm or deploy. This is great for a release process, but I wonder: Is there a way to specify the charm channel in the bundle yaml?
I’d like to have a bunch of charms, and deploy a bundle using the current, stable release - that’s easy. Then I’d like to deploy a fresh bundle on top of that, using new charm urls, pointing at a candidate release for those charms. Currently, e.g. with Telegraf, I’d use
cs:telegraf for the stable charm, and
cs:~llama-charmers-next/telegraf for the candidate. Unfortunately that’s a different namespace (stable is
cs:~llama-charmers/telegraf), and that means there’s a risk that folks will push a fresh build to
cs:~llama-charmers/telegraf after testing in order to release, which will break testing. The solution would be to pull and then push to the right namespace, but it’s risky. Channels solves my problems elegantly.
What I can do currently is this:
- deploy a bundle using
- upgrade the charm with
juju upgrade-charm --switch cs:telegraf --channel candidate telegraf
What I’d like to do is deploy a bundle with a bunch of charms, from the candidate channel when I specify it.
I am sure I could use, e.g.
-8 is the candidate revision, but I would then have to scrape through and find out those numbers when ideally I’d write a test bundle that can be re-used across multiple releases.
Am I missing a switch/parameter in the bundle?