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

Conflict error occurs in PDB when the same resource name is used in KafkaConnect and KafkaConnectS2I

XMLWordPrintable

      • Do not use the same resource name for KafkaConnect and KafkaConnectS2I
    • Hide
      1. create "my-connect-cluster" of Kind:KafkaConnect (1)
      2. create "my-connect-cluster" of Kind:KafkaConnectS2I (2)
      3. ==> Conflict error will occur in "my-connect-cluster-connect" PDB (3)

      (1) "my-connect-cluster" of Kind:KafkaConnect
      ~~~
      apiVersion: kafka.strimzi.io/v1beta1
      kind: KafkaConnect
      metadata:
      name: my-connect-cluster
      ...
      ~~~

      (2) "my-connect-cluster" of Kind:KafkaConnectS2I
      ~~~
      apiVersion: kafka.strimzi.io/v1beta1
      kind: KafkaConnectS2I
      metadata:
      name: my-connect-cluster
      ...
      ~~~

      Show
      create "my-connect-cluster" of Kind:KafkaConnect (1) create "my-connect-cluster" of Kind:KafkaConnectS2I (2) ==> Conflict error will occur in "my-connect-cluster-connect" PDB (3) (1) "my-connect-cluster" of Kind:KafkaConnect ~~~ apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnect metadata: name: my-connect-cluster ... ~~~ (2) "my-connect-cluster" of Kind:KafkaConnectS2I ~~~ apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnectS2I metadata: name: my-connect-cluster ... ~~~

      • Conflict error occurs in PDB when the same resource name is used in KafkaConnect and KafkaConnectS2I
        • The PDB naming conventions are the same for KafkaConnect and KafkaConnectS2I: <Connect cluster name>-connect
      • "Failed to sync pdb" error(3) occurs continuously due to the conflict of PDB.
      • The problem is that the cause is difficult to identify from the error message, and not being able to determine the solution right away.
      • I think the following solutions can be considered
        1. Validate and detect when the same resource name is used with KafkaConnect and KafkaConnectS2I, and output a clear error or warn messages.
        2. Change the PDB naming convention between KafkaConnect and KafkaConnectS2I
          For example, in the case of KafkaConnect <Connect cluster name>-connect, in the case of KafkaConnectS2I <Connect cluster name>-connect-s2i.
        3. Integrate KafkaConnectS2I Kind into KafkaConnect Kind
          As a personal gut feeling, S2I is a just way to build and get an image. So I couldn't see the need for different resource kinds of connect clusters for each different way of building images like S2I. It might be possible to integrate KafkaConnectS2I kind into KafkaConnect kind by having a different "type"(S2I or IS tag) for retrieving images on KafkaConnect schema. As a result, it is no longer possible to create a same resource name of connect cluster.

      (3) PDB error
      ~~~
      Failed to sync pdb kafka-example-project/my-connect-cluster-connect:
      Operation cannot be fulfilled on poddisruptionbudgets.policy "my-connect-cluster-connect": StorageError:
      invalid object, Code: 4, Key: /kubernetes.io/poddisruptionbudgets/kafka-example-project/my-connect-cluster-connect,
      ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: 9xxx9999-9x99-99xx-9x99-99xx99xx9x99,
      UID in object meta:
      ~~~

              Unassigned Unassigned
              rhn-support-tyamashi Tomonari Yamashita
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: