Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-16894

Support read properties from camel component for kamelets

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Won't Do
    • 3.11.0
    • None
    • camel-debezium
    • None
    • Novice

    Description

      As example, it will be possible to use a Kamelet to create a[ Debezium Source Connectors |https://camel.apache.org/components/latest/debezium-summary.html]

       Definition

      Definite DBZ MySQL Connector named debezium-mysql-source.kamelet.yaml

      
      apiVersion: camel.apache.org/v1alpha1
      kind: Kamelet
      metadata:
        name: debezium-mysql-source
        annotations:
          camel.apache.org/kamelet.support.level: "Preview"
          // other ...
        labels:
          camel.apache.org/kamelet.type: "source"
      spec:
        definition:
          title: "Debezium MySQL"
          required:
            - databaseServerId
            - databaseServerName
      // others...
          properties:
            databaseServerId:
              //...
            databaseServerName:
             //...
            // others ...
        dependencies:
         // ...
        flow:
          from:
            uri: debezium-mysql:{{databaseServerName}}
            parameters:
              databaseServerName: "{{databaseServerName}}"
              databaseServerId: "{{databaseServerId}}"
      // others...
            steps:
              - to: "kamelet:sink"
      

      As example:

      from("debezium-mysql:dbz-test-1?databaseServerName=dbz-test-1&databaseServerId=5401&...")
      .log("Event received from Debezium : ${body}")
      

      Using the Kamelet example above, the message property can then be given:
      1. by setting a URI Param named databaseServerName and databaseServerId
      OR
      2. by setting the property camel.kamelet.debezium-mysql-source.source.databaseServerName and camel.kamelet.debezium-mysql-source.source.databaseServerId

      It will be very useful when build this with camel-kamelets projects.
      For example create a YAML file like the following one:

      apiVersion: camel.apache.org/v1alpha1
      kind: KameletBinding
      metadata:
        name: debezium-mysql-source-binding
      spec:
        source:
          ref: 
            kind: Kamelet
            apiVersion: camel.apache.org/v1alpha1
            name: debezium-mysql-source
          properties:
            databaseServerId: 5401
            databaseServerName: "dbz-test-1" 
            // difference !! we can't defined includeQuery and includeSchemaChanges  in  source YAML above(debezium-mysql-source.kamelet.yaml)
            includeQuery: "true"
            includeSchemaChanges:"false"
            ....
      

      The includeQuery and includeSchemaChanges may be affected as same as uri params like databaseServerName in runtime env

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              winger2049@gmail.com winger
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: