Rollout Spec Reference

Full reference for all Rollout CRD fields. Every field that affects canary behavior, analysis, and rollback policy.

Rollout Spec Reference

Top-Level Fields

FieldTypeRequiredDescription
apiVersionstringYesMust be kubestead.io/v1alpha1
kindstringYesMust be Rollout
metadata.namestringYesName of the Rollout resource
spec.replicasintegerNoDesired replica count (default: 1)
spec.strategystringYesMust be canary
spec.canaryStepsarrayYesOrdered list of canary progression steps
spec.analysisTemplateobjectNoReference to an AnalysisTemplate resource
spec.errorBudgetPolicyobjectNoBurn rate threshold configuration
spec.rollbackPolicyobjectNoAutomatic rollback behavior

canarySteps

An ordered array of step definitions. Each step is one of:

# Set traffic weight (percentage to canary)
- setWeight: 12

# Pause for duration
- pause:
    duration: 5m   # 30s, 2m, 1h formats supported

# Manual approval gate (blocks until approved via CLI or API)
- pause: {}

# Run a specific analysis template
- analysis:
    templates:
    - templateName: error-rate-analysis

analysisTemplate

analysisTemplate:
  name: error-rate-analysis    # Name of the AnalysisTemplate CRD
  args:
    - name: service
      value: payments-service  # Passed as {args.service} in PromQL

errorBudgetPolicy

errorBudgetPolicy:
  burnRateThreshold: 2.0   # Trigger rollback when burn rate exceeds this multiple
  windowMinutes: 60        # Evaluation window in minutes (default: 60)

rollbackPolicy

rollbackPolicy:
  autoRollback: true              # Enable automatic rollback on failure
  maxRollbackDuration: 90s        # Maximum time to complete rollback
  scaleDownCanary: true           # Scale canary pods to 0 on rollback
  waitForPodsReady: true          # Wait for stable pods to be Ready
  notifySlack: true               # Send Slack notification
  slackSecretRef: slack-webhook   # K8s secret name containing webhook URL
  notifyPagerDuty: false          # Send PagerDuty alert
  inconclusivePolicy: pause       # pause | fail | rollback (default: pause)