8.5. 이벤트 시스템에 워크플로우 연결
OpenShift Serverless Logic Operator는 Knative Eventing, SinkBindings 및 트리거를 사용하여 이벤트 시스템과 워크플로우를 연결합니다. 이러한 오브젝트는 OpenShift Serverless Logic Operator에 의해 자동으로 생성되고 워크플로우 이벤트의 프로덕션 및 사용을 단순화합니다.
다음 예제에서는 플랫폼 범위 이벤트 시스템으로 구성된 example-workflow 워크플로우에 대해 생성된 Knative Eventing 오브젝트를 보여줍니다.
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlowPlatform
metadata:
name: sonataflow-platform-example
namespace: example-namespace
spec:
eventing:
broker:
ref:
name: example-broker
apiVersion: eventing.knative.dev/v1
kind: Broker
services:
dataIndex:
enabled: true
jobService:
enabled: true
...
example-broker 오브젝트는 Kafka 클래스 Broker이며 해당 구성은 kafka-broker-config 구성 맵에 정의되어 있습니다.
다음 예제는 SonataFlowPlatform과 함께 사용할 Kafka Knative 브로커를 구성하는 방법을 보여줍니다.
apiVersion: eventing.knative.dev/v1
kind: Broker
metadata:
annotations:
eventing.knative.dev/broker.class: Kafka
name: example-broker
namespace: example-namespace
spec:
config:
apiVersion: v1
kind: ConfigMap
name: kafka-broker-config
namespace: knative-eventing
- 1
- Kafka 클래스는
example-broker오브젝트를 생성하는 데 사용됩니다.
다음 예제에서는 example-workflow 가 이벤트 프로덕션 및 소비를 위해 example-broker 의 example- broker에 자동으로 연결되는 방법을 표시합니다.
apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
name: example-workflow
namespace: example-namespace
annotations:
sonataflow.org/description: Example Workflow
sonataflow.org/version: 0.0.1
sonataflow.org/profile: preview
spec:
flow:
start: ExampleStartState
events:
- name: outEvent1
source: ''
kind: produced
type: out-event-type1
- name: inEvent1
source: ''
kind: consumed
type: in-event-type1
- name: inEvent2
source: ''
kind: consumed
type: in-event-type2
states:
- name: ExampleStartState
...
다음 명령을 사용하여 example-workflow-sb 라는 자동으로 생성된 SinkBinding 을 나열할 수 있습니다.
$ oc get sinkbindings -n example-namespace
출력 예
NAME TYPE RESOURCE SINK READY
example-workflow-sb SinkBinding sinkbindings.sources.knative.dev broker:example-broker True
다음 명령을 사용하여 이벤트 사용을 위해 자동으로 생성된 트리거를 나열할 수 있습니다.
$ oc get triggers -n <example-namespace>
출력 예
NAME BROKER SINK AGE CONDITIONS READY REASON
example-workflow-inevent1-b40c067c-595b-4913-81a4-c8efa980bc11 example-broker service:example-workflow 16m 7 OK / 7 True
example-workflow-inevent2-b40c067c-595b-4913-81a4-c8efa980bc11 example-broker service:example-workflow 16m 7 OK / 7 True