Displaying Terraform Plan as a comment in Azure DevOps Repo PRs with Azure DevOps Pipelines

Screenshot showing a Terraform Plan output as a comment in Azure DevOps. The comment, added automatically by the Azure DevOps pipeline, details the planned changes to the infrastructure, providing a clear overview of the proposed modifications before they are applied.

In this blog post – we will displaying Terraform plans directly within Azure DevOps Repository Pull Requests as a comment using Azure DevOps Pipelines. Prerequisites Please read this blog post prior, it has some prerequisites that are required before this pipeline will work successfully. Ensure you have: Azure DevOps Pipeline The Azure DevOps pipeline is … Read more

Adding pull-request comments to Azure DevOps Repo from Azure DevOps Pipelines

Screenshot showing a comment added in Azure DevOps by the pipeline. The comment, generated automatically by the pipeline process

Sometimes as part of your pull request process, you may want to include outputs, checks, or other relevant information as comments after your pipeline runs on various stages and tasks. In this blog post we will look and how this can be achieved using a bash task and Azure DevOps API Prerequisites I will be … Read more

Resolving steps.plan.outputs.* returns Empty Issue with hashicorp/setup-terraform@v3

A quick blog post to include the fix/what is needed to resolve steps.plan.outputs.* is empty when using GitHub Action hashicorp/setup-terraform@v3 I recently came across a situation while working with the hashicorp/setup-terraform@v3 GitHub Action. I wanted to make use of steps.plan.outputs.stdout to display the Terraform Plan, but I noticed that the output was consistently empty. Even … Read more

Displaying Terraform Plans in GitHub PRs with GitHub Actions

Screenshot of a GitHub pull request comment displaying a series of successful Terraform-related tasks. The comment includes detailed output from a Terraform Plan, indicating that various Terraform operations, such as formatting and validation, have completed successfully, along with a summary of the planned infrastructure changes

In this blog post, I’ll show you a cool trick – how to share your Terraform Plan right in the comments of your GitHub Pull Request using GitHub Actions. This comes with some handy benefits for your workflow: How to achieve this As part of my Action workflow, I have used a step that is … Read more

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 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

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

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

How to use If-Else in Terraform

Having been writing alot recently on if, else in various tools I use, and now it’s time to explore what Terraform brings to the table. As with any Infrastructure as Code (IaC) solution, there often comes a need to incorporate logic and conditionals into your configurations, enabling you to make choices based on specific criteria. … 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