otta 1.0

Last updated:

0 purchases

otta 1.0 Image
otta 1.0 Images
Add to Cart

Description:

otta 1.0

Otta
Otta is a
compose file inheretance
helper
Rationale
For simple usecases builtin defaults of docker-compose are just fine.
But systems do grow and the following problems are appearing:

shell commands are becoming longer
code duplication in compose files is getting worse
project root directory is getting bloated with compose files
complex compose configurations need up to date documentation

Example
Without Otta:
docker-compose -f base.yml -f local.yml -f mock_emails.yml -p local up

With Otta:
otta up

Otta file and otta directory
Otta directory:
otta
├── base.yml
├── local.yml
├── mock_mail_server.yml
├── prod_common.yml
├── prod_a.yml
├── prod_b.yml
└── otta.yml

Otta file:
files:
- base.yml
- local.yml
- mock_mail_server.yml
- prod_common.yml
- prod_a.yml
- prod_b.yml

default_recipe: local

recipes:
local:
project_name: local
files:
- base.yml
- local.yml
options:
mockmail:
files:
- mock_mail_server.yml

prod_a:
files:
- base.yml
- prod_common.yml
- prod_a.yml

prod_b:
project_name: production
files:
- base.yml
- prod_common.yml
- prod_b.yml

Explanation
Otta configuration is a directory with compose files and single otta file.
Otta files defines

root property files that defines all the files that can be used in recipes
root property default_recipe that defines... well, default recipe
the most important property, recipes defines available recipes

Each recipe has

name, 1 to 40 symbols: letters, numbers and underscores
optional project_name, with identical restrictions
files, list of files defined in root property
options, optional definition of available options

Options have name (1 to 20 symbols, numbers letters and underscores) and files property.
CLI reference
Otta and it's variants determine recipe from OTTA_REC env variable.
Recipe specification is either just recipe (local), or recipe with options (local+mockmail)
OTTA_FILE is path to otta file, absolute or relative
Setting OTTA_DEBUG to 1 makes the program print debug info
otta binary
otta call is equal to docker-compose -f base.yml -f local.yml -p local
skara binary
skara call is equal to docker stack deploy -c base.yml -c local.yml
project_name is ignored
kumla binary
kumla call is equal to kompose -f base.yml -f local.yml
project_name is ignored
Contributing
Please report all problems to GitLab
Pull requests are welcome

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.