Thomas Thornton
831 FOLLOWERS
Passionate about Microsoft Azure. A passion in IT, specifically all things cloud whether it be a virtual machine taken from a local environment and implemented into the cloud or a fully scalable infrastructure stack built with the cloud in mind. Currently focusing on Microsoft Azure including heavily automation on the Azure platform.
Thomas Thornton
1w ago
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 and settings for effective management of scaling terraform deployments with GitHub Action:
1. GitHub Repository settings
Protect branches, maintain code quality, and require pull requests for smooth collaboration
2. Structuring your repository ..read more
Thomas Thornton
1M ago
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 is correctly formatted using terraform fmt and GitHub Actions
What is terraform fmt?
terraform fmt is a command as part of Terraform that is used to check and rewrite your Terraform files to the required canonical format and style. Several features and what it checks for is:
In ..read more
Thomas Thornton
2M ago
Kubernetes is ever growing and certainly a standard for container orchestration, however with it being picked up more and more by development teams, we want to ensure best practices and correctness of Kubernetes configuration files are valid. This can be tough and challenging to manage, let’s look at a tool that can assist you in this journey. Let’s look at Kubelinter, that will help you to validate Kubernetes YAML files, ensuring best practices are being adhered to and avoid those common pitfalls!
In this blog post, we will explore Kubelinter and how to integrate it into your CI/CD pipeline u ..read more
Thomas Thornton
2M ago
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 using a service connection within my pipeline that will be running the task to write a comment using the Azure DevOps API. This connection will need to have the configuration: Contribute to pull requests set to Allow for the specific Azure DevOps repository
The Bash script
As mentioned in th ..read more
Thomas Thornton
2M ago
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 though successful Terraform plans should have output as shown below, mine was not showing anything.
When attempting to reference the output ${{ steps.plan.outputs.stdout }} it was returning as empty, Example be ..read more
Thomas Thornton
2M ago
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:
Streamlined Review Process: Easily share the Terraform Plan within the PR comments, saving reviewers from digging into additional logs.
Enhanced Visibility: Users get a clear view of the plan without the need for extra steps, making the review more efficient.
User-Friendly Integration: GitHub Actions automates the process, seamlessly incorporating the Terraform Plan into your PR, enhancin ..read more
Thomas Thornton
3M ago
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.
│ Error: creating Application Gateway: (Name "aks-appgateway" / Resource Group "rg-aks-production"): network.ApplicationGatewaysClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="ApplicationGatewayInvalidPublicIpSku" Message="Application gateway /subscriptions/***/resourceGroups/rg-aks-production/providers/Microsoft.Network/applicationGateways/aks-appgateway with SKU Standard_v2 can only ..read more
Thomas Thornton
4M ago
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:
Azure AKS Cluster: The foundation for the next components, will deploy to AKS using GitOps
Azure Application Gateway: Seamlessly connected to the AKS cluster as an Ingress Controller as part of the Terraform deployment
Flux GitOps Extension on AKS: Unleashing the potential of GitOps for streamlined cluster management.
Example Application Deployment with Flux: Taking a hands-on approach to deploying applications onto the AKS cluster ..read more
Thomas Thornton
4M ago
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 in by going through the Terraform required
Flux AKS extension
To begin, we need an AKS extension as part of the GitOps/Flux installation. Below is the Terraform code snippet:
resource "azurerm_kubernetes_cluster_extension" "flu ..read more
Thomas Thornton
4M ago
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:
buildx failed with: ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref a72cffd2-669d-40cb-bf47-1788485c85af::b218hbaww1e2zhk2gj5r3o10u: "/azure-vote": not found
Upon investigation, I discovered that the issue was rooted in the absence of the ‘azure-vote’ folder in the same location as my Dockerfile. The step in question looked like ..read more