Step-by-Step to creating Azure Application Gateway for Containers using Terraform

Azure Gateway for containers front end showing alb-frontend

Application Gateway for Containers (AGFC) is a newer and improved version of the earlier Application Gateway Ingress Controller (AGIC), which you might be familiar with if you’ve used Azure Kubernetes Service (AKS). This iteration advances Azure’s Application Load Balancing capabilities and adds a fresh offering to the Application Gateway product lineup. As I mentioned new … Read more

Mitigating Prompt Injections with Azure AI Prompt Shields and Terraform Deployment

High-level diagram showing how to mitigate Prompt Injection with Azure Prompt Shield

Using Open AI, you have probably came across prompt injections – Azure recently released a new service called AI Prompt Shields. In this blog post we will look at how you can deploy Azure AI Prompt Shield to mitigate against prompt injections – this will be deployed using Terraform with an example of mitigating. What … Read more

Using Terraform tfvars for environment-agnostic deployments

Screenshot of Visual Studio Code displaying the folder structure for a Terraform project. The folder tree includes directories for different environments such as 'production' and 'staging', and files like 'main.tf', 'variables.tf', and environment-specific '.tfvars' files. Each environment folder contains its own '.tfvars' file to manage configuration variables, illustrating how Terraform configurations are organised and separated by environment

In this blog post we will look at how you would use tfvars to deploy to multiple environments in Azure. Deploying Infrastructure as Code (IaC) to multiple environments, we want to keep scalability in mind along with the thought of removing duplication when possible. Managing infrastructure configurations across different environments can be challenging, this is … Read more

Deploying a content filtering configuration in Azure OpenAI studio using Terraform and AzAPI

Screenshot of Azure AI Studio showing the creation of a content filter. The interface displays a section where the new content filter is listed, with details such as its name and configuration settings. The filter appears in the list of filters, indicating that it has been successfully created and is now available for use in deployments

In this blog post, I’ll show you on how to set up a content filtering configuration in Azure OpenAI Studio and apply it to your OpenAI deployment entirely using Terraform. Since there isn’t a native Terraform resource available for content filtering configurations, I will be using azapi_resource to assist with this. The content filtering system … Read more

Enabling PostgreSQL flexible server logs and configuring a retention period using Terraform

Screenshot of a Terraform configuration for an Azure PostgreSQL Flexible Server, highlighting the settings for server logs. The image shows the Terraform script with logging configurations enabled and the retention_period parameter set. The configuration specifies that server logging is active and defines the duration for which logs are retained.

In this blog post, we will look at enabling PostgreSQL flexible server logs and setting a retention period using Terraform. (Somewhat a new feature (was in Preview), the ability to enable server logs.) Deploying a sample server below, we can see within “Server Logs” that it currently isn’t enabled by default. Reviewing the linked learn.microsoft.com … Read more

Scaling Terraform Deployments with GitHub Actions: Essential Configurations

DevOps logo for the 90 Days of DevOps challenge, displaying the submission details for day 78 in 2024. The image features the DevOps logo alongside text indicating the submission topic: 'Scaling Terraform Deployments with GitHub Actions.' The visual represents progress in the DevOps learning challenge.

Scaling Terraform Deployments with GitHub Actions: Essential Configurations, is part of the 90 Days of DevOps event that Michael Cade has been running, certainly check out the event for lots more awesome DevOps related contributions here What have I covered in this session? My session is a presentation & demo – that covers essential configurations … Read more

Ensuring Your Terraform is Correctly Formatted with Terraform fmt using GitHub Actions

Screenshot of a GitHub Actions workflow log showing the execution of the terraform fmt command. Showing how Terraform code is being automatically formatted, with specific lines indicating changes made to the code to adhere to formatting standards.

As with all pull requests, we want to run various CI checks to ensure validation of your code and one of these is code quality, writing Terraform? Unsure if the Terraform in the pull-request is formatted correctly? This is where GitHub Actions come in handy. In this post, we’ll explore how to ensure your Terraform code … Read more

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