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

GitHub Action seeing dockerfile but no additional files or folders in the same location

Recently I was using the task docker/build-push-action@v2 to build and push docker image to Azure Container Registry, I encountered an error while using the task. The error specifically pointed to a failure referenced below: Upon investigation, I discovered that the issue was rooted in the absence of the ‘azure-vote’ folder in the same location as … Read more

Unlocking Manual Workflow Execution in GitHub Actions: A Quick Fix

Screenshot from GitHub Actions showing the workflow tab with the option to run the workflow. The image highlights the 'Run workflow' button, indicating that the workflow can be manually triggered. This option is available, allowing users to initiate the workflow process directly from the GitHub Actions interface.

If you’re working with CI/CD pipelines and GitHub Action workflows, there might be instances where you need to manually run a workflow. However, you might have noticed that when you attempt to do this through the portal, you realize that there’s no option available for manual execution. In this blog post, I’ll provide a quick … 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