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

Overview diagram

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

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