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

[1.4.0] - 2023-11-04

Added

  • Added telemetry events to the Operator module - #244

[1.3.0] - 2023-09-25

Changed

[1.2.1] - 2023-06-26

Fixed

  • BONNY_OPERATOR_NAME env var is not a reference

[1.2.0] - 2023-06-13

Changed

  • Start leader election by default - #195

Fixed

[1.1.3] - 2023-04-09

  • Leader Election: Add missing RBAC permission to access leases - #207

[1.1.2] - 2023-03-07

Added

  • Simple leader election for running multiple replicas (BETA) - #195

Fixes

  • Fix for an issue reported in #180 already: Add operator name as env variable to deployment.

Chores

  • Upgrade k8s to 2.1.1

[1.1.1] - 2023-02-24

Fixed

[1.1.0] - 2023-02-22

This release updates its dependency on k8s to a new major version (2.x). If you're using k8s directly in your code, you should have added it explicitely to your dependencies in mix.exs and this update will fail until you update that dependency manually. If you're using k8s directly in your code but you haven't added it explicetly to your list of dependencies, you might get surprises as 2.x comes with (yet few) breaking changes.

Fixed

  • Prevent duplicate descendants

Changed

  • Upgraded k8s dependency to 2.x. #173

Added

[1.0.1] - 2023-02-04

Fixed

  • Initialized application calls the wrong function to initialize conn - #181
  • Don't add operator to supervision tree in :test env per default - #182

[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)

Why this refactoring?

  • Allows for better CRD and API version definitions
  • With a Pluggable architecture, controllers are much easier to test (Think of Plug.Conn tests)
  • The Pluggable architecture 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

Fixed

  • Bonny.Mix.Operator - fix manifest generation: remove version from apiGroup in ClusterRole.

[1.0.0-rc.2] - 2022-11-15

Added

  • Bonny.Pluggable.AddManagedByLabelToDescendants - Adds the app.kubernetes.io/managed-by label to all descendants registered within the pipeline.
  • Allow nil and {controller :: module(), init_opts :: keyword()} in the operator's controllers/2 callback.

Fixed

  • K8sConn - Implement spec correctly.

Changed

  • Bonny.Axn.apply_descendants/N, Bonny.Axn.apply_status/N - Raise upon error.

[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

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)

Why this refactoring?

  • Allows for better CRD and API version definitions
  • With a Pluggable architecture, controllers are much easier to test (Think of Plug.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

Deprecated

[0.5.2] - 2022-08-31

Updated

  • Use name of application in Deployments instead of service account name. (#142)

Fixed

  • CRD manifest generation for apiextensions.k8s.io/v1 (#143, #117, #101)

[0.5.1] - 2022-05-25

Fixed

  • Add missing priv folder to package

[0.5.0] - 2022-04-23

Version 0.5.0 comes with some major changes. Please read through the migration guide before upgrading.

Added

Updated

Deprecated

[0.4.4] - 2021-08-09

Added

  • @impl to macros for clean compilation
  • error handling for mid-stream errors

[0.4.3] - 2020-06-09

Added

  • Configure watched namespace via config.exs or BONNY_POD_NAMESPACE
  • BONNY_POD_NAMESPACE supports "magic" value "ALL"

[0.4.1] - 2019-11-26

Added

  • Support for reconciling/watching core resources

[0.4.0] - 2019-10-23

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

  • Dockerfile gen uses OTP releases

Removed

  • Removed reconcile_batch_size

[0.3.3] - 2019-06-25

Added

  • Add additional printer columns
  • Bonny.Naming module
  • .credo.exs

[0.3.2] - 2019-04-15

Added

  • Bonny.Watcher and Bonny.Reconciler telemetry events

[0.3.1] - 2019-04-11

Added

  • Support for a reconcile/1 callback
  • reconcile_every config option to schedule how often to run reconciliation
  • reconcile_batch_size to 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 :telemetry library
  • Bonny.Sys.Event.events/0 exposes list of telemetry events
  • mix bonny.gen.manifest --local for building manifests w/o a Deployment for local testing
  • cluster_name: :default config options. Now uses k8s cluster registration configuration.

Changed

  • Async watcher event dispatch
  • Replaced HTTPoison with k8s

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

  • Renamed group_version -> api_version
  • Renamed Bonny.CRD.plural/1 -> Bonny.CRD.kind/1
  • Bypass from test suite
  • Impl.parse_metadata/1
  • kubeconf_file and kubeconf_opts config options

[0.3.0] - 2019-03-04

Changed

  • Replaced k8s_conf library with k8s.

[0.2.3] - 2019-01-13

Added

  • Initial public release.
  • Controller lifecycle implementation.
  • CRD Watcher.
  • mix task: controller generator
  • mix task: dockerfile generator
  • mix task: k8s manifest generator