v1.0.0-rc.0
Pre-release
Pre-release
With Version 1.0.0, Bonny got a thorough refactoring. You might consider reading the several guides (e.g. the migration guide)
Bonny.Operatorwas introduced as an entry point to the watching and handling
of processes. Your controllers are not more added to the supervision tree by
bonny. Instead you must create an operator and add that to your application's
supervision tree.- The
Pluggable(thinkPlug)
library is used withBonny.Axnas token to processADDED,MODIFIED,
DELETEDand reconciliation events byPluggablepipelines. Bonny.ControllerV2was introduced as a successor toBonny.Controller. It leverages
Pluggable.StepBuilder(thinkPlug.Builder) to build a pluggable pipeline.Bonny.EventandBonny.EventRecorderwere introducd for Kubernetes
event creation (#156, #5)
Why this refactoring?
- Allows for better CRD and API version definitions
- With a
Pluggablearchitecture, controllers are much easier to test (Think ofPlug.Conntests) - The
Pluggablearchitecture makes your processing pipelines composable and simpler to customize/extend - Manifest generation and event processing were decoupled
- Internally, the amount of macros was reduced which makes Bonny easier to maintain
Added
Bonny.Pluggable.SkipObservedGenerations- halts the pipelines for a defined list of actions if the observed generation equals the resource's generation.Bonny.Pluggable.ApplyDescendants- applies all the descendants added to the%Bonny.Axn{}struct.Bonny.Pluggable.ApplyStatus- applies the status of the given%Bonny.Axn{}struct to the status subresource.Bonny.Pluggable.Logger- logs an action event and when status, descendants and events are applied to the cluster. If desired, it makes sense to be placed as first step in your operator pipeline but can also be added to a controller pipeline.Bonny.Resource.add_owner_reference/3used to add the owner reference to resources created by the controller. (#147)- An integration test suite was added that runs tests against a "real" kubernetes cluster on the CI pipeline (#146, #84)
- Mix task for initializing a new operator
mix bonny.init(#160, #67)
Deprecated
Bonny.Controllerwas deprecated in favor of the new design with
Bonny.OperatorandBonny.ControllerV2