OpenStackCharms
Size: 3594
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: |
== Charm Development Cycle Overview == | {{{ openstack-origin: distro }}} |
Line 11: | Line 13: |
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. | This format also supports testing of charms with versions of !OpenStack in the SRU process: |
Line 13: | Line 15: |
Scope | {{{ openstack-origin: distro-proposed }}} |
Line 15: | Line 19: |
The following charms fall within the scope of this policy: | As a reference, here are the mappings between !OpenStack release and Ubuntu release: |
Line 17: | Line 21: |
* 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 |
||'''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: |
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: | '''NOTE''': Xenial/Mitaka is still in development. |
Line 35: | Line 30: |
lp:~openstack-charmers/charm-helpers/stable | == Ubuntu Cloud Archive == |
Line 37: | Line 32: |
All stable charms should reference this branch for syncing. | The Ubuntu Cloud Archive provides backports of !OpenStack releases to Ubuntu 14.04 LTS and to Ubuntu 12.04 LTS. |
Line 39: | Line 34: |
NOTE: charm-helpers stable branch management may change if/when charm-helpers starts producing releases. | === Ubuntu 14.04 === |
Line 41: | Line 36: |
== Charm Development Process == | Supported values for Ubuntu 14.04 LTS include: |
Line 43: | Line 38: |
Charms should be developed against the /next branches under the openstack-charmers team on Launchpad, for example: | {{{ openstack-origin: cloud:trusty-juno openstack-origin: cloud:trusty-kilo openstack-origin: cloud:trusty-liberty }}} |
Line 45: | Line 44: |
lp:~openstack-charmers/charms/trusty/cinder/next | Again, proposed updates in the stable release update process may also be tested: |
Line 47: | Line 46: |
Merges should be proposed against these branches first for all changes. | {{{ openstack-origin: cloud:trusty-juno/proposed openstack-origin: cloud:trusty-kilo/proposed openstack-origin: cloud:trusty-liberty/proposed }}} |
Line 49: | Line 52: |
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. | === Ubuntu 12.04 === |
Line 51: | Line 54: |
== Charm Stable Update Process == | Supported values for Ubuntu 12.04 LTS include: |
Line 53: | Line 56: |
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: | {{{ openstack-origin: cloud:precise-icehouse }}} |
Line 55: | Line 60: |
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. |
Again, proposed updates in the stable release update process may also be tested: |
Line 61: | Line 62: |
== Gating == | {{{ openstack-origin: cloud:precise-icehouse/proposed }}} |
Line 63: | Line 66: |
*WIP* | == Using PPA's == |
Line 65: | Line 68: |
All proposed changes to OpenStack charms should be verified upon initial approval by a member of the openstack-charmers team. This verification should include: | 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 67: | Line 70: |
* Running unit tests. * Running lint to ensure code standards are met. * The branch merges into the target branch with no conflicts |
{{{ openstack-origin: ppa:james-page/liberty-testing }}} |
Line 71: | Line 74: |
Upon successful completion of the above, the following testing should be run: | == Using 'deb...' source entries == |
Line 73: | Line 76: |
* Amulet charm tests. * Reference topology tests. |
The openstack-origin option also supports direct entry of 'deb...' source entries, with an optional GPG key for authentication of packages, for example: |
Line 76: | Line 78: |
A subsequent approval from one of openstack-charmers after completion of this testing should automatically land the proposed branch into the target branch. | {{{ 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)