- The JSON of ARM is so hard to read or write from scratch . it is super hierarchial and really cluttered . HCL is much more readable and even writing from scratch is not a pain
- The interpolation is really way better in HCL compared to ARM . Eg: Inabaility to ingest a map as an interpolated value (for environment variables)
- A bit of conditional operations (for each , ternary etc) in HCL.
- Predictability: With the plan , it actually gives you what exactly will happen
- Modularity with HCL (Dont get me started with Nested Syntax in ARM !!!) .
- inability to create the resource group and the other resources in one template ? - why ?
- Sematic versions (versions of api used etc) , cannot be declared as semantic parts of code.
- State management (I think so ) : according to documentation ARM is stateless , but still allows to rollback to previous versions (so manages some state) - Have not tried out parallel pipelines executing on ARM . On terraform , the locking mechanism prevents from split brain problems . If ARM deals with it (then the state management is simpler)
Terraform Advantages:
Disadvantages