Nepho cloudlets encapsulate infrastructure components and configuration code into a distributable bundle. The majority of the logic necessary to spin up a stack is contained without the cloudlet, rather than in Nepho's core code or the code for infrastructure providers.
In the most basic case, a user utilizes
Consult the Nepho vocabulary page for definitions of terms used in this and other documentation.
A cloudlet is a Git repository that contains:
One or more blueprints, which consist of:
payload/<blueprint name>that will be transferred to created instances. The same payload is used for all blueprints, so it should be structured to work regardless of environment. Example payload data is:
bootstrap- Prepare an instance for configuration management
configure- Run a configuration management process to setup the platform environment (idempotent)
deploy- Run any actions necessary to deploy or setup application code/build artifacts (idempotent)
teardown- Prepare an instance for shutdown/removal
Hooks are shell scripts located under
Infrastructure templates are processed through the Jinja2 templating engine prior to being run, which allows for very sophisticated infrastructure patterns to be created from shared building blocks. The templating engine uses both the specified blueprint template file as well as any additional data located under
This tree illustrates the cloudlet filesystem structure for the
nepho-example cloudlet. We encourage cloudlet authors to use the
nepho-example cloudlet as a starting point for constructing your own cloudlets according to current best practices. The current clouldet format is 1, any changes to the cloudlet structure will be captured in higher-numbered cloudlet formats.
nepho-example ├── cloudlet.yaml ├── README.md ├── blueprints │ ├── aws-single-host.yaml │ └── vagrant-single-host.yaml ├── payload │ ├── hooks │ │ ├── bootstrap │ │ ├── configure │ │ ├── deploy │ │ └── teardown │ └── puppet │ ├── Puppetfile │ ├── manifests │ └── templates └── resources ├── aws-single-host │ └── cf.json ├── common │ └── aws └── vagrant-single-host └── Vagrantfile