Try out Farmer and see what you think.
The Farmer .NET Template also has support for creating a Azure Devops-ready application from scratch.
I’m afraid not. F# isn’t hard to learn (especially for simple DSLs such as this), and you can easily integrate F# applications as part of a dotnet solution, since F# is a first-class citizen of the dotnet core ecosystem. You can even create new resources in C# since the core abstractions of Farmer are two simple .NET interfaces.
No, we’re not. Farmer generates ARM templates that can be used just as normal; Farmer can also be used simplify to make the process of getting started much simpler, or incorporated into your build pipeline as a way to avoid managing difficult-to-manage ARM templates and instead use them as the final part of your build / release pipeline.
No, we’re not. Farmer has (at least currently) a specific goal in mind, which is to lower the barrier to entry for creating and working with ARM templates. We’re not looking to create a cross-platform DSL to also support things like Terraform etc. or provide a stateful service store that Pulumi offers. Instead, Farmer is a simple way to continue to use ARM templates today but benefit from a more rapid authoring and maintenance process.
Farmer intentionally has limited support for ARM parameters and variables. Read here to find out the alternatives.
Yes. You can use some adapters that Farmer provides to generate resources using basic .NET objects, or even paste ARM template JSON directly into Farmer and have that embedded inside. See the following links from the Contributing section:
Resource.ofJSON
Resource.ofObj
Create an issue on our github repository, ideally with a sample ARM template and a link to the official Microsoft documentation on the resource. We can’t promise we’ll look at it immediately, but raising the issue is an important first step to getting more resources supported.
Drop us an email explaining what you need; we’re happy to discuss a commercial support arrangement to provide you with features that you need in a more timely fashion.