Skip to main content
Deployment window rules define specific time periods when deployments are allowed or blocked. Using RFC 5545 recurrence rules (rrules), you can create flexible schedules like “weekdays 9am-5pm” or “block deployments during maintenance windows.”

Overview

Why Use Deployment Windows?

Deployment windows help you:
  • Reduce risk - Only deploy during business hours when teams are available
  • Coordinate operations - Block deployments during maintenance windows
  • Meet compliance - Enforce change control windows required by regulations
  • Protect stability - Prevent deployments during high-traffic periods

Configuration

Properties

string
required
RFC 5545 recurrence rule defining when windows start.
integer
required
Duration of each window in minutes.
string
default:"UTC"
IANA timezone for the rrule (e.g., "America/New_York").
boolean
default:"true"
If true, deployments are only allowed during the window. If false, deployments are blocked during the window (deny window).

Understanding rrules

RFC 5545 recurrence rules define repeating patterns. Common components:

Example rrules

Window Types

Allow Windows

When allowWindow: true (default), deployments are only allowed during the defined window:

Deny Windows (Blackouts)

When allowWindow: false, deployments are blocked during the defined window:

Common Patterns

Business Hours Only

Allow deployments only during business hours:

Maintenance Window Blackout

Block deployments during scheduled maintenance:

Weekend Freeze

Prevent deployments over weekends:

Late Night Deployments Only

For services that require off-peak deployments:

Combined with Other Rules

Use deployment windows alongside other policy rules:

Behavior Details

First Deployment Exemption

If a release target has never had a deployment before, deployment window rules are bypassed. This ensures that initial deployments are not blocked by window restrictions.

Window Evaluation

  • Deployments are evaluated against the current time
  • If outside an allow window (or inside a deny window), the deployment waits
  • Ctrlplane automatically re-evaluates when the window state changes, using the computed nextEvaluationTime

Gradual Rollout Integration

When combined with gradual rollout rules:
  • Allow windows: Rollout start time is adjusted to the next window opening
  • Deny windows: Individual deployments within a rollout respect the deny period

Timezone Handling

  • Always specify a timezone for predictable behavior
  • If omitted, UTC is used
  • Use IANA timezone names (e.g., “America/New_York”, “Europe/London”)

Best Practices

Environment-Based Windows

Recommendations

  • ✅ Use timezones matching your operational team’s location
  • ✅ Account for holidays with deny windows
  • ✅ Provide adequate window duration for rollouts to complete
  • ✅ Combine with approval rules for additional oversight
  • ✅ Test rrule patterns in staging before production
  • ❌ Don’t create windows too narrow for deployments to complete
  • ❌ Don’t forget to account for gradual rollout duration

Next Steps