Incident Library

IL-0244 UK Ministry of Justice · 2024-09-20kubernetesawsnetworking

A queued pull request destroyed the EKS subnet route table associations and Cloud Platform services went offline

The Cloud Platform team had paused its infrastructure pipelines for a long time to make required manual updates to Terraform remote state. During that time a pull request that the team had not noticed was queued. When the infrastructure-vpc-live-1 pipeline was unpaused at 11:21, the queued pull request ran automatically and at 11:22 destroyed the route table associations of the EKS subnets, which removed internet routing to Cloud Platform services. The team ran terraform apply locally at 11:32 to rebuild the associations, told users at 11:33 that services were available again, and declared the incident resolved at 11:40.

Severity
–
Scope
Cloud Platform services on the live cluster were unavailable for a period of time
Users affected
–
Region
–
Time to detect
2m
Time to resolve
11m

Symptoms

On 20 September 2024 at 11:24 the Cloud Platform team received high priority Pingdom alerts for services on the live cluster, and from 11:26 teams reported in the #ask channel that services were unavailable. Users reported that services could not be resolved.

Symptom Service outageNetwork unreachableResources deleted

Root cause

Trigger
At 11:21 the infrastructure-vpc-live-1 pipeline was unpaused, and a pull request that had been waiting in its queue ran automatically.

Detection

High priority Pingdom alerts for live cluster services reached the Cloud Platform team at 11:24, and users reported that services could not be resolved.

Remediation

Action items

Lessons

–

Sources

Related cases

Check your cluster for this

kubegap audits a Kubernetes cluster for conditions like the ones in this case, Terraform, CI system, VPC route tables and firewall rules among them, read-only, from Claude Code or Codex. Its checks cite public reports like this one.

For AI tools and scripts

The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.