Resolving Terraform Error ApplicationGatewayInvalidPublicIpSku : Application Gateway SKU Mismatch with Public IP

If you’ve stumbled upon the following Terraform error while setting up an Application Gateway with a Public IP, this blog post will guide you through the steps to fix it. The error is straightforward—it points to a discrepancy in the SKU (Stock Keeping Unit) between the Application Gateway and the associated Public IP. The Application … Read more

Deploying Azure AKS GitOps Flux extension with Terraform

In a previous blog post, I provided a comprehensive guide on deploying Azure AKS, Application Gateway, and GitOps extension with AKS. This involved an in-depth overview of flux/kustomization, among other components. In this post, I’ll specifically focus on deploying the Azure AKS GitOps extension and configuring flux using this extension. The Terraform Lets jump right … Read more

Deploying Azure AKS with Application Gateway and Flux extension – An introduction to GitOps

Screenshot from the Azure Portal showing the successful deployment of GitOps configuration in Kubernetes. The image highlights the deployment status, indicating that the GitOps configuration was applied successfully. It includes details such as the deployment name, status, and any relevant logs or messages confirming the successful integration

In this blog post/tutorial, we’ll dive into a range of topics that are all deployed using GitHub Actions and Terraform. The focus is on deploying key components: This is also part of the Festive Tech Calendar – do check it out for even more awesome content! Prerequisites Before diving into Terraform deployments and application setups, … Read more

Setting up and using private endpoints in Azure with a storage account example in Terraform

High-Level Diagram (HLD) illustrating a virtual machine subnet successfully connecting to an Azure Storage Account via a private IP address, with no public internet access. The diagram shows the virtual machine within its subnet, the private endpoint for the Azure Storage Account, and the private IP connection path, emphasising that the connection is made securely and entirely within the Azure network without exposure to the public internet.

Azure Private endpoints have been around for some time, in this blog post I will be looking at how to setup and begin using them – will also include a storage account example in Terraform. As your cloud environment continually grows, security is and should be pretty much top priority and utilising private endpoints will … Read more

Referencing Azure Key Vault Certificates in Terraform

Another quick blog post on how you can reference certificates in your Azure Key Vault within your Terraform configurations. This subject follows a previous blog post in which I demonstrated how to reference Azure Key Vault secrets in Terraform. After receiving an inquiry in the comments about the possibility of doing the same for certificates, … Read more

Streamlining Multi-Component Deployments to Terraform Environments with GitHub Actions Matrices

Screenshot of GitHub Actions jobs showing the successful execution of a multi-component deployment. The image highlights various jobs in the workflow, each marked with a green check to indicate successful completion.

Deploying resources in Azure often involves deploying multiple components to numerous environments, each with its own specific configuration. Managing this complexity efficiently can be challenging. However, GitHub Actions, coupled with matrices, offers a powerful solution to streamline these multi-component deployments to multiple Terraform environments. In this blog post, we’ll explore how to use matrices in … Read more

7 Configurations I recommend you setup to deploy your Terraform into Azure at scale using GitHub Actions

Screenshot of GitHub Actions jobs output showing a configuration that creates a matrix with six combinations. The matrix includes the following combinations: [development, core], [development, logging], [development, network], [production, core], [production, logging], and [production, network]. The image highlights how the matrix configuration is used to run jobs across multiple environments and components, with each combination represented as a separate job or workflow step.

This blog post dives into the world of Terraform deployments in Microsoft Azure and explores how GitHub Actions can be harnessed to streamline the process, particularly when dealing with larger-scale deployments across various terraform resources, components and environments. We’ll walk through the essential configurations and best practices that I recommend for deploying Terraform at scale … Read more

How to Resolve a Transaction Check Error in Yum

If you’re using Yum to manage packages on a Red Hat Enterprise Linux (RHEL) 7 system, you may encounter a transaction check error when trying to install a package. One common error message is similar to: In this case the error message indicates that there is a conflict between two packages: rhui-azure-rhel7-2.2-606.noarch and rhui-azure-rhel7-eus-2.2-602.noarch. Both packages contain a … Read more

Terraform import blocks to import Azure resources into Terraform

In a recent announcement with Terraform v1.5.0, Terraform released the option to import your resources into Terraform using import blocks. This feature is a great addition to Terraform as it allows you to import existing resources into your Terraform state file, which can be useful when you have resources that were created outside of Terraform. … Read more

Storing and retrieving secrets in Azure Key Vault with GitHub Actions

Screenshot of a GitHub Actions job creating resource groups using secret values. The image shows the az CLI commands in the workflow logs, where resource groups are being created with values sourced from GitHub Secrets. It includes the commands with hashed or masked secret values, indicating that the resource groups are being configured securely using the secrets

Using GitHub Actions and wanting to store secrets security while utilising Azure? In this blog post I will be showing how you can create and store secrets in Azure Key Vault and retrieve them to be used as part of your GitHub Actions. I wrote a bash script to achieve this as Azure/get-keyvault-secrets@v1 has been … Read more