Juju Charm Store and CI

Sandor Zeestraten sandor at zeestrataca.com
Tue Feb 27 21:44:46 UTC 2018


 Hey Juju folks,

I feel like I'm hitting some rough spots while setting up a simple pipeline
which pushes a charm build to the edge channel using the charm store CLI.
The last Juju Show (#30) talked about macaroon support in libjuju and CI
which sounds great, but that seems to be aimed at those using libjuju
and/or JAAS controllers.

Here are some of the steps for a new project:
* Create a launchpad team for a namespace in the charm store
    - Fair enough
* Create a launchpad CI user/bot and add it project so we can push to the
store without using personal credentials
    - This feels like a hack and rather insecure. Why not use limited
deploy/API keys? https://github.com/juju/charmstore/issues/776
* Manually login to launchpad with the CI user in order to activate it in
the charm store
    - This gotcha took me a few moments to figure out.
https://jujucharms.com/docs/stable/authors-charm-store#the-juju-charm-store
* Manually login to the charm store with the CI user with `charm login` to
create a token.
    - Had to find this bug, https://github.com/juju/c
harmstore-client/issues/61, after I figured out that `charm login` did not
have a non-interactive way to authenticate
    - This is still not document anywhere as far as I can tell.
https://github.com/juju/charmstore-client/issues/145
    - According to the comments in #61 it needs to be updated periodically
    - I've seen another approach using expect, https://lists.ubuntu.c
om/archives/juju/2017-November/009691.html, but that seems like a
workaround too
* Encrypt and deploy token to a specific directory in CI in order for
`charm login` to work
    - Again, https://github.com/juju/charmstore-client/issues/61 and
https://github.com/juju/charmstore-client/issues/145
* Mess around with `charm push` and `charm release` in order to push charm
to the edge channel
    - This involves dealing with revisions which feels rather unnecessary
    - See https://github.com/juju/charmstore-client/issues/135 and
https://github.com/juju/charmstore-client/issues/146
* Celebrate with your favourite beverage

How are you all interacting with the charm store with your charm CI?
Am I missing some obvious steps which would simplify things?
Is anyone working on proper deploy/API keys for the charm store?

Cheers
--
Sandor Zeestraten
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20180227/cdf198ec/attachment.html>


More information about the Juju mailing list