View Source Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
unreleased
Unreleased
1-0-0-2022-11-28
[1.0.0] - 2022-11-28
With Version 1.0.0, Bonny got a thorough refactoring. Besides this changelog, you might consider 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 leveragesPluggable.StepBuilder(thinkPlug.Builder) to build a pluggable pipeline.Bonny.EventandBonny.EventRecorderwere introducd for Kubernetes event creation (#156, #5)
why-this-refactoring
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 - Decoupling of manifest generation and action event processing
- Internally, the amount of macros was reduced which makes Bonny easier to understand and maintain
1-0-0-rc-3-2022-11-19
[1.0.0-rc.3] - 2022-11-19
fixed
Fixed
Bonny.Mix.Operator- fix manifest generation: remove version from apiGroup in ClusterRole.
1-0-0-rc-2-2022-11-15
[1.0.0-rc.2] - 2022-11-15
added
Added
Bonny.Pluggable.AddManagedByLabelToDescendants- Adds theapp.kubernetes.io/managed-bylabel to all descendants registered within the pipeline.- Allow
niland{controller :: module(), init_opts :: keyword()}in the operator'scontrollers/2callback.
fixed-1
Fixed
K8sConn- Implement spec correctly.
changed
Changed
Bonny.Axn.apply_descendants/N,Bonny.Axn.apply_status/N- Raise upon error.
1-0-0-rc-1-2022-10-31
[1.0.0-rc.1] - 2022-10-31
Added
- Better logs in case of errors while applying status, descendants or events
- Integration tests for these logs
1-0-0-rc-0-2022-10-29
[1.0.0-rc.0] - 2022-10-29
changed-1
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)
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 leveragesPluggable.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-1
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
Deprecated
Bonny.Controllerwas deprecated in favor of the new design withBonny.OperatorandBonny.ControllerV2
0-5-2-2022-08-31
[0.5.2] - 2022-08-31
updated
Updated
- Use name of application in Deployments instead of service account name. (#142)
fixed-2
Fixed
0-5-1-2022-05-25
[0.5.1] - 2022-05-25
fixed-3
Fixed
- Add missing
privfolder to package
0-5-0-2022-04-23
[0.5.0] - 2022-04-23
Version 0.5.0 comes with some major changes. Please read through the migration guide before upgrading.
added-2
Added
Bonny.Server.AsyncStreamRunnerto run streams in a separate processBonny.Sys.Telemetrydefinestelemetryspans and events
updated-1
Updated
Bonny.Server.WatcherandBonny.Server.Reconcilerwere rewritten completely. They now prepare streams which are to be run withBonny.Server.AsyncStreamRunner- Dependency
k8swas updated to version~> 1.1and code was refactored accordingly
deprecated-1
Deprecated
Bonny.Sys.Eventwas deprecated in favor ofBonny.Sys.Telemetry
0-4-4-2021-08-09
[0.4.4] - 2021-08-09
added-3
Added
- @impl to macros for clean compilation
- error handling for mid-stream errors
0-4-3-2020-06-09
[0.4.3] - 2020-06-09
added-4
Added
- Configure watched namespace via config.exs or BONNY_POD_NAMESPACE
- BONNY_POD_NAMESPACE supports "magic" value "ALL"
0-4-1-2019-11-26
[0.4.1] - 2019-11-26
added-5
Added
- Support for reconciling/watching
coreresources
0-4-0-2019-10-23
[0.4.0] - 2019-10-23
added-6
Added
- Basic integration w/ Notion for telemetry
- Bonny.Server.Reconciler continually process a list operation
- Bonny.Server.Scheduler write custom kubernetes schedulers
- Added Bonny.PeriodicTask for scheduling periodically executed functions
changed-2
Changed
- Dockerfile gen uses OTP releases
removed
Removed
- Removed
reconcile_batch_size
0-3-3-2019-06-25
[0.3.3] - 2019-06-25
added-7
Added
- Add additional printer columns
- Bonny.Naming module
- .credo.exs
0-3-2-2019-04-15
[0.3.2] - 2019-04-15
added-8
Added
- Bonny.Watcher and Bonny.Reconciler telemetry events
0-3-1-2019-04-11
[0.3.1] - 2019-04-11
added-9
Added
- Support for a reconcile/1 callback
reconcile_everyconfig option to schedule how often to run reconciliationreconcile_batch_sizeto set the size of the HTTP GET limit when fetching batches of items to reconcile- Added
{:error, binary}as a return value of Controller lifecycle methods - Implemented
:telemetrylibrary Bonny.Sys.Event.events/0exposes list of telemetry eventsmix bonny.gen.manifest --localfor building manifests w/o a Deployment for local testingcluster_name: :defaultconfig options. Now uses k8s cluster registration configuration.
changed-3
Changed
fixed-4
Fixed
- Receiving :DOWN messages no longer crashes Watcher #20
- Issue with partially received events #43
- Fix invalid singular name generation from module names "MyMod" -> my_mod; "MyMod" -> mymod
removed-1
Removed
- Renamed
group_version->api_version - Renamed Bonny.CRD.plural/1 ->
Bonny.CRD.kind/1 Bypassfrom test suiteImpl.parse_metadata/1kubeconf_fileandkubeconf_optsconfig options
0-3-0-2019-03-04
[0.3.0] - 2019-03-04
changed-4
Changed
- Replaced
k8s_conflibrary with k8s.
0-2-3-2019-01-13
[0.2.3] - 2019-01-13
added-10
Added
- Initial public release.
- Controller lifecycle implementation.
- CRD Watcher.
- mix task: controller generator
- mix task: dockerfile generator
- mix task: k8s manifest generator