Integrating with Event Endpoint Management

Event Streams 11.3.1 icon Event Endpoint Management provides the capability to describe and catalog your Kafka topics as event sources, and to share the details of the topics with application developers within the organization. Application developers can discover the event sources and configure their applications to subscribe to the stream of events, providing self-service access to the message content from the event stream.

Event Streams can be integrated with Event Endpoint Management, after which you can share topics as event sources with Event Endpoint Management from the Event Streams UI. You can then create options for each topic to control how the topic’s stream of events are presented to consumers, and publish the option you want in the Event Endpoint Management UI.

Follow the instructions as an administrator to integrate your Event Streams deployment with Event Endpoint Management.

Note: You must have authenticated to the OpenShift Container Platform UI with a Keycloak user or an IAM user to be able to share your topic within the UI. To share your topic within the UI as a SCRAM user, you must have an administrator role with the cluster.alter permission enabled. For more information, see Managing access.

Prerequisites

Ensure your environment meets the following prerequisites.

  • To authenticate Event Endpoint Management to access Event Streams, ensure that an external listener is configured with SCRAM authentication.
  • Event Endpoint Management version 11.1.1 or later is installed.
  • You have an access token from the Event Endpoint Management UI.
  • You downloaded the SSL certificate of your Event Endpoint Management instance as a .crt file and then formatted the certificate by running the following command:

    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' <eem-ssl-certificate>.crt
    

Setting up the connection

To set up a connection between your Event Streams and Event Endpoint Management instances, complete the following steps:

  1. Log in to your Kubernetes cluster as a cluster administrator by setting your kubectl context.
  2. Create a file called es-eem-configmap.yaml and copy the following YAML content into the file to create the ConfigMap that has the details for creating a server connection to your Event Endpoint Management instance:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: <event-streams-instance>-ibm-es-discovery-endpoints
      namespace: <event-streams-namespace>
    data:
      endpoints.json: |-
        {
          "instances": [
            {
              "name": "<event-endpoint-management-instance>",
              "type": "event-endpoint-manager",
              "server": {
                "host": "<eem-api-hostname>",
                "port": <eem-api-port>,
                "ssl": true,
                "certificates": ["-----BEGIN CERTIFICATE-----\n<eem-ssl-certificate>\n-----END CERTIFICATE-----\n"]
              },
              "additional-info": {
                "eem-ui-url": "<ui-url-eem-instance>"
              }
            }
          ]
        }
    

    Where:

    • <event-streams-instance> is the name of the Event Streams instance.
    • <event-streams-namespace> is the namespace where your Event Streams instance is installed.
    • <event-endpoint-management-instance> is the name of the Event Endpoint Management instance.
    • <eem-api-hostname> is the hostname of the API endpoint URI of the Event Manager.
    • <eem-api-port> is the port number of the API endpoint URI of the Event Manager.
    • <eem-ssl-certificate> is the CA certificate of the Event Endpoint Management instance that you downloaded earlier.
    • <ui-url-eem-instance> is the hostname of the UI endpoint URI of the Event Endpoint Management UI.
  3. Apply the ConfigMap by running the following command:

    kubectl apply -f es-eem-configmap.yaml
    

After the ConfigMap is created, you can share your topics with Event Endpoint Management from the Event Streams UI.