Bonny v1.0.0-rc.0 Release Notes
Release Date: 2022-10-29 // over 1 year ago-
๐ Changed
๐จ With Version 1.0.0, Bonny got a thorough refactoring. Besides this changelog, you might consider the several guides (e.g. the [migration guide](./guides/migration.mid))
Bonny.Operator
was 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.Axn
as token to processADDED
,MODIFIED
,DELETED
and reconciliation events byPluggable
pipelines. Bonny.ControllerV2
was introduced as a successor toBonny.Controller
. It leveragesPluggable.StepBuilder
(thinkPlug.Builder
) to build a pluggable pipeline.Bonny.Event
andBonny.EventRecorder
were introducd for Kubernetes event creation (#156, #5)
๐จ Why this refactoring?
- ๐ Allows for better CRD and API version definitions
- โ
With a
Pluggable
architecture, controllers are much easier to test (Think ofPlug.Conn
tests) - The
Pluggable
architecture 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/3
used 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.Controller
was deprecated in favor of the new design withBonny.Operator
andBonny.ControllerV2