Uploaded image for project: 'AMQ Streams'
  1. AMQ Streams
  2. ENTMQST-4375

Include additional resource operators independent on Vert.x

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: Undefined Undefined
    • 2.5.0.GA
    • None
    • None
    • None

      Resource operators (see package io.strimzi.operator.common.operator.resource in module operator-common) are classes which make it easier to work with Kubernetes resources. They contain several kinds of logic:

      • reconcile mechanism which decides whether a resource should be created, deleted or patched
      • Diffing mechanism which decides whether it is needed to patch the resource (whether there is any difference)
      • Async mechanisms which can make some synchronous blocking calls async
      • Additional checks such as making sure that deleted resource is already deleted

      These classes currently heavily depend on Vert.x. They return Vert.x futures, the use Vert.x futures and blocking execution etc. That makes them impossible to use when not using Vert.x such as from the new User operator or in the PodSet controller.

      The logic in these classes is useful even when not using Vert.x. So we should make them useable also without it. We should investigate:
      1. If they can be rewritten to use pure Java (e.g. completion stages or completable futures) while still being used form the Vert.x part of the code
      2. Whether we need to create a parallel classes for use without Vert.x.

      This should be also implemented.

      Created by Strimzi#7594

      Implementation note:
      The second option above was selected for PR #8673. The change included several resource operators that may be usable by the User and Topic operators to migrate from Vert.x.

              Unassigned Unassigned
              scholzj JAkub Scholz
              Jan Kalinic Jan Kalinic
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: