Skip to content

%2024

Use BATS to Automate Kubernetes Testing

BATS Testing
The Bash Automated Testing System brings familiar scripting to Kubernetes validation.

Have you wanted to test things that you know how to run in your bash scripts or terminal, but aren't quite sure how to make it happen? The Bash Automated Testing System (BATS) makes that dream a reality!

BATS lets you create automated, repeatable tests using familiar bash commands. Your tests work equally well in your terminal and CI/CD pipelines, giving you confidence to promote Kubernetes resources to production.

This post covers practical examples of testing Kubernetes clusters, from basic API connectivity to complex application health checks and resource validation.

Unit Test IaC with Terraform Tests

Testing Terraform

A challenge of being a DevOps engineer is that some of the typical dev parts don't always fit nicely. Unit testing is one example, where IaC is often hard to test in isolation and without some sort of actual deployment in a "test" or "sandbox" environment to validate against.

The lines between unit and integration testing become blurred for many DevOps or Platform engineers. Thankfully, HashiCorp has seen this gap and has introduced Terraform Tests to help bridge this gap!

In this post I will go over practical unit testing strategies using terraform test to validate your Infrastructure as Code, improve code quality, and provide confidence when making changes to your IaC modules.

Build a MkDocs Site with Terraform and S3

Find the latest code for this project on my GitHub

Tired of paying \(50-200+ per month for WordPress hosting?** What if I told you that you could host a beautiful, fast, professional website for literally **\)3 per month?

Chances are you have seen a website or documentation that make use of MkDocs, and especially Material for MkDocs. In fact, this blog site runs using Material for MkDocs and I have to say it is a delight compared to typical blog or WordPress platforms!

This becomes really powerful - and incredibly cost-effective - combined with the ability to host a static website using Amazon S3.

Build Your Own GitLab Runners on EKS

As more and more DevOps teams adopt GitLab for internal development, and furthermore use GitLab CI/CD pipelines, finding ways to manage costs while still delivering highly available, scalable pipelines is crucial.

This is Part 1 of a 4-part series on building production-ready GitLab runners on AWS. In this foundational post, I'll show you how to leverage EKS Auto Mode with Terraform and Helm to create a robust, scalable runner infrastructure.

Karpenter and Why You Should Ditch Cluster Autoscaler

If you have used Amazon Elastic Kubernetes Service (EKS) you may have experienced that node groups' autoscaling leaves a bit to be desired. It can be slow, clunky to configure, and making use of mixed instance types can be difficult. My biggest complaint? Nodes launch SLOW!

Enter Karpenter. Karpenter is a node provisioner - which now uses the NodePool terminology, similar to GKE and others - that utilizes the EC2 Fleet API to schedule nodes directly to the cluster, without having to be in a managed node group!

Why would you want to do this? How about nodes that launch and reach Ready state in k8s in 10 seconds!

Read on to see how you can scale faster, more reliably, with greater flexibility, and save money by using Karpenter.

Plex Media Server on Kubernetes with Hardware Transcoding!

Frank Get Weird With It
If Plex on Kubernetes is wrong, I don't wanna be right!

Running Plex Media Server on Kubernetes isn't just about containerization - it's about building a production-grade media infrastructure that leverages enterprise storage patterns, hardware optimization, and cloud-native principles. This setup delivers superior performance, simplified maintenance, and demonstrates advanced Kubernetes concepts that translate directly to enterprise environments.