Development utilities supporting development or deployment of Eucalyptus.
This repository is a collection of useful tools and documents meant to aide in work around Eucalyptus. There are two kinds of "work" these tools and documents are meant to support:
- Development work: tools/docs for interacting with Eucalyptus in the course of implementation, testing, debugging, etc.
- Deployment work: tools/docs for managing the deployment environment in which Eucalyptus operates.
This repository has the specific purpose of providing tools and docs in support of other development or administrative activities. The tools here are not an engineering exercise; they are not an end unto themselves. With that in mind, the repository has some rules which are meant to:
- Ensure the tools are self-contained and will work w/o needing to prepare the development or deployment environment.
- Make it easy to rip out the piece you need right now, ship it to wherever, and expect it will work.
- Keep tools simple and focused so they do not become a time sink of turd polishing.
- Enable quick access to functionality with trivial documentation.
- Directories as Modules: Every single tool or document lives in its own directory.
- Flat Structure: A tool/doc directory is an atomic unit, there are no subtools. If there is a tool which you need to include a copy of in its entirety: do it!
- Isolated: Dependencies between tool directories are prohibited.
- Self-contained: Every directory for a tool contains everything which is needed to execute that tool w/in the tools.
- Self-describing: Every directory must have a meaningful name and contain an elaborating
Exceptions to being Self-contained
Please indicate in the tool's
README.md if the tool requires any of the following:
- Running Eucalyptus: Requiring a running Eucalyptus is OK.
- Credentials: Requiring the presence of a
eucarcfile is OK.
- euca2ools: Requiring the standard client tools is OK.
- eucadmin tools: Requiring the standard admin tools is OK.
- Eucalyptus binaries: Requiring Eucalyptus binaries at runtime is OK.
- Password-less ssh: Requiring ssh to the hosts running Eucalyptus is OK.
- Internet Access: Requiring external interner access is OK.
Disallowed by Self-contained
- Package Installation: Do not assume you can change the host on which the tool is to be run, this compromises the value of the tool.
- From Rule #1: the only file that is ever in the root of the repo is this
README.md. Everything else is a directory.
- From Rule #2: the root of the repository contains the same number of directories as there are tools/docs.
- From Rule #3: a tool will work (if it ever has) when executed from within the directory you
rsyncd to your (least) favorite host.
- From Rule #4: a tool will work if ripped out of the repo on its own.
- From Rule #5:
head -n1 */README.mdwill give a listing of the tool directories and a description of the contained tool.
- Slimming down the repo. Let it become many gigabytes. Worry then.