Base
Paasify provides a way to extend apps, via different concepts:
- project
- repository
- collection
- app
- tag
- docker-compose tag
- jsonnet tag
Concepts
A repo:
- is collection or a set of collections hierarchically organized
A collection can include:
- A set of apps definitions (/
/) - A set of plugins (.paasify/plugins/*.jsonnet)
An app can include:
- a set of default variables (vars.yml)
- An app definitions (docker-compose.yml)
- Tags definitions (docker-compose.
.yml) - A set of plugin for this app (
.jsonnet)
A tag can be:
- A simple docker-compose file prefixed with the tag name
- A jsonnet file that understand a json API
A project is:
- A directory where lives
paasify.yml
- Can include all of the above
Project
File hierarchy
Each component must follow a hierarchical file structure convention:
Project file structure:
* project1/
* paasify.yml: Main configuration config
* .paasify/
* collections/: Managed paasify sources dir ! (TMP dir)
* plugins/
* <tag_name>.jsonnet
* stack1/
* vars.yml
* docker-compose.yml: Default docker-compose file, overrides from source
* docker-compose.run.yaml: Generated docker compose file !
* docker-compose.<tag_name>.yml: Custom tags
* stack2/
* stack3/
* project2/
App
TODO
Tags
Info
A dedicated page is available here for tags.
Collection
TODO
File hierarchy
Collection file structure:
* collection_ident1:
* .paasify/
* plugins/
* <tag_name>.jsonnet: Common stack plugins
* stack1/
* vars.yml
* docker-compose.yml
* docker-compose.<tag_name>.yml
* docker-compose.debug.yml
* docker-compose.mysql.yml
* docker-compose.smtp.yml
* <tag_name>.jsonnet: Local stack plugin
* stack2/
* collection_ident2:
Each collection is contained in a git repo. A git repo can have many collections. Many app are available inside each collection. A collection can alos provides plugins, like stacks.
Repository
TODO