Updates from October, 2017 Toggle Comment Threads | Keyboard Shortcuts

  • jeffpihach 3:35 pm on October 30, 2017 Permalink | Reply  

    Juju GUI: get your users started with getstarted.md 

    Help your users get started with your solution by providing them the first steps in using your newly deployed bundle or charm. The latest release of the Juju GUI now displays a rendered markdown file to the user after deploying a bundle or charm with a getstarted.md file.

    Screen Shot 2017-10-26 at 10.12.32 AM

    Adding this functionality to your bundle deployments couldn’t be easier. Simply add a getstarted.md file to the root of your bundle archive with valid markdown and it will be rendered after the deployment has started.

    The getstarted.md file should include the users next steps, and to help you build the best guide possible. We have outlined a few best practices below.

    • State prerequisites upfront so they don’t start down a path they can’t finish.
    • List the minimum number of steps that they should follow to see the charm working at some level of success. e.g get your users to a web dashboard or a REPL. We suggest using fewer than 10 steps.
    • Give your user links to sensible next steps. Link to external resources, most important first.

    Extra points to keep in mind

    • Remember your user is in the GUI.
    • Start instruction with verbs – write in the imperative tense.
    • Write the simplest actions. Concentrate on what they need to do to get started.
    • Use code blocks for CLI commands.
    • Use the format of machines, protocols, and full paths to make reaching the most important endpoints of your application obvious.

    Examples of some quickstart.md files

  • bradcrittenden 8:57 pm on March 1, 2017 Permalink | Reply
    Tags: Beta, ,   

    Introducing JAAS – Juju as a Service 

    Recently on jujucharms.com we opened the public beta of JAAS — Juju as a Service. Let’s explore what JAAS is and how you can participate now in the beta.

    Models and Controllers

    First, a little background to put the changes we’ve introduced into context. Juju allows you to model your service-oriented architecture and manage the deployment to public clouds, OpenStack, local hardware, and containers. Using the GUI, which is installed with every deployment of Juju, you can visualise your model and configure the parts.

    To manage the deployments, Juju requires a controller, a management node that keeps track of all of the components in your deployed model, handles scaling, and all of the other magic Juju does. When you use the command-line command juju bootstrap you are simply creating a controller. If you’re using a public cloud, that controller is a resource you’re charged to use like any other machine. Bear in mind a highly available deployment will require multiple bootstrapped controllers, so your expense for those nodes will be tripled if you have three HA controllers.

    Although it doesn’t take a long time to bootstrap a new controller, it isn’t instantaneous. Further, each controller is an island to itself, any configuration you make to one controller is not reflected in the others. Identity management is one type of configuration that is beneficial to share across models.

    What JAAS introduces is a common controller that is always deployed that you can use to create your models — the things you actually care about. Since it is already running, and maintained by us, you can skip the juju bootstrap step and simply start by using juju add-model to begin your work.

    Public beta of JAAS

    For the public beta we have set up a controller for everyone to use. Every new model created at jujucharms.com/new is attached to the public controller.  You can also access it from the command-line, which will be explained later.

    So with the beta of JAAS we are providing:

    • anonymous user access to modelling in the GUI from jujucharms.com/new,
    • support for all three big clouds (AWS, Azure, and Google) through a single controller, available from a web browser or CLI,
    • identity management across all models,
    • user access management to models,
    • model sharing via URLs, and
    • everything else that Juju offers!

    Use of the controller during the beta period will be free of charge! Models you create will use your public cloud credentials and you’ll be charged for them but the use of the controller is free.

    Getting started

    To start modelling you don’t even have to be logged in. Just visit jujucharms.com/new and begin adding applications from the charm store to your model. When you’re done adding services, applying any custom configuration, and creating the relations between them you can download and save a bundle file or go ahead and deploy to a public cloud. To do the deployment you’ll need to provide your credentials for the cloud and your cloud provider will charge you for those instances you use. Once you’ve added your credentials to the controller they are securely stored for you and you can deploy future models using them.

    Currently we have controllers in two regions for each of the three supported public clouds and will add more as use increases. We provide HA controllers in the U.S. and in Europe for each cloud.


    Maintaining a production environment is a team effort so JAAS allows you to easily share access and management of your models with your project members. When you grant access to others they can see your model in the browser via jujucharms.com or by using Juju on the command line.

    With recent changes to the GUI models are individually addressable via a shareable URL. For instance if I had a model named wordpress it could be shared and seen by going to jujucharms.com/u/bac/wordpress.

    You can also see models shared with you by visiting your profile page at jujucharms.com/u/[your_user_name]. Here is the profile page of my colleague Jeff showing that I’ve shared my wordpress model with him. He’s also got another model shared by Uros.


    Sharing can be done via the command line with the juju grant command.

    juju grant hatch@external read wordpress

    Or in the GUI using the share button, seen below at the far right.


    That button brings up a dialog that looks like


    The user names must include a domain. Currently we use external (e.g. hatch@external) but that will change soon. So, for now, just append @external on the end of your collaborator’s Ubuntu SSO name. Use everyone@external to make a model publicly available.


    If you have a model shared with you as read-only you clearly cannot make changes to it. But given the URL scheme used you can request changes from the model owner. Suppose Jeff is viewing my wordpress model and wants to add an HA Proxy service. While viewing my model he can search for HA Proxy and the resulting URL in the context of my wordpress model is https://jujucharms.com/u/bac/wordpress/haproxy/40. Jeff could then email me that URL and request I add it to the model. When I go directly to that URL I would merely click the Add to canvas button and it would be done.

    JAAS controller registration

    Models you create on jujucharms.com are already created using the JAAS controller. In order to use that controller from the command line, you need to first register it. This is done with the command:

    $ juju register jimm.jujucharms.com


    Adding a model

    From the command line you add a model using juju add-model. But when working with the JAAS controller you’ve got to provide information about the cloud and region to use since the controller knows about three public clouds with two regions each.

    The following command will add a k8s model to the Google cloud using region us-east1 using the previously saved bac-gce credentials.

    $ juju add-model k8s google/us-east1 --credential bac-gce


    We have worked hard to bring JAAS to this point and it is very functional. This program is currently in a beta state. If you do encounter a bug please let us know by filing it at https://github.com/CanonicalLtd/jujucharms.com/issues. You can also reach the team in real-time in the #juju channel on Freenode IRC.

    Additional resources

    JAAS was introduced on the March 1, 2017, edition of the biweekly Juju Show live podcast. The recording can be found on YouTube.

  • jeffpihach 4:55 pm on October 3, 2016 Permalink | Reply  

    Juju GUI 2.2.0 released 


    We’re pleased to announce the latest feature release of the Juju GUI.

    With the GA of Juju 2 release coming very soon we’re ready to unveil the new enhanced model management in the Juju GUI. The new GUI allows you to take advantage of Juju 2’s multi-user multi-model functionality as seamlessly as you worked with a single model in the past. You can now create new models, select which region in your cloud to deploy to, add new credentials, and choose which credentials to use when deploying new models.

    For a complete rundown of the new features in the the 2.2.0 release of the Juju GUI check out this video below:


    • New and enhanced model management in this release. This new experience allows you to create new models, select which region to deploy to, add new credentials, and choose which credentials to use when deploying to new models.
    • Add Bundle Service support. This feature allows the GUI to use the external Bundle Service to import bundles when the bundle lib in Juju is not available, such as when in a sandbox or unconnected mode.
    • Add version.json asset which contains the version number and git sha used to build the GUI. To access this file visit the following path replacing the necessary values:
      /gui/[CONTROLLER UUID]/[MODEL UUID]/static/gui/build/app/version.json
    • (Fix) Logging in via USSO when you have no models.
    • (Fix) Update relation list when removing uncommitted subordinate relation.
    • (Fix) No clouds result when listing clouds.
    • (Fix) Switch between unconnected state to connected state.

    To upgrade your existing models to use this version of the GUI:

    Juju 2:

    Run `juju upgrade-gui`
    Run `juju gui –show-credentials`

    Juju 1:

    Run `juju upgrade-charm juju-gui`

    We welcome any feedback you may have on the GUI.  You can chat with us in #juju on irc.freenode.net or you can file issues at: https://github.com/juju/juju-gui/issues

  • jeffpihach 5:00 pm on September 8, 2016 Permalink | Reply  

    Juju GUI 2.1.12 released 

    The next version of the Juju GUI has been released!

    This release includes a number of fixes which bring it back in line with the recent changes in the Juju 2 betas which re-enables the ability to switch models from the GUI which was temporarily removed in the previous release.

    Other improvements include:

    • Bundles now use “applications” top level key instead of “services”.
    • Use a different WebSocket connection for the model and controller.
    • Create New Model buton moved into the user profile.
    • Deploying bundles with lxc placements automatically convert to lxd.
    • Multi-series subordinates now have their series locked to the series of the first related parent application.
    • (Fix) Local charms now deploy without issuing error about charm location.
    • (Fix) When relating to subordinates, invalid targets are now faded.

    To upgrade your existing models to use this version of the GUI:

    Juju 2 beta:

    Juju 1:

    • juju upgrade-charm juju-gui

    We welcome any feedback you may have on the GUI, you can chat with us in #juju on irc.freenode.net or you can file issues here: https://github.com/juju/juju-gui/issues

  • bradcrittenden 11:00 pm on August 30, 2016 Permalink | Reply  

    Jujucharms.com updated with new channel support 

    With today’s release of the charm store at http://jujucharms.com an important change was made to the channels used when publishing and deploying charms. Prior to this release, the charm store allowed two channels called development and stable. In order to make the experience of using Juju charms and Snappy snaps more consistent, we are adopting the channel names used by the snap store.  From this release forward there are now four charm channels: edge, beta, candidate, and stable.

    The first two, edge and beta, are to be used as development channels. A new charm would first be published to edge, for use by your development team. As it matures, the charm would be published to beta and made available to a wider audience of early adopters.

    The candidate channel is the last pre-release channel along the charm’s journey. It is intended for very mature charms that need one more round of testing and acceptance before being published to the final stable channel.

    When the new charm store was released this morning, charms with development channels were migrated to the edge channel.  To use the new channels with juju you will need to update to the Juju 2.0 beta 16 release as prior versions will no longer work with the charmstore.

    A new version of the charm command-line tool has been released as version 2.2.0. This new version supports the new channels for managing your charms in the charmstore.  It can be found in ppa:juju/stable as debs for trusty and xenial.  Marco Ceppi has also created a snap which you may prefer.  Install it with:

    snap install charm

    Should you experience issues with the new channels or anything related to the charm store, please open an issue at https://github.com/CanonicalLtd/jujucharms.com/issues or find us in #juju-gui on the Freenode IRC server.


  • bradcrittenden 9:56 am on April 15, 2016 Permalink | Reply  

    Juju 2.0 beta 4 — Now with embedded GUI 

    The newest version of Juju has been released, Juju 2.0 beta 4. One of the exciting new features is built-in support for the Juju GUI. Prior to this release one had to bootstrap Juju and then deploy the juju-gui charm or use a tool like juju-quickstart.

    With the new release it has all been greatly simplified.  Bootstrap an environment and you get a GUI running on the controller with no extra effort!

    Once you’ve bootstrapped a controller use this command to see the GUI:

    juju gui –show-credentials

    With that command the GUI will connect to your current model and open a browser to it.  You’ll need to login using the username and password printed in your terminal.

    If you have a controller that has been running for a while and want to get the latest GUI changes, all you need to do is:

    juju upgrade-gui

    That command will download the latest GUI version and replace the one currently running on your controller.

    If you want to see which versions are available run:

    juju upgrade-gui –list

    You can then upgrade or downgrade to one of the available versions by providing it to the upgrade-gui command, e.g.

    juju upgrade-gui 2.1.2

    You can even try a version of the GUI that has not yet been published in the streams by providing the path to a tarball on your local computer, e.g.

    juju upgrade-gui /path/to/release.tar.bz2

    In order to upgrade the GUI, you’ll have to have access rights to the controller. When an administrator upgrades the GUI, users will have to reload the open sessions in their browsers to see the changes.

    If for some reason you don’t want to install the GUI into the controller, simply bootstrap your controller with the –no-gui flag:

    juju bootstrap –no-gui

    We think having the GUI built into controllers automatically will be very beneficial for most users. We’ve worked hard to provide an efficient user experience and hope the interface adds a visual dimension as you model and deploy your services.

    If you find any issues or have any feedback for the Juju GUI, please let us know via our GitHub issue tracker.  You can also contact us in our IRC channel #juju-gui on freenode.

  • jeffpihach 5:33 pm on April 13, 2016 Permalink | Reply  

    Juju GUI 2.1.2 released 


    Quickly following our 2.1.0 release, which added support for Juju 2.0, we now have another patch release which brings with it a number of tweaks and fixes to make your Juju experience even better. Notable updates are:

    • Dramatically sped up the time it takes to fetch charm data in the Charm browser.
    • Dramatically sped up the time it takes to deploy bundles from the Charm browser.
    • Refreshed UI for Inspector, Machine View, and Charm browser.
    • Fixed some UI issues in Firefox.
    • Fixed asset paths for Juju 2.

    To upgrade an existing deployment:

    juju upgrade-charm juju-gui

    To deploy this release into your model:

    juju deploy juju-gui

    If you find any issues or have any feedback for the Juju GUI we’d love to hear it. Please let us know in our github repository https://github.com/juju/juju-gui/issues and we’ll be sure to get back to you.

  • jeffpihach 6:51 am on March 19, 2016 Permalink | Reply
    Tags: , ,   

    Juju GUI 2.1.1 released 


    As a quick follow up to the Juju GUI 2.1.0 release we’ve got a patch release for the Juju GUI making sure that we keep the Juju GUI interactions transparent when working with either Juju or the Juju 2 beta. Along with this release we’ve added a few additional bug and usability fixes:

    • If you have uncommitted changes we now warn you when switching models so you don’t lose your changes accidentally. We will be working towards persisting this data in the future.
    • Disable container and machine creation buttons until we’ve collected enough information to successfully create the machine.
    • Added language and content direction flags so that the input fields work better for users using rtl languages.

    To upgrade an existing deployment:

    juju upgrade-charm juju-gui

    To deploy this release into your model:

    juju deploy juju-gui

    If you find any issues or have any feedback for the Juju GUI we’d love to hear it. Please let us know in our github repository https://github.com/juju/juju-gui/issues and we’ll be sure to get back to you.

  • jeffpihach 6:49 pm on March 10, 2016 Permalink | Reply  

    Juju GUI 2.1.0 released – Now with Juju 2.0 support 

    2.1.0 juju screen
    We are excited to announce a new major release of the Juju GUI with support for Juju 2.0 (currently in beta). Juju 2.0 brings with it a ton of improvements, but one we’d like to highlight is the ability to create new models without needing to bootstrap them one by one. Interested? We explain all of the new updates to the GUI in the video below.

    Details about the release:

    • Added Juju 2.0-beta support.
    • Updated all API calls to support Juju 1.x and 2.x-beta facades.
    • Added the ability to create and switch between models in Juju 2.0.
    • Created user profile view which shows your models, bundles and charms after logging into the charmstore.
    • Added support for syntax highlighting in the charm details pages in the charmbrowser when the charm author provides a GitHub Flavored Markdown README file.
    • Added the ability to drag uncommitted units between machines in the machine view.
    • Unit statuses are now also shown in the machine view.
    • Fixed – when subordinates are deployed extra empty machines are no longer created.
    • Fixed – websockets are now closed properly when switching models.
    • Fixed – On logging out all cookies are now deleted.

    To upgrade an existing deployment:

    juju upgrade-charm juju-gui

    To deploy this release in your model:

    juju deploy juju-gui

    If you find any issues or have any feedback for the Juju GUI we’d love to hear it. Please let us know in our github repository https://github.com/juju/juju-gui/issues and we’ll be sure to get back to you.

  • bradcrittenden 1:49 pm on March 3, 2016 Permalink | Reply  

    Update to jujucharms.com 

    Update details

    Yesterday the Juju UI Engineering team updated jujucharms.com with some improvements we hope you find interesting and useful.  The highlights are:

    Improved getting started page

    The Juju installation instructions have been re-written to be more straightforward and the page is more welcoming.

    Community cards

    In order to allow charm and bundle authors an engaging way to promote their work, we’ve introduced cards, a slug of Javascript and HTML that can be embedded into a web site which will then serve a visual representation of the charm or bundle. The details are fetched from our servers so the data will always be up-to-date.  Change your bundle and the representation of it on your blog will be updated for future visitors.

    Madison has written a blog post demonstrating their use.

    Note that this first implementation is Javascript-based and therefore will not work in every environment, specifically platforms that block the use of embedded Javascript.

    Improved topic pages (e.g. big data)

    A cleaner design utilizing the cards for each bundle presented.

    Charm labeling on bundle visualisations.

    Previously the rendered image for a bundle only showed the service icons which could be confusing as there was no way to intuit the role each service played. Now we are labeling each service with the custom name so you can easily identify master/slave relationships, for example.


    If you have questions or comments on these changes, you can find us in #juju-gui on Freenode or respond here.

    If you find a bug please file it at https://github.com/CanonicalLtd/jujucharms.com/issues

Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc