Difference between revisions of "Puppet"
(→Mailing list) |
|||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
− | The Puppet modules for OpenStack | + | The Puppet modules for OpenStack are written as a collaborative effort between OpenStack operators using Puppet. |
== Puppet Modules == | == Puppet Modules == | ||
− | Puppet modules for the OpenStack project are hosted on [http://ci.openstack.org/stackforge.html StackForge]. | + | Puppet modules for the OpenStack project are hosted on [http://ci.openstack.org/stackforge.html StackForge] and are in the process to move under the OpenStack big tent. |
The following Puppet modules exist: | The following Puppet modules exist: | ||
Line 13: | Line 13: | ||
* [https://github.com/stackforge/puppet-designate stackforge/puppet-designate] | * [https://github.com/stackforge/puppet-designate stackforge/puppet-designate] | ||
* [https://github.com/stackforge/puppet-glance stackforge/puppet-glance] | * [https://github.com/stackforge/puppet-glance stackforge/puppet-glance] | ||
+ | * [https://github.com/stackforge/puppet-gnocchi stackforge/puppet-gnocchi] | ||
* [https://github.com/stackforge/puppet-heat stackforge/puppet-heat] | * [https://github.com/stackforge/puppet-heat stackforge/puppet-heat] | ||
* [https://github.com/stackforge/puppet-horizon stackforge/puppet-horizon] | * [https://github.com/stackforge/puppet-horizon stackforge/puppet-horizon] | ||
Line 18: | Line 19: | ||
* [https://github.com/stackforge/puppet-keystone stackforge/puppet-keystone] | * [https://github.com/stackforge/puppet-keystone stackforge/puppet-keystone] | ||
* [https://github.com/stackforge/puppet-manila stackforge/puppet-manila] | * [https://github.com/stackforge/puppet-manila stackforge/puppet-manila] | ||
+ | * [https://github.com/stackforge/puppet-monasca stackforge/puppet-monasca] | ||
* [https://github.com/stackforge/puppet-neutron stackforge/puppet-neutron] | * [https://github.com/stackforge/puppet-neutron stackforge/puppet-neutron] | ||
* [https://github.com/stackforge/puppet-nova stackforge/puppet-nova] | * [https://github.com/stackforge/puppet-nova stackforge/puppet-nova] | ||
Line 24: | Line 26: | ||
* [https://github.com/stackforge/puppet-swift stackforge/puppet-swift] | * [https://github.com/stackforge/puppet-swift stackforge/puppet-swift] | ||
* [https://github.com/stackforge/puppet-tempest stackforge/puppet-tempest] | * [https://github.com/stackforge/puppet-tempest stackforge/puppet-tempest] | ||
+ | * [https://github.com/stackforge/puppet-tripleo stackforge/puppet-tripleo] | ||
* [https://github.com/stackforge/puppet-trove stackforge/puppet-trove] | * [https://github.com/stackforge/puppet-trove stackforge/puppet-trove] | ||
* [https://github.com/stackforge/puppet-tuskar stackforge/puppet-tuskar] | * [https://github.com/stackforge/puppet-tuskar stackforge/puppet-tuskar] | ||
* [https://github.com/stackforge/puppet-vswitch stackforge/puppet-vswitch] | * [https://github.com/stackforge/puppet-vswitch stackforge/puppet-vswitch] | ||
− | + | Library repository, used for common resources accross all modules: | |
* [https://github.com/stackforge/puppet-openstacklib stackforge/puppet-openstacklib] | * [https://github.com/stackforge/puppet-openstacklib stackforge/puppet-openstacklib] | ||
+ | |||
+ | Optional tools that can be used in composition layer and might be helpful to deploy OpenStack: | ||
+ | * [https://github.com/stackforge/puppet-openstack_extras stackforge/puppet-openstack_extras] | ||
+ | |||
+ | Blueprints/specs repository: | ||
* [https://github.com/stackforge/puppet-openstack-specs stackforge/puppet-openstack-specs] | * [https://github.com/stackforge/puppet-openstack-specs stackforge/puppet-openstack-specs] | ||
− | + | ||
=== Branches === | === Branches === | ||
− | The master branch of each modules corresponds to the master | + | The master branch of each modules corresponds to the latest packages available in upstream repositories. So if you submit a patch in master, it should pass beaker jobs that rely on upstream packaging (RDO in CentOS7 and UCA in Ubuntu Trusty). |
− | For example, the current master branch of stackforge/puppet-keystone is targeting OpenStack | + | For example, the current master branch of stackforge/puppet-keystone is targeting OpenStack Kilo, once released, a new stable/kilo branch will be created, from that point onward the master branch should target the OpenStack L release. |
=== Releases === | === Releases === | ||
Line 76: | Line 84: | ||
In general, the mailing list is preferred, because it makes the information more readily available so that others who have the same question can search for and find those answers. | In general, the mailing list is preferred, because it makes the information more readily available so that others who have the same question can search for and find those answers. | ||
+ | Dev discussions: openstack-dev@lists.openstack.org with [puppet] tag. | ||
+ | |||
+ | User discussions: puppet-openstack@puppetlabs.com | ||
You can read and subscribe to the mailing list here: https://groups.google.com/a/puppetlabs.com/forum/#!forum/puppet-openstack | You can read and subscribe to the mailing list here: https://groups.google.com/a/puppetlabs.com/forum/#!forum/puppet-openstack | ||
− | |||
− | |||
− | |||
=== IRC === | === IRC === | ||
Line 181: | Line 189: | ||
When this happens, a stable branch is created for any previous releases. | When this happens, a stable branch is created for any previous releases. | ||
− | ie: stable/ | + | ie: stable/juno |
It is the responsibility for the patch submitted to know if their patch should be backported to previous stable branches. | It is the responsibility for the patch submitted to know if their patch should be backported to previous stable branches. | ||
Line 197: | Line 205: | ||
== [[Meetings#Puppet_OpenStack_Team_Meeting|Weekly meetings]] == | == [[Meetings#Puppet_OpenStack_Team_Meeting|Weekly meetings]] == | ||
Please see [[Meetings#Puppet_OpenStack_Team_Meeting]] | Please see [[Meetings#Puppet_OpenStack_Team_Meeting]] | ||
− | |||
− | |||
[[Category: Working_Groups]] | [[Category: Working_Groups]] | ||
[[Category: Stackforge]] | [[Category: Stackforge]] |
Revision as of 18:07, 22 May 2015
Introduction
The Puppet modules for OpenStack are written as a collaborative effort between OpenStack operators using Puppet.
Puppet Modules
Puppet modules for the OpenStack project are hosted on StackForge and are in the process to move under the OpenStack big tent.
The following Puppet modules exist:
- stackforge/puppet-ceilometer
- stackforge/puppet-ceph
- stackforge/puppet-cinder
- stackforge/puppet-designate
- stackforge/puppet-glance
- stackforge/puppet-gnocchi
- stackforge/puppet-heat
- stackforge/puppet-horizon
- stackforge/puppet-ironic
- stackforge/puppet-keystone
- stackforge/puppet-manila
- stackforge/puppet-monasca
- stackforge/puppet-neutron
- stackforge/puppet-nova
- stackforge/puppet-openstack
- stackforge/puppet-sahara
- stackforge/puppet-swift
- stackforge/puppet-tempest
- stackforge/puppet-tripleo
- stackforge/puppet-trove
- stackforge/puppet-tuskar
- stackforge/puppet-vswitch
Library repository, used for common resources accross all modules:
Optional tools that can be used in composition layer and might be helpful to deploy OpenStack:
Blueprints/specs repository:
Branches
The master branch of each modules corresponds to the latest packages available in upstream repositories. So if you submit a patch in master, it should pass beaker jobs that rely on upstream packaging (RDO in CentOS7 and UCA in Ubuntu Trusty).
For example, the current master branch of stackforge/puppet-keystone is targeting OpenStack Kilo, once released, a new stable/kilo branch will be created, from that point onward the master branch should target the OpenStack L release.
Releases
Master version of the modules will be released as a new major version to Puppet Forge (forge.puppetlabs.com) when its related version of OpenStack is released.
Each version of OpenStack have a corresponding release on the forge.
Module Version | OpenStack Version | OpenStack Version Codename |
---|---|---|
2.y.z | 2013.1.x | Grizzly |
3.y.z | 2013.2.x | Havana |
4.y.z | 2014.1.x | Icehouse |
5.z.y | 2014.2.x | Juno |
Supported Platforms
The following OS/version are supported by the Puppet modules:
- Fedora 18 /19 / 20
- RHEL 6.4 / 6.5 / 7
- Ubuntu 12.04 (Precise) / 14.04 (Trusty)
- Debian 7.0 (Wheezy)
The modules have been primarily tested on Puppet 2.7.x and Ruby 1.8.7, although they are also being used with Puppet 3.1.x, 3.0.x, with Ruby 1.9.3.
Puppet 2.6.x is currently NOT supported, it has been EOL'ed by PuppetLabs.
Getting Help
Mailing list
In general, the mailing list is preferred, because it makes the information more readily available so that others who have the same question can search for and find those answers.
Dev discussions: openstack-dev@lists.openstack.org with [puppet] tag.
User discussions: puppet-openstack@puppetlabs.com You can read and subscribe to the mailing list here: https://groups.google.com/a/puppetlabs.com/forum/#!forum/puppet-openstack
IRC
You can talk to us directly in IRC on the #puppet-openstack
channel. (freenode.net)
IRC logs can be found here.
Reporting bugs
We are using Launchpad for bugs and features tracking. Issues and requests should be submitted under the Puppet OpenStack project.
Developer documentation
Contributing to the modules
Getting Started
We follow the same process as all of the other OpenStack projects.
To contribute, the following docs contain enough information to get started:
- https://wiki.openstack.org/wiki/How_To_Contribute
- https://wiki.openstack.org/wiki/GettingTheCode
- https://wiki.openstack.org/wiki/GerritWorkflow
- go to : settings > watched projects and add the puppet projects (all of the form stackforge/puppet-*)
- hint: Download all puppet-openstack git repo using mr
How code gets merged
Code is merged based on the voting process of the modules in Gerrit. All submitted patches automatically trigger a job that runs its rspec-puppet tests. This job is considered to be a gate in that no code is allowed to be merged that does not pass these tests. The results of this job are listed for every patch as a +1 Verified vote from Jenkins.
Any users can +/- 1 a commit and add comments on commit, but only members of the puppet-manager-core group have the ability to +2 and approve code to be merged.
Puppet OpenStack CI, and SmokeStack are two continuous integration environments that can be used to verify that any given patch can be used to deploy a functional multi-node environments. The integration of both of these systems is an ongoing process, so failures should be followed up on, but are not considered blockers at this moment.
Patches
Patches waiting to be merged can be viewed in Gerrit e.g. for stackforge/puppet-keystone
https://review.openstack.org/#/q/status:open+project:stackforge/puppet-keystone,n,z
Q. How do I go about submitting a patch for a released branch, what the correct process? Unless is not relevant all patches should be approved for the master branch before you submit them for a stable branch. This ensures we maintain stability in the stable branches and functionality
Downloading a local patch
Clone the relevant module from StackForge, ex:
git clone git://github.com/stackforge/puppet-openstack
in the patch, find the git checkout or cherry-pick command, and copy it:
git fetch https://review.openstack.org/stackforge/puppet-openstack refs/changes/52/29452/9 && git checkout FETCH_HEAD
if you wanted to update an existing patch:
make a topic branch:
git checkout -b my_topic
make your changes:
hack,hack,hack
amend the current commit:
git commit --amend .
now resubmit:
git review
Rspec puppet tests
Rspec puppet tests are a requirement for getting code merged into the StackForge modules.
The best reference for getting started with rspec-puppet can be found here
For a new puppet stackforge project, please see this page
Running local tests
The following command can invoked from any if the modules' directories to run their rspec puppet tests.
It assumes that both bundler as well as rubygems (and ruby) are already installed on the system.
mkdir vendor export GEM_HOME=vendor bundle install # bundle exec rake -T bundle exec rake spec
This relies on the file .fixtures.yaml to install all of the external module required for testing. The urls in this file use the git:// protocol, so this may need to be updated if you are behind a proxy.
stable branches
Master of the modules should be targeting the trunk of openstack as soon as a release is announced.
When this happens, a stable branch is created for any previous releases.
ie: stable/juno
It is the responsibility for the patch submitted to know if their patch should be backported to previous stable branches.
The general process for this can be found here: https://wiki.openstack.org/wiki/StableBranch#Workflow
create a stable branch
For branching you just go to the project page on Gerrit and make a new branch under the branches option.
Example https://review.openstack.org/#/admin/projects/stackforge/puppet-nova,branches
When you first create it it doesn't really appear in git until the first commit gets pushed to it or master.
Weekly meetings
Please see Meetings#Puppet_OpenStack_Team_Meeting