Project

cbf

0.0
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Cloud Babel Fish is a tool an a library for converting between the different multi-instance cloud deployment templates.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 10.0.2

Runtime

~> 1.5.0
 Project Readme

CBF (Cloud Babel Fish)

A library for converting various cloud deployment formats.

Installation

Add this line to your application's Gemfile:

gem 'cbf'

And then execute:

$ bundle

Or install it yourself as:

$ gem install cbf

Usage

require 'cbf'

List all the supported input formats:

CBF.parsers
=> [:aeolus, :aeolus_v1]

List all the suported output formats:

CBF.generators
=> [:heat, :cloud_formation]

Convert from the Aeolus Deployable XML format to Amazon CloudFormation:

puts CBF.convert(open("wordpress.xml"), :aeolus).to(:cloud_formation)
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "This is an example of a multi deployment that deploys wordpress across an apache and mysql instance",
  "Parameters": {
    "webserver_image": {
      "Type": "String",
...

}

How it works

When CBF reads an input format, it converts its contents into an internal representation that contains all the information and is the same for all the formats.

The generator for the output format receives this internal structure and converts it to the desired output.

If you want to add supports for new formats, you will need work with this internal resource format.

The specification is here:

https://github.com/tomassedovic/cbf/wiki/Internal-resource-format

Short-term Roadmap

  • Fully document the internal resource format
  • Add more extensive tests
  • Publish to Rubygems

License

All the files outside of the spec/samples directory are licensed under the Apache License Version 2.

The full text of the license can be found at: http://www.apache.org/licenses/LICENSE-2.0. It is also included in the attached COPYING file.