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.
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/lightsout2
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: dev3
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