Skip to content

Open source IaC Automation and Collaboration Software.

License

Notifications You must be signed in to change notification settings

jderieg/terrakube

 
 

Repository files navigation

Terrakube Platform gitpod

Gitter Build Coverage License gitbook

Open source Terraform Automation and Collaboration Software.

The server defines a rest API based on Yahoo Elide and expose a JSON:API or GraphQL.

High Level Architecture

Architecture

For more information please visit our documentation.

Getting started guide

If you want to develop or test Terrakube click in the following button to open a complete running environment in just a couple of seconds.

gitpod

For more information about the test environment please refer to the following file and to learn about the API check the following api information

Minikube

To quickly test Terrakube in Minikube please follow this

Docker-Compose

To quickly test Terrakube in docker compose please follow this

Security - Authentication

Terrakube uses DEX to handle authentication. Dex is an identity service that uses OpenID Connect to drive authentication for other apps. Dex acts as a portal to other identity providers through “connectors.” This lets Terrakube defer authentication to LDAP servers, SAML providers, or established identity providers like GitHub, Google, and Active Directory.

Modules

This project contains three modules describe below:

Name Description
api Expose the API to manage all terraform workspaces
registry Open source terraform registry compatible with the Terrakube API
executor This components run terraform jobs and use Terrakube extensions
ui React JS terrakube front end

Version Control Services

The platform support public and private repositories for modules and workspaces in the following providers:

  • GitHub.com
  • Bitbucket.com
  • Gitlab.com
  • Azure DevOps

For private repositories you need to use one of the following methods for authentication:

  • oAuth Applications (GitHub, Bitbucket, Gitlab and Azure Devops)
  • SSH Keys
    • RSA
    • ED25519

Requirements

To compile and run the tool you will need the following:

  • Java 17
  • Maven
  • Node

Compiling

mvn clean install -Dspring-boot.build-image.skip=true
cd ui 
yarn install

Supported Databases

To run the api you need the following environment variables:

Name Description
SQL Azure Supported
PostgreSQL Supported
MySQL Supported
MariaDB Pending
Oracle Pending

Supported Storage Backend.

The platform support the following storage backends.

  • Minio
  • Azure Storage Account
  • Google Cloud Storage
  • Amazon S3

Build Docker Images

To build the docker images for the server and server job execute the following command:

mvn spring-boot:build-image
cd ui 
docker build -t terrakube-ui:latest  .

Sponsors

Any company can become a sponsor by donating or providing any benefit to the project or the team helping improve Terrakube.

JetBrains

Thank you to JetBrains JetBrains for providing us with free licenses to their great tools.

Terraform BSL License

Hashicorp confirmed that Terrakube is compatible with the new Terraform BSL License, more information can be found in the following discussion.

About

Open source IaC Automation and Collaboration Software.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 63.5%
  • JavaScript 29.1%
  • Shell 6.5%
  • Other 0.9%