Skip to content

v3.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Feb 10:03
04b1a68

3.0.0 (2021-02-08)

Bug Fixes

  • deps: update dependency namotion.reflection to v1.0.16 (#145) (8d38373)
  • deps: update dependency namotion.reflection to v1.0.18 (#147) (04b1a68)
  • Correctly translate the kubernetes "special" fields in crds. (e5573c4)

Code Refactoring

  • controller: Refactoring to scoped controllers. (17d636f), closes #138
  • finalizer: Use scoped finalizer. (307cc55)
  • function naming: Use best practice names. (4e675b8)
  • testing: Adjust test helpers according to breaking changes. (163c18b)
  • validators: Use scoped validators and register by type. (a63b511)

Features

  • crd generation: Add additional printer columns. (#118) (1fd76c3), closes #60
  • documentation: Add documentation for public elements of the libs (#119) (f97a3ef)
  • events: Add event support for resources and controllers. (#132) (3537772), closes #5
  • logging: Remove the structured logger in favor of JsonLogger. (8a6bf9d)
  • webhooks: Add validation webhooks and cert support. (#136) (6633845), closes #3
  • add KubeOpsBasePath to msbuild properties (#117) (532b878)

BREAKING CHANGES

  • testing: This removes the mocked event queue.
    To test controllers and finalizers, use the provided
    methods of the KubernetesOperatorFactory to enqueue
    events and finalizers.
  • validators: Validators do not need to be registered via
    AddValidationWebhook method. All validators are infered/searched
    by type when they implement the IValidationWebhook<> interface.
    When the validation webhook is called, a scope is created.
  • function naming: This essentially renames all async functions.
    According to best practices, async functions should have the
    suffix Async.
  • finalizer: Refactoring of the finalizer logic. Same as with
    the controller, the finalizer are now instantiated via dependency injection
    in a scope. As soon as a finalization request happens, the finalizer
    manager will search for the adequate finalizer and call it.
    The new way of registering finalizer is via the IFinalizerManager
    to attach a finalizer to an entity.
  • controller: Refactoring of the whole controller instantation.
    This removes the ResourceControllerBase class. Please migrate to
    the new interface IResourceController. The basic idea is to provide
    scoped access like asp.net api controller. ALL non abstract classes
    that implement that interface are registered as controllers on startup.
    Whenever an event for a resource happens, a dependency injection
    scope is created and the controller is called with the specific action.
    There is no need for a base class anymore.
  • logging: This removes the structured console logger.
    Dotnet 5.0 provides a "simple logger" (default) as well as a
    "json logger".