Skip to Main Content
Lightning Talk Intermediate CC BY 4.0

Saved by Open Source: Surviving GitHub's Mood Swings With Tekton

Proposal status is Rejected
Session Description

August was a very rough month. On the 6th, Actions was degraded for over nine hours, with most workflow runs failing at the peak. On the 17th, a GitHub-wide outage took out most of another working day. In between, our team kept refreshing githubstatus.com like it was a cricket score.


We build disaster recovery for prod, databases and regions, then we ship every fix through one hosted CI provider and hope for the best.

And no, self-hosted runners don't save us. In most Actions incidents the runners are fine; sometimes it's the job scheduler that breaks. Jobs sit in "Queued" and nothing picks them up, hosted or self-hosted, because every runner waits for GitHub to hand it work. Your infrastructure is up. Your hotfix isn't going anywhere.

So we built a second road out that doesn't touch GitHub at all: Tekton, an open-source, Kubernetes-native pipeline engine that runs inside our own cluster as CRDs. When Actions goes down, we're shipping again in under 15 minutes.

We tested it against the outages GitHub has actually had:

  1. Actions outage: The one that keeps recurring, scheduler being unable to schedule new jobs. Tekton schedules its own work in-cluster, so a queue stuck on GitHub's side doesn't touch it.

  2. Webhooks outage: Rarer, but it happens. Without the webhook, nothing triggers the pipeline. So we added a GitHub App that polls for changes as the fallback trigger.

What we'll walk through

  1. Anatomy of a GitHub Actions outage: which component fails, and why self-hosted runners still depend on it

  2. The failover architecture, and the switch that moves releases onto Tekton

  3. How we simulated each outage type, and the recorded drill

  4. What it takes to make the second path real: the registry credentials and deploy secrets that only lived in GitHub

Everything in the failover path is FOSS: Tekton, Kubernetes, and the config we'll share.

Key Takeaways
  1. Understand which part of GitHub Actions actually fails in an outage, and why self-hosted runners don't protect you
  2. Build an in-cluster CI/CD path with Tekton that keeps shipping when GitHub Actions is down
  3. Cover the trigger gap with a polling GitHub App when webhooks stop arriving
  4. Test your failover against real outage types and measure your own RTO

References

Session Categories

Technology architecture
Engineering practice - productivity, debugging
Tutorial about using a FOSS project
Talk License: CC BY 4.0

Speakers

Vivek Agarwal
Vivek Agarwal Devops Engineer | Aspora

Scaling systems at Aspora, I've always gravitated toward fintech and have spent a lot of my time there - as a founding engineer at multiple startups and helping companies scale their platforms along the way. Outside work, I'm a longtime debater and a 5x hackathon winner. Ex- Soundverse AI, Hellyeah AI

Dhruv Puri
Dhruv Puri Devops Engineer | Aspora

Most of my time goes into tinkering with cloud-native tech, breaking clusters (sometimes intentionally), and figuring out better ways to fix them. When I’m not deep in infra, you’ll usually find me with cats around or music playing, both keep me just as grounded as k rollout deploy does.

Reviews

Thanks for your submission. We decided not to move forward with this proposal. The outline feels noticeably AI drafted and the session itself leans heavily into showcasing a specific tool. We prioritize hand written technical stories written in your own voice, so we have to pass given our limited slots.

Reviewer #1 Rejected