What you want in a DevOps Engineer

DevOps and DevOps engineers are not a new concept, but there is still a little unknown as to what they are and what they cover. Therefore, it can be hard to gauge what you should look for when recruiting a DevOps Engineer and the skill set that is required. Not all the skills they needContinue reading "What you want in a DevOps Engineer"

Azure DevOps loop a complex object

This is a subject that I have not found much or any documentation on, so I wanted to share what I did. When creating the parameters to pass into a Template it can get very long, plus when two arrays depend on each other it can get very complex, so ironically a complex object makesContinue reading "Azure DevOps loop a complex object"

Bash compare version numbers

Here is a little script to help compare version numbers in the format X.X.X using bash/shell. This can be good if you are trying to find out which version is higher for something like an upgrade. versionlte() { [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] } versionlt() { [Continue reading "Bash compare version numbers"

Terraform plan output to JSON

The Terraform CLI currently doesn't output the plan to a human readable file when running the plan command. It currently prints to the console in a readable format, at least within Azure DevOps, but the tfplan file outputted is not. This can be very unhelpful within a deployment pipeline when you save the output fileContinue reading "Terraform plan output to JSON"

Connect Azure MySQL to Private Endpoint with Terraform

To connect an Azure MySQL Database, or other services in Azure, one of the most secure methods to do this is with a Private Endpoint. Microsoft document the architecture they recommend using an App Service connecting to a MySQL Server, which is good if you are using the Azure Portal, but there are some missingContinue reading "Connect Azure MySQL to Private Endpoint with Terraform"

Create User on Azure MySQL Database with Terraform

After you create you Azure MySQL Server, you would like to create a Database, but for security you would like to have a new custom user added with permission. Unfortunately the Azure Providers do not provide this, so we need to use some other skills to get these users in. First we can go aheadContinue reading "Create User on Azure MySQL Database with Terraform"

Unable to delete Azure Subnet due to Resources

With Azure Subnets there is an order to deleting the resources. You must disconnect the Virtual Network Subnets before deleting the resources, or you can't delete the Subnet. This caused myself some issue, while using Terraform as I kicked a Destroy command and did it in the wrong order. However, I found a method onContinue reading "Unable to delete Azure Subnet due to Resources"

DotNet User Secrets Feature

A little unknown feature of dotnet is User Secrets. This is used to create local App Setting overrides to set values for local usage. This can be a handy and powerful tool for keeping your local setup separate from checking in code. You can find more details on the Microsoft Documentation here https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets The goalContinue reading "DotNet User Secrets Feature"