Conjure-up dev summary highlights: screen ordering and improved deploy
Adam Stokes
on 27 July 2017
Screen Ordering
Previously, you would go through the install journey by picking your spell, selecting a cloud, modifying charm options, and then waiting for bootstrap/applications to be completely deployed prior to performing the post processing steps. In this latest update we’ve moved all steps to be completed prior to any of those longer blocking tasks.
This allows you to see the complete picture and giving you the ability to go back and make updates to your configuration items prior to running the longer tasks of the deployment.
Deployment resilience
We use a mechanism for determining when a deployment has “finished”, meaning, all hooks have been fired and each application is in a ready state to handle the next set of instructions from the installer. In some cases an application may get into a state of error but quickly resolve itself.
This was causing us some issues as we were taking a very strict approach that if there is an error in the application then the deployment should fail. Even though this is the proper thing to do we’ve made a decision that if the application is able to fix itself then we shouldn’t pass on that failed experience to the user since technically the deployment is able to finish and function as intended.
To combat this we’ve made our deployment checker a little more lenient and performing retries (up to 5 times) to validate if an application does fix itself. However, since an error was seen in the application it should not go unnoticed and needs to be fixed in the charm itself. In our integration tests we have an environment variable CONJURE_UP_MODE that can be set to test and gives us the ability to fail on charm failures and get those bugs reported upstream and resolved.
Spell authors can make use of this feature in their own spells by updating the 00_deploy-done script with the following bits:
#!/bin/bash set -eux . "$CONJURE_UP_SPELLSDIR/sdk/common.sh" retry_arg="-r5" if [[ "${CONJURE_UP_MODE-}" == "test" ]]; then retry_arg="" fi if ! juju wait $retry_arg -vwm "$JUJU_CONTROLLER:$JUJU_MODEL"; then setResult "Applications did not start successfully" exit 1 fi setResult "Applications Ready" exit 0
Getting these changes
Installing the snap from the edge channel will give you the latest work outlined in these developer summaries:
sudo snap install conjure-up --classic --edge
Ubuntu cloud
Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.
Newsletter signup
Related posts
EdgeIQ and Ubuntu Core; bringing security and scalability to device management
Today, EdgeIQ and Canonical announced the release of the EdgeIQ Coda snap and official support of Ubuntu Core on the EdgeIQ Symphony platform. EdgeIQ Symphony...
Ubuntu 20.04 LTS end of life: standard support is coming to an end. Here’s how to prepare.
In 2025, Ubuntu 20.04 LTS (Focal Fossa) will reach the end of its standard five-year support window. It’s time to start thinking about your options for...
Join Canonical in London at Dell Technologies Forum
Canonical is excited to be partnering with Dell Technologies at the upcoming Dell Technologies Forum – London, taking place on 26th November. This prestigious...