Juju Integration

Registered by Jorge Castro on 2012-04-30

Rationale:
As Juju grows into more environments there is a need to ensure Juju plays well with others.

Goal:
Juju Charm integration for Chef, Capistrano, Puppet, CloudStack, and Facter.

Blueprint information

Status:
Complete
Approver:
Antonio Rosales
Priority:
Medium
Drafter:
Ubuntu Server
Direction:
Approved
Assignee:
Mark Mims
Definition:
Approved
Series goal:
Accepted for quantal
Implementation:
Implemented
Milestone target:
milestone icon ubuntu-12.10
Started by
Kate Stewart on 2012-07-10
Completed by
Clint Byrum on 2012-09-25

Related branches

Sprints

Whiteboard

Juju will not live in isolation
https://launchpad.net/juju-jitsu exists to enable these use cases

Potential integration points:

- Existing Puppet Deployments
 - Existing puppet subordinate charm promulgated yesterday
- Existing Puppet Manifests
- External Node Classifier
- Capistrano / Fabric
  - jitsu capfile -> emits a capfile
  - capistrano subordinate?
- Chef
- SaltStack

Solutions
- REST API (lp:jrapi)

other ways to integrate
puppetforge
cookbooks on github
how do you make a charm out of any of these?

---
User Stories:
Andrew has some nice solid working Chef recipes. He would like to take advantage of the work already done in Chef, and use Juju as a service orchestration mechanism.

Nathan has some existing Puppet deployments that he would like to leverage in Juju's service deployment.

Assumptions:
n/a

Test Plans:
Test Chef, Puppet, Capistrano, CloudStack, and Facter integration points and charms in CharmTester.

Release Notes:
When available provide information on how Chef, Puppet, Capistrano, CloudStack, and Facter may be used in a Juju framework.

-- juju facter integration --
facter is a standalone command tool that can be used via Juju by just installing the package ( sudo apt-get install facter ).
With the addition of facter-customfacts-plugin, new custom "facts" can be added/modified/deleted/used with juju to maintain status of the different aspects of the system in use.
An example of this integration can be found in lp:~negronjl/+junk/hpcc

(?)

Work Items

Work items:
[mark-mims] charm to deploy chef-server (maybe w sub like clint's puppet sub) : POSTPONED
[mark-mims] charms that call chef solo recipes : POSTPONED
[negronjl] "jujustrano" ( Juju Capistrano integration ) : DONE
[negronjl] go to town on clint's puppet sub ( puppetforge? ) ( add charm create option for puppet recipes ) : POSTPONED
[negronjl] define ways that juju would need to call Capistrano : DONE
[negronjl] jrapi as juju-jitsu subcommand... 'jitsu api' : POSTPONED
[negronjl] integrate Juju with facter : DONE
[hazmat] export/import environment into juju-jitsu : DONE
[negronjl] how to make charms out of puppetforge modules / github cookbooks : POSTPONED
[negronjl] plugin for chef-search to interface with juju (possibly just chef sub) : POSTPONED
[mike-mcclurg] cloudstack integration : POSTPONED
[imbrandon] investigate enstratus integration : POSTPONED

Dependency tree

* Blueprints in grey have been implemented.