Skip to content

Architecture

Architecture of Tsuru's control plane

How can I improve the above diagram?

Feel free to help us by improving and keeping the above diagram up to date. It was created using Excalidraw's whiteboard. Click here to access the most updated version available. After changing anything, you should share the new export link with us.

Tsuru API server

This service is part of Tsuru's core services.

The web API where the Tsuru users interact with. It's responsible for almost everything since Tsuru workloads1 creation until deployment workflow and troubleshooting operations.

Source code: tsuru/tsuru
OpenAPI specification: Tsuru API

MongoDB

The datastore service used by Tsuru API server to store the Tsuru workloads1 expected state, events and so on. Currently, it must a MongoDB server implementation on 4.x version.

Source code: mongodb/mongo

Container Registry

Service to store and distribute container images of Tsuru workloads1. It must be compliant with Docker Registry API or OCI distribution specification.

Source code: distribution/distribution

Deploy Agent

This service is part of Tsuru's core services.

The service is responsible for intermediating the build and push process of Tsuru workloads1 container images to the container registry.

Source code: tsuru/deploy-agent

BuildKit

Service to build and push container images from a container file recipe.

Source code: moby/buildkit

Tsuru Router API

This service is part of Tsuru's core services.

The web API service which Tsuru updates the app's service backend.

Source code: tsuru/kubernetes-router
OpenAPI specification: Tsuru Router API

Kubernetes cluster

The Kubernetes cluster where Tsuru API should run the Tsuru workloads1 on.

Source code: kubernetes/kubernetes

  1. Tsuru apps and jobs