Crowbar modules (aka barclamps) perform many functions and enable multi-vendor hardware July 25, 2011
Posted by Rob H in Crowbar, Greg Althaus.Tags: Barclamp, Chef, Crowbar, install, modular, opcode, Open Source, OpenStack, People/Dell, State Machine
trackback
10/18 Update:
More recent information about Barclamps can be found at http://robhirschfeld.com/2011/09/14/details-of-crowbar-changes/. We’ve also created videos showing how you can create your own barclamps.
Original Post
Just after we’d started deep Crowbar development, Andi Abes, Paul Webster and Victor Lowther joined the Dell Crowbar+OpenStack team. They immediately started to dig into our Swift, BIOS/RAID, and Network components. They also started to bump into each other in our original code base. It quickly became apparent that we needed to modularize Crowbar.
Restructuring Crowbar into modules has proved essential as a method for safe community collaboration.
Greg Althaus coined the name “barclamps” during the modularization rearchitecture. A barclamp is a class extension of the Crowbar ServiceObject that allows Crowbar to identify the Chef components used by the barclam
p (name p
attern in Chef is bc-template-[barclamp]) and provides capabilities that are specific to each barclamp.
- In the simplest case, the barclamp is a minimal wrapper that just provides naming hooks for your Chef cookbooks. This makes it very easily to adapt existing Chef work to work with Crowbar.
- In more complex cases, the barclamp will help identity how nodes are allocated, interacts with other barclamps, extends the provisioner state machine and provides custom user interfaces.
- In most cases, the barclamp’s generic integration and UI are sufficient.
When looking at the barclamps, it is critical to understand that even the most core Crowbar functionality is expressed as a barclamp.
- helps modularize the code and
- reflects the deep integration between Chef and Crowbar.
Consequently, the core logic of the state machine, networking configuration, and provisioning are all exposed in barclamps. This makes it possible to modify and extend the most basic Crowbar operations; however, there are currently no guards against breaking these barclamps either!
| Barclamp | Function | Included |
| Crowbar | The roles and recipes to set up the barclamp framework. | Yes |
| Deployer | Initial classification system for the Crowbar environment (aka the state machine) | Yes |
| Provisioner | The roles and recipes to set up the provisioning server and a base environment for all nodes | Yes |
| Network | Instantiates network interfaces on the crowbar managed systems. Also manages the address pool. | Yes |
| NTP | Common NTP service for the cluster. An NTP server or servers can be specified and all other nodes will be clients of them. | Yes |
| DNS | manages the DNS subsystem for the cluste | Yes |
| Logging | centralized logging system based on syslog | Yes |
| IPMI | Integrates with IP management to allow direct hardware control bypassing the operating system. | Yes |
| RAID | LSI Licensed components. Cannot be included in open source release at this time. | No |
| BIOS |
PowerEdge C series: Dell License component. Cannot be included in open source release at this time. | No |
| Ganglia | Optional: a common Ganglia service for the cluster that can be used by other barclamps | Yes |
| Nagios | Optional : common monitoring service for the cluster that can be used by other barclamps | Yes |
| Nova | OpenStack: installs and configures the Openstack Nova (Cactus Release) component. It relies upon the network and glance barclamps for normal operation. | Yes |
| Swift | OpenStack: part of Openstack (Cactus Release) , and provides a distributed blob storage | Yes |
| Glance | OpenStack: Glance service (Cactus Release, Nova image management) for the cloud | Yes |
| Test | provides a shell for writing tests against | Yes |
[...] comprehensive set of barclamps to set up an OpenStack [...]
[...] 4+ months following this post, we substantially refactored the code make make it more modular (see Barclamps), better looking, and multi-vendor/multi-application (Hadoop & RHEL). If you want more [...]
[...] single sprint can deliver magic: when I signed up to document how to create a Crowbar module (aka a barclamp) two weeks ago, I had no idea that it would add a new flavor to Crowbar . I’m proud to announce [...]
[...] A Crowbar module, also known as a barclamp, is coming to Cloud Foundry. Crowbar automates the installation and configuration of open-source [...]
[...] Diablo Barclamps. Expect to see individual barclamps for various components like Keystone, Dashboard, Glace, Nova, Swift, [...]
[...] this version, each Crowbar barclamp is an independent delivery unit that can be integrated before, while or after installing [...]
[...] major objective of our recent modularization refactoring was to make it easier to the community to contribute barclamps. The Crowbar CloudOps approach is to build up a full cloud deployment using layers. So each [...]
[...] It makes use of Chef Cookbooks (also known as “barclamps” here) that do everything from network provisioning to direct hardware control. [...]
[...] It makes use of Chef Cookbooks (also known as “barclamps” here) that do everything from network provisioning to direct hardware control. [...]
[...] It makes use of Chef Cookbooks (also known as "barclamps" here) that do everything from network provisioning to direct hardware control. [...]
[...] It makes use of Chef Cookbooks (also known as "barclamps" here) that do everything from network provisioning to direct hardware control. [...]
[...] It makes use of Chef Cookbooks (also known as "barclamps" here) that do everything from network provisioning to direct hardware control. [...]
[...] comprehensive set of barclamps to set up an OpenStack [...]
[...] Barclamps are a very significant architecture pattern for Crowbar: [...]