Local (LXC) Provider
[RATIONALE]
Developing and testing charms needs the usage of providers. The usage of external ones like EC2 or an OpenStack installation creates costs and/or dependencies. That hinders the creation of new or maintenance of existing charms. Also new charm contributors may be deterred by those concomitant effects.
A local provider instead allows the testing of new or changed charms without external providers. Additionally the evaluation of Juju in pilot projects gets easier and helps improving the acceptance of Juju.
[GOAL]
- Implement a LXC based provider for local Juju usage.
- Test the provider with a representative set of charms (yet to be defined).
- Provide mechanisms for automated testing (depending on automated testing of Juju).
- Provide an interface to Juju Charm Testing (https:/
Blueprint information
- Status:
- Complete
- Approver:
- Mark Ramm
- Priority:
- High
- Drafter:
- Frank Mueller
- Direction:
- Approved
- Assignee:
- Tim Penhey
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Tim Penhey
- Completed by
- Tim Penhey
Whiteboard
[USER STORIES]
As a charm developer I want to deploy and test charms on my local machine.
As a sysop I want to evaluate charms and their configuration on my local machine.
As a charm developer or sysop I want to use the same Juju tool set to administrate the local instances as if I would do it with remote providers.
[ASSUMPTIONS]
Automated testing for Juju will be realized.
[RISKS]
Late detection that LXC is not the optimal tool for virtualization.
Time needed to evaluate LXC alternatives.
[IN SCOPE]
[OUT OF SCOPE]
[USER ACCEPTANCE]
[RELEASE NOTE/BLOG]
Work Items
Work items:
Add command get-images - write as a plugin size 2: TODO
[thumper] LXC provisioner size 8: DONE
[thumper] Update jujud machine agent to support LXC context size 4: DONE
[thumper] Machine agent supplies IP addresses to containers size 4: INPROGRESS
[thumper] Implement local provider storage size 2: DONE
[thumper] Implement environ provider size 2: DONE
[thumper] Implement environ size 2: DONE
[jcastro] Document limitations of local provider: TODO