OpenStackCharms
Size: 3573
Comment:
|
Size: 2584
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= OpenStack Charm Development Process = | = Charm Use: OpenStack Origin = |
Line 3: | Line 3: |
== Overview == | The majority of !OpenStack charms support the configuration option 'openstack-origin'. This option allows the charm to source various different releases of !OpenStack from the Ubuntu distribution, the Ubuntu Cloud Archive and from various other sources. |
Line 5: | Line 5: |
The intent of this document is to outline the development process around the set of Juju Charms used to deploy OpenStack on Ubuntu. | == Ubuntu == |
Line 7: | Line 7: |
Stability in the charms as they become more widely used is critical for users; by defining a policy for developing and release charm updates, stability of the charms should be improved and maintained. | To use the version of !OpenStack that shipped as part of an Ubuntu release, simple set: |
Line 9: | Line 9: |
The OpenStack charms will be managed under a 6 monthly release cycle aligned to Ubuntu’s. During this cycle, feature development and bug fixes will be made against ‘next’ branches, leaving the trunk branches in a stable state. Bug fixes, when appropriate, may be backported to the stable trunk branch under a similar process to the Ubuntu SRU process. | {{{ openstack-origin: distro }}} |
Line 11: | Line 13: |
== Scope == | This format also supports testing of charms with versions of !OpenStack in the SRU process: |
Line 13: | Line 15: |
The following charms fall within the scope of this policy: | {{{ openstack-origin: distro-proposed }}} |
Line 15: | Line 19: |
* quantum-gateway * nova-cloud-controller * nova-compute * cinder * cinder-ceph * glance * keystone * openstack-dashboard * nvp-transport-node * ceilometer * ceilometer-agent * heat * nova-vmware * neutron-openvswitch-agent * neutron |
As a reference, here are the mappings between !OpenStack release and Ubuntu release: |
Line 31: | Line 21: |
In addition, a charm-helpers (http://launchpad.net/charm-helpers) stable branch will also be made at release to limit the scope for introduction of regressions to stable charms via charm-helper syncs: | ||'''Ubuntu Release'''||'''Ubuntu Codename'''||'''!OpenStack Release'''|| || 12.04 || Precise || Essex || || 14.04 || Trusty || Icehouse || || 15.04 || Vivid || Kilo || || 15.10 || Wily || Liberty || || 16.04 || Xenial || Mitaka || |
Line 33: | Line 28: |
lp:~openstack-charmers/charm-helpers/stable | '''NOTE''': Xenial/Mitaka is still in development. |
Line 35: | Line 30: |
All stable charms should reference this branch for syncing. | == Ubuntu Cloud Archive == |
Line 37: | Line 32: |
NOTE: charm-helpers stable branch management may change if/when charm-helpers starts producing releases. | The Ubuntu Cloud Archive provides backports of !OpenStack releases to Ubuntu 14.04 LTS and to Ubuntu 12.04 LTS. |
Line 39: | Line 34: |
== Charm Development Process == | === Ubuntu 14.04 === |
Line 41: | Line 36: |
Charms should be developed against the /next branches under the openstack-charmers team on Launchpad, for example: | Supported values for Ubuntu 14.04 LTS include: |
Line 43: | Line 38: |
lp:~openstack-charmers/charms/trusty/cinder/next | {{{ openstack-origin: cloud:trusty-juno openstack-origin: cloud:trusty-kilo openstack-origin: cloud:trusty-liberty }}} |
Line 45: | Line 44: |
Merges should be proposed against these branches first for all changes. | Again, proposed updates in the stable release update process may also be tested: |
Line 47: | Line 46: |
Three weeks prior to Ubuntu release (post OpenStack and Ubuntu final freeze), these branches will enter a freeze period during which extended testing will take place prior to co-ordinated release with Ubuntu. During this period, only bug fixes will be landed in to the /next branches. | {{{ openstack-origin: cloud:trusty-juno/proposed openstack-origin: cloud:trusty-kilo/proposed openstack-origin: cloud:trusty-liberty/proposed }}} |
Line 49: | Line 52: |
== Charm Stable Update Process == | === Ubuntu 12.04 === |
Line 51: | Line 54: |
Charm users will discover bugs in the OpenStack charms; Fixes for such bugs must be made in the /next branch first. After review and merging into /next, fixes may also be targeted to the stable branch with the following requirements: | Supported values for Ubuntu 12.04 LTS include: |
Line 53: | Line 56: |
* A bug report must be present for the problem, with appropriate procedure on how to reproduce the bug to support verification testing. * The branch should contain the minimal fix for the bug; branches should not included unrelated bug fixes or features. * Unit tests and amulet tests should be included to prevent regressions in the future. * Small new features may be introduced, so long as they don’t change default configuration and have limited scope for regression of the charm codebase. * New unit and amulet tests may also be added to stable branches. |
{{{ openstack-origin: cloud:precise-icehouse }}} |
Line 59: | Line 60: |
== Gating == | Again, proposed updates in the stable release update process may also be tested: |
Line 61: | Line 62: |
*WIP* | {{{ openstack-origin: cloud:precise-icehouse/proposed }}} |
Line 63: | Line 66: |
All proposed changes to OpenStack charms should be verified upon initial approval by a member of the openstack-charmers team. This verification should include: | == Using PPA's == |
Line 65: | Line 68: |
* Running unit tests. * Running lint to ensure code standards are met. * The branch merges into the target branch with no conflicts |
The openstack-origin option also supports use of PPA's, however the name of the PPA must include the release codename of the !OpenStack release it contains, for example: |
Line 69: | Line 70: |
Upon successful completion of the above, the following testing should be run: | {{{ openstack-origin: ppa:james-page/liberty-testing }}} |
Line 71: | Line 74: |
* Amulet charm tests. * Reference topology tests. |
== Using 'deb...' source entries == |
Line 74: | Line 76: |
A subsequent approval from one of openstack-charmers after completion of this testing should automatically land the proposed branch into the target branch. | The openstack-origin option also supports direct entry of 'deb...' source entries, with an optional GPG key for authentication of packages, for example: {{{ openstack-origin: "deb http://ppa.launchpad.net/james-page/liberty-testing/ubuntu trusty main|448413DC" }}} The above example manual configures the sources file with the equivalent of the example given for PPA's. Again the provided value must contain the release of !OpenStack that the archive contains. |
Charm Use: OpenStack Origin
The majority of OpenStack charms support the configuration option 'openstack-origin'. This option allows the charm to source various different releases of OpenStack from the Ubuntu distribution, the Ubuntu Cloud Archive and from various other sources.
Ubuntu
To use the version of OpenStack that shipped as part of an Ubuntu release, simple set:
openstack-origin: distro
This format also supports testing of charms with versions of OpenStack in the SRU process:
openstack-origin: distro-proposed
As a reference, here are the mappings between OpenStack release and Ubuntu release:
Ubuntu Release |
Ubuntu Codename |
OpenStack Release |
12.04 |
Precise |
Essex |
14.04 |
Trusty |
Icehouse |
15.04 |
Vivid |
Kilo |
15.10 |
Wily |
Liberty |
16.04 |
Xenial |
Mitaka |
NOTE: Xenial/Mitaka is still in development.
Ubuntu Cloud Archive
The Ubuntu Cloud Archive provides backports of OpenStack releases to Ubuntu 14.04 LTS and to Ubuntu 12.04 LTS.
Ubuntu 14.04
Supported values for Ubuntu 14.04 LTS include:
openstack-origin: cloud:trusty-juno openstack-origin: cloud:trusty-kilo openstack-origin: cloud:trusty-liberty
Again, proposed updates in the stable release update process may also be tested:
openstack-origin: cloud:trusty-juno/proposed openstack-origin: cloud:trusty-kilo/proposed openstack-origin: cloud:trusty-liberty/proposed
Ubuntu 12.04
Supported values for Ubuntu 12.04 LTS include:
openstack-origin: cloud:precise-icehouse
Again, proposed updates in the stable release update process may also be tested:
openstack-origin: cloud:precise-icehouse/proposed
Using PPA's
The openstack-origin option also supports use of PPA's, however the name of the PPA must include the release codename of the OpenStack release it contains, for example:
openstack-origin: ppa:james-page/liberty-testing
Using 'deb...' source entries
The openstack-origin option also supports direct entry of 'deb...' source entries, with an optional GPG key for authentication of packages, for example:
openstack-origin: "deb http://ppa.launchpad.net/james-page/liberty-testing/ubuntu trusty main|448413DC"
The above example manual configures the sources file with the equivalent of the example given for PPA's. Again the provided value must contain the release of OpenStack that the archive contains.
OpenStack/OpenStackCharms (last edited 2018-08-22 20:47:20 by bryanquigley)