Ken Muse
Why You Should Use Dedicated Clusters For GitHub ARC
GitHub ARC is a great way to run your GitHub Actions runners in your own Kubernetes cluster. ARC has its own set of requirements and best practices. One of the most important best practices I recommend is to use a dedicated Kubernetes cluster. This post will explain why.

Read this article

GitHub Actions Injection Attacks
Security is at the heart of what we do in DevOps (if we’re doing it right). This includes protecting our CI/CD processes from malicious users and behaviors. One of the more interesting exploit vectors with build and release pipelines is a classic: the injection attack. This post reviews the basics of injection exploits and shows you how to easily avoid them.

Read this article

The Two GitHub ARCs (and Why You Should Only Use One)
I’ve been spending a lot of time helping companies to adopt GitHub ARC over the last few months. They are excited to be able to create self-hosted runners on-demand on Kubernetes. The biggest challenge many of them have is getting started, and the root of this problem often starts with realizing there are two different versions of ARC. In many cases, they started with the wrong one. This post will explain the difference.

Read this article

Enabling GitHub ARC Metrics

Enabling GitHub ARC Metrics

GitHub’s Actions Runner Controller (ARC) offers a lot of great features, including metrics. These metrics give you visibility to the processing queue as well as the performance of runners and jobs. Enabling this feature is surprisingly easy. This post will show you how.

Read this article

Understanding OIDC and Identity Federation
With the rise of OIDC, we no longer need to rely on secret keys or passwords to connect two services together. Instead, we can configure a trust relationship between the services and use that to securely request tokens for accessing resources. Adopting this approach can simplify things, but it can be scary for security teams and developers; they want to understand what makes this process work. In this post, walk through what’s happening under the covers.

Read this article

Comparing Azure DevOps and GitHub
It can be challenging too understand the differences between Azure DevOps and GitHub Actions. Sometimes, what you really need is a mapping of the features and terminology. Perhaps something annotated with how to support features that don’t have a direct equivalent. Perhaps something like this …

Read this article

Understanding the SLA of ARC
I’ve seen lots of teams trying to increase the availability of GitHub runners for their organization by implementing GitHub Actions Runner Controller (ARC). In some cases, they hope to try to exceed GitHub’s 99.9% SLA. Unfortunately, the math works against them. In this post, I’ll explain why.

Read this article

Windows Runners on Actions Runner Controller
One challenge with the GitHub’s Actions Runner Controller (ARC) is that it does not officially support Windows containers for the runners. With a little bit of work, though, it’s possible to make this configuration work on a hybrid Linux/Windows cluster.

Read this article

Organizing Build Processes

Organizing Build Processes

Creating a well-organized build or release workflow is both an art and a science. Done properly, the process can be testable and maintainable, able to work on any CI/CD system. Like many things in software, there’s even a pattern that helps!

Read this article

Shared Commits and GitHub Checks
It’s not unusual for teams to want to merge the same branch into multiple branches. If they create multiple pull requests from that branch to each of the other branches, they suddenly find that their Checks behave differently than expected and the branches start to share results. Understanding why this happens makes it easy to get Checks to behave as expected.

Read this article