Updates from March, 2017 Toggle Comment Threads | Keyboard Shortcuts

  • 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.

  • bradcrittenden 7:02 pm on December 23, 2015 Permalink | Reply
    Tags: ,   

    Juju GUI 2.0 Beta released 

    We are really happy to announce availability of the new and shiny beta version of Juju GUI 2.0 with completely redesigned and rewritten user interface and improved user experience. The new GUI introduces:

    • redesigned canvas, relation management and charm handling with the new inspector,
    • improved integration with the charm store, unifying the web experience at jujucharms.com,
    • new machine view with drag’n’drop functionality – allocating units has never been easier,
    • creation and switching between models within a controller, and
    • new bundle deploys.

    Not much has stayed the same, so it’s best if you give the new GUI a try yourself.

    We’re aware of the small details that need polish before we close the beta, but we’d like to make the 2.0 release rock solid and therefore would appreciate as much feedback from you as possible. Should you discover a bug, use the GitHub issue tracker to file a report. Please provide as much information as possible, e.g. the cloud provider, the output of ‘juju version’, steps made, errors from the browser console, etc.

    Machine view Model Empty canvas Store

    The major changes for this release are:

    GUI with controllers and models

    If you would like to test the GUI against a Juju controller, the JES feature flag needs to be enabled before bootstrapping. This will enable you to create, list and manage models directly from the GUI.

    juju bootstrap

    Deploying the Juju GUI 2.0 beta

    Juju 1.25 or older

    The charm is available via the charmstore URL cs:~yellow/trusty/juju-gui and at https://jujucharms.com/u/yellow/juju-gui on the web. Just do the usual:

    juju deploy cs:~yellow/juju-gui

    Juju master (1.26 alphas)

    Recent Juju builds support a new publishing mechanism and can properly parse URLs with the development channel. If you’re using recent Juju builds, bootstrap a controller on a cloud of your choice and use the development version of the promulgated Juju GUI charm located at cs:development/juju-gui or https://jujucharms.com/development/juju-gui on the web. You can deploy the development version of the charm with:

    juju deploy cs:development/juju-gui

    You should see a response similar to:

    Added charm “cs:development/trusty/juju-gui-42” to the environment.
    Deploying charm “cs:development/trusty/juju-gui-42” with the charm series “trusty”.


    We hope you find the new GUI easier to use and find the layout to be more intuitive. Enjoy using it and let us know what you think!

  • Francesco 12:39 pm on June 18, 2015 Permalink | Reply
    Tags: ,   

    Juju Quickstart 2.2.0 

    We are happy to announce the 2.2.0 release of Juju Quickstart!

    Juju Quickstart helps both new and experienced users to quickly start Juju and the Juju GUI, whether they’ve never installed Juju or they have an existing Juju environment running.

    From the last update on this blog, we introduced several new features like support for the Google Compute Engine provider (which increases to 9 the number of supported providers) and updates to environments’ definitions, together with other minor improvements and bug fixes.
    Here are the release notes for version 2.2.0:

    • Add support for loading uncommitted bundles on the Juju GUI.
    • Allow configuring the Juju GUI so that it listens to a customized port.
    • On existing environments, automatically detect the port used by the GUI server.
    • Fix SSH agent handling when using uncommon shells.

    From the list above, there are two noteworthy changes we would like to highlight.

    Support for uncommitted bundles

    With the release of Juju GUI 1.4.0 it is now possible to import a bundle into the GUI canvas as a set of changes to be committed later. This way the bundle can be finely tuned and tweaked before actually committing the changes. For instance, you can modify scalability settings, machine placements, configuration options and constraints for each individual service, and even the resulting topology itself, so that the workload really fits your needs, and, only at that point, send the resulting changes to the Juju environment.

    This functionality is now available from the command line too, thanks to the new Juju Quickstart’s
    -u (or --uncommitted) flag.
    You can use it like the following:

    juju-quickstart -u openstack-base

    The command above will not automatically start the bundle deployment, but instead the provided bundle will be loaded in the GUI, waiting to be customized and then committed.

    For more about uncommitted bundles, have a look at this blog post.

    Customized Juju GUI ports

    The Juju GUI, by default, listens for HTTPS connections on port 443. It also redirects insecure requests (port 80) to port 443. Sometimes it can be useful to configure the GUI so that it listens to a different port. For instance, this is handy when you want to co-locate another web service on the same machine.
    Juju Quickstart now provides the ability to directly specify a customized port for the GUI, e.g.:

    juju-quickstart --gui-port 4242

    On subsequent Quickstart runs, the application will automatically detect that the GUI is listening to the customized port and react accordingly, by establishing WebSocket connections to that port, and by opening the browser to the right URL at the end of the execution.


    The program is available on Ubuntu releases 12.04 LTS (precise), 14.04 LTS (trusty), 14.10 (utopic), 15.04 (vivid) and on OS X (10.7 and later). To install and start Juju Quickstart on Ubuntu, run these commands:

    sudo add-apt-repository ppa:juju/stable
    sudo apt-get update && sudo apt-get install juju-quickstart
    juju-quickstart [-i]

    On OS X, use Homebrew:

    brew install juju-quickstart
    juju-quickstart [-i]

    For more details, see juju-quickstart --help.



  • Francesco 10:33 pm on April 30, 2014 Permalink | Reply
    Tags: ,   

    juju-quickstart 1.3.2 released 

    Juju Quickstart helps both new and experienced users quickly start Juju from Ubuntu.
    Release 1.3.2 is out, and includes the following new features/bug fixes:

    • Ability to deploy the Juju GUI trusty charm on trusty environments.
    • Support for the Joyent provider.
    • Make control-bucket optional.
    • Improve Urwid unicode support.

    To install and start Juju Quickstart, run these commands:

    sudo add-apt-repository ppa:juju/stable
    sudo apt-get update && sudo apt-get install juju-quickstart
    juju-quickstart [-i]

    More details on juju-quickstart are available in this blog post.


    • juan caballero 2:18 am on May 3, 2014 Permalink | Reply

      hi i notice that there is no juju-quickstart for maas. for us metal users. is there going to be a maas option like ec2,local,azure..

      • Rick Harding 9:11 pm on October 5, 2014 Permalink | Reply

        Just to follow up, quickstart 1.4.4 is out and has maas support built in. It’s available via pypi and the juju stable ppa, and we’re working to get it updated for the utopic release.

    • Francesco 9:20 am on May 6, 2014 Permalink | Reply

      Hi Juan,
      yes MAAS support is definitely in our TODO list.
      Hopefully we will be able to work on that over the next weeks.

      • Ricky 2:23 pm on August 14, 2014 Permalink | Reply

        Totally second the MAAS juju-quickstart request! 🙂

  • Francesco 3:47 pm on March 25, 2014 Permalink | Reply
    Tags: ,   

    juju-quickstart 1.2.0 released 

    Juju Quickstart helps both new and experienced users quickly start Juju from Ubuntu.
    Release 1.2.0 is out, and includes the following new features/bug fixes:

    • Support for promulgated bundle URLs, e.g. “juju quickstart bundle:mediawiki/single”.
    • Bundles can be also specified via their jujucharms URLs.
    • Improved application help and installation instructions.
    • Updates to the dependency list and to Juju version handling.
    • SSH code reorganization.
    • Distribution files fixes.

    To install and start Juju Quickstart, run these commands:

    sudo add-apt-repository ppa:juju/stable
    sudo apt-get update && sudo apt-get install juju-quickstart
    juju-quickstart [-i]

    More details on juju-quickstart are available in this blog post.


  • garyposter 6:42 pm on November 14, 2013 Permalink | Reply
    Tags: , , ,   

    jujucharms.com update and Juju GUI 0.13.0 release (mostly bugfix) 

    The jujucharms.com site has been updated with the 0.13.0 Juju GUI release.  In addition to basic bundles available, bigger demonstration ones like this one or this one can show off some of what we can do.

    Also, yes, that’s a new Juju GUI release.  0.13.0 is out the door.  It’s primarily a bugfix release.  Here’s the breakdown.

    • Added help and feedback menu to top right, replacing feedback link on side.
    • (FIX) The inspector tries to get out of your way when you are making a relation.
    • (CLEANUP) Bundle deployment instructions for using quickstart and juju deployer were clarified and brought up to date.
    • (FIX) Fix bundle visualization so that it does not occasionally clip.
    • (CHARM FIX) Charm now honors bundle deployment positioning.
    • (FIX) Services without positioning are less likely to be automatically positioned on top of themselves.
    • (FIX) Make sandbox bundle deployment positioning more reliable.
    • (CLEANUP) Remove remaining old unused notifications code.


  • garyposter 10:10 pm on November 7, 2013 Permalink | Reply
    Tags: , , , , ,   

    Juju GUI 0.12.0: Bundles (beta)! 

    browsebundle Today we made a huge release for us: Juju GUI 0.12.0.  In arguably the biggest single new feature of the GUI since its release, the GUI now supports importing, exporting, browsing and deploying “bundles”. Bundles are collections of charms and their relations. You can export bundles using the export icon at the top of the GUI (an arrow pointing up out of a box) or shift-d. You can import them using the import icon (an arrow pointing into the box), by dragging yaml files from your computer and dropping then onto the environment, or by deploying bundles found in the store.

    (More …)

    • Robert Keating 4:49 pm on March 10, 2014 Permalink | Reply

      I am trying to import my current Prod environment (which has MaaS tags), and it fails with an ‘unsupported tags’ error. Do you have an update on this?

  • garyposter 9:08 pm on November 7, 2013 Permalink | Reply
    Tags: ,   

    Juju Quickstart Plugin: alpha but useful 

    The GUI team has a tool in alpha that we think is useful now. It is an opinionated way to start a great Juju experience quickly. We’re looking for users and feedback from early releases.

    What does it do now?

    If you run the plugin from the commandline, it will bootstrap an environment, install the GUI in the quickest [1] and most efficient [2] way available, and open a web browser to let you see the GUI.

    It also can be used in the same single command to deploy GUI environment exports that do not use local charms, and to deploy the very-soon-to-be-announced charm store bundles.

    We have one known bug: quickstart fails if the bootstrap node is not running Precise (which usually means that default-series is not set to precise in the environment). We will be explicitly setting the bootstrap node to Precise (or eventually Trusty) in the future.

    What will it do?

    Within a couple of weeks, we’ll have the following functionality. This will be added incrementally.

    When you run “juju-quickstart”, it will first install the ppa:juju/stable and Juju itself, if necessary; then, if necessary, it will guide you through (on the commandline) setting up credentials for a variety of supported clouds, as desired; then it will bootstrap a Juju instance, and install the GUI in the most quick and efficient way available; and finally it will open a webbrowser for you, showing the GUI and logging you in automatically. The bundle functionality described above will also be enhanced.

    Moreover, it will always recognize when you already have progress. For instance, if you have Juju installed and credentials configured, it will then start to bootstrap. If you have already bootstrapped but not installed the GUI, it will install the GUI and log you in. If you have installed the GUI on a bootstrapped environment, it will simply open your browser and log you in.

    How can I get it?

    sudo add-apt-repository ppa:juju-gui/quickstart-beta
    sudo apt-get update
    sudo apt-get install juju-quickstart

    Assuming you have Juju (juju-core) installed, now you can run “juju quickstart –help“ and learn what features are available today.

    Once we are through alpha and beta phases, we plan to move the plugin to ppa:juju/stable, and then pursue main inclusion in Trusty.

    Please give us feedback on the juju@lists.ubuntu.com list, on the juju-gui@lists.ubuntu.com list, or by filing a bug.

    Thanks, and enjoy!

    [1] On EC2, installing the GUI via the quickstart plugin adds less than a minute to bootstrapping. Installing it over the API is the quickest way right now because it does not download the charm to your local system and upload it to the environment, so that’s what we use.

    [2] We install the GUI on the Juju state server, so it doesn’t add additional machines to your deployment, or additional time to wait for a new machine to spin up.

  • garyposter 9:31 pm on October 18, 2013 Permalink | Reply

    0.11.0 Juju GUI Release 

    As of last night, the 0.11.0 release is out (but not yet at jujucharms.com).  This one has some nice new features, a lot of good bugfixes, and a ton of work towards some almost-ready-to-release features.  Please give it a try and let us know how it goes.

    • The inspector (and the GUI, for the first time) supports upgrading or downgrading a service’s charm.
    • The masthead’s UX is improved, notably giving a bit more room for the rest of the application.
    • Relations now display the names of both endpoints in the environment.
    • The GUI distribution is now about 1/9 the size it was before, speeding up deployment.
    • Recommended charms (and bundles) are now marked with a red triangle, per results from UX tests.
    • (FIX, CLEANUP) Service coordinates were being stored in three places, leading to confusion and bugs. This code was refactored, introducing many fixes to our service positioning behavior.
    • (FIX) If the charm browser were fully open to show charm details, and the browser was minimized and then reopened, the details page would be blank.
    • (FIX) The Go implementation of the sandbox always lost the first delta from the AllWatcher’s Next method.
    • (FIX) Bundle export should not include the number of units for subordinates.
    • (FIX) Inspector scale up input was disabled forever after value change.
    • (FIX) Charm details link was not working correctly from inspector.
    • (FIX) Unit details did not display exposed URL links properly.
    • (FIX) Position annotations are once again included in exports.
    • (FIX) New units added to the canvas no longer overlap old ones.
    • (FIX) The charm “code” tab in the charm browser now sorts filenames by directory and name, to make it easier to find a particular file. It also excludes the svg files from the list, since the rendering was less than valuable.
    • (CHARM FIX) This is actually a fix in the charm, but it is an important one that is worth calling out. In some environments, the GUI would break, not allowing proper inspection, export, or other basic behavior. This turned out to be because the new server had an issue with non-ascii values in some cases.
    • Behind the “charmworldv3” flag, bundle support is ready for demonstration, including browsing and deploying, in the sandbox and in a live environment. Tweaks, bug fixes, and some approved bundles should take us the rest of the way soon. This comprised a very large portion of the work behind this release.
    • Behind the “onboard” flag, the GUI has work to show helpful onboarding for new users.
  • Madison Scott-Clary (Makyo) 2:19 am on July 23, 2013 Permalink | Reply
    Tags: , , OpenStack   

    Deploying OpenStack with Juju and the GUI 

    A small video tutorial on how to deploy OpenStack with Juju using the GUI

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