This is an automated email from the ASF dual-hosted git repository.

wmedvedeo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 955927861 kie-kogito-docs-664: Create a guide for the SonataFlow 
Operator driven Supporting Services Knative Eventing system configuration (#685)
955927861 is described below

commit 955927861238483cebf9e4cdeabe856e09802b09
Author: Walter Medvedeo <[email protected]>
AuthorDate: Sat Nov 9 10:25:06 2024 +0100

    kie-kogito-docs-664: Create a guide for the SonataFlow Operator driven 
Supporting Services Knative Eventing system configuration (#685)
    
    * kie-kogito-docs-664: Create a guide for the SonataFlow Operator driven 
Supporting Services Knative Eventing system configuration
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    * Update 
serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
    
    Co-authored-by: Kalyani Desai <[email protected]>
    
    ---------
    
    Co-authored-by: Kalyani Desai <[email protected]>
---
 .../pages/cloud/operator/supporting-services.adoc  | 235 +++++++++++++++++++++
 1 file changed, 235 insertions(+)

diff --git 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
index 67675ad4f..747bc3e92 100644
--- 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
+++ 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/supporting-services.adoc
@@ -180,6 +180,241 @@ When you use the common PostgreSQL configuration, the 
database schema for each s
 For example, `sonataflow-platform-example-data-index-service`.
 ====
 
+== Configuring the supporting services Eventing system
+
+In general, the following events are produced in a {product_name} installation:
+
+* Workflow outgoing and incoming business events.
+* {product_name} system events sent from the workflow to the Data Index and 
Job Service respectively.
+* {product_name} system events sent from the Jobs Service to the Data Index 
Service.
+
+The {operator_name} is designed to use the link:{knative_eventing_url}[Knative 
Eventing] system to resolve all the event communication between these services.
+
+[NOTE]
+====
+In a regular {product_name} installation, the preferred method is to use the 
<<platform-scoped-eventing-system-configuration, Platform scoped Eventing 
System Configuration>>, while the 
<<service-scoped-eventing-system-configuration, Service scoped Eventing System 
configuration>> is reserved only for advanced use cases.
+====
+
+[#platform-scoped-eventing-system-configuration]
+=== Platform-scoped Eventing system configuration
+
+To configure a platform-scoped eventing system, you must use the field 
`spec.eventing.broker.ref` in the `SonataFlowPlatform` CR to refer to a Knative 
Eventing Broker.
+
+This information signals the {operator_name} to automatically link the 
supporting services to `produce` and `consume` the events by using that Broker.
+
+Additionally, workflows deployed in that namespace, that don't provide a 
custom eventing system configuration, will be linked to that Broker.
+// TODO, uncomment when the workflows section is in.
+// For more information about configuring the workflow eventing system, 
xref:cloud/operator/configuring-workflow-eventing-system.adoc[see].
+
+The following `SonataFlowPlatform` CR fragment shows an example of such 
configuration:
+
+.Platform scoped eventing system configuration example
+[source,yam]
+----
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform-example
+  namespace: example-namespace
+spec:
+  eventing:
+    broker:
+      ref:
+        name: example-broker <1>
+        namespace: example-broker-namespace <2>
+        apiVersion: eventing.knative.dev/v1
+        kind: Broker
+----
+
+<1> Name of the Knative Eventing Broker.
+<2> Optional: Defines the namespace of the Knative Eventing Broker. Defaults 
to the SonataFlowPlatform namespace. In general, we recommend creating the 
Knative Eventing Broker in the same namespace as the SonataFlowPlatform.
+
+[NOTE]
+====
+In production environments, you must use a production-ready broker, like the 
link:{knative_eventing_kafka_broker_url}[Knative Kafka Broker].
+====
+
+[#service-scoped-eventing-system-configuration]
+=== Service-scoped Eventing system configuration
+
+A service scoped eventing system configuration provides the ability to do a 
fine-grained configuration of the Eventing system for the 
<<data-index-eventing-system-configuration, Data Index>> or the 
<<jos-service-eventing-system-configuration, Jobs Service>>.
+
+[NOTE]
+====
+In a regular {product_name} installation, the preferred method is to use a 
<<platform-scoped-eventing-system-configuration, Platform-scoped Eventing 
System Configuration>>, while the service-scoped configuration is reserved only 
for advanced use cases.
+====
+
+[#data-index-eventing-system-configuration]
+=== Data Index Eventing system configuration
+
+To configure a service-scoped eventing system for the Data Index, you must use 
the field `spec.services.dataIndex.source.ref` in the `SonataFlowPlatform` CR 
to refer to a specific Knative Eventing Broker.
+
+This information signals the {operator_name} to automatically link the Data 
Index to `consume` the {product_name} system events from that Broker.
+
+.Data Index service scoped eventing system configuration example
+[source,yam]
+----
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform-example
+spec:
+  services:
+    dataIndex:
+      source:
+        ref:
+          name: data-index-source-example-broker <1>
+          namespace: data-index-source-example-broker-namespace <2>
+          apiVersion: eventing.knative.dev/v1
+          kind: Broker
+----
+
+<1> Name of the Knative Eventing Broker to `consume` events from.
+<2> Optional: Defines the namespace of the Knative Eventing Broker. Defaults 
to the SonataFlowPlatform namespace. In general, we recommend creating the 
Knative Eventing Broker in the same namespace as the SonataFlowPlatform.
+
+[NOTE]
+====
+In production environments, you must use a production-ready broker, like the 
link:{knative_eventing_kafka_broker_url}[Knative Kafka Broker].
+====
+
+[#jos-service-eventing-system-configuration]
+=== Jobs Service Eventing system configuration
+
+To configure a service-scoped eventing system for the Jobs Service, you must 
use the fields `spec.services.jobService.source.ref` and 
`spec.services.jobService.sink.ref` in the `SonataFlowPlatform` CR.
+
+This information signals the {operator_name} to automatically link the Jobs 
Service to `consume` and `produce` the {product_name} system events from that 
configuration respectively.
+
+.Jobs Service scoped eventing system configuration example
+[source,yam]
+----
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform-example
+spec:
+  services:
+    jobService:
+      source:
+        ref:
+          name: jobs-service-source-example-broker <1>
+          namespace: jobs-service-source-example-broker-namespace <2>
+          apiVersion: eventing.knative.dev/v1
+          kind: Broker
+      sink:
+        ref:
+          name: jobs-service-sink-example-broker <3>
+          namespace: jobs-service-sink-example-broker-namespace <4>
+          apiVersion: eventing.knative.dev/v1
+          kind: Broker
+----
+
+<1> Name of the Knative Eventing Broker to `consume` events from.
+<2> Optional: Defines the namespace of the Knative Eventing Broker. Defaults 
to the SonataFlowPlatform namespace. In general, we recommend creating the 
Knative Eventing Broker in the same namespace as the SonataFlowPlatform.
+<3> Name of the Knative Eventing Broker to `produce` events on.
+<4> Optional: Defines the namespace of the Knative Eventing Broker. Defaults 
to the SonataFlowPlatform namespace. In general, we recommend creating the 
Knative Eventing Broker in the same namespace as the SonataFlowPlatform.
+
+[NOTE]
+====
+In production environments, you must use production-ready brokers, like the 
link:{knative_eventing_kafka_broker_url}[Knative Kafka Broker].
+====
+
+[#cluster-scoped-eventing-system-configuration]
+=== Cluster-scoped Eventing system configuration
+
+When you use a <<cluster-scoped-deployment>> deployment, the supporting 
services are automatically linked to the `Broker` configured in the 
`SonataFlowPlatform` CR referred to by the `SonataFlowClusterPlatform` CR.
+
+=== Eventing system configuration precedence rules
+
+To configure the eventing system for a supporting service, the {operator_name} 
use the following precedence rules:
+
+* If the supporting service has a configured eventing system, by using any of 
the <<data-index-eventing-system-configuration>> or 
<<jos-service-eventing-system-configuration>> respectively, that configuration 
applies.
+
+* If the `SonataFlowPlatform` CR enclosing the supporting service, is 
configured with a <<platform-scoped-eventing-system-configuration>>, that 
configuration applies.
+
+* If the current cluster, is configured with a 
<<cluster-scoped-eventing-system-configuration>>, that configuration apply.
+
+* If none of the previous configurations exists, the supporting service is 
configured to produce direct HTTP calls to deliver events.
+
+=== Eventing System linking objects
+
+The linking of the supporting services with the Eventing System is produced by 
using Knative Eventing SinkBindings and Triggers.
+These objects are automatically created by the {operator_name}, and facilitate 
the events production and consumption from the supporting services.
+
+The following example shows the Knative Native eventing objects created for 
the `SonataFlowPlatform` CR:
+
+.SonataFlowPlatform eventing system configuration example
+[source,yaml]
+----
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform-example
+  namespace: example-namespace
+spec:
+  eventing:
+    broker:
+      ref:
+        name: example-broker <1>
+        apiVersion: eventing.knative.dev/v1
+        kind: Broker
+  services:
+    dataIndex: <2>
+      enabled: true
+    jobService: <3>
+      enabled: true
+----
+
+<1> Platform Broker configuration used by the Data Index, Jobs Service, and 
the workflows if not overridden.
+<2> Data Index ephemeral deployment.
+<3> Jobs Service ephemeral deployment.
+
+.Knative Kafka Broker example used by the SonataFlowPlatform
+[source,yaml]
+----
+apiVersion: eventing.knative.dev/v1
+kind: Broker
+metadata:
+  annotations:
+    eventing.knative.dev/broker.class: Kafka <1>
+  name: example-broker
+  namespace: example-namespace
+spec:
+  config:
+    apiVersion: v1
+    kind: ConfigMap
+    name: kafka-broker-config
+    namespace: knative-eventing
+----
+
+<1> Use the Kafka class to create a Kafka Knative Broker
+
+.Knative Eventing Triggers created for the Data Index and Jobs Service events 
consumption
+[source,bash]
+----
+kn trigger list -n example-namespace
+
+NAME                                                              BROKER       
    SINK                                                     AGE    CONDITIONS  
 READY   REASON
+data-index-jobs-fbf285df-c0a4-4545-b77a-c232ec2890e2              
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-definition-e48b4e4bf73e22b90ecf7e093ff6b1eaf   
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-error-fbf285df-c0a4-4545-b77a-c232ec2890e2     
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-node-fbf285df-c0a4-4545-b77a-c232ec2890e2      
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-sla-fbf285df-c0a4-4545-b77a-c232ec2890e2       
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-state-fbf285df-c0a4-4545-b77a-c232ec2890e2     
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+data-index-process-variable-ac727d6051750888dedb72f697737c0dfbf   
example-broker   service:sonataflow-platform-example-data-index-service   106s  
 7 OK / 7     True
+
+jobs-service-create-job-fbf285df-c0a4-4545-b77a-c232ec2890e2      
example-broker   service:sonataflow-platform-example-jobs-service         106s  
 7 OK / 7     True
+jobs-service-delete-job-fbf285df-c0a4-4545-b77a-c232ec2890e2      
example-broker   service:sonataflow-platform-example-jobs-service         106s  
 7 OK / 7     True
+----
+
+.Knative Eventing SinkBinding created for the Jobs Service events production
+[source,bash]
+----
+kn source list -n example-namespace
+
+NAME                                          TYPE          RESOURCE           
                SINK                    READY
+sonataflow-platform-example-jobs-service-sb   SinkBinding   
sinkbindings.sources.knative.dev   broker:example-broker   True
+----
+
 == Advanced Supporting Services Configurations
 
 To configure the advanced options for any of the supporting services you must 
use the `podTemplate` field respectively, for example `dataIndex.podTemplate`:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to