FAQ
Why a tag can't be both jsonnet and docker-compose
Actually, this would be redundant as a jsonnet can generate and even modify existing docker-compose files, as it's a full featured json language.
Stack assemble workflow
How is assembled a stack?
- Read variables:
- Generate default stack vars (paasify)
- Read all tags default_variables (
.jsonnet) - Read upstream app vars (vars.yml)
- Read local app vars (vars.yml)
- Read global conf variables (conf.vars)
- Read stack variables (stack.vars)
- Read all tags override_variables (
.jsonnet)
- Get docker-files:
- Find all docker-files matching tags in local app (docker-compose.
.yaml) - Fallback on found all docker-files matching tags in upstream app (docker-compose.
.yaml)
- Find all docker-files matching tags in local app (docker-compose.
- Build docker-compose file:
- Assemble all found docker-files with all vars
- On the
docker-compose config
output- Read all tags with jsonnet and apply transform hook (
.jsonnet) - All vars defined in a tag config are local
- Read all tags with jsonnet and apply transform hook (
- Write final docker-compose:
- Write into:
/docker-compose.run.yml
- Write into:
Related piece of code: paasify.stacks2.PaasifyStack.assemble()
TODO