📐Architecture

This is the high level architecture of the platform

Component descriptions:

  • Terrakube API:

    • Expose a JSON:API or GraphQL API providing endpoints to handle:

      • Organizations.

      • Workspace API with the following support:

        • Terraform state history

        • Terraform output history

        • Terraform Variables (public/secrets)

        • Environment Variables (public/secrets)

        • Cron like support to schedule the jobs execution programmatically

      • Job.

        • Custom terraform flows based on Terrakube Configuration Language

      • Modules

      • Providers

      • Teams

      • Teamplate

  • Terrakube Jobs:

    • Automatic process that check for any pending job operations in any workspace to trigger a custom logic flow based on Terrakube Configuration Language

  • Terrakube Executor:

    • Service that executes the Terrakube job operations written in Terrakube Configuration Language, handle the terraform state and outputs using cloud storage providers like Azure Storage Account

  • Terrakube Open Registry:

    • This component allows to expose an open source private repository protected by Dex that you can use to handle your company private terraform modules or providers.

  • Cloud Storage:

    • Cloud storage to handle terraform state, outputs and terraform modules used by terraform CLI

  • RDBMS:

    • The platform can be used with any database supported by the Liquibase project.

  • Security:

    • All authentication and authorization is handle using Dex.

  • Terrakube CLI:

    • Go based CLI that can communicate with the Terrakube API and execute operation for organizations, workspaces, jobs, templates, modules or providers

  • Terrakube UI:

    • React based frontend to handle all Terrakube Operations.

Terrakube can installed in any kuberentes cluster using any cloud provider. We provide a Helm Chart that can be found in the following link.

Last updated