juju-core 1.23-beta1

Milestone information

Project:
juju-core
Series:
1.23
Version:
1.23-beta1
Released:
 
Registrant:
Curtis Hovey
Release registered:
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
5 Anastasia, 2 Andrew Wilkins, 2 Bodie Solomon, 12 Dimiter Naydenov, 7 Eric Snow, 1 Francesco Banconi, 2 Frank Mueller, 7 Horacio Durán, 8 Ian Booth, 5 James Tunnicliffe, 1 Jesse Meek, 1 John Weldon, 2 Katherine Cox-Buday, 1 Marco Ceppi, 4 Menno Finlay-Smits, 2 Michael Foord, 1 Nate Finch, 2 Tim Penhey, 2 Wayne Witzel III, 1 William Reade
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
70 Fix Released

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon juju-1.23-beta1-osx.tar.gz (md5, sig) OS X juju commands tarball 9
last downloaded 69 weeks ago
download icon juju-setup-1.23-beta1.exe (md5, sig) Windows installer for the juju client 17
last downloaded 69 weeks ago
download icon juju-core_1.23-beta1.tar.gz (md5, sig) Juju-core release 12
last downloaded 69 weeks ago
Total downloads: 38

Release notes 

# juju-core 1.23-beta1

A new development release of Juju, juju-core 1.23-beta1, is now available.
This release replaces 1.22.0.

## Upgrades from 1.22 are broken

As seen in Lp 1434680 1.22.0 environments cannot upgrade to 1.23-beta1.
Upgrading environments from earlier versions of Juju, such as 1.21,
should work.

## Getting Juju

juju-core 1.23-beta1 is available for vivid and backported to earlier
series in the following PPA:

    https://launchpad.net/~juju/+archive/devel

Windows and OS X users will find installers at:

    https://launchpad.net/juju-core/+milestone/1.23-beta1

Development releases use the 'devel' simple-streams. You must configure
the 'agent-stream' option in your environments.yaml to use the matching
juju agents.

    agent-stream: devel

Upgrading from stable releases to development releases is not
supported. You can upgrade test environments to development releases
to test new features and fixes, but it is not advised to upgrade
production environments to 1.23-beta1. In particular, upgrades from 1.22
are broken. See above.

## Notable Changes

  * New Blocks
  * New Style Restore
  * Addressable LXC and KVM Containers on EC2 and MAAS
  * Improved Proxy Support for Restrictive Networks
  * New Charm Actions
  * New Support for Google Compute Engine (GCE)
  * Service Leader Elections
  * Support for systemd (and Vivid)

### New blocks

You can now specify block message when you enable a block. For example,
you can add a message to 'destroy-environment':

    juju block destroy-environment "Don't destroy this environment"
    juju destroy-environment
    ERROR Don't destroy this environment

You can list the blocks enabled in the environment like so:

    juju block list
    destroy-environment=on, Don't destroy this environment
    remove-object=off
    all-changes=off

The Multiwatcher now has information about blocks. There is now block
client capable of switching blocks on/off as well as listing all enabled
blocks.

### New Style Restore

You can now restore a backup with the new 'backups restore' command,
which is more reliable and fast. New restore supports backups generated
with the deprecated Juju backup plugin and with the recently added 'juju
backups create' command. You can restore from a local backup file like
so:

    juju backups restore [-b] --file <backup file>

Which will optionally bootstrap a new state server, upload a backup file
and restore it. The -b flag will fail if there is a running state
server.

You can also restore from a backup stored on the state-server:

    juju backups restore --id <on server backup id>

To obtain a list of the existing backups in the state-server you can
use:

    juju backups list

### Addressable LXC and KVM containers on EC2 and MAAS

The Juju EC2 and MAAS providers now support starting LXC and KVM
containers with statically allocated IP addresses from the same subnet
as their host machine. This means workloads inside containers have the
same network connectivity as workloads deployed on machines. Nothing
special is needed to benefit from this feature, as Juju detects whether
address allocation is supported and handles the necessary steps
automatically. Example:

    juju deploy wordpress --to lxc:0
    juju add-unit mysql --to kvm:1

Once the container is provisioned and started, you can see in 'juju
status' it will have an address from the same subnet range as its host.
On MAAS, the juju-br0 bridge device is no longer created at initial boot
so that containers can acquire IP addresses via DHCP. Instead, depending
on the container type, the default lxcbr0 (LXC) or virbr0 (KVM) will be
used. This also solves a number of issues with more complex networking.

There are a few known limitations at this stage, but most of them will
be resolved in time for the 1.23 stable release:

  * EC2 Ubuntu images Juju uses typically does not support KVM extensions.
  * EC2 has limits on the number of additional IPs a certain instance
    type can have. If you plan on starting a lot of addressable
    containers, please make sure you select a larger instance type. Juju
    will eventually expose information like "address limit exhausted" so
    such cases will be easier to detect by the user.
    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI
  * Statically allocated addresses are not yet released on container
    shutdown, but a solution to this is already in progress.
  * At this stage, Juju does not guarantee every container will have a
    static IP at launch, but will make a best effort to do so. If
    allocation failed for some reason, every step of the process is
    logged, but the container will still come up with a host-local IP
    (e.g. 10.0.3.x for LXC and 192.168.122.x for KVM).
  * Workloads inside addressable containers can be exposed behind their
    host's public IP address, but port conflicts are not detected or
    handled. This means for example, if port 80 is taken by a service on
    the host, another service in a container listening on port 80 won't
    be accessible.

### Improved Proxy Support for Restrictive Networks

A few of issues around HTTP/HTTPS and apt proxy support were fixed (Lp
1403225, Lp 1417617). Charm downloads from the charm store which could
not be completed due to connectivity issues are now retried every few
minutes rather than once every 24 hours. Proxy settings from the
environment (http-proxy, https-proxy, ftp-proxy, apt-http-proxy,
apt-https-proxy, apt-ftp-proxy, and no-proxy) are properly propagated to
all machines, and Juju agents use them for all external connectivity.
The juju run command also uses proxy settings when defined, as well as
debug-hooks and all hooks the a charm runs. You can specify one or more
proxy settings via environment variables (http_proxy, https_proxy, etc.)
or inside your environments.yaml. Other related proxies are configured
as needed (e.g. you can specify just http-proxy, and that will also be
used for https, ftp, and apt proxies).

### New Charm Actions

Juju charms can describe actions that users can take on deployed
services. These actions are scripts that can be triggered on a unit by
the via the Juju CLI (support for triggering actions from the Juju GUI
will follow soon). Schemas for each action are defined in an
actions.yaml file in the charm root, and conform to JSON-Schema. When an
action is invoked, passed parameters are validated against the
respective schema as explained in "Actions for the Charm author" at both
the API and the unit level:

     https://jujucharms.com/docs/1.20/authors-charm-actions

CLI Actions are sub-commands of the 'juju action' command. For more
details on their usage, 'juju action help' has examples and further
material.

The following subcommands are currently specified:

  * defined - show actions defined for a service
  * do - queue an action for execution
  * fetch - show results of an action by ID
  * status - show results of actions filtered by optional ID prefix

### New Support for Google Compute Engine (GCE)

A new provider has been added that supports hosting a Juju environment
in GCE. This feature leverages the support for Ubuntu cloud-images that
GCE added late 2014. It uses Google's GCE API to interact with your
account there. API authentication credentials, as well as other config
options, must be added to your environments.yaml file before running
'juju bootstrap'. The different options are described below.

The basic config options in your environments.yaml will look like this:

    my-gce:
      type: gce
      project-id: <your-project-id>
      private-key: <your-private-key>
      client-email: <your-client-email>
      client-id: <your-client-id>

The values in angle brackets need to be replaced with your GCE information.

'project-id' must identify a GCE project that already exists before you
run "juju bootstrap". This means creating a new one through the
developer console (https://console.developers.google.com/project) before
bootstrapping Juju. To make it easier to quickly identify in your GCE
console, we recommend that the name start with 'juju-' and that it
include the environment name you are planning to use. You could also
use an existing project but we recommend against that if possible.
Using a new project will make it easier for you to manage the
environment's resources as well as to track the environment's cost and
resource usage.

'private-key', 'client-email', and 'client-id' are your GCE OAuth
credentials. These details are associated with the 'service account' of
the GCE project you will use for your Juju environment. For each GCE
project, a service account is set up automatically when you create
your project. Juju uses that service account to connect to the GCE API
and does so with the proper authentication scope. After you have
created the project go to the following URL to get the
credentials to use in environments.yaml:

    https://console.developers.google.com/project/<project-id>/apiui/credential

For more information please refer to

    https://developers.google.com/accounts/docs/OAuth2ServiceAccount#creatinganaccount
    and https://developers.google.com/accounts/docs/OAuth2#serviceaccount.

If the project's service account has any permissions problems go to the
following page to fix them:

        https://console.developers.google.com/project/<project-id>/permissions

The GCE API should already be activated for the project. It it isn't,
go to the following URL in your console:

        https://console.developers.google.com/project/<project-name>/apiui/api

Also see step 2 on

    https://cloud.google.com/compute/docs/api/how-tos/authorization.

The following config options in your environments.yaml file are
optional:

    region - (default us-central1) The location to place the
             environment.
    image-endpoint - (default https://www.googleapis.com) This is
             where Juju will look for disk images when provisioning a
             new instance on GCE.

All Juju 1.23 provider capabilities are available for GCE except for
networking.

### Service Leader Elections

We will send a separate announcement about Service Leader Elections.

### Support for systemd (and Vivid)

In addition to upstart, Juju now supports Ubuntu hosts using systemd as
their init system.

Support for systemd allows Juju to run on Ubuntu 15.04 (Vivid Vervet),
which is the first Ubuntu release to boot with systemd. This means you
can bootstrap Juju on a Vivid host. Note that the charm store
(jujucharms.com) only support LTS releases. You can develop and test
vivid charms in a local charm repository.

## Resolved issues

* Allow annotations to be set on charms
  Lp 1313016
* Juju-backup is not a valid plugin
  Lp 1389326
* Juju needs to support systemd for >= vivid
  Lp 1409639
* Joyent provider uploads user's private ssh key by default
  Lp 1415671
* Unable to bootstrap on cn-north-1
  Lp 1415693
* Debug messages show when only info was asked for
  Lp 1421237
* Juju default logging leaks credentials
  Lp 1423272
* Juju resolve doesn't recognize error state
  Lp 1424069
* Juju status --format=tabular
  Lp 1424590
* Ec2 provider unaware of c3 types in sa-east-1
  Lp 1427840
* Ec2 eu-central-1 region not in provider
  Lp 1428117
* Ec2 provider does not include c4 instance family
  Lp 1428119
* Allwatcher does not remove last closed port for a unit, last removed
  service config
  Lp 1428430
* Make kvm containers addressable (esp. on maas)
  Lp 1431130
* Fix container addressability issues with cloud-init, precise, when
  lxc-clone is true
  Lp 1431134
* Dhcp's "option interface-mtu 9000" is being ignored on bridge
  interface br0
  Lp 1403955

## Finally

We encourage everyone to subscribe the mailing list at
juju-dev@lists.canonical.com, or join us on #juju-dev on freenode.

Changelog 

This release does not have a changelog.

0 blueprints and 70 bugs targeted

Bug report Importance Assignee Status
1411024 #1411024 Win client/agent cannot bug built because of backup deps 2 Critical Dimiter Naydenov  10 Fix Released
1413652 #1413652 TestNetworkInterfaces fails on ppv64el unit tests 2 Critical Michael Foord  10 Fix Released
1414016 #1414016 Local-provider lxc Failed to create lxc_container 2 Critical Dimiter Naydenov  10 Fix Released
1416006 #1416006 Panic session closed still happening in unit tests 2 Critical Menno Finlay-Smits  10 Fix Released
1416577 #1416577 Unit tests timing out for some architectures 2 Critical Menno Finlay-Smits  10 Fix Released
1420426 #1420426 backups_nonlinux.go import error 2 Critical Eric Snow  10 Fix Released
1421606 #1421606 TestAddServiceStorageConstraints fails on ppc64 2 Critical Ian Booth  10 Fix Released
1423782 #1423782 ppc64el /usr/bin/ld: error in $WORK/github.com/juju/juju/cmd/juju/_obj/exe/a.out 2 Critical Dimiter Naydenov  10 Fix Released
1424669 #1424669 ppc64el fail multiple definitions of juju_juju_api_networker.NewState 2 Critical Dimiter Naydenov  10 Fix Released
1424777 #1424777 local-provider precise failed to upgrade 2 Critical Dimiter Naydenov  10 Fix Released
1425807 #1425807 restore failed: cannot detect whether old instance is still running: only some instances were found 2 Critical Horacio Durán  10 Fix Released
1427210 #1427210 'relative path in ExecStart not valid' vivid local deploy failure 2 Critical Eric Snow  10 Fix Released
1429853 #1429853 unit test TestInstallCommandsShutdown...initSystemSuite fails 2 Critical Eric Snow  10 Fix Released
1430791 #1430791 Upgrade-juju is broken on most/all substrates 2 Critical Jesse Meek  10 Fix Released
1430898 #1430898 run-unit-tests ppc64el timeout 2 Critical   10 Fix Released
1431888 #1431888 Juju cannot be deployed on a restricted network 2 Critical Dimiter Naydenov  10 Fix Released
1433254 #1433254 manual provider on trusty/precise syntax error near unexpected token `then' 2 Critical Eric Snow  10 Fix Released
1433384 #1433384 unit-test failure: TrackerSuite.TestWaitMinionBecomeMinion 2 Critical William Reade  10 Fix Released
1433566 #1433566 Precise unit test failure discoverySuite.TestDiscoverInitSystemScript 2 Critical Eric Snow  10 Fix Released
1236471 #1236471 Sporadic test failure w/ bot inside Uniter: FilterSuite.TestUnitRemoval 3 High Tim Penhey  10 Fix Released
1313016 #1313016 allow annotations to be set on charms 3 High Anastasia  10 Fix Released
1384259 #1384259 lock contention running apt in bootstrap 3 High Andrew Wilkins  10 Fix Released
1389326 #1389326 juju-backup is not a valid plugin 3 High Marco Ceppi  10 Fix Released
1394680 #1394680 juju should wait until a node's status is 'deployed' to attempt ssh'ing into it 3 High Ian Booth  10 Fix Released
1402965 #1402965 Machine HasVote/WantsVote should be included in AllWatcher deltas 3 High Ian Booth  10 Fix Released
1403084 #1403084 Tests that need to be fixed on windows 3 High   10 Fix Released
1403225 #1403225 charm download behind the enterprise proxy fails 3 High Michael Foord  10 Fix Released
1404397 #1404397 charm actions.yaml simplification breaks master tests 3 High Bodie Solomon  10 Fix Released
1408762 #1408762 --constraints option is ignored on MaaS provider 3 High Ian Booth  10 Fix Released
1409639 #1409639 juju needs to support systemd for >= vivid 3 High Eric Snow  10 Fix Released
1410320 #1410320 juju status --format summary panics with unresolvable IPs 3 High Katherine Cox-Buday  10 Fix Released
1411502 #1411502 ERROR upgrade in progress - Juju functionality is limited 3 High Menno Finlay-Smits  10 Fix Released
1412292 #1412292 Intermittent test failure in ActionSuite.TestActionsWatcherEmitsInitialChanges 3 High John Weldon  10 Fix Released
1415671 #1415671 Joyent provider uploads user's private ssh key by default 3 High Nate Finch  10 Fix Released
1415693 #1415693 Unable to bootstrap on cn-north-1 3 High Katherine Cox-Buday  10 Fix Released
1415961 #1415961 juju gives up on bootstrapping with 'bootstrap instance started but did not change to Deployed state' 3 High James Tunnicliffe  10 Fix Released
1416134 #1416134 Unable to override network-bridge if container type is kvm (local provider) 3 High Dimiter Naydenov  10 Fix Released
1416425 #1416425 src/bitbucket.org/kardianos/osext/LICENSE is wrong 3 High Dimiter Naydenov  10 Fix Released
1416430 #1416430 Some files refer to an include license file that is not included 3 High Horacio Durán  10 Fix Released
1416433 #1416433 github.com/juju/syslog has contradicting licensing info 3 High Horacio Durán  10 Fix Released
1416436 #1416436 github.com/juju/utils has contradictory licence info 3 High Horacio Durán  10 Fix Released
1416579 #1416579 MachineSuite.TestManageEnviron is fragile 3 High Menno Finlay-Smits  10 Fix Released
1416928 #1416928 juju agent using lxcbr0 address as apiaddress instead of juju-br0 breaks agents 3 High James Tunnicliffe  10 Fix Released
1417178 #1417178 juju restore no longer works with Azure: error: cannot re-bootstrap environment: cannot determine state server instances: environment is not bootstrapped 3 High Horacio Durán  10 Fix Released
1417594 #1417594 failure to retrieve the template to clone: lxc container with 1.22 beta2 3 High Ian Booth  10 Fix Released
1417617 #1417617 apt-proxy can be incorrectly set when the fallback from http-proxy is used 3 High James Tunnicliffe  10 Fix Released
1417875 #1417875 ERROR juju.worker runner.go:219 exited "rsyslog": x509: certificate signed by unknown authority 3 High Wayne Witzel III  10 Fix Released
1418433 #1418433 unit ports not populated by API megawatcher 3 High Dimiter Naydenov  10 Fix Released
1420049 #1420049 ppc64el - jujud: Syntax error: word unexpected (expecting ")") 3 High Andrew Wilkins  10 Fix Released
1420306 #1420306 Ensure-availability fails with ' failed to find any voting machines' after backup/restore. 3 High Horacio Durán  10 Fix Released
1420316 #1420316 Juju references old dns-name and ip addresses after restore. (failed juju ssh) 3 High Horacio Durán  10 Fix Released
1420403 #1420403 juju-quickstart: bad API server response: 'NoneType' object is not iterable 3 High Francesco Banconi  10 Fix Released
1421237 #1421237 DEBUG messages show when only INFO was asked for 3 High Tim Penhey  10 Fix Released
1423036 #1423036 precise services cannot be deployed (again) 3 High Ian Booth  10 Fix Released
1423454 #1423454 cloud-image-utils needs to be installed 3 High Ian Booth  10 Fix Released
1424069 #1424069 juju resolve doesn't recognize error state 3 High Ian Booth  10 Fix Released
1424590 #1424590 juju status --format=tabular 3 High Anastasia  10 Fix Released
1425242 #1425242 disable failing provider/openstack tests on ppc64 until we can fix them 3 High Dimiter Naydenov  10 Fix Released
1425435 #1425435 juju-deployer/jujuclient incompatibility with 1.21.3 3 High Frank Mueller  10 Fix Released
1425788 #1425788 multiple definition of http.HandlerFunc 3 High Dimiter Naydenov  10 Fix Released
1427149 #1427149 Tests require predictable map ordering 3 High James Tunnicliffe  10 Fix Released
1427840 #1427840 ec2 provider unaware of c3 types in sa-east-1 3 High Anastasia  10 Fix Released
1428117 #1428117 EC2 eu-central-1 region not in provider 3 High Anastasia  10 Fix Released
1428119 #1428119 EC2 provider does not include C4 instance family 3 High Anastasia  10 Fix Released
1428430 #1428430 AllWatcher does not remove last closed port for a unit, last removed service config 3 High Frank Mueller  10 Fix Released
1428692 #1428692 cannot boostrap vivid: Operation failed: No such file or directory 3 High Eric Snow  10 Fix Released
1431130 #1431130 make kvm containers addressable (esp. on MAAS) 3 High James Tunnicliffe  10 Fix Released
1431134 #1431134 fix container addressability issues with cloud-init, precise, when lxc-clone is true 3 High Dimiter Naydenov  10 Fix Released
1431612 #1431612 Action defaults don't work for nil params 3 High Bodie Solomon  10 Fix Released
1431918 #1431918 gce minDiskSize incorrect 3 High Wayne Witzel III  10 Fix Released
This milestone contains Public information
Everyone can see this information.