Idea: Terraform ServiceHub
This is an idea that is on my mind for quite some time and I struggle to find the software that implements it. And I am not implementing it by myself, for the moment. But maybe this is some challenge for you?
To create a software that can offer a simple portal to instantiate Terraform modules and manage the state of the instance (CREATE/UPDATE/DELETE). The focus is on allowing novice users to create their own instances of a Terraform module created and maintained by experts. The novice user shall be able to create VMs, Cluster, Users, Groups, Permissions, etc.. that are offered in a catalog of services, the “ServiceHub”.
Following a list of features.
|must||Mass management of service instances (eg. CREATE/DELETE)|
|must||Simple portal in self-service fashion, catalog and service instances|
|could||State sub-store (eg. path) of user’s instances|
|could||Role based access control|
|could||Permission management for instances|
|could||Inheritance of predefined parameters and secrets|
|could||Versioning of catalog items and instances pinned that version|
|could||Smooth Git integration|
|could||High Availability, Microservice|
When thinking of a possible implementation, I would see the following components. Preferably as microservices on a container cluster.
- Web interface with Ruby on Rails or Sinatra
- Central Terraform state storage with s3/minio object storage
- Other storage also by s3/minio
- Sidekiq as job queue
- Workers executing Terraform as jobs from queue
What about Terraform Cloud & Enterprise?
Terraform Cloud & Enterprise seem nice for a skilled group of experts to leverage a service kind of portal. However it is not suitable (in my humble opinion) for the average person, the non-expert and a large sized enterprise as a self-service portal.
What about others?
There is ServiceNow and some other GUIs that implement a kinda like solution, however they are either too specific or too closed source to leverage.
Do you have ideas? Are you open to implement this idea?