Is there any project wrap terraform as a platform?

Hi everyone,I’m new to terraform and i’m wondering is there any project wrap terraform as a platform so anyone can operate terraform via web ui rather than run cli in term,I have been searching github for a while and found nothing,if it’s not suggested,can u explain the philosophy behind this:) thx

Hi @Pger-Y,

The primary official answer to this problem is Terraform Cloud, which is a hosted service run by HashiCorp that wraps Terraform Core with a web UI, a version control system integration, and a REST-style API.

It’s possible to build similar solutions elsewhere if you wish. The guide Running Terraform in Automation includes some guidance on how such a system can interact with Terraform Core by running Terraform CLI.

I don’t have any experience with any specific third-party solutions for this, so I can’t recommend anything in particular, but hopefully this is a good starting point!

Thanks for your help :slight_smile: ,I think the guide is really helpful~ I’ll check this out​:yum:

Thanks for your help :slight_smile: ,I think the guide is really helpful~ I’ll check this out​

Hi~ can you tell me some mentality about how terraform cloud designed in hashicorp.I think there are two ways to implement terraform cloud, one way is to wrap terraform by shell run by cmd called in an api server,the other is expanding terraform cli to a service.
They both have advantages and disadvantages,can you share some of your though about this.That will be much appreciated :slight_smile:

Hi @Pger-Y,

Terraform Cloud runs Terraform CLI just like any other automation would. The Terraform Cloud team also follows the guidance in Running Terraform in Automation to integrate with Terraform CLI via the same public interfaces that a third-party automation wrapper could use.

I’m not sure exactly what you mean by “expanding Terraform CLI to a service”, but one caveat I would immediately mention with that is that Terraform Core is not designed to be multi-tenant and so it would not be safe to use the same process to run multiple Terraform configurations that don’t have mutual trust for one another. For example, they will inherently all have access to the same filesystem and environment variables and so would need to all share the same credentials for remote systems.

I would suggest thinking about this problem as treating Terraform CLI as a short-lived program that you run to completion and collect its output after it has terminated. You can potentially wrap a service around it that will launch Terraform CLI separately for each run, which is then essentially what Terraform Cloud does, though of course Terraform Cloud has other features too beyond just running Terraform CLI in a remote environment.

Thanks for your reply,what you sad really helps a lot,I think i will consider treating Terraform CLI as a short-lived program as you just said~ and wrap a service around it that will launch Terraform CLI separately for each run :blush: