Carnotzet
The objective of Carnotzet is to create, configure and share lightweight, reproducible, isolated and portable development and testing environments
Modularity is a key concept in Carnotzet, you compose environments from multiple modules, developed and maintained by other teams.
- Each executable application has it’s own Carnotzet module.
- Carnotzet modules are packaged with Maven and can depend directly and transitively on other Carnotzet modules.
- Applications are packaged as docker images.
- Leverages docker-compose as a lightweight container orchestrator internally.
Carnotzet is useful when your environments are becoming large with different teams managing different services that integrate together. If you are not in this situation, the tools is probably not adapted to your needs.
Overview
Why not just use docker-compose directly ?
Carnotzet is a layer on top of docker-compose that adds the following features :
- Dependency management : an easy way to re-use configuration and abstract transitive dependencies.
- Hierarchical configuration management supporting overrides and merges.
- An easy way to integrate with tests using java code to get IP address, analyze log entries of running services, etc…
Getting started
- Make sure you have all the Prerequisites on your machine.
- Checkout the repository and look at the
/examples
- Create a Carnotzet module for your project : User Guide - Creating a new Carnotzet module
- Use the Maven plugin when working on your projects
- Use the Java API to write Create end-to-end tests for your application.
Resources
Issue management | https://github.com/swissquote/carnotzet/issues |
---|---|
Source code | https://github.com/swissquote/carnotzet |
Continuous integration | https://travis-ci.org/swissquote/carnotzet |
Artifacts | TODO |