Skip to content

Commit 11a7898

Browse files
authored
Manual cherry pick 1422 (#1440)
1 parent 294e5e0 commit 11a7898

File tree

5 files changed

+129
-36
lines changed

5 files changed

+129
-36
lines changed

assemblies/assembly-orchestrator-rhdh.adoc

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,16 @@ To start using Orchestrator in {product-very-short}, you must:
2727
* Import the Orchestrator software templates into the {product} catalog
2828
2929
// orchestrator architecture
30-
include::modules/orchestrator/con-supported-architecture-for-orchestrator.adoc[leveloffset=+1]
30+
include::modules/orchestrator/con-architecture-overview.adoc[leveloffset=+1]
3131

3232
// compatibility guide for {product} Orchestrator
3333
include::modules/orchestrator/ref-compatibility-guide-for-orchestrator.adoc[leveloffset=+1]
3434

3535
// provisioning plugin dependencies
3636
include::modules/orchestrator/con-orchestrator-plugin-dependencies-operator.adoc[leveloffset=+1]
3737

38-
// installing the components for the orchestrator plugin
39-
include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1]
38+
// enabling orchestrator plugins components
39+
include::modules/orchestrator/proc-enabling-orchestrator-plugins-components.adoc[leveloffset=+1]
4040

4141
// Orchestrator Infrastructure for {product} Helm chart
4242
include::modules/orchestrator/proc-helm-install-components-orchestrator-plugin.adoc[leveloffset=+2]
@@ -45,5 +45,4 @@ include::modules/orchestrator/proc-helm-install-components-orchestrator-plugin.a
4545
include::modules/orchestrator/proc-manual-install-components-orchestrator-plugin.adoc[leveloffset=+2]
4646

4747
// {product-very-short} helper script
48-
include::modules/orchestrator/proc-helper-script-overview.adoc[leveloffset=+2]
49-
48+
include::modules/orchestrator/proc-helper-script-overview.adoc[leveloffset=+2]
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
:_mod-docs-content-type: CONCEPT
2+
3+
[id="con-architecture-overview.adoc_{context}"]
4+
= Understand Orchestrator architecture
5+
6+
The Orchestrator architecture is composed of several components, each contributing to the running and management of workflows.
7+
8+
{product} ({product-very-short}):: Serves as the primary interface. It contains the following subcomponents:
9+
10+
Orchestrator frontend plugins::: Provide the interface for users to run and monitor workflows within {product-very-short}.
11+
12+
Orchestrator backend plugins::: Get workflow data into {product-short}.
13+
14+
Notifications plugins::: Inform users about workflow events.
15+
16+
Sonataflow::
17+
18+
The Sonataflow orchestrator and its subcomponents handle the workflows.
19+
The {product} Orchestrator and the {product} Helm chart manage the following subcomponents lifecycle:
20+
21+
OpenShift Serverless Logic Operator::: Manages the Sonataflow custom resource (CR), where each CR represents a deployed workflow.
22+
23+
Sonataflow Runtime/Workflow Application::: Functions as a deployed workflow. Operates as an HTTP server, handling requests for running workflow instances. It is managed as a Kubernetes (K8s) deployment by the Openshift Serverless Logic Operator.
24+
25+
Data Index Service::: Serves as a repository for workflow definitions, instances, and associated jobs. It exposes a GraphQL API used by the Orchestrator backend plugin to retrieve workflow definitions and instances.
26+
Job Service::: Orchestrates scheduled tasks for workflows.
27+
28+
OpenShift Serverless::: Provides serverless capabilities essential for workflow communication. It employs Knative eventing to interface with the Data Index service and uses Knative functions to introduce more complex logic to workflows.
29+
30+
PostgreSQL Server::: Provides a database solution essential for data persistence within the Orchestrator ecosystem. The system uses PostgreSQL Server for storing both Sonataflow information and {product-short} data.
31+
32+
Keycloak:: Provides authentication and security services within applications. Keycloak must be provisioned externally to manage authentication, as the Orchestrator Operator does not install it.
33+
34+
OpenShift AMQ Streams (Strimzi/Kafka):: Provides enhanced reliability of the eventing system. Eventing can work without Kafka by using direct HTTP calls, however, this approach is not reliable.
35+
+
36+
Optional: The current deployment iteration does not natively integrate or include the AMQ Streams Operator. However, you can add the Operator post-install for enhanced reliability if you require it.

modules/orchestrator/con-orchestrator-plugin-components.adoc

Lines changed: 0 additions & 17 deletions
This file was deleted.

modules/orchestrator/con-supported-architecture-for-orchestrator.adoc

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
:_mod-docs-content-type: PROCEDURE
2+
3+
[id="proc-enabling-orchestrator-plugins-components.adoc_{context}"]
4+
= Enabling Orchestrator plugins components
5+
6+
To use the Orchestrator, enable the Orchestrator plugins for {product}, that are disabled by default:
7+
8+
Orchestrator frontend plugins::
9+
10+
`backstage-plugin-orchestrator`:::
11+
Provides the interface for users to run and monitor workflows within {product-very-short}. You can run and track the execution status of processes.
12+
13+
`backstage-plugin-orchestrator-form-widgets`:::
14+
Provides custom widgets for the workflow execution form, allowing you to customize input fields and streamline the process of launching workflows.
15+
16+
`backstage-plugin-orchestrator-form`:::
17+
Provides the workflow execution form where you can define and submit the necessary input data required to start a new workflow instance.
18+
19+
`backstage-plugin-orchestrator-form-api`:::
20+
Defines the API for extending the workflow execution form.
21+
22+
Orchestrator backend plugins::
23+
24+
`backstage-plugin-orchestrator-backend`:::
25+
Gets workflow data into {product-short} making sure {product-very-short} ingests critical workflow metadata and runtime status fulfilling your need for visibility.
26+
27+
`backstage-plugin-orchestrator-common`:::
28+
Contains the backend OpenAPI specification along with autogenerated API documentation and client libraries.
29+
30+
`scaffolder-backend-module-orchestrator`:::
31+
Provides callable actions from scaffolder templates, such as `orchestrator:workflow:run` or `orchestrator:workflow:get_params`.
32+
33+
Notification plugins::
34+
35+
`backstage-plugin-notifications`:::
36+
Provides notification frontend components that allow you to display immediate, visible alerts about key workflow state changes, allowing real-time status tracking.
37+
38+
39+
`backstage-plugin-signals`:::
40+
Provides notification frontend components user experience enhancements so you can process the real-time lifecycle events.
41+
42+
`backstage-plugin-notifications-backend-dynamic`:::
43+
Provides notification backend components allowing you to manage and store the stream of workflow events, making sure that critical notifications are ready to be served to the front-end user interface.
44+
45+
`backstage-plugin-signals-backend-dynamic`:::
46+
Provides the backend components for notification user experience enhancements allowing you to establish the necessary communication channels for the event-driven orchestration that is core to Serverless Workflows.
47+
48+
.Prerequisites
49+
50+
* When using the {product} Helm chart, you have installed the necessary OpenShift Serverless Operators.
51+
+
52+
[NOTE]
53+
====
54+
When using the {product} Operator, the Operator installs the necessary OpenShift Serverless Operators automatically. For specific use cases, install the dependencies manually or use helper utilities.
55+
====
56+
57+
* (Optional) For managing the Orchestrator project, you have an instance of Argo CD or Red Hat OpenShift GitOps in the cluster. It is disabled by default.
58+
59+
* (Optional) To use Tekton tasks and the build pipeline, you have an instance of Tekton or Red Hat OpenShift Pipelines in the cluster. These features are disabled by default.
60+
61+
.Procedure
62+
* Locate your {product-short} configuration and enable the Orchestrator plugins and the supporting notification plugins.
63+
+
64+
[source,yaml,subs="+attributes,+quotes"]
65+
----
66+
plugins:
67+
- package: "@redhat/backstage-plugin-orchestrator@{product-chart-version}"
68+
disabled: false
69+
- package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@{product-chart-version}"
70+
disabled: false
71+
- package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@{product-chart-version}"
72+
disabled: false
73+
- package: "@redhat/backstage-plugin-orchestrator-form-widgets@{product-chart-version}"
74+
disabled: false
75+
- package: "@redhat/backstage-plugin-orchestrator-common@{product-chart-version}"
76+
disabled: false
77+
- package: "@redhat/backstage-plugin-orchestrator-form@{product-chart-version}"
78+
disabled: false
79+
- package: "@redhat/backstage-plugin-orchestrator-form-api@{product-chart-version}"
80+
disabled: false
81+
- package: "./dynamic-plugins/dist/backstage-plugin-notifications"
82+
disabled: false
83+
- package: "./dynamic-plugins/dist/backstage-plugin-signals"
84+
disabled: false
85+
- package: "./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic"
86+
disabled: false
87+
- package: "./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic"
88+
disabled: false
89+
----

0 commit comments

Comments
 (0)