Today we are excited to launch #Kubeform – a Kubernetes operator provisioning cloud or on-prem resources using Terraform. Back in the dark days of 2018, we AppsCodeHQ were trying to figure out how we provision cloud resources from Kubernetes. At the time, we were building the Kubernetes native DBaaS #KubeDB and needed to provision various cloud provider resources to make the experience seamless.
Initially we were trying to use the Kubernetes service catalog project. While it could get the job done, the UX was lacking the native Kubernetes Resource Model support.
We looked around and started experimenting if we could write an operator for Terraform that can provision cloud resources using Kubernetes CRDs. We were able to generate Kubernetes CRDs from Terraform resources for the major cloud providers and write a controller that will internally use terraform cli to provision the resources.
It was a crazy idea at the time. But it worked and we showed it publicly in Kubecon NA 2019. https://youtu.be/ph4a9TzK29U?t=577
Then 2020 happened and we focused on KubeDB. In the meantime, the idea of using CRDs to provision cloud resources has gone mainstream. Interestingly most projects seem to have gone the way of not reusing the vast amount of work done in the Terraform ecosystem. So, we got back to work earlier this year.
That brings us to today with the release of Kubeform v2021.07.28 . This is a major rework of the project. The CRDs are still auto-generated from the Terraform resource but the controller doesn’t use terraform cli. Instead it uses the underlying terraform provider libraries.
You can read the detailed release notes here: https://blog.byte.builders/post/…
We are doing a webinar tomorrow to demo the project. Please sign up and join us tomorrow: https://appscode.com/webinar/
– Tamal Saha