4 ms·
Bicep has limitations which makes it non-declarative even though it is marketed as declarative: https://learn.microsoft.com/en-us/azure/azure-resource-manager/t
by flanked-evergl 3y ago
Bicep has limitations which makes it non-declarative even though it is marketed as declarative: https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/deployment-complete-mode-deletion#microsoftauthorization https://learn.microsoft.com/en-us/azure/azure-resource-manag...
MSFT is trying to add features to make this better, but it is not in production yet: https://github.com/Azure/bicep/issues/10460 https://github.com/Azure/bicep/issues/10460
Additionally, Bicep does not support interacting with Azure Active Directory: https://github.com/Azure/bicep/issues/7724 https://github.com/Azure/bicep/issues/7724
So it really is not very useful. Terraform is better in almost every single conceivable way.
- naavis 3y agoWe use it in our company to provision all our cloud resources. Granted, you can't create app registrations and such with it (yet) like you mentioned, and there are rough spots, but I think that is quite far from "not very useful".
- flanked-evergl 3y agoI also worked for a company that used it, but the reasons they used it seemed almost entirely political. Also, the issues I highlighted are quite old, I don't think deployment stacks will exist before 2024. And not deleting resources, including role assignments, when they are deleted from your IAC source files makes it sub-optimal by Microsoft's own reckoning https://learn.microsoft.com/en-us/devops/deliver/what-is-infrastructure-as-code#use-declarative-definition-files https://learn.microsoft.com/en-us/devops/deliver/what-is-inf... > IaC should use declarative definition files if possible. Bicep just is not good. It may be better than nothing, but there are better alternatives.