bonny

The Elixir based Kubernetes Development Framework

MIT License

Downloads
47.8K
Stars
359
Committers
17

Bot releases are hidden (Show)

bonny - v1.4.0 Latest Release

Published by mruoss 12 months ago

Added

  • Added telemetry events to the Operator module - #244

## Chores

New Contributors

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.3.0...v1.4.0

bonny - v1.3.0

Published by mruoss about 1 year ago

Changed

  • Bonny.Axn.register_descendant/3 - Add option group to define in what group to apply a descendant and apply descendants in groups.

Chores

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.2.1...v1.3.0

bonny -

Published by mruoss over 1 year ago

Fixed

  • BONNY_OPERATOR_NAME env var is not a reference
bonny - v1.2.0

Published by mruoss over 1 year ago

Changed

  • Start leader election by default - #195

Fixed

  • mix bonny.gen.manifest - Merge RBAC rules for the same resources - #213
  • Compile time dependency at runtime - #212 by @akasprzok

Chores

New Contributors

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.1.3...v1.2.0

bonny - v1.1.3

Published by mruoss over 1 year ago

What's Changed

Chores

Thanks

  • @sleipnir for testing leader election and raising the issue solved by #207

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.1.2...v1.1.3

bonny - v1.1.2

Published by mruoss over 1 year ago

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

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.1.1...v1.1.2

bonny - v1.1.1

Published by mruoss over 1 year ago

Fixed

  • Bonny.Pluggable.Finalizer - Remove finalizers from resource if they need to be removed.
  • Bonny.Axn - Fix by @sleipnir for a regression where descendants were not applied - #192, #191

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.1.0...v1.1.1

bonny - v1.1.0

Published by mruoss over 1 year ago

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.
The most likely problem to occur is a Handshake Failure when working with local clusters. Its easily fixed, please follow the instructions on the k8s migration guide.

Fixed

  • Prevent duplicate descendants

Changed

  • Upgraded k8s dependency to 2.x. #173

Added

  • Bonny.Pluggable.AddMissingGVK - A pluggable step for adding missing GVK information to resources - #184, #183
  • Helpers to define conditions on custom resources. #188
    • Bonny.API.Version.add_conditions/1 - Helper to define a schema for conditions on the CRD
    • Bonny.Axn.set_condition/4 - Helper to set a condition on a resource
  • Bonny.Pluggable.Finalizer - A pluggable step to define and implement finalizers, #6, #189
  • Bonny.Axn.register_after_processed/2 - Registers a callback to be invoked at the very end of an action event's processing by the operator

Chores

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.0.1...v1.1.0

bonny - v1.0.1

Published by mruoss over 1 year ago

What's Changed

Chores

New Contributors

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.0.0...v1.0.1

bonny -

Published by mruoss almost 2 years ago

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.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 (think Plug)
    library is used with Bonny.Axn as token to process ADDED, MODIFIED,
    DELETED and reconciliation events by Pluggable pipelines.
  • Bonny.ControllerV2 was introduced as a successor to Bonny.Controller. It leverages
    Pluggable.StepBuilder (think Plug.Builder) to build a pluggable pipeline.
  • Bonny.Event and Bonny.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 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
bonny - v1.0.0-rc.2

Published by mruoss almost 2 years ago

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

New Contributors

Full Changelog: https://github.com/coryodaniel/bonny/compare/v1.0.0-rc.1...v1.0.0-rc.2

bonny -

Published by mruoss almost 2 years ago

Added

  • Better logs in case of errors while applying status, descendants or events
  • Integration tests for these logs
bonny - v1.0.0-rc.0

Published by mruoss almost 2 years ago

With Version 1.0.0, Bonny got a thorough refactoring. You might consider reading the several guides (e.g. the migration guide)

  • 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 (think Plug)
    library is used with Bonny.Axn as token to process ADDED, MODIFIED,
    DELETED and reconciliation events by Pluggable pipelines.
  • Bonny.ControllerV2 was introduced as a successor to Bonny.Controller. It leverages
    Pluggable.StepBuilder (think Plug.Builder) to build a pluggable pipeline.
  • Bonny.Event and Bonny.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 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

  • 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 with
    Bonny.Operator and Bonny.ControllerV2
bonny - v0.5.2

Published by mruoss about 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/coryodaniel/bonny/compare/v0.5.1...v0.5.2

bonny - v0.5.1

Published by mruoss over 2 years ago

Fixed

  • Add missing priv folder to package
bonny - v0.5.0

Published by mruoss over 2 years ago

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

Added

  • Bonny.Server.AsyncStreamRunner to run streams in a separate process
  • Bonny.Sys.Telemetry defines telemetry spans and events

Updated

  • Bonny.Server.Watcher and Bonny.Server.Reconciler were rewritten completely. They now prepare streams which are to be run with Bonny.Server.AsyncStreamRunner
  • Dependency k8s was updated to version ~> 1.1 and code was refactored accordingly

Deprecated

  • Bonny.Sys.Event was deprecated in favor of Bonny.Sys.Telemetry
bonny -

Published by coryodaniel over 3 years ago

Package Rankings
Top 9.55% on Proxy.golang.org
Top 8.61% on Hex.pm
Badges
Extracted from project README
Module Version Coverage Status Last Updated Build Status CI Build Status Elixir Build Status K8s Hex Docs Total Download License
Related Projects