Advanced Rollout Techniques: Custom Strategies for Stateful Apps in Kubernetes
Jun 15, 2024

Summary
This post details the design and implementation of the Bedrock Rollout Operator, a Kubernetes operator that manages StatefulSet rollouts. It addresses the limitations of Kubernetes' native 'OnDelete' and 'RollingUpdate' strategies by introducing a custom resource 'StatefulsetRollout' with features like percent-based rollouts, pause functionality, and Slack notifications. The operator utilizes a re-enqueueing reconciliation loop for efficient and resilient state convergence. It also integrates with Consul for service discovery and leverages Pod disruption policies for parallel rollouts.