/rollout

Multi-Cluster application progressive delivery controller

Primary LanguageGoApache License 2.0Apache-2.0

KusionStack Rollout

Overview

KusionStack Rollout is a progressive delivery controller that automates the release process for applications running on Kubernetes Clusterset. It provides several delivery strategies such as Canary release, Blue/Green mirroring, A/B testing to reduce the risk of introducing a new version in production. It can also integrates with GatewayAPI, leveraging its traffic shaping ablibities to gradually shift traffic to the new version.

The terminology clusterset is defined in KEP-1645: Multi-Cluster Services API.

clusterset - A placeholder name for a group of clusters with a high degree of mutual trust and shared ownership that share services amongst themselves. Membership in a clusterset is symmetric and transitive. The set of member clusters are mutually aware, and agree about their collective association. Within a clusterset, namespace sameness applies and all namespaces with a given name are considered to be the same namespace. Implementations of this API are responsible for defining and tracking membership in a clusterset. The specific mechanism is out of scope of this proposal.

overview

Key Features

  • Supports progressive delivery for Applications with multiple components cross Multi Clusters.
  • Supports various kinds of workload, such as StatefulSet, CollaSet.
  • Supports several delivery strategies, such as Canary release, Multi Batch, Blue/Green mirroring, A/B testing.
  • Supports fine-grained traffic shifting with GatewayAPI
  • Extends rollout progress with webhook

Quick Start

See Getting Started Guide to walk through creating and then updating the rollout in local kind cluster.

Please refer to official website for more information.

Contributing

Please refer to Contributing

Code of Conduct

Please refer to Code of Conduct for more details.

Contact us

License

This project follows Apache-2.0 License.