...
Our current Bigtop deployment code shows its signs of age (it originated in pre 2.X puppet). That code currently serves as the main engine for us to dynamically deploy Bigtop clusters on EC2 for testing purposes. However, given that the Bigtop distro is the foundation for the commercial distros, we would like our Puppet code to be the go-to place for all the puppet-driven Hadoop deployment needs.
What we strive at building is a set of reusable/encapsulated/modular building blocks that can be arranged in any legal “hadoop toplogy”, as opposed to automating a particular deployment use case. Our goal is to offer capabilities, not to dictate policies.
Thus at the highest level, our Puppet code needs to be:
...
Also, there's now a GitHub repository for the code to evolve: https://github.com/rvs/bigtop-puppet
Issues to be resolved
Picking an overall 'theme' or 'paradigm' for the design of our modules.
The Node->Role->Profile->Module->Resource approach articulated here http://www.craigdunn.org/2012/05/239/ looks pretty promising.
Parameterized classes vs. external lookups
...