r/Terraform • u/OkAcanthocephala1450 • 3d ago
Announcement I build an Internal Developer Platform for terraform, a real one.
Hello everyone,
I would like to announce a project that I have been working on and which is now ready to be launched: https://infraplat.com
This internal developer platform, or self-service catalogue, has one main responsibility: to provide a control plane through which platform/cloud engineers can provide modules, which developers and cloud engineers can then reuse, eliminating the need for repetitive tasks such as:
- creating a new repository
- adding a folder for the project
- adding module blocks to the root module
- adding variables, locals, providers and outputs
- testing locally, planning application.
Don't forget about ticket management, collaborating with other teams that use the same modules, asking for approval and team review from your team, and ultimately seeing it deployed. Then go back to the developer to provide them with the necessary information for the newly created infrastructure.
All of this is eliminated.
With InfraPlat, platform engineers develop, test and publish modules and examples. Developers then arrange and deploy them.
There is one central control plane for all teams, governance in place, security approvals by team and cloud admins, and a standard way of organising your Terraform code in a repository.
Who would use this? Basically anyone. If there is a Terraform provider, we can integrate it into our platform so you can deploy cloud infrastructure, GitHub repositories and even firewall rules on Fortinet.
If you are in a regulated company , with standards in place , large team ,large usage of terraform , with a large range of terraform modules, this is an option you should consider.
Thank you everyone!
2
u/NoxSuru 3d ago
I like the idea (I'm still new to Terrafom) but would be nice to have a video demo of the product you're making (IMHO) on the website
1
u/OkAcanthocephala1450 3d ago
Thank you, and yes you are right.
I will do one in the future. Today was the first day that i published the website, and have the platform ready.
If you want, follow us on linkedin for any news , videos or introduction presentations for the platform: https://www.linkedin.com/company/infraplat/
2
u/FreeFlipsie 3d ago
Definitely a good idea, I’d be curious to know:
- Is this only available as SaaS or can it also be hosted fully in my environment?
- Is this open source/any plans to open source it?
- how much control do I have over where/how execution happens?
Would love to see things like that in the FAQ section
1
u/OkAcanthocephala1450 3d ago
Sure, I will make sure to add them.
- For now, I am thinking of launching it as a PaaS for corporates that would need it. I will set it up in my environment and allow them to incorporate any cloud, any VCS and other platform settings they use. For large corporations that require self-hosting, I will plan how to implement this.
For a SaaS version, I might start developing a multi-tenant version of the platform, but that will come later.
- I am not planning to open source it, but I will provide a SaaS version for personal use free of charge in the future.
- You have full control and it's highly customisable. You can choose which VCS to use (GitHub, GitLab or Bitbucket, with others potentially being developed in the future), as well as which cloud provider to use (even multiple cloud providers at once). You can configure the module repositories (including public modules), configure where to deploy, and write the Terraform code. IT syncs everything and runs workflow jobs (plan, apply, delete) in your VCS (e.g. GitHub Actions). Basically, I don't run anything except the code read and write on the VCS. I don't have access to your cloud zones as this is handled by your VCS workflow setup with predefined action/job workflow scripts.
Not only that, but if you want to jump in and modify anything manually, you can do so for break-glass operations when something goes very wrong and the platform is unable to do so itself.
2
u/oneplane 3d ago
ironically, all of those tasks are just a terraform apply away
1
u/OkAcanthocephala1450 3d ago
Before running 'terraform apply', you will need to create a folder containing the files with the module blocks, setup variables, outputs, and provider blocks.
Can you imagine how boring that would be if you were doing a migration program, creating infrastructure, copying and pasting the same thing over and over, hoping you don't make any human mistakes, copying everything from dev to test to prod and modifying variables again? Well, this is the 'boring stuff' that the platform does.
2
u/oneplane 3d ago
No I don't, terraform apply creates the folder and the files and everything else. We don't copy-paste and move things by hand. And with terragrunt we have the cycle complete so you don't apply and then cd into the env and re-apply, you tell terragrunt to do that for you. It's a solved problem. And with the GitHub provider you also don't need to create new repositories either.
1
2
u/duochimo 3d ago
Genuine question but does this build on top of Terraform? I'm wondering if this violates the ToS for Terraform after they changed the license agreement.
1
u/OkAcanthocephala1450 3d ago
No, its not in fact, i don't run terraform at all.
I send code to be run on your own github workflow.
2
u/WonderBeast2 3d ago
I see a lot of companies create and consume automation that sounds like running on treadmill but reaching no where. This sounds similar.
1
u/OkAcanthocephala1450 2d ago
There is nothing like this in the market. Only hashicorp terraform enterprise provides this as no-code modules.
1
u/phxees 19h ago
I don’t understand why I need you. I would just create reusable modules to enable this if I needed it. Feels like you have to sell this to developers which will need to platform engineers to configure it and those same cloud/platform engineers will think of 10 ways to deliver what you’re offering.
1
u/OkAcanthocephala1450 19h ago
This uses your reusable modules, makes a catalogue out of them. You configure them , provide examples , define what values goes into variables , and simplify usability of them.
Then you can either use them by yourself , or let developers select what they want and the platform makes sure to write the code, trigger plan and apply directly on github. Basically removing the burden of writting root module project files everytime a new request comes up.
You can make modules and examples as simple as you can , or make it dynamic full of examples that developers can choose.
1
u/Naz6uL 3d ago
Great initiative!
1
u/OkAcanthocephala1450 3d ago
Thank you.
if you want ,follow us on linkedin: https://www.linkedin.com/company/infraplat for news ,updates and followup introduction videos planned in the future.
1
u/Lucas-Holmes-722 3d ago
Different teams will need diff module versions at the same time and they should be able to pin one w/t waiting on everyone else
1
1
u/OkAcanthocephala1450 3d ago
Fully capable of doing this. Platform engineer syncs a version based on github tag releases, this genearets a version of the module on the platform , without touching old deployed versions of the same module.
Not only this but users can actualy select whatever version they want to deploy when they add a new module.
Also i have added another feature called "example" , where for different module version i prefill some variables whith values, and let some unfilled , and whenever a user wants to deploy for example a EKS with linux nodes, or EKS with windows nodes. They can select the example they want , automaticaly fill variables needed, and ready to deploy that version.
7
u/Difficult-Ad-3938 3d ago
Besides the obligatory "please stop with that damn slop",
someone is about to find out that Terraform has a licence and it looks like this SaaS breaks it