A Project Capsule addon
Plan maintenance, scale workloads, and give your users advance notice.
One cluster-scoped ChangeWindow keeps it together.
Open source · Kubernetes native · Independent of Capsule core
Change Windows helps organizations plan routine IT maintenance with fewer surprises and less manual coordination. It gives teams advance notice and can prevent conflicting changes while planned work is underway. It can also pause development environments overnight and bring them back in the morning, helping control infrastructure costs. These routines run automatically on your Kubernetes platform, so teams can spend less time coordinating maintenance and more time delivering services.
One resource. A complete window.
Select a YAML block to explore its configuration and open the matching reference.
apiVersion: addons.projectcapsule.dev/v1alpha1
kind: ChangeWindow
metadata:
name: development-nights
spec:
namespaceSelectors:
- matchLabels:
environment: development
schedules:
- name: nights
cron: "0 19 * * 1-5"
timeZone: Europe/Zurich
duration: 12h
targets:
- name: apps
apiVersion: apps/v1
kind: Deployment
selector:
matchLabels:
downscaling: enabled
serviceAccount:
namespace: schedule-action-controller-system
name: change-window-executor
actions:
- name: downscale
targets: [apps]
capture:
replicas:
subresource: scale
path: /spec/replicas
onStart:
apply:
subresource: scale
force: true
template: |
spec:
replicas: 0
onEnd:
apply:
subresource: scale
template: |
spec:
replicas: {{ .captured.replicas }}
admission:
- name: freeze-scaling
targets: [apps]
operations: [UPDATE]
subresources: ["", scale]
when: Active
audience:
include:
- kind: Group
name: developers
matchConditions:
- name: replicas-changed
expression: "object.spec.replicas != oldObject.spec.replicas"
message: "Replica changes are frozen during maintenance."
config:
admission:
warnings:
- name: upcoming
targets: [apps]
operations: [CREATE, UPDATE, DELETE]
subresources: ["", scale]
when: BeforeStart
within: 1h
message: "Maintenance starts at {{ .window.start }}."
Downscale development workloads overnight and restore their replicas in the morning. Apply templates at either end of a window.
Resource actions →Select namespaces and resource kinds, then block writes during maintenance. Return a clear message and warn users before it starts.
Admission and warnings →Combine schedules across time zones. Inspect status and metrics, or browse the calendar and active maintenance topics in Headlamp.
Headlamp integration →Change Windows is being developed under the Project Capsule umbrella. Capsule is a CNCF Sandbox project. The addon grew out of a platform engineering need: making operations more reliable for platforms serving multiple tenants. Coordinated maintenance, predictable resource changes, and advance notice help platform teams and their tenants work together with fewer surprises.
You can use Change Windows with Capsule or on its own. It selects resources through standard Kubernetes APIs and labels; Capsule Tenant objects are not required. The same scheduling and admission features are available in either setup.
No technology lock-in. Keep your existing cloud provider, Kubernetes distribution, and deployment tools. Capsule and Headlamp integrations are optional, so adopting Change Windows does not tie your platform to a vendor or the rest of the Capsule stack.