Jump to: navigation, search

Difference between revisions of "Packstack"

(Making your first contribution)
(Gerrit)
 
(29 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
/!\ This page is far from complete, help by adding information.
 
/!\ This page is far from complete, help by adding information.
 
== Summary ==
 
== Summary ==
Packstack is a utility that uses Puppet modules to deploy various parts of [[OpenStack]] on multiple pre-installed servers over SSH automatically. Currently only Fedora, Red Hat Enterprise Linux (RHEL) and compatible derivatives of both are supported.
+
'''Packstack''' is a utility that uses '''Puppet''' modules to deploy various parts of [[OpenStack]] on multiple pre-installed servers over <code><nowiki>SSH</nowiki></code> automatically. Currently only <code><nowiki>CentOS</nowiki></code>, <code><nowiki>Red Hat Enterprise Linux (RHEL)</nowiki></code> and compatible derivatives of both are supported.
  
== Example Usage : All in One ==
+
== Example Usage ==
  
<pre><nowiki>
+
=== All in One ===
packstack --allinone
 
</nowiki></pre>
 
 
 
Shorthand for:
 
  
 
<pre><nowiki>
 
<pre><nowiki>
packstack --install-hosts=<local ipaddr> --novanetwork-pubif=<dev> --novacompute-privif=lo --novanetwork-privif=lo --os-swift-install=y --nagios-install=y
+
$ packstack --allinone
 
</nowiki></pre>
 
</nowiki></pre>
  
This option can be used to install an all in one OpenStack on this host.
+
For detailed options, please refer to the Packstack documentation at https://github.com/openstack/packstack/blob/master/docs/packstack.rst
  
== Example Usage : Controller / multiple compute nodes ==
+
== Development : Getting started ==
 +
In general, you will want to use a packaged version of Packstack. Refer to https://www.rdoproject.org/install/quickstart/ for details on how to enable the required repositories and install Packstack.
  
== Example Usage : Swift Proxy / multiple storage devices ==
+
If you are a developer and want to install Packstack from source, please refer to https://github.com/openstack/packstack/blob/master/README.md#installation-of-packstack for detailed information.
  
== Development : Getting started ==
+
=== Using an answer file ===  
  
 
<pre><nowiki>
 
<pre><nowiki>
git clone --recursive https://github.com/stackforge/packstack.git -b folsom
+
$ packstack --gen-answer-file=answers.txt
cd packstack
 
python ./bin/packstack --gen-answer-file=ans.txt
 
# edit ans.txt
 
python ./bin/packstack --answer-file=ans.txt
 
 
</nowiki></pre>
 
</nowiki></pre>
  
 +
Then edit <code><nowiki>answers.txt</nowiki></code> as appropriate.
  
 
== Links ==
 
== Links ==
* [https://github.com/stackforge/packstack Primary Git Repository]
+
* [https://github.com/openstack/packstack Primary Git Repository]
* [https://review.openstack.org/#/q/status:open+project:stackforge/packstack,n,z Open reviews in Gerrit]
+
* [https://review.openstack.org/#/q/status:open+project:openstack/packstack,n,z Open reviews in Gerrit]
 
* [https://bugzilla.redhat.com/ Bug Reporting Tool] - use only to report bugs found in packages provided in Fedora or EPEL
 
* [https://bugzilla.redhat.com/ Bug Reporting Tool] - use only to report bugs found in packages provided in Fedora or EPEL
 
* [https://launchpad.net/~packstack-core Launchpad (core developers)]
 
* [https://launchpad.net/~packstack-core Launchpad (core developers)]
Line 44: Line 38:
  
 
== IRC ==
 
== IRC ==
Developers meet in [http://webchat.freenode.net?channels=packstack-dev #packstack-dev] on Freenode for discussion.
+
Developers meet in [http://webchat.freenode.net?channels=rdo #rdo] on Freenode for discussion.
  
 
End-user questions are probably best answered in [http://webchat.freenode.net?channels=openstack #openstack] or [http://webchat.freenode.net?channels=rdo #rdo]
 
End-user questions are probably best answered in [http://webchat.freenode.net?channels=openstack #openstack] or [http://webchat.freenode.net?channels=rdo #rdo]
Line 52: Line 46:
 
=== Making your first contribution ===
 
=== Making your first contribution ===
 
The process you need to follow in order to contribute to packstack is the same as the openstack core projects, documented here http://wiki.openstack.org/HowToContribute the steps to follow look something like this
 
The process you need to follow in order to contribute to packstack is the same as the openstack core projects, documented here http://wiki.openstack.org/HowToContribute the steps to follow look something like this
* Sign the CLA
 
* get the code
 
  
<pre><nowiki>  
+
'''→''' Sign the CLA
$ git clone https://github.com/stackforge/packstack.git  
+
 
 +
'''→''' Get the code
 +
 
 +
<pre><nowiki>
 +
$ git clone https://github.com/openstack/packstack.git  
 +
$ cd packstack
 +
</nowiki></pre>
 +
 
 +
'''→''' Make a topic branch:
 +
<pre><nowiki>
 +
$ git checkout -b my_topic
 +
</nowiki></pre>
 +
 
 +
'''→''' Make your change
 +
<pre><nowiki>
 +
$ hack, hack, hack !! ;-)
 
</nowiki></pre>
 
</nowiki></pre>
  
* Make your change and commit it
+
'''→''' Commit your change
* Submit your change for review
+
<pre><nowiki>
 +
$ git commit -a
 +
</nowiki></pre>
  
 +
'''→''' Submit your change for review
 
<pre><nowiki>
 
<pre><nowiki>
  $ git review  
+
$ git review  
 
</nowiki></pre>
 
</nowiki></pre>
  
* Wait for people on gerrit https://review.openstack.org/#/q/status:open+project:stackforge/packstack,n,z to review your change, if it needs to be altered simply amend your commit and submit it for review again
+
'''→''' Wait for people on gerrit https://review.openstack.org/#/q/status:open+project:openstack/packstack,n,z to review your change, if it needs to be altered simply amend your commit and submit it for review again
  
 
<pre><nowiki>
 
<pre><nowiki>
  $ git add -p
+
$ git add -p
  $ git commit --amend
+
$ git commit --amend
  $ git review
+
$ git review
 
</nowiki></pre>
 
</nowiki></pre>
  
 
=== Git branches ===
 
=== Git branches ===
 
There is a branch for each openstack major release, this branch starts off is life as master, once development of the next release starts, it will be renamed and then master will be the branch for the next openstack release e.g.
 
There is a branch for each openstack major release, this branch starts off is life as master, once development of the next release starts, it will be renamed and then master will be the branch for the next openstack release e.g.
once we start grizzly development, master will branch off a folsom branch. Then  
+
once we start <code><nowiki>Ocata</nowiki></code> development, master will branch off a <code><nowiki>stable/ocata</nowiki></code> branch. Then  
* folsom -> should only accept bug fixes and exceptional approved new features, these should be merged into master first if appropriate
+
* <code><nowiki>stable/ocata</nowiki></code>    → should only accept bug fixes and exceptional approved new features, these should be merged into master first if appropriate
* master -> new features for grizzly and bugs
+
* <code><nowiki>master</nowiki></code> new features and bugs
  
note : (be careful to send your changes to the correct branch and also that your basing any commits on a parent from the correct branch)
 
  
 +
'''Note :''' (be careful to send your changes to the correct branch and also that your basing any commits on a parent from the correct branch)
 +
 +
* To send review request for the master branch
 
<pre><nowiki>
 
<pre><nowiki>
# to send review request for the master branch
+
$ git review  
git review
+
</nowiki></pre>
  
# to send review request for the stable branch
+
* To send review request for the stable branch
git review folsom
+
<pre><nowiki>
 +
$ git review stable/ocata
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Git submodules ===
 
We pull many other puppet submodules from various places, these are added as git submodules. A git submodule references a particular commit, In as much as possible packstack should reference the most recent upstream puppet modules possible, this may involve getting some changes into the puppet module before changing the commit referenced by packstack.
 
 
Once a release has been branched off, we should never change the reference to a newer upstream commit, If a new commit is required in the puppet module the appropriate procedure is
 
* fork to module on github/packstack
 
* open a branch named packstack/<releasename>  e.g. https://github.com/packstack/puppetlabs-inifile/tree/packstack/folsom
 
* commit fix in this branch  e.g.  https://github.com/packstack/puppetlabs-inifile/commits/packstack/folsom
 
* change packstack stable branch to reference this commit  e.g https://review.openstack.org/#/c/20471/
 
* send pull request to upstream puppet module, so future branches don't have to reference the fork
 
  
 
=== Bugs ===
 
=== Bugs ===
Line 110: Line 112:
 
New features go into the master branch. There may be new features committed to a stable branch but these should be the exception and not the norm.
 
New features go into the master branch. There may be new features committed to a stable branch but these should be the exception and not the norm.
  
=== gerrit ===
+
=== Gerrit ===
Open review requests https://review.openstack.org/#/q/status:open+project:stackforge/packstack,n,z
+
Open review requests https://review.openstack.org/#/q/status:open+project:openstack/packstack,n,z
  
=== packstack core ===
+
=== Packstack Core ===
You do not need to be a core member to packstack in order to contribute code. Members of packstack-core can approve commits in gerrit to be merged into the code, new members to packstack-core should be actively (and reliably) reviewing commits in gerrit before being considered. New members will be invited to join. Core members can be found [https://launchpad.net/~packstack-core/+members#active here]
+
You do not need to be a core member to packstack in order to contribute code. Members of packstack-core can approve commits in gerrit to be merged into the code, new members to packstack-core should be actively (and reliably) reviewing commits in gerrit before being considered. New members will be invited to join. Core members can be found [https://review.openstack.org/#/admin/groups/124,members here]

Latest revision as of 13:14, 31 October 2016

Packstack

/!\ This page is far from complete, help by adding information.

Summary

Packstack is a utility that uses Puppet modules to deploy various parts of OpenStack on multiple pre-installed servers over SSH automatically. Currently only CentOS, Red Hat Enterprise Linux (RHEL) and compatible derivatives of both are supported.

Example Usage

All in One

$ packstack --allinone

For detailed options, please refer to the Packstack documentation at https://github.com/openstack/packstack/blob/master/docs/packstack.rst

Development : Getting started

In general, you will want to use a packaged version of Packstack. Refer to https://www.rdoproject.org/install/quickstart/ for details on how to enable the required repositories and install Packstack.

If you are a developer and want to install Packstack from source, please refer to https://github.com/openstack/packstack/blob/master/README.md#installation-of-packstack for detailed information.

Using an answer file

$ packstack --gen-answer-file=answers.txt

Then edit answers.txt as appropriate.

Links

Presentations

IRC

Developers meet in #rdo on Freenode for discussion.

End-user questions are probably best answered in #openstack or #rdo

Packstack Development

Making your first contribution

The process you need to follow in order to contribute to packstack is the same as the openstack core projects, documented here http://wiki.openstack.org/HowToContribute the steps to follow look something like this

Sign the CLA

Get the code

$ git clone https://github.com/openstack/packstack.git 
$ cd packstack

Make a topic branch:

$ git checkout -b my_topic

Make your change

$ hack, hack, hack !! ;-)

Commit your change

$ git commit -a 

Submit your change for review

$ git review 

Wait for people on gerrit https://review.openstack.org/#/q/status:open+project:openstack/packstack,n,z to review your change, if it needs to be altered simply amend your commit and submit it for review again

$ git add -p
$ git commit --amend
$ git review

Git branches

There is a branch for each openstack major release, this branch starts off is life as master, once development of the next release starts, it will be renamed and then master will be the branch for the next openstack release e.g. once we start Ocata development, master will branch off a stable/ocata branch. Then

  • stable/ocata → should only accept bug fixes and exceptional approved new features, these should be merged into master first if appropriate
  • master → new features and bugs


Note : (be careful to send your changes to the correct branch and also that your basing any commits on a parent from the correct branch)

  • To send review request for the master branch
$ git review 
  • To send review request for the stable branch
$ git review stable/ocata

Bugs

Bugs are tracked in Launchpad (New bug)

Reviews

All commits should be reviewed and approved by at least one core packstack member (ideally 2 for any commit more then a trivial change) and author of a commit shouldn't approve their own code.

New Features

New features go into the master branch. There may be new features committed to a stable branch but these should be the exception and not the norm.

Gerrit

Open review requests https://review.openstack.org/#/q/status:open+project:openstack/packstack,n,z

Packstack Core

You do not need to be a core member to packstack in order to contribute code. Members of packstack-core can approve commits in gerrit to be merged into the code, new members to packstack-core should be actively (and reliably) reviewing commits in gerrit before being considered. New members will be invited to join. Core members can be found here