Releases: johnny550/Rooster
Starter
Rooster is an ambitious deployment tool targeting Kubernetes resources. In a canary fashion, resources can be deployed onto a Kubernetes cluster, and tested to ensure functionality.
What it does
Streamliner deploys resources onto a cluster in a canary manner. It can also run custom tests that users can easily plug in by adding the test binaries. Once that is done, Streamliner picks up on the value given to the test related options indicated by the operator.
Strong points
Tests to run can be customized. It's all left to the appreciation of the operator.
Progressive & automated rollout of resources
Ability to deploy multiple daemonSets at once
Unifying operation manuals from here onwards, as long as canary mode is involved.
Limitations
Only Golang test binaries are accepted
Only 1 deployment configuration is supported, canary
Future work
Integration with Sentinel to automatically run indicated tests when rolling out.
Automate the execution of Streamliner. Some ideas so far are to turn it into a Kubernetes Job, that will in turn do what it needs to, or integrate it into a Jenkins pipeline, triggered on demand, or automatically.
Make the canary fashion optional. Allow Caas-Streamliner to deploy resources in different ways (all-at-once, canary-10Minutes, linear-10-Every-Minute, etc...)
Accept other test binaries. Language-agnosticism is the goal.
Add support for updates (updatePolicy: onDelete, and deletes pods?). Not just new releases but also existing resources being updated and released in a canary mode
Consider keeping backup files in a more reliable & available location: bitbucket, s3, etc...
Improve the support for multiple daemonsets. So far multiple daemonsets can be released at once, as long as they define the same labels in their affinity context.
Idempotency, deterministic behavior. Streamliner will be run as a controller from inside the cluster, as operator/controller, in the future. (same idea of deployment-controller over replicaSet. Streamliner can work as a controller for daemonSet)
Improve the backup folder logic, and set backup files to be kept in different folders, based off the date, cluster name, etc...
Add the ability to trigger a rollback on demand