Last Week
I missed the week in review this past Friday, sorry about that. It was spring break here so I was off an on and we had company so nothing was really condusive to working or writing. I did however do a fair amount of work on the ArmReference project. I decided to start to dig into those templates and bring them up to date.
Originally setup with the MIT License I changed them to the GPLv3 License, which is a trivial change just update the license file. The next thing I did was shift the repo’s from the old master branch to main branch as that’s what all new repos’ default to. The next thing I do is go in and add a metadata.json file and the metadata to all the templates if they don’t already have it. The next thing is to move all the templates into a reference folder and pull the template from the README and creat an azuredeploy template. Once all that is in place I take advantage of the PSDocs stuff I learned about and add a Github Action that creates the documentation and also pushes the templates into an Azure Storage account for me. Once everything is in place I run a test deployment and validate that the template coming out will deploy and then tag that as the version 1 release.
That work will happen on each of the existing repo’s, fortunately there are not that many so it shouldn’t take long. The entire process takes maybe an hour, or two if there are issues with the template. At that point I can begin the longer work of bringing the template up to the current API Version. This work is a lot more tedious, as the general idea is that the reference template only creates a working template for you to deploy. So we rely heavily on the deployment api to reach out to the templates pass parameter values and return the output. All the nested template’s have no resource block, we build everything in variables and return the raw object in the output. Often the output of one nested template is the input for a parameter in another, so the actual deployment templates can be intimidating.
The intial thought about this was to create a template folder in each repo that contains various outputs, which may work for now, but I’m almost wondering if perhaps a Quickstart repo or org might not be a better solution. I haven’t thought much past this point to be honest, but that’s where my mind is currently headed.
To date, I have updated a total of 4 templates, some have been fairly simple, the Recovery Vault has been a little bit of a pain and it’s not complete yet. The thing that is currently hitting me the hardest is the poor documentation. I am beginning to post questions in the QnA board on Microsoft to see if I can generate some useful information there. I have also started a Notes document that I use to document when I run into some issue with existing documentation. To be fair I pull from the Rest API documentation, the Arm Template documentations and the Resource Schema, such that it is. Things that I have learned though is that the bulk of the documentation is generated from the code, so the issue is pretty deep within Microsoft.
I’ll be continuing this work through the rest of this week, so that hopefully I can start to add more templates into the mix.