Skip to main content

2 posts tagged with "Cost Optimization"

View All Tags

Scale-to-Zero Kubernetes Environments with KEDA and Envoy Gateway

· 12 min read
Vladyslav Plishchenko
Junior Systems Engineer

You keep dozens of environments on one cluster: one per team, one per QA, UAT or staging stage, one for every guest. Most of them sit idle most of the day, and every idle environment still holds its pods, its resource requests and its share of the node bill. KubeRocketCI ships KEDA as a platform add-on, and it can scale them to zero. The hard part is bringing one back the moment a person opens it.

KubeRocketCI does that with krci-env-daemon, a small open-source component that reads the Envoy Gateway access log, wakes a sleeping environment through KEDA on its first request, and shows a waiting page that opens the Portal by itself once everything is Ready. In a KubeRocketCI cluster it comes down to three add-on switches.

Every number below comes from a real run: a KubeRocketCI environment on Amazon EKS and the local try-kuberocketci testbed.

Cancel In-Progress Tekton Pipelines: Stop Wasting CI on Outdated Commits

· 12 min read
Sergiy Kulanov
Systems Architect and DevOps Advocate, Open Source Enthusiast and Contributor

Push a commit to a merge request and your review pipeline starts. Spot a typo, push again thirty seconds later - and now two pipelines are running, one of them validating a commit that no longer matters. GitHub Actions solved this years ago with concurrency.cancel-in-progress; Tekton has no built-in equivalent, so on a Tekton-based platform those superseded runs keep burning CPU until they finish, producing results nobody will read.

KubeRocketCI 3.14 closes that gap with a single chart flag: pipelines.cancelInProgress. When enabled, the KRCI Tekton interceptor cancels still-running review PipelineRuns for the same pull request before triggering the replacement. The cancellation is graceful (CancelledRunFinally): the superseded run still executes its finally tasks, so your git provider gets a status for the old commit instead of an eternally "pending" check. This post shows the whole flow live on the local try-kuberocketci testbed - every screenshot and command output is from a real run.