Fwd: Re: Juju Stable Update Policy

2014-08-05 Thread Martin Pitt
I just realized that Curtis didn't reply to the list. Forwarding.

Martin
- Forwarded message from Curtis Hovey-Canonical cur...@canonical.com -

Date: Mon, 28 Jul 2014 12:47:11 -0400
From: Curtis Hovey-Canonical cur...@canonical.com
To: Alexis Bruemmer alexis.bruem...@canonical.com, martin.p...@ubuntu.com
Subject: Re: Juju Stable Update Policy
X-Spam-Status: No, score=-1.9 required=3.4 tests=BAYES_00 autolearn=no 
version=3.3.2

 From: Martin Pitt martin.p...@ubuntu.com
 Date: Tue, Jul 22, 2014 at 9:05 AM
 Subject: Re: Juju Stable Update Policy

 Alexis Bruemmer [2014-07-08 14:05 -0700]:
   Juju developers and have a specific QA review, and a variety of fresh
   install and upgrade combinations must be explicitly tested on every
   cloud
   that Juju supports (for details see the “Testing a revision” section
   of
  the
   Juju CI Design and Operation document linked below)
 
  This really seems to be the crux of regression testing as far as SRUs
  and existing cloud deployments are concerned. Whenever I try to open
  the google docs I just get a File unavailable. Sorry, there's a
  problem with this file.  Please reload., so I can't look at the
  details. Does that mean that newer clients are tested on existing
  deployments with older servers and agents? Which combinations does
  that cover?
 

 I have updated the sharing policies for the Juju Ci doc, let me know if
 you
 still have issues accessing the file.

 I can see it now, but it still doesn't explain how you test backwards
 compatibility to existing deployments? Or I can't find it.

 I can see teh google doc now, but it still crashes on the first mouse
 click. I think for long-term documentation we don't want to bury that
 in google docs, but perhaps underneath
 https://wiki.ubuntu.com/StableReleaseUpdates ?

 So in summary, I have reasonably good confidence in the currently
 documented CI, but I need some more convincing about backwards
 compatibility testing.

We don't have automated tests of minor-to-minor-client-to-server yet.
We are not scheduled to start work on this feature for a a few weeks.

We are added infrastructure to Juju CI to support this and we have
done some manual testing to prove how we will automate this.

1. CI will have a store of stable minor jujus: 1.18.4, 1.20.1, 1.21.0...
2. For each new revision of juju,
* For each stable minor juju an env will be bootstrapped.
  * The juju client under test will be run through a series of
commands that demonstrate the env can be maintained.
  * The test will culminate in a destroy environment
 to show the env can reach its EOL.
* An env will be bootstrapped with the new juju
  * For each stable minor juju
a series of commands will test that old client can
maintain the new env.
* reports.vapour.ws will have a report showing the all combinations
  pass test suite.
3. Only revisions that pass all tests are considered for release,
CI will provide the actual release tarball.
4. CI will gain a mechanism to test a packages built for Ubuntu
(ubuntu's packaging rules) that will test the packages pass all the
tests the release tarball passed. Demonstrating that juju and the ubuntu
packaging are compatible with the versions published in Ubuntu.


-- 
Curtis Hovey
Canonical Cloud Development and Operations
http://launchpad.net/~sinzui

-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board

- End forwarded message -

-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board


Re: Juju Stable Update Policy

2014-08-05 Thread Martin Pitt
Hello all,

Curtis Hovey-Canonical [2014-07-28 12:47 -0400]:
 We are added infrastructure to Juju CI to support this and we have
 done some manual testing to prove how we will automate this.
 
 1. CI will have a store of stable minor jujus: 1.18.4, 1.20.1, 1.21.0...
 2. For each new revision of juju,
 * For each stable minor juju an env will be bootstrapped.
   * The juju client under test will be run through a series of
 commands that demonstrate the env can be maintained.
   * The test will culminate in a destroy environment
  to show the env can reach its EOL.
 * An env will be bootstrapped with the new juju
   * For each stable minor juju
 a series of commands will test that old client can
 maintain the new env.

Perfect, thanks! That's what I was looking for. Provisional MRE
granted (after quick discussion in today's TB meeting), I'll update
https://wiki.ubuntu.com/StableReleaseUpdates/MicroReleaseExceptions as
soon as this mail hits the archive.

Thanks,

Martin

-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)


signature.asc
Description: Digital signature
-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board


Re: Juju Stable Update Policy

2014-07-29 Thread Curtis Hovey-Canonical
 From: Martin Pitt martin.p...@ubuntu.com
 Date: Tue, Jul 22, 2014 at 9:05 AM
 Subject: Re: Juju Stable Update Policy

 Alexis Bruemmer [2014-07-08 14:05 -0700]:
   Juju developers and have a specific QA review, and a variety of fresh
   install and upgrade combinations must be explicitly tested on every
   cloud
   that Juju supports (for details see the “Testing a revision” section
   of
  the
   Juju CI Design and Operation document linked below)
 
  This really seems to be the crux of regression testing as far as SRUs
  and existing cloud deployments are concerned. Whenever I try to open
  the google docs I just get a File unavailable. Sorry, there's a
  problem with this file.  Please reload., so I can't look at the
  details. Does that mean that newer clients are tested on existing
  deployments with older servers and agents? Which combinations does
  that cover?
 

 I have updated the sharing policies for the Juju Ci doc, let me know if
 you
 still have issues accessing the file.

 I can see it now, but it still doesn't explain how you test backwards
 compatibility to existing deployments? Or I can't find it.

 I can see teh google doc now, but it still crashes on the first mouse
 click. I think for long-term documentation we don't want to bury that
 in google docs, but perhaps underneath
 https://wiki.ubuntu.com/StableReleaseUpdates ?

 So in summary, I have reasonably good confidence in the currently
 documented CI, but I need some more convincing about backwards
 compatibility testing.

We don't have automated tests of minor-to-minor-client-to-server yet.
We are not scheduled to start work on this feature for a a few weeks.

We are added infrastructure to Juju CI to support this and we have
done some manual testing to prove how we will automate this.

1. CI will have a store of stable minor jujus: 1.18.4, 1.20.1, 1.21.0...
2. For each new revision of juju,
* For each stable minor juju an env will be bootstrapped.
  * The juju client under test will be run through a series of
commands that demonstrate the env can be maintained.
  * The test will culminate in a destroy environment
 to show the env can reach its EOL.
* An env will be bootstrapped with the new juju
  * For each stable minor juju
a series of commands will test that old client can
maintain the new env.
* reports.vapour.ws will have a report showing the all combinations
  pass test suite.
3. Only revisions that pass all tests are considered for release,
CI will provide the actual release tarball.
4. CI will gain a mechanism to test a packages built for Ubuntu
(ubuntu's packaging rules) that will test the packages pass all the
tests the release tarball passed. Demonstrating that juju and the ubuntu
packaging are compatible with the versions published in Ubuntu.


-- 
Curtis Hovey
Canonical Cloud Development and Operations
http://launchpad.net/~sinzui

-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board


Re: Juju Stable Update Policy

2014-07-22 Thread Martin Pitt
Hello Alexis,

Alexis Bruemmer [2014-07-08 14:05 -0700]:
   Juju developers and have a specific QA review, and a variety of fresh
   install and upgrade combinations must be explicitly tested on every cloud
   that Juju supports (for details see the “Testing a revision” section of
  the
   Juju CI Design and Operation document linked below)
 
  This really seems to be the crux of regression testing as far as SRUs
  and existing cloud deployments are concerned. Whenever I try to open
  the google docs I just get a File unavailable. Sorry, there's a
  problem with this file.  Please reload., so I can't look at the
  details. Does that mean that newer clients are tested on existing
  deployments with older servers and agents? Which combinations does
  that cover?
 
 
 I have updated the sharing policies for the Juju Ci doc, let me know if you
 still have issues accessing the file.

I can see it now, but it still doesn't explain how you test backwards
compatibility to existing deployments? Or I can't find it.

I can see teh google doc now, but it still crashes on the first mouse
click. I think for long-term documentation we don't want to bury that
in google docs, but perhaps underneath
https://wiki.ubuntu.com/StableReleaseUpdates ?

So in summary, I have reasonably good confidence in the currently
documented CI, but I need some more convincing about backwards
compatibility testing.

Thanks,

Martin
-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board


Re: Juju Stable Update Policy

2014-07-08 Thread Martin Pitt
Hello Alexis,

thanks for writing down the summary, and the initial adjustments after
our PMs. Sorry for responding so late, this slipped through the cracks :(

In general this seems fine to me, I just have two questions:

Alexis Bruemmer [2014-06-26 13:00 -0700]:
 It is critical that the state server and agents be kept in sync, and both
 of these sets of machines are created, booted, and managed by Juju.

Out of interest, how is that enforced? If you dist-upgrade one VM but
not the other, will bad things happen? Or should that be worded
differently?

 Tests are required for all changes, each change must be signed off by two
 Juju developers and have a specific QA review, and a variety of fresh
 install and upgrade combinations must be explicitly tested on every cloud
 that Juju supports (for details see the “Testing a revision” section of the
 Juju CI Design and Operation document linked below)

This really seems to be the crux of regression testing as far as SRUs
and existing cloud deployments are concerned. Whenever I try to open
the google docs I just get a File unavailable. Sorry, there's a
problem with this file.  Please reload., so I can't look at the
details. Does that mean that newer clients are tested on existing
deployments with older servers and agents? Which combinations does
that cover?

Thanks,

Martin

-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

-- 
technical-board mailing list
technical-board@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/technical-board


Re: Juju Stable Update Policy

2014-07-07 Thread Steve Langasek
Hi Alexis,

Given the lack of response so far, I guess that this is fairly
uncontroversial.

It's clear to me that the client-server nature of juju warrants an exception
to the SRU rules, analogous to the exception already in place for Landscape.

I am also satisfied by the general policies in place for Juju stable
updates, though as you suggest it would be a good idea for the SRU team to
review the specifics in depth with Curtis.

Does anyone else on the TB have any feedback here, or is everyone happy to
ratify this plan as-is?


On Thu, Jun 26, 2014 at 01:00:20PM -0700, Alexis Bruemmer wrote:
 Hello Ubuntu Technical Board,

 The Juju Core team requests your review and approval of the Juju Stable
 Update Policy outlined below:

 Introduction

  Juju is a open source service from Canonical for service orchestration.

  A typical juju install consists of a “cloud environment” which consists of
 a set of central state servers and any number of managed services and
 machines.  Each managed machine in the environment runs “agents” which talk
 to the central state server(s) for that environment.

 The package in ubuntu is the “juju client” and is what is used to spin up
 cloud servers, bootstrap a set of state servers, and then communicate via a
 stable API with one or more state servers about what workloads to deploy
 and how to configure them.  The juju client also allows for SSH access
 (tunneled through the state servers) to managed machines, as well as the
 ability to run actions on sets of machines in the environment.

 The juju client can also run a simulated cloud environment on containers
 directly on the user’s host box (via the ‘juju-local’ package).


 Plans for this cycle include a centralized multi-tenant state servers,
 which will serve multiple environments, and be hosted by Canonical, or our
 clients.  They also include juju deployed workloads running on a wide
 variety of “Host OS’s” including Ubuntu of course, but also Windows and
 other versions of Linux/Unix.
 As might be expected from this kind of design, there are well defined API’s
 that manage the interactions between the state servers and the agents that
 run on individual managed hosts, as well as the juju clients that might be
 installed on individual user’s machines.


 It is critical that the state server and agents be kept in sync, and both
 of these sets of machines are created, booted, and managed by Juju.   The
 code for the state servers and host machine agents is pulled down by Juju
 at install time, and could be running on a completely different
 architecture, and even a completely different OS than the juju client
 (which is supported on Windows and Mac OS as well as a variety of
 linux/unix platforms).  These installs are managed by Juju itself (since it
 is a service orchestration and configuration management tool) and do not
 use the ubuntu packages -- instead they pull the appropriate juju binary
 from the same place they get OS images (simple streams).


 It is desirable to update both clients and servers to provide newer
 features, but many features of newer servers will be unavailable with older
 clients.  And it is possible that security updates on the server will
 require compatible client updates.
 At present, users of the Juju service are typically instructed to use a PPA
 to work around this. However, since the `juju` package is part of Ubuntu,
 the juju team needs the ability to push updates into the LTS, otherwise it
 is unlikely the version we ship will remain actually useful to juju users.

 Rationale

 Canonical produces another system management tool, Landscape, which
 received a similar exception in 2009.   Like Landscape, we believe Juju’s
 requirements as a system management tool make it a candidate for a stable
 release update.

 In some ways the juju client is subject to less possibility for
 destabilizing the OS than Landscape.  As of today it consists of a single
 binary (though discussions with the Ubuntu team are in progress to break
 that down) which neither has dependencies on any third party libraries, nor
 is depended on by any other Ubuntu packages.

 Prior to making this request, the Juju Core update process has been updated
 to include an exceptionally strict QA process which closely matches that
 required of the Landscape client.


 Tests are required for all changes, each change must be signed off by two
 Juju developers and have a specific QA review, and a variety of fresh
 install and upgrade combinations must be explicitly tested on every cloud
 that Juju supports (for details see the “Testing a revision” section of the
 Juju CI Design and Operation document linked below) .  Furthermore we are
 working to create a full set of functional tests of juju deployed workloads
 that will be used to gate any stable release.


 The Juju team requests that the ubuntu-sru team review these processes in
 detail with Curtis (our release and QA manager) and the juju team will
 update these test