Hi,

I'd like to more actively control the innards of our Crowbar provisioned
OpenStack plus Ceph fabric via it's Crowbar-provisioned Chef harness.

My outline for doing this is:

1) clone the basic chef-repo from github
2) connect this git repo with a user account on our crowbar-chef server
3) incorporate the cookbooks installed on our chef server into the chef-repo
4) modify cookbooks and knife upload them to our chef-server to apply
them to our fabric

Step 3 appears to have several approaches:

a) use knife list and knife cookbook download to copy all the cookbooks
on the running chef server to the cookbooks dir of the new chef-repo,
check them into git, work on them, the knife cookbook upload the changed
cookbooks to have them go into effect.  This makes the repo start from
the existing state of the chef server.  Improvements to cookbooks are
connected with upstream versions and
integration/improvements/"backports" all lie in our hands.

b) use knife list to get cookbook versions and then knife cookbook site
install <cookbook> <version-in-our-chef-server> to integrate the
community repo's "pristine" cookbook into our new chef-repo.  This has
the advantage of the in-build vendor branch model.  However, I've
noticed that even at the same cookbook version numbers, there are
differences between the cookbook in our chef-server and the pristine
upstream cookbook in the community portal.  This suggests we have a
second stage of knife cookbook download that adds and commits the
existing crowbar-deployed chef cookbooks on top of the foundation from
the community portal.  After all this, we can start to upload cookbook
changes and we have a "connection" with the community portal's releases
via the vendor branch model of site install for future enhancements.

c) use knife list to get cookbook versions then git clone the individual
cookbooks of correct version directly from the git hub repos.   This has
the advantage of full history information from upstream in our chef-repo
development environment.  It also seems like the easiest (only?) way to
readily push improvements features upstream.  We'd still need to
configure some sort of merge-with-existing-crowbar-cookbooks process and
then have an integration workflow merge upstream and local changes.

Am I on the right track here?

Option c appeals to me from the "dev" perspective but are there
practical considerations that suggest b or a as better solutions?

Is there already a way to do this that I just haven't read about yet?

And finally, why, when the versions of a cookbook in the
crowbar-deployed chef-server match an upstream release from the
community portal, are there differences in the code bases.  Is there a
way to see where/why these difference originated?

Thanks,

~jpr

_______________________________________________
Crowbar mailing list
Crowbar@dell.com
https://lists.us.dell.com/mailman/listinfo/crowbar
For more information: http://crowbar.github.com/

Reply via email to