LIGHTS
OUT

Turn the lights out on your development infrastructure by automatically scaling down Kubernetes workloads during off-hours and restoring them during business hours. Save over 60% on dev and staging costs with zero code changes.

TIME
09:00
BUSINESS HOURS
dev-cluster
LightsOut Operator
downscale 0 18 * * 1-5 · upscale 0 9 * * 1-5
node / managed by cluster-autoscaler
namespace / dev
Deployment
order-svc
3 replicas
StatefulSet
session-svc
2 replicas
CronJob
report-job
active
0% +
cluster cost savings
vs. always-on baseline

Features

Cron Scheduling
Define upscale and downscale times using standard cron expressions with full IANA timezone support.
Multi-Workload Support
Manages Deployments, StatefulSets, and CronJobs. Original replica counts are preserved in annotations for accurate restoration.
Timezone Aware
Schedules respect IANA timezones, ensuring workloads scale on local business hours regardless of cluster region.
ArgoCD Integration
Prevents false "OutOfSync" alerts in ArgoCD when workloads are intentionally scaled down by the operator.
Prometheus Metrics
Exposes schedule state and workload metrics, ready for Grafana dashboards and alerting rules.
Admission Webhook
Validates LightsOutSchedule resources at admission time, catching invalid cron expressions before they reach the cluster.

Quick Start

1

Install via Helm

helm install lightsout oci://ghcr.io/gjorgji-ts/charts/lightsout
2

Define a schedule

apiVersion: lightsout.techsupport.mk/v1alpha1
kind: LightsOutSchedule
metadata:
  name: dev-weekday-hours
spec:
  upscale:   "0 9 * * 1-5"    # 09:00 Mon–Fri
  downscale: "0 18 * * 1-5"   # 18:00 Mon–Fri
  timezone: "Europe/Amsterdam"
  namespaceSelector:
    matchLabels:
      environment: dev
3

Save on costs

The operator continuously reconciles the schedule, scaling down matching workloads at 18:00 and restoring them at 09:00 while preserving original replica counts in annotations.

Full documentation on GitHub