Skip to content

[Proposal] KubeBlocks Rollout #9130

Open
@ian-hui

Description

@ian-hui

Background

Current Pain Points

Current mainstream Rollout tools (such as Argo Rollouts and Flagger) are mainly aimed at stateless applications, and have significant shortcomings in supporting stateful workloads:

  • Lack of Topology Awareness
    Shard-Level Topology Ignorance: Existing tools cannot coordinate updates across sharded architectures (e.g., MongoDB sharded clusters, Kafka partitions), where multiple interdependent workloads (e.g., shards, servers) require phased rollouts.
    Role Unawareness: Within a single shard or workload, tools fail to recognize role-based pod relationships (e.g., Redis master/slave nodes, PostgreSQL primary/replica), leading to unsafe update sequences (e.g., replacing a master node before its replicas).
  • Limited Instance Control & Over-Reliance on Manual Hooks
    Existing Rollout tools lack granular control over stateful instances (e.g., master/slave roles, shard coordination) and force users to implement critical operations (e.g., switchover, pre-migration backups) through repetitive pre/post hooks. This results in brittle configurations, duplicated effort, and a lack of reusable abstractions for stateful workflows.
  • Complex Rollback Scenarios: Stateful rollbacks demand topology-aware recovery (e.g., reverting master roles before Pod rollback), which existing tools fail to support.

Project Goals & Scope

Goals:

Build a stateful-first Kubernetes Rollout controller that:

  • Supports full process automation of stateful application release
  • Supports topology-aware strategies (e.g., role-based Pod updates, multi-workload shard coordination).
  • Provides built-in actions for stateful operations (e.g., Switchover, Backup) and enables instance-level control during Rollout phases (e.g., pre/post-update hooks with role-specific logic).
  • Implements intelligent rollback based on topology state (e.g., reversing role changes before Pod rollback).

Out of Scope:

  • Replacing KubeBlocks instanceSet’s functionalities (e.g., bypassing KB and controlling instance upgrading).
  • Handling action implement (e.g., implementing switchover).

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions