Recently I went through a bit of the terraformer project and have some findings, e.g.
- The part it convert the state to terraform config is buggy. For those nested computed attributes (maybe even more) will not be skipped in the terraform config. Addtionally, I wonder whether those conflicts attributes should also be handled correctly (e.g. attributes with
ExactlyOneOf
set) - The part it resolve dependencies among resources seems buggy (where it uses the term of “connection” instead). It can’t bear with multiple depended attributes.
- The support on azure seems buggy and poor.
- Though the intention of this tool is to decouple from provider. Whilst it do couples with provider in different ways. One of them is that you will needs to specify the dependency(connection) in the code, where those attributes are coupled with a specific provider version.
Based on above limitations, I feel like there still are some core problems to be solved in Terraformer, mostly including below ones:
- How to convert from terraform state to terraform config (without dependency)?
- How to add dependency to a terraform config (while the dependency info is coupled with the provider)?
Then I come up with following design:
For the TBD part, I assume that we can somehow add an option to terraform show
so that it could output the valid terraform config (which addresses the 1st core problem).
I want to hear about everyones opinions on this before implementing it. Especially make sure it doesn’t conflict with the roadmap of core team.