tharsis-api

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2023 License: MPL-2.0

README

Tharsis API

Tharsis is a remote Terraform backend that provides state management and a full execution environment for running Terraform modules. It also includes additional capabilities to facilitate the management of Terraform workspaces within an organization.

  • Configurable job executor plugin.
  • Machine to Machine (M2M) authentication with service accounts.
  • Managed identity support to securely authenticate with cloud providers (no credential storage).
  • Users are not required to handle secrets.
  • Compatible with the Terraform CLI remote backend.
  • Ability to quickly cancel jobs.
  • Support for uploading and downloading Terraform modules.
  • Capable of being deployed as a Docker image.

Get started

Instructions on building a binary from source can be found here.

Installing locally (Requires Docker)

In order to use Tharsis locally, a docker-compose.yml file is available under the docker-compose directory. The use of this requires the installation of Docker. Learn more here.

1. Clone the repository and change to 'docker-compose' directory.
2. Use 'docker compose up' command to launch Tharsis using Docker. We could additionally, pass in a `-d` flag to the command to launch everything in the background like so 'docker compose up -d'.

At this point, Docker should begin pulling down all the images needed to provision Tharsis. Once this is complete, the Tharsis UI will be available at http://localhost:3000/.

Now, the Tharsis CLI can be used to interact with Tharsis. To configure the CLI, use the following command to create a profile and sign in using the KeyCloak identity provider (IDP):

tharsis configure --profile local --endpoint-url http://localhost:6560
tharsis -p local sso login

At the KeyCloak login screen use martian for both the username and password to complete authentication.

Congratulations! The Tharsis CLI is now ready to issue commands, use the -h flag for more info!

Documentation

Security

If you've discovered a security vulnerability in the Tharsis API, please let us know by creating a confidential issue in this project.

Statement of support

Please submit any bugs or feature requests for Tharsis. Of course, MR's are even better. :)

License

Tharsis API is distributed under Mozilla Public License v2.0.

Directories

Path Synopsis
cmd
job
internal
api
api/graphql/schema
Package schema contains all of the Schema Definition Files (abbreviated SDL) which define this API.
Package schema contains all of the Schema Definition Files (abbreviated SDL) which define this API.
api/response
Package response providers support for returning http responses
Package response providers support for returning http responses
apiserver
Package apiserver is used to initialize the api
Package apiserver is used to initialize the api
db
gid
logger
Package logger provides context-aware and structured logging capabilities.
Package logger provides context-aware and structured logging capabilities.
tfe

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL