Home

Awesome

Tako :octopus:

Develop Kubernetes apps iteratively with Docker-Compose

Stability:Beta CircleCI GitHub tag (latest SemVer) License: Apache-2.0

Tako helps developers port and iterate Docker Compose apps onto Kubernetes. It understands the Docker Compose application topology and prepares it for deployment in (multiple) target environments, with minimal user input.

We leverage the Docker Compose specification and allow for target-specific configurations to be applied to each component of the application stack, simply.

Tako is opinionated in its choice of Kubernetes elements you should be able to control. It automatically infers key config parameters by analysing and reconciling changes in the project source compose file(s). The configuration parameters can be manually overridden to allow for better control of a cloud application deployment on Kubernetes.

Tako reduces the need for Kubernetes expertise in the team. The generated Kubernetes deployment configuration follows best industry practices, with a thin layer of config options to enable further control. See tako reference documentation for a list of available options.

Features

Contents

Installation

All you need to get started quickly is the tako binary added to your PATH, and one or more docker compose files.

Tutorials and guides

Configuration

As mentioned in the Quickstart, the environment specific configuration lives in a set of docker-compose override files. Each environment override file holds simplified Kubernetes configuration parameters for each of the application components.

Project components (aka services) are configured via a set of labels attached to them, and optionally environment variables section which allows for localised adjustments - the same exact way you'd control those in a regular docker-compose file.

Volumes come with their own set of labels to control Kubernetes storage specific parameters.

See the configuration reference for details.

Similar tools

Tako is inspired by the simple, easy to use and well adopted Docker Compose specification, as well as several other tools in the Kubernetes manifests generation and templating space such as Kompose, Ksonnet and Kustomize, to name a few.

See how Tako differs from Kompose.

Each of the solutions above, however, come with their own set of challenges and are lacking in various areas. Some have been discontinued, some see very few contributions or updates, others require a great deal of prior Kubernetes expertise to find them useful.

Tako bridges the gaps in the existing tooling, helping developers familiar with Docker & Compose to easily get up and running with Kubernetes.

Contributing to Tako

We welcome any contributions from the community! Have a look at our contribution guide for more information on how to get started. If you use Tako, find it useful, or are generally interested in improving Developer Experience on Kubernetes then please let us know by Starring and Watching this repo. Thanks!

Get Involved

Join discussion on our Community channel.

Tako is a community project and we welcome your contributions. To report a bug, suggest an improvement, or request a new feature please open a Github issue. Refer to our contributing guide for more information on how you can help.

Roadmap

See our Roadmap for details about our plans for the project.

License

Copyright (c) 2020-2021 Appvia Ltd

This project is distributed under the Apache License, Version 2.0.