Skip to content

v3.0.0-prerelease.2

Pre-release
Pre-release
Compare
Choose a tag to compare

3.0.0-prerelease.2 (2021-01-29)

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)

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.