Open source Terraform Automation and Collaboration Software.
The server defines a rest API based on Yahoo Elide and expose a JSON:API or GraphQL.
For more information please visit our documentation.
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.
For more information about the test environment please refer to the following file and to learn about the API check the following api information
To quickly test Terrakube in Minikube please follow this
To quickly test Terrakube in docker compose please follow this
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.
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 |
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
To compile and run the tool you will need the following:
- Java 17
- Maven
- Node
mvn clean install -Dspring-boot.build-image.skip=true
cd ui
yarn install
To run the api you need the following environment variables:
Name | Description |
---|---|
SQL Azure | Supported |
PostgreSQL | Supported |
MySQL | Supported |
MariaDB | Pending |
Oracle | Pending |
The platform support the following storage backends.
- Minio
- Azure Storage Account
- Google Cloud Storage
- Amazon S3
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 .
Any company can become a sponsor by donating or providing any benefit to the project or the team helping improve Terrakube.
Thank you to JetBrains for providing us with free licenses to their great tools.
Hashicorp confirmed that Terrakube is compatible with the new Terraform BSL License, more information can be found in the following discussion.