From 2a5ae32ef6ce4f11a30706f877524b24a1255a7f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 18 Aug 2025 11:39:38 +0200 Subject: [PATCH 01/25] Orchestrator flavor in RHDH Operator --- artifacts/attributes.adoc | 3 + .../con-infrastructure-components.adoc | 11 +++ .../con-orchestrator-plugin-components.adoc | 9 +++ .../orchestrator/con-plugin-dependencies.adoc | 38 +++++++++ ...ll-components-for-orchestrator-plugin.adoc | 48 +++++++++++ .../proc-install-orchestrator-plugin.adoc | 79 +++++++++++++++++++ ...nstall-rhdh-in-air-gapped-environment.adoc | 75 ++++++++++++++++++ titles/orchestrator/artifacts | 1 + titles/orchestrator/assemblies | 1 + titles/orchestrator/docinfo.xml | 11 +++ titles/orchestrator/images | 1 + titles/orchestrator/master.adoc | 26 ++++++ titles/orchestrator/modules | 1 + 13 files changed, 304 insertions(+) create mode 100644 modules/orchestrator/con-infrastructure-components.adoc create mode 100644 modules/orchestrator/con-orchestrator-plugin-components.adoc create mode 100644 modules/orchestrator/con-plugin-dependencies.adoc create mode 100644 modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc create mode 100644 modules/orchestrator/proc-install-orchestrator-plugin.adoc create mode 100644 modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc create mode 120000 titles/orchestrator/artifacts create mode 120000 titles/orchestrator/assemblies create mode 100644 titles/orchestrator/docinfo.xml create mode 120000 titles/orchestrator/images create mode 100644 titles/orchestrator/master.adoc create mode 120000 titles/orchestrator/modules diff --git a/artifacts/attributes.adoc b/artifacts/attributes.adoc index 73ea627461..abef44a050 100644 --- a/artifacts/attributes.adoc +++ b/artifacts/attributes.adoc @@ -120,6 +120,9 @@ :installing-on-gke-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_on_google_kubernetes_engine/index :installing-in-air-gap-book-title: Installing {product} in an air-gapped environment :installing-in-air-gap-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_in_an_air-gapped_environment/index +:installing-rhdh-orch-on-ocp-book-title: Installing RHDH with the Orchestrator Plugin on {ocp-short} using the {product} Operator +:installing-rhdh-orch-on-ocp-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_rhdh_with_orchestrator_plugin_on_{ocp-short}_using_operator_in_an_air-gapped_environment/index + :integrating-with-github-book-title: Integrating {product} with GitHub :integrating-with-github-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/integrating_red_hat_developer_hub_with_github/index diff --git a/modules/orchestrator/con-infrastructure-components.adoc b/modules/orchestrator/con-infrastructure-components.adoc new file mode 100644 index 0000000000..7343dca733 --- /dev/null +++ b/modules/orchestrator/con-infrastructure-components.adoc @@ -0,0 +1,11 @@ +[id='con-infrastructure-components.adoc_{context}'] += Infrastructure components + +To install {product} with the Orchestrator plugin on {ocp-short}, you need the following components to support the plugin and its runtime infrastructure: + +* OpenShift Serverless Operator +* Knative Serving +* Knative Eventing +* OpenShift Serverless Logic Operator + +The {product} Operator provisions these automatically or you can install them manually using another Operator. diff --git a/modules/orchestrator/con-orchestrator-plugin-components.adoc b/modules/orchestrator/con-orchestrator-plugin-components.adoc new file mode 100644 index 0000000000..b363d47363 --- /dev/null +++ b/modules/orchestrator/con-orchestrator-plugin-components.adoc @@ -0,0 +1,9 @@ +[id='con-orchestrator-plugin-components.adoc_{context}'] += Orchestrator plugin components + +The following Orchestrator plugin components are included by default in `dynamic-plugins.default.yaml`: + +* `@redhat/backstage-plugin-orchestrator` +* `@redhat/backstage-plugin-orchestrator-backend-dynamic` +* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` +* `@redhat/backstage-plugin-orchestrator-form-widgets` diff --git a/modules/orchestrator/con-plugin-dependencies.adoc b/modules/orchestrator/con-plugin-dependencies.adoc new file mode 100644 index 0000000000..2a94924152 --- /dev/null +++ b/modules/orchestrator/con-plugin-dependencies.adoc @@ -0,0 +1,38 @@ +[id='con-plugin-dependencies.adoc_{context}'] += Plugin dependencies + +To run the Orchestrator plugin instance, you need to install the following dependencies: + +* A SonataflowPlatform custom resource created in the namespace of the Backstage CR. +* A set of NetworkPolicies to allow traffic between infra resources, such as knative and serverless logic Operator, created in the namespace of Backstage CR, traffic for monitoring, and intra-namespace traffic. + +The orchestrator-backend plugin uses the service `sonataflow-platform-data-index-service`, which is created by the _SonataFlowPlatform_ CR. The service communicates with the SonataFlow platform. + +[IMPORTANT] +==== +The _sonataflowplatform_ CR contains dataIndex service that requires PostgreSQL database as shown in the following example: + +[source,bash] +---- + persistence: + postgresql: + secretRef: + name: backstage-psql-secret-{{backstage-name}} + userKey: POSTGRES_USER + passwordKey: POSTGRES_PASSWORD + serviceRef: + name: backstage-psql-{{backstage-name}} # Name of the Backstage Custom Resource (CR) + namespace: {{backstage-ns}} # Namespace where the Backstage CR is created + databaseName: backstage_plugin_orchestrator +---- +==== + +The default implementation of the Orchestrator plugin dependencies uses the following: + +* The PostgreSQL database named _backstage_plugin_orchestrator_ created by Backstage for Orchestrator plugin. +* The Secret created by Backstage Operator for the PostgreSQL with *POSTGRES_USER* and *POSTGRES_PASSWORD* keys as the database credentials in the Backstage CR namespace. +* The Service created by Backstage Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the Backstage CR namespace. + +For more information about automatically creating 'plugin dependencies' resources when the Backstage CR is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. + +To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its ServiceAccount. The Backstage Operator automatically creates the required Role and RoleBinding resource in the `profile/rhdh/plugin-rbac directory` directory when creating the SonataFlowPlatform CR in the Backstage CR namespace. diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc new file mode 100644 index 0000000000..54ced0f487 --- /dev/null +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -0,0 +1,48 @@ +:_mod-docs-content-type: PROCEDURE + +[id="proc-install-components-for-orchestrator-plugin.adoc_{context}"] += Installing the components for the Orchestrator plugin on {ocp-short} + +You can install the required components for the Orchestrator plugin on {ocp-short} using the following methods: + +.Manual installation + +The manual installation is suitable for production environments particularly when you have installed the versions of required components such as when OpenShift Serverless is already in use by other applications. + +For more information on preparing the required infrastructure, see link:https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36[Red Hat OpenShift Serverless] and carry out the following steps to: + +* Prepare for OpenShift Serverless installation. + +* Install the OpenShift Serverless Operator. + +* Install Knative Serving. + +* Install Knative Eventing. + +* Install the OpenShift Serverless Logic Operator. + +.{product-very-short} helper script + +You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters. + +For more information on controlling the installation of the Operators, see link:https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/[Install your Operator with OLM]. + +.Procedure +. Download the `plugin-infra.sh` script as shown in the following example: ++ +[source,bash] +---- +curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-1.7/config/profile/rhdh/plugin-infra/plugin-infra.sh # Specify the {product} version in the URL or use main +---- +. Run the script as shown in the following example: ++ +[source,bash] +---- +bash plugin-infra.sh +---- + +.{product-very-short} Orchestrator Infra Helm Chart +{product-very-short} Orchestrator Infra Helm Chart has the same usage and cautions as the {product-very-short} helper script. + +.Procedure +. Install the required components using the Orchestrator infrastructure helm chart. \ No newline at end of file diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc new file mode 100644 index 0000000000..5663a64299 --- /dev/null +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -0,0 +1,79 @@ +:_mod-docs-content-type: PROCEDURE + +[id="proc-install-orchestrator-plugin.adoc_{context}"] += Installing the Orchestrator plugin + +The Orchestrator plugin has the following dynamic plugins: + +* Orchestrator-backend +* Orchestrator-frontend +* Orchestrator-scaffolder-backend-module +* Orchestrator-form-widgets + +These plugins are included in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container and are disabled by default. You can enable the Orchestrator plugin by referring the `dynamic-plugins-rhdh` ConfigMap file with the following data: + +[source,bash] +---- + includes: + - dynamic-plugins.default.yaml + plugins: + - package: "@redhat/backstage-plugin-orchestrator@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" + disabled: false + dependencies: + - ref: sonataflow + - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" + disabled: false +---- + +The following is an example of the complete configuration of the Orchestrator plugin: + +[source,bash] +---- +apiVersion: v1 +kind: ConfigMap +metadata: + name: orchestrator-plugin +data: + dynamic-plugins.yaml: | + includes: + - dynamic-plugins.default.yaml + plugins: + - package: "@redhat/backstage-plugin-orchestrator@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" + disabled: false + dependencies: + - ref: sonataflow + - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" + disabled: false + +apiVersion: v1 +kind: ConfigMap +metadata: + name: app-config-rhdh +data: + app-config-rhdh.yaml: |- + auth: + environment: development + providers: + guest: + # using the guest user to query the '/api/dynamic-plugins-info/loaded-plugins' endpoint. + dangerouslyAllowOutsideDevelopment: true + +apiVersion: rhdh.redhat.com/v1alpha3 +kind: Backstage +metadata: + name: orchestrator +spec: + application: + appConfig: + configMaps: + - name: app-config-rhdh + dynamicPluginsConfigMapName: orchestrator-plugin +---- diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc new file mode 100644 index 0000000000..47640f20d8 --- /dev/null +++ b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc @@ -0,0 +1,75 @@ +:_mod-docs-content-type: PROCEDURE + +[id="proc-install-in-air-gapped-environment.adoc_{context}"] += Installing {product} with the Orchestrator in an air-gapped environment + +You can install {product} with the Orchestrator in an air-gapped environment by mirroring required container images, Helm charts, and NPM packages to internal registries. + +.Prerequisites + +* You have administrative access to the {ocp-short} cluster and mirroring tools such as `oc`, `podman`, or `skopeo`. +* You have access to `npm.registry.redhat.com` from a connected network to pull and mirror Orchestrator plugin tarballs. +* You have mirroring permissions and credentials for all required sources. + +.Procedure + +. From a connected network, log in to the external registries: ++ +[source,bash] +---- +podman login registry.redhat.io +podman login registry.access.redhat.com +podman login npm.registry.redhat.com +---- + +. Identify and mirror all required container images to your internal registry: ++ +[source,bash] +---- +oc image mirror \ + registry.redhat.io/openshift-serverless/*=internal-registry.example.com/openshift-serverless/* \ + registry.redhat.io/openshift-knative/*=internal-registry.example.com/openshift-knative/* \ + registry.redhat.io/sonataflow/*=internal-registry.example.com/sonataflow/* \ + registry.redhat.io/rhdh/*=internal-registry.example.com/rhdh/* \ + registry.redhat.io/postgresql/*=internal-registry.example.com/postgresql/* +---- + +. Mirror the Orchestrator plugin NPM packages to your internal NPM registry: ++ +[source,bash] +---- +npm pack @redhat/backstage-plugin-orchestrator@ +npm pack @redhat/backstage-plugin-orchestrator-backend-dynamic@ +npm pack @redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@ +npm pack @redhat/backstage-plugin-orchestrator-form-widgets@ + +npm publish .tgz --registry https://internal-npm.example.com +---- + +. Update the `dynamic-plugins` configuration to reference the internal NPM registry: ++ +[source,yaml] +---- +plugins: + - package: "@redhat/backstage-plugin-orchestrator@" + disabled: false + registry: https://internal-npm.example.com +---- + +. If using Helm charts, download them from a connected environment and push them to your internal chart repository: ++ +[source,bash] +---- +helm pull --version +helm push .tgz oci://internal-chart-repo.example.com/rhdh +---- + +. Ensure NetworkPolicies, Role, and RoleBinding resources for the SonataFlow platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` CR is created. + +[NOTE] +==== +For the connected environment resource requirements, see link:{installing-orch-on-ocp-book-url}[Resource requirements for the Operator-based Orchestrator]. +==== + +.Verification +* Ensure all pods for OpenShift Serverless, Knative Serving/Eventing, SonataFlow, and PostgreSQL start successfully. \ No newline at end of file diff --git a/titles/orchestrator/artifacts b/titles/orchestrator/artifacts new file mode 120000 index 0000000000..f30b6dea60 --- /dev/null +++ b/titles/orchestrator/artifacts @@ -0,0 +1 @@ +../../artifacts \ No newline at end of file diff --git a/titles/orchestrator/assemblies b/titles/orchestrator/assemblies new file mode 120000 index 0000000000..91646274db --- /dev/null +++ b/titles/orchestrator/assemblies @@ -0,0 +1 @@ +../../assemblies \ No newline at end of file diff --git a/titles/orchestrator/docinfo.xml b/titles/orchestrator/docinfo.xml new file mode 100644 index 0000000000..5f7fe2ebac --- /dev/null +++ b/titles/orchestrator/docinfo.xml @@ -0,0 +1,11 @@ +{title} +{product} +{product-version} +{subtitle} + + {abstract} + + + {company-name} Customer Content Services + + diff --git a/titles/orchestrator/images b/titles/orchestrator/images new file mode 120000 index 0000000000..5fa6987088 --- /dev/null +++ b/titles/orchestrator/images @@ -0,0 +1 @@ +../../images \ No newline at end of file diff --git a/titles/orchestrator/master.adoc b/titles/orchestrator/master.adoc new file mode 100644 index 0000000000..f09e6f2adb --- /dev/null +++ b/titles/orchestrator/master.adoc @@ -0,0 +1,26 @@ +include::artifacts/attributes.adoc[] +:context: title-orchestrator +:imagesdir: images +:title: Installing {product} with the Orchestrator plugin on {ocp-short} +:subtitle: Installing {product} with the Orchestrator plugin on {ocp-short} using the {product} Operator +:abstract: As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin enabled, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. + += {title} + +// infrastructure components +include::modules/orchestrator/con-infrastructure-components.adoc[leveloffset=+1] + +// orchestrator plugin components +include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] + +// plugin dependencies +include::modules/orchestrator/con-plugin-dependencies.adoc[leveloffset=+1] + +// installing the components for the orchestrator plugin +include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] + +// installing the orchestrator plugin +include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] + +// installing in an air-gapped environment +include::modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc[leveloffset=+1] diff --git a/titles/orchestrator/modules b/titles/orchestrator/modules new file mode 120000 index 0000000000..36719b9de7 --- /dev/null +++ b/titles/orchestrator/modules @@ -0,0 +1 @@ +../../modules/ \ No newline at end of file From 07e45f21cf3c42378751b11c7d3b354e0f69e01b Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 18 Aug 2025 13:13:41 +0200 Subject: [PATCH 02/25] Orchestrator flavor in RHDH Operator --- .../orchestrator/con-orchestrator-plugin-components.adoc | 2 +- modules/orchestrator/con-plugin-dependencies.adoc | 8 ++++---- .../proc-install-rhdh-in-air-gapped-environment.adoc | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/orchestrator/con-orchestrator-plugin-components.adoc b/modules/orchestrator/con-orchestrator-plugin-components.adoc index b363d47363..ae637582bf 100644 --- a/modules/orchestrator/con-orchestrator-plugin-components.adoc +++ b/modules/orchestrator/con-orchestrator-plugin-components.adoc @@ -1,7 +1,7 @@ [id='con-orchestrator-plugin-components.adoc_{context}'] = Orchestrator plugin components -The following Orchestrator plugin components are included by default in `dynamic-plugins.default.yaml`: +The following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: * `@redhat/backstage-plugin-orchestrator` * `@redhat/backstage-plugin-orchestrator-backend-dynamic` diff --git a/modules/orchestrator/con-plugin-dependencies.adoc b/modules/orchestrator/con-plugin-dependencies.adoc index 2a94924152..b1582329fd 100644 --- a/modules/orchestrator/con-plugin-dependencies.adoc +++ b/modules/orchestrator/con-plugin-dependencies.adoc @@ -3,10 +3,10 @@ To run the Orchestrator plugin instance, you need to install the following dependencies: -* A SonataflowPlatform custom resource created in the namespace of the Backstage CR. -* A set of NetworkPolicies to allow traffic between infra resources, such as knative and serverless logic Operator, created in the namespace of Backstage CR, traffic for monitoring, and intra-namespace traffic. +* A _SonataflowPlatform_ custom resource created in the namespace of the Backstage CR. +* A set of _NetworkPolicies_ to allow traffic between infra resources, such as knative and serverless logic Operator, created in the namespace of Backstage CR, traffic for monitoring, and intra-namespace traffic. -The orchestrator-backend plugin uses the service `sonataflow-platform-data-index-service`, which is created by the _SonataFlowPlatform_ CR. The service communicates with the SonataFlow platform. +The orchestrator-backend plugin uses the service `sonataflow-platform-data-index-service`, which is created by the _SonataFlowPlatform_ custom resource. The service communicates with the SonataFlow platform. [IMPORTANT] ==== @@ -35,4 +35,4 @@ The default implementation of the Orchestrator plugin dependencies uses the foll For more information about automatically creating 'plugin dependencies' resources when the Backstage CR is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. -To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its ServiceAccount. The Backstage Operator automatically creates the required Role and RoleBinding resource in the `profile/rhdh/plugin-rbac directory` directory when creating the SonataFlowPlatform CR in the Backstage CR namespace. +To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its `ServiceAccount`. The Backstage Operator automatically creates the required Role and _RoleBinding_ resource in the `profile/rhdh/plugin-rbac directory` directory when creating the _SonataFlowPlatform_ custom resource in the Backstage custom resource namespace. diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc index 47640f20d8..4c653a5ce2 100644 --- a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc +++ b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc @@ -64,7 +64,7 @@ helm pull --version helm push .tgz oci://internal-chart-repo.example.com/rhdh ---- -. Ensure NetworkPolicies, Role, and RoleBinding resources for the SonataFlow platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` CR is created. +. Ensure _NetworkPolicies_, Role, and _RoleBinding_ resources for the _SonataFlow_ platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the _SonataFlowPlatform_ CR is created. [NOTE] ==== From f20bc79dbfc2ef1e3a035ecf551539b89b15ca37 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 18 Aug 2025 19:06:01 +0200 Subject: [PATCH 03/25] Orchestrator flavor in RHDH Operator --- .../con-infrastructure-components.adoc | 11 ---- .../orchestrator/con-plugin-dependencies.adoc | 38 ----------- ...-dependencies-for-orchestrator-plugin.adoc | 48 ++++++++++++++ ...ll-components-for-orchestrator-plugin.adoc | 33 ++++++++-- .../proc-install-orchestrator-plugin.adoc | 64 +++++++++++-------- ...nstall-rhdh-in-air-gapped-environment.adoc | 45 ++----------- titles/orchestrator/master.adoc | 9 +-- 7 files changed, 121 insertions(+), 127 deletions(-) delete mode 100644 modules/orchestrator/con-infrastructure-components.adoc delete mode 100644 modules/orchestrator/con-plugin-dependencies.adoc create mode 100644 modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc diff --git a/modules/orchestrator/con-infrastructure-components.adoc b/modules/orchestrator/con-infrastructure-components.adoc deleted file mode 100644 index 7343dca733..0000000000 --- a/modules/orchestrator/con-infrastructure-components.adoc +++ /dev/null @@ -1,11 +0,0 @@ -[id='con-infrastructure-components.adoc_{context}'] -= Infrastructure components - -To install {product} with the Orchestrator plugin on {ocp-short}, you need the following components to support the plugin and its runtime infrastructure: - -* OpenShift Serverless Operator -* Knative Serving -* Knative Eventing -* OpenShift Serverless Logic Operator - -The {product} Operator provisions these automatically or you can install them manually using another Operator. diff --git a/modules/orchestrator/con-plugin-dependencies.adoc b/modules/orchestrator/con-plugin-dependencies.adoc deleted file mode 100644 index b1582329fd..0000000000 --- a/modules/orchestrator/con-plugin-dependencies.adoc +++ /dev/null @@ -1,38 +0,0 @@ -[id='con-plugin-dependencies.adoc_{context}'] -= Plugin dependencies - -To run the Orchestrator plugin instance, you need to install the following dependencies: - -* A _SonataflowPlatform_ custom resource created in the namespace of the Backstage CR. -* A set of _NetworkPolicies_ to allow traffic between infra resources, such as knative and serverless logic Operator, created in the namespace of Backstage CR, traffic for monitoring, and intra-namespace traffic. - -The orchestrator-backend plugin uses the service `sonataflow-platform-data-index-service`, which is created by the _SonataFlowPlatform_ custom resource. The service communicates with the SonataFlow platform. - -[IMPORTANT] -==== -The _sonataflowplatform_ CR contains dataIndex service that requires PostgreSQL database as shown in the following example: - -[source,bash] ----- - persistence: - postgresql: - secretRef: - name: backstage-psql-secret-{{backstage-name}} - userKey: POSTGRES_USER - passwordKey: POSTGRES_PASSWORD - serviceRef: - name: backstage-psql-{{backstage-name}} # Name of the Backstage Custom Resource (CR) - namespace: {{backstage-ns}} # Namespace where the Backstage CR is created - databaseName: backstage_plugin_orchestrator ----- -==== - -The default implementation of the Orchestrator plugin dependencies uses the following: - -* The PostgreSQL database named _backstage_plugin_orchestrator_ created by Backstage for Orchestrator plugin. -* The Secret created by Backstage Operator for the PostgreSQL with *POSTGRES_USER* and *POSTGRES_PASSWORD* keys as the database credentials in the Backstage CR namespace. -* The Service created by Backstage Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the Backstage CR namespace. - -For more information about automatically creating 'plugin dependencies' resources when the Backstage CR is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. - -To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its `ServiceAccount`. The Backstage Operator automatically creates the required Role and _RoleBinding_ resource in the `profile/rhdh/plugin-rbac directory` directory when creating the _SonataFlowPlatform_ custom resource in the Backstage custom resource namespace. diff --git a/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc b/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc new file mode 100644 index 0000000000..4d966cdf45 --- /dev/null +++ b/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc @@ -0,0 +1,48 @@ +[id='con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc_{context}'] += Understanding plugin dependencies for the Orchestrator plugin + +The Orchestrator plugin in {product-very-short} requires infrastructure components such as SonataFlow and supporting network policies to run. When you enable the plugin in your Backstage custom resource, the Operator automatically provisions these dependencies for you: + +* A `SonataflowPlatform` custom resource created in the namespace of the Backstage custom resource (CR). +* A set of _NetworkPolicies_ that allow traffic between infrastructure resources, such as Knative and Serverless Logic Operator, traffic for monitoring, and intra-namespace traffic. + +The `orchestrator-backend` plugin uses the service `sonataflow-platform-data-index-service`, which is created by the `SonataFlowPlatform` custom resource. This service communicates with the SonataFlow platform. + +When you enable the Orchestrator plugin in your Backstage custom resource: + +* The Operator resolves the dependency reference `sonataflow` against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`). +* The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the Backstage CR namespace. + +[IMPORTANT] +==== +The `SonataFlowPlatform` custom resource contains dataIndex service that requires PostgreSQL database as shown in the following example: + +[source,yaml] +---- + persistence: + postgresql: + secretRef: + name: backstage-psql-secret-{{backstage-name}} + userKey: POSTGRES_USER + passwordKey: POSTGRES_PASSWORD + serviceRef: + name: backstage-psql-{{backstage-name}} # Name of the Backstage Custom Resource (CR) + namespace: {{backstage-ns}} # Namespace where the Backstage custom resource is created + databaseName: backstage_plugin_orchestrator +---- +==== + +The default implementation of the Orchestrator plugin dependencies uses the following: + +* The PostgreSQL database named _backstage_plugin_orchestrator_ created by Backstage for Orchestrator plugin. +* The Secret created by Backstage Operator for the PostgreSQL with *POSTGRES_USER* and *POSTGRES_PASSWORD* keys as the database credentials in the Backstage custom resource namespace. +* The Service created by Backstage Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the Backstage custom resource namespace. + +For more information about automatically creating plugin dependencies resources when the Backstage custom resource is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. + +[NOTE] +==== +To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its `ServiceAccount`. + +The Backstage Operator automatically creates the required Role and _RoleBinding_ resource in the `profile/rhdh/plugin-rbac` directory when creating the `SonataFlowPlatform` custom resource in the Backstage custom resource namespace. +==== diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 54ced0f487..c307e9d6c1 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -3,11 +3,30 @@ [id="proc-install-components-for-orchestrator-plugin.adoc_{context}"] = Installing the components for the Orchestrator plugin on {ocp-short} -You can install the required components for the Orchestrator plugin on {ocp-short} using the following methods: +.Prerequisites + +* Install {product} with the Orchestrator plugin on {ocp-short} using the following components to support the plugin and its runtime infrastructure: + +** OpenShift Serverless Operator +** Knative Serving +** Knative Eventing +** OpenShift Serverless Logic Operator ++ +The {product} Operator provisions these automatically or you can install them manually using another Operator. + +.Procedure + +To install infrastructural components (Operators) that provide the dependencies required by the Orchestrator plugin on {ocp-short}, use the following methods: + +* Manual installation +* {product-very-short} helper script +* {product-very-short} Orchestrator Infra Helm Chart ++ +These components enable the creation of the `SonataFlowPlatform` custom resource and several supporting `NetworkPolicy` resources. .Manual installation -The manual installation is suitable for production environments particularly when you have installed the versions of required components such as when OpenShift Serverless is already in use by other applications. +The manual installation is suitable for production environments. It is particularly recommended when you have installed the versions of required components, such as when OpenShift Serverless is in use by other applications. For more information on preparing the required infrastructure, see link:https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36[Red Hat OpenShift Serverless] and carry out the following steps to: @@ -23,26 +42,26 @@ For more information on preparing the required infrastructure, see link:https:// .{product-very-short} helper script -You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters. +You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters because the script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. For more information on controlling the installation of the Operators, see link:https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/[Install your Operator with OLM]. .Procedure . Download the `plugin-infra.sh` script as shown in the following example: + -[source,bash] +[source,yaml] ---- curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-1.7/config/profile/rhdh/plugin-infra/plugin-infra.sh # Specify the {product} version in the URL or use main ---- . Run the script as shown in the following example: + -[source,bash] +[source,yaml] ---- -bash plugin-infra.sh +./plugin-infra.sh ---- .{product-very-short} Orchestrator Infra Helm Chart -{product-very-short} Orchestrator Infra Helm Chart has the same usage and cautions as the {product-very-short} helper script. +You can use {product-very-short} Orchestrator Infra Helm Chart in empty clusters. Use with caution in production clusters because {product-very-short} Orchestrator Infra Helm Chart installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. .Procedure . Install the required components using the Orchestrator infrastructure helm chart. \ No newline at end of file diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index 5663a64299..fb140f37cf 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -3,35 +3,11 @@ [id="proc-install-orchestrator-plugin.adoc_{context}"] = Installing the Orchestrator plugin -The Orchestrator plugin has the following dynamic plugins: - -* Orchestrator-backend -* Orchestrator-frontend -* Orchestrator-scaffolder-backend-module -* Orchestrator-form-widgets - -These plugins are included in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container and are disabled by default. You can enable the Orchestrator plugin by referring the `dynamic-plugins-rhdh` ConfigMap file with the following data: - -[source,bash] ----- - includes: - - dynamic-plugins.default.yaml - plugins: - - package: "@redhat/backstage-plugin-orchestrator@1.6.0" - disabled: false - - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" - disabled: false - dependencies: - - ref: sonataflow - - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" - disabled: false - - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" - disabled: false ----- +You can enable the Orchestrator plugin in {product-very-short} by configuring dynamic plugins in your Backstage custom resource (CR). The following is an example of the complete configuration of the Orchestrator plugin: -[source,bash] +[source,yaml] ---- apiVersion: v1 kind: ConfigMap @@ -77,3 +53,39 @@ spec: - name: app-config-rhdh dynamicPluginsConfigMapName: orchestrator-plugin ---- + +.Prerequisites +* You have installed {product-very-short} on {ocp-short}. +* You have access to edit or create ConfigMaps in the namespace where the Backstage CR is deployed. + +.Procedure +. Identify the Orchestrator plugin dynamic plugins that are included by default in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container: ++ +* `@redhat/backstage-plugin-orchestrator` (frontend) +* `@redhat/backstage-plugin-orchestrator-backend-dynamic` (backend) +* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` +* `@redhat/backstage-plugin-orchestrator-form-widgets` + +. To enable the Orchestrator plugin, update the `dynamic-plugins-rhdh` ConfigMap file with the following data: ++ +[source,yaml] ++ +---- + includes: + - dynamic-plugins.default.yaml + plugins: + - package: "@redhat/backstage-plugin-orchestrator@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" + disabled: false + dependencies: + - ref: sonataflow + - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" + disabled: false +---- + +.Verification +* In the {product-very-short} console, confirm that the Orchestrator frontend and backend features are available. + diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc index 4c653a5ce2..6e567763d2 100644 --- a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc +++ b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc @@ -13,38 +13,11 @@ You can install {product} with the Orchestrator in an air-gapped environment by .Procedure -. From a connected network, log in to the external registries: -+ -[source,bash] ----- -podman login registry.redhat.io -podman login registry.access.redhat.com -podman login npm.registry.redhat.com ----- +. From a connected network, log in to the external registries. -. Identify and mirror all required container images to your internal registry: -+ -[source,bash] ----- -oc image mirror \ - registry.redhat.io/openshift-serverless/*=internal-registry.example.com/openshift-serverless/* \ - registry.redhat.io/openshift-knative/*=internal-registry.example.com/openshift-knative/* \ - registry.redhat.io/sonataflow/*=internal-registry.example.com/sonataflow/* \ - registry.redhat.io/rhdh/*=internal-registry.example.com/rhdh/* \ - registry.redhat.io/postgresql/*=internal-registry.example.com/postgresql/* ----- +. Identify and mirror all required container images to your internal registry. . Mirror the Orchestrator plugin NPM packages to your internal NPM registry: -+ -[source,bash] ----- -npm pack @redhat/backstage-plugin-orchestrator@ -npm pack @redhat/backstage-plugin-orchestrator-backend-dynamic@ -npm pack @redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@ -npm pack @redhat/backstage-plugin-orchestrator-form-widgets@ - -npm publish .tgz --registry https://internal-npm.example.com ----- . Update the `dynamic-plugins` configuration to reference the internal NPM registry: + @@ -53,18 +26,12 @@ npm publish .tgz --registry https://internal-npm.example.com plugins: - package: "@redhat/backstage-plugin-orchestrator@" disabled: false - registry: https://internal-npm.example.com + registry: {INTERNAL_REGISTRY_EXAMPLE} # Specify the URL for the internal NPM registry. ---- -. If using Helm charts, download them from a connected environment and push them to your internal chart repository: -+ -[source,bash] ----- -helm pull --version -helm push .tgz oci://internal-chart-repo.example.com/rhdh ----- +. (Optional) If you use Helm charts, download them from a connected environment and push them to your internal chart repository. -. Ensure _NetworkPolicies_, Role, and _RoleBinding_ resources for the _SonataFlow_ platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the _SonataFlowPlatform_ CR is created. +. Make sure _NetworkPolicies_, Role, and _RoleBinding_ resources for the _SonataFlow_ platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` custom resource is created. [NOTE] ==== @@ -72,4 +39,4 @@ For the connected environment resource requirements, see link:{installing-orch-o ==== .Verification -* Ensure all pods for OpenShift Serverless, Knative Serving/Eventing, SonataFlow, and PostgreSQL start successfully. \ No newline at end of file +* Make sure all pods for OpenShift Serverless, Knative Serving/Eventing, SonataFlow, and PostgreSQL start successfully. \ No newline at end of file diff --git a/titles/orchestrator/master.adoc b/titles/orchestrator/master.adoc index f09e6f2adb..f5cede1224 100644 --- a/titles/orchestrator/master.adoc +++ b/titles/orchestrator/master.adoc @@ -3,18 +3,15 @@ include::artifacts/attributes.adoc[] :imagesdir: images :title: Installing {product} with the Orchestrator plugin on {ocp-short} :subtitle: Installing {product} with the Orchestrator plugin on {ocp-short} using the {product} Operator -:abstract: As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin enabled, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. +:abstract: As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. = {title} -// infrastructure components -include::modules/orchestrator/con-infrastructure-components.adoc[leveloffset=+1] - // orchestrator plugin components include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] -// plugin dependencies -include::modules/orchestrator/con-plugin-dependencies.adoc[leveloffset=+1] +// provisioning plugin dependencies +include::modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc[leveloffset=+1] // installing the components for the orchestrator plugin include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] From 606922e63937f9a8cca2b644c75ee554a61c8a5c Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 18 Aug 2025 19:24:18 +0200 Subject: [PATCH 04/25] Orchestrator flavor in RHDH Operator --- ...derstanding-plugin-dependencies-for-orchestrator-plugin.adoc | 2 +- .../proc-install-rhdh-in-air-gapped-environment.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc b/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc index 4d966cdf45..4334b38033 100644 --- a/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc @@ -10,7 +10,7 @@ The `orchestrator-backend` plugin uses the service `sonataflow-platform-data-ind When you enable the Orchestrator plugin in your Backstage custom resource: -* The Operator resolves the dependency reference `sonataflow` against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`). +* The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`). * The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the Backstage CR namespace. [IMPORTANT] diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc index 6e567763d2..ef5044f676 100644 --- a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc +++ b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc @@ -31,7 +31,7 @@ plugins: . (Optional) If you use Helm charts, download them from a connected environment and push them to your internal chart repository. -. Make sure _NetworkPolicies_, Role, and _RoleBinding_ resources for the _SonataFlow_ platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` custom resource is created. +. Make sure _NetworkPolicies_, Role, and _RoleBinding_ resources for the SonataFlow platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` custom resource is created. [NOTE] ==== From 138ed444766ec7de08aeeea1520e036902808683 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 18 Aug 2025 19:41:49 +0200 Subject: [PATCH 05/25] Orchestrator flavor in RHDH Operator --- .../proc-install-rhdh-in-air-gapped-environment.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc index ef5044f676..77ae6ffdfb 100644 --- a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc +++ b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc @@ -17,7 +17,7 @@ You can install {product} with the Orchestrator in an air-gapped environment by . Identify and mirror all required container images to your internal registry. -. Mirror the Orchestrator plugin NPM packages to your internal NPM registry: +. Mirror the Orchestrator plugin NPM packages to your internal NPM registry. . Update the `dynamic-plugins` configuration to reference the internal NPM registry: + From 2a453c00f98f12781ad2d724644e42d33e4d4e35 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 19 Aug 2025 02:42:02 +0200 Subject: [PATCH 06/25] Orchestrator flavor in RHDH Operator --- ...ly-install-rhdh-orchestrator-operator.adoc | 28 +++++++++++++++++++ titles/orchestrator/master.adoc | 25 ++++++----------- 2 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 assemblies/assembly-install-rhdh-orchestrator-operator.adoc diff --git a/assemblies/assembly-install-rhdh-orchestrator-operator.adoc b/assemblies/assembly-install-rhdh-orchestrator-operator.adoc new file mode 100644 index 0000000000..bb5a6992d7 --- /dev/null +++ b/assemblies/assembly-install-rhdh-orchestrator-operator.adoc @@ -0,0 +1,28 @@ +:_mod-docs-content-type: ASSEMBLY + +ifndef::context[] +[id="install-rhdh-ocp-operator"] +endif::[] +ifdef::context[] +[id="assembly-install-rhdh-ocp-operator"] +endif::[] += Installing {product} with the Orchestrator plugin on {ocp-short} + +:context: assembly-install-rhdh-ocp-operator + +As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. + +// orchestrator plugin components +include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] + +// provisioning plugin dependencies +include::modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc[leveloffset=+1] + +// installing the components for the orchestrator plugin +include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] + +// installing the orchestrator plugin +include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] + +// installing in an air-gapped environment +include::modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc[leveloffset=+1] \ No newline at end of file diff --git a/titles/orchestrator/master.adoc b/titles/orchestrator/master.adoc index f5cede1224..e72c5323f6 100644 --- a/titles/orchestrator/master.adoc +++ b/titles/orchestrator/master.adoc @@ -1,23 +1,16 @@ include::artifacts/attributes.adoc[] -:context: title-orchestrator +:context: orchestrator-install :imagesdir: images -:title: Installing {product} with the Orchestrator plugin on {ocp-short} -:subtitle: Installing {product} with the Orchestrator plugin on {ocp-short} using the {product} Operator -:abstract: As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. +:title: Installing {product} with the Orchestrator plugin +:subtitle: Install, configure, and manage {product} with the Orchestrator plugin using Helm or the {product} Operator +:abstract: As a cluster administrator, you can install {product} ({product-very-short}) with the Orchestrator plugin enabled. = {title} -// orchestrator plugin components -include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] +You can install {product} ({product-very-short}) using one of the following methods: -// provisioning plugin dependencies -include::modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc[leveloffset=+1] +* The {product} Operator +* The {product} Helm chart -// installing the components for the orchestrator plugin -include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] - -// installing the orchestrator plugin -include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] - -// installing in an air-gapped environment -include::modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc[leveloffset=+1] +// Operator chart method +include::assemblies/assembly-install-rhdh-orchestrator-operator.adoc[leveloffset=+1] \ No newline at end of file From 55a2d7dcf9c553e8a479eb8918fcf73a57c6f2d7 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 19 Aug 2025 22:41:49 +0200 Subject: [PATCH 07/25] Orchestrator flavor in RHDH Operator --- ...ly-install-rhdh-orchestrator-operator.adoc | 7 +- ...ding-orchestrator-plugin-dependencies.adoc | 47 ++++++++++++++ ...-dependencies-for-orchestrator-plugin.adoc | 48 -------------- ...ll-components-for-orchestrator-plugin.adoc | 33 ++++++---- .../proc-install-orchestrator-plugin.adoc | 64 +++++++++---------- ...nstall-rhdh-in-air-gapped-environment.adoc | 42 ------------ 6 files changed, 100 insertions(+), 141 deletions(-) create mode 100644 modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc delete mode 100644 modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc delete mode 100644 modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc diff --git a/assemblies/assembly-install-rhdh-orchestrator-operator.adoc b/assemblies/assembly-install-rhdh-orchestrator-operator.adoc index bb5a6992d7..60b5147962 100644 --- a/assemblies/assembly-install-rhdh-orchestrator-operator.adoc +++ b/assemblies/assembly-install-rhdh-orchestrator-operator.adoc @@ -16,13 +16,10 @@ As a cluster administrator, you can install {product} ({product-very-short}) on include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] // provisioning plugin dependencies -include::modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc[leveloffset=+1] +include::modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc[leveloffset=+1] // installing the components for the orchestrator plugin include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] // installing the orchestrator plugin -include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] - -// installing in an air-gapped environment -include::modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc[leveloffset=+1] \ No newline at end of file +include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc new file mode 100644 index 0000000000..75b50e07ad --- /dev/null +++ b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc @@ -0,0 +1,47 @@ +[id='con-understanding-orchestrator-plugin-dependencies.adoc_{context}'] += Understanding Orchestrator plugin dependencies + +The Orchestrator plugin in {product-very-short} requires components such as SonataFlow and supporting network policies to run. When you enable the plugin in your {product-custom-resource-type} custom resource (CR), the Operator automatically provisions these dependencies for you: + +* A `SonataflowPlatform` CR +* `NetworkPolicies` that allow traffic between infrastructure resources (Knative, Serverless Logic Operator), monitoring traffic, and intra-namespace traffic + +The `orchestrator-backend` plugin uses the `sonataflow-platform-data-index-service`, which the `SonataFlowPlatform` CR creates to communicate with the SonataFlow platform. + +The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`) and applies it to create the required resources. + +The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the {product-custom-resource-type} (CR) namespace. + +[IMPORTANT] +==== +The `SonataFlowPlatform` CR contains dataIndex service that requires PostgreSQL database as shown in the following example: ++ +[source,yaml,subs="+quotes,+attributes"] +---- + persistence: + postgresql: + secretRef: + name: backstage-psql-secret-{{backstage-name}} + userKey: POSTGRES_USER + passwordKey: POSTGRES_PASSWORD + serviceRef: + name: backstage-psql-{{backstage-name}} # Name of the {product-custom-resource-type} (CR) + namespace: {{backstage-ns}} # Namespace where the {product-custom-resource-type} (CR) is created + databaseName: backstage_plugin_orchestrator +---- +==== + +By default, the Orchestrator plugin dependencies use the following: + +* The PostgreSQL database named `backstage_plugin_orchestrator` created by {product-custom-resource-type} +* A Secret created by {product-custom-resource-type} Operator for the PostgreSQL with `POSTGRES_USER` and `POSTGRES_PASSWORD` keys as the database credentials in the {product-custom-resource-type} (CR) namespace. +* A Service created by {product-custom-resource-type} Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the {product-custom-resource-type} (CR) namespace. + +For more information about automatic plugin dependency creation when the {product-custom-resource-type} (CR) is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. + +[NOTE] +==== +To enable the {product-custom-resource-type} Operator to work with the SonataFlow platform, its `ServiceAccount` must have the appropriate permissions. + +The Operator automatically creates the required Role and _RoleBinding_ resource in `profile/rhdh/plugin-rbac` directory. +==== diff --git a/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc b/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc deleted file mode 100644 index 4334b38033..0000000000 --- a/modules/orchestrator/con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc +++ /dev/null @@ -1,48 +0,0 @@ -[id='con-understanding-plugin-dependencies-for-orchestrator-plugin.adoc_{context}'] -= Understanding plugin dependencies for the Orchestrator plugin - -The Orchestrator plugin in {product-very-short} requires infrastructure components such as SonataFlow and supporting network policies to run. When you enable the plugin in your Backstage custom resource, the Operator automatically provisions these dependencies for you: - -* A `SonataflowPlatform` custom resource created in the namespace of the Backstage custom resource (CR). -* A set of _NetworkPolicies_ that allow traffic between infrastructure resources, such as Knative and Serverless Logic Operator, traffic for monitoring, and intra-namespace traffic. - -The `orchestrator-backend` plugin uses the service `sonataflow-platform-data-index-service`, which is created by the `SonataFlowPlatform` custom resource. This service communicates with the SonataFlow platform. - -When you enable the Orchestrator plugin in your Backstage custom resource: - -* The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`). -* The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the Backstage CR namespace. - -[IMPORTANT] -==== -The `SonataFlowPlatform` custom resource contains dataIndex service that requires PostgreSQL database as shown in the following example: - -[source,yaml] ----- - persistence: - postgresql: - secretRef: - name: backstage-psql-secret-{{backstage-name}} - userKey: POSTGRES_USER - passwordKey: POSTGRES_PASSWORD - serviceRef: - name: backstage-psql-{{backstage-name}} # Name of the Backstage Custom Resource (CR) - namespace: {{backstage-ns}} # Namespace where the Backstage custom resource is created - databaseName: backstage_plugin_orchestrator ----- -==== - -The default implementation of the Orchestrator plugin dependencies uses the following: - -* The PostgreSQL database named _backstage_plugin_orchestrator_ created by Backstage for Orchestrator plugin. -* The Secret created by Backstage Operator for the PostgreSQL with *POSTGRES_USER* and *POSTGRES_PASSWORD* keys as the database credentials in the Backstage custom resource namespace. -* The Service created by Backstage Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the Backstage custom resource namespace. - -For more information about automatically creating plugin dependencies resources when the Backstage custom resource is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. - -[NOTE] -==== -To enable the Backstage Operator to work with the SonataFlow platform, you must grant the appropriate permissions to its `ServiceAccount`. - -The Backstage Operator automatically creates the required Role and _RoleBinding_ resource in the `profile/rhdh/plugin-rbac` directory when creating the `SonataFlowPlatform` custom resource in the Backstage custom resource namespace. -==== diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index c307e9d6c1..dca6860fbf 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -3,20 +3,25 @@ [id="proc-install-components-for-orchestrator-plugin.adoc_{context}"] = Installing the components for the Orchestrator plugin on {ocp-short} +To run the Orchestrator plugin successfully on {ocp-short}, you must install components that provide the runtime environment and the dependencies that the plugin requires. The Orchestrator plugin requires these components because they provide the serverless runtime, eventing, and workflow infrastructure that the plugin depends on to function. + .Prerequisites -* Install {product} with the Orchestrator plugin on {ocp-short} using the following components to support the plugin and its runtime infrastructure: +* You have installed {product} with the Orchestrator plugin on {ocp-short} using the following components to support the plugin and its runtime infrastructure: ** OpenShift Serverless Operator ** Knative Serving ** Knative Eventing ** OpenShift Serverless Logic Operator + -The {product} Operator provisions these automatically or you can install them manually using another Operator. +[NOTE] +==== +The {product} Operator provisions these components automatically. Alternatively, you can install them manually by using another Operator. +==== .Procedure -To install infrastructural components (Operators) that provide the dependencies required by the Orchestrator plugin on {ocp-short}, use the following methods: +To install components (Operators) that provide the dependencies required by the Orchestrator plugin on {ocp-short}, use the following methods: * Manual installation * {product-very-short} helper script @@ -26,19 +31,19 @@ These components enable the creation of the `SonataFlowPlatform` custom resource .Manual installation -The manual installation is suitable for production environments. It is particularly recommended when you have installed the versions of required components, such as when OpenShift Serverless is in use by other applications. +Use manual installation for production environments. Choose this method when you have installed the required components versions, such as when other applications are using OpenShift Serverless. -For more information on preparing the required infrastructure, see link:https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36[Red Hat OpenShift Serverless] and carry out the following steps to: +For more information on preparing the required infrastructure, see link:https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36[Red Hat OpenShift Serverless] to do the following: -* Prepare for OpenShift Serverless installation. +* Prepare for OpenShift Serverless installation -* Install the OpenShift Serverless Operator. +* Install the OpenShift Serverless Operator -* Install Knative Serving. +* Install Knative Serving -* Install Knative Eventing. +* Install Knative Eventing -* Install the OpenShift Serverless Logic Operator. +* Install the OpenShift Serverless Logic Operator .{product-very-short} helper script @@ -49,13 +54,13 @@ For more information on controlling the installation of the Operators, see link: .Procedure . Download the `plugin-infra.sh` script as shown in the following example: + -[source,yaml] +[source,yaml,subs="attributes+"] ---- -curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-1.7/config/profile/rhdh/plugin-infra/plugin-infra.sh # Specify the {product} version in the URL or use main +curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-${PRODUCT_VERSION}/config/profile/rhdh/plugin-infra/plugin-infra.sh # Specify the {product} version in the URL or use main ---- . Run the script as shown in the following example: + -[source,yaml] +[source,shell] ---- ./plugin-infra.sh ---- @@ -64,4 +69,4 @@ curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs You can use {product-very-short} Orchestrator Infra Helm Chart in empty clusters. Use with caution in production clusters because {product-very-short} Orchestrator Infra Helm Chart installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. .Procedure -. Install the required components using the Orchestrator infrastructure helm chart. \ No newline at end of file +. Install the required components using the Orchestrator infrastructure Helm chart. \ No newline at end of file diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index fb140f37cf..edf155f5f3 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -5,6 +5,38 @@ You can enable the Orchestrator plugin in {product-very-short} by configuring dynamic plugins in your Backstage custom resource (CR). +.Prerequisites +* You have installed {product-very-short} on {ocp-short}. +* You have access to edit or create ConfigMaps in the namespace where the Backstage CR is deployed. + +.Procedure +. Identify the Orchestrator plugin dynamic plugins that are included by default in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container: ++ +* `@redhat/backstage-plugin-orchestrator` (frontend) +* `@redhat/backstage-plugin-orchestrator-backend-dynamic` (backend) +* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` +* `@redhat/backstage-plugin-orchestrator-form-widgets` + +. To enable the Orchestrator plugin, update the `dynamic-plugins-rhdh` ConfigMap file with the following data: ++ +[source,yaml,subs="+attributes,+quotes"] ++ +---- + includes: + - dynamic-plugins.default.yaml + plugins: + - package: "@redhat/backstage-plugin-orchestrator@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" + disabled: false + dependencies: + - ref: sonataflow + - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" + disabled: false + - package: "@redhat/backstage-plugin-orchestrator-form-widgets@${ORCHESTRATOR_PLUGIN_VERSION}" + disabled: false +---- + The following is an example of the complete configuration of the Orchestrator plugin: [source,yaml] @@ -54,38 +86,6 @@ spec: dynamicPluginsConfigMapName: orchestrator-plugin ---- -.Prerequisites -* You have installed {product-very-short} on {ocp-short}. -* You have access to edit or create ConfigMaps in the namespace where the Backstage CR is deployed. - -.Procedure -. Identify the Orchestrator plugin dynamic plugins that are included by default in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container: -+ -* `@redhat/backstage-plugin-orchestrator` (frontend) -* `@redhat/backstage-plugin-orchestrator-backend-dynamic` (backend) -* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` -* `@redhat/backstage-plugin-orchestrator-form-widgets` - -. To enable the Orchestrator plugin, update the `dynamic-plugins-rhdh` ConfigMap file with the following data: -+ -[source,yaml] -+ ----- - includes: - - dynamic-plugins.default.yaml - plugins: - - package: "@redhat/backstage-plugin-orchestrator@1.6.0" - disabled: false - - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.6.0" - disabled: false - dependencies: - - ref: sonataflow - - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.6.0" - disabled: false - - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" - disabled: false ----- - .Verification * In the {product-very-short} console, confirm that the Orchestrator frontend and backend features are available. diff --git a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc b/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc deleted file mode 100644 index 77ae6ffdfb..0000000000 --- a/modules/orchestrator/proc-install-rhdh-in-air-gapped-environment.adoc +++ /dev/null @@ -1,42 +0,0 @@ -:_mod-docs-content-type: PROCEDURE - -[id="proc-install-in-air-gapped-environment.adoc_{context}"] -= Installing {product} with the Orchestrator in an air-gapped environment - -You can install {product} with the Orchestrator in an air-gapped environment by mirroring required container images, Helm charts, and NPM packages to internal registries. - -.Prerequisites - -* You have administrative access to the {ocp-short} cluster and mirroring tools such as `oc`, `podman`, or `skopeo`. -* You have access to `npm.registry.redhat.com` from a connected network to pull and mirror Orchestrator plugin tarballs. -* You have mirroring permissions and credentials for all required sources. - -.Procedure - -. From a connected network, log in to the external registries. - -. Identify and mirror all required container images to your internal registry. - -. Mirror the Orchestrator plugin NPM packages to your internal NPM registry. - -. Update the `dynamic-plugins` configuration to reference the internal NPM registry: -+ -[source,yaml] ----- -plugins: - - package: "@redhat/backstage-plugin-orchestrator@" - disabled: false - registry: {INTERNAL_REGISTRY_EXAMPLE} # Specify the URL for the internal NPM registry. ----- - -. (Optional) If you use Helm charts, download them from a connected environment and push them to your internal chart repository. - -. Make sure _NetworkPolicies_, Role, and _RoleBinding_ resources for the SonataFlow platform are included in your deployment configuration. The {product-short} Operator applies these automatically when the `SonataFlowPlatform` custom resource is created. - -[NOTE] -==== -For the connected environment resource requirements, see link:{installing-orch-on-ocp-book-url}[Resource requirements for the Operator-based Orchestrator]. -==== - -.Verification -* Make sure all pods for OpenShift Serverless, Knative Serving/Eventing, SonataFlow, and PostgreSQL start successfully. \ No newline at end of file From ad8e206af375a5ca18fd500e5c57dfade6bd971d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 14:19:34 +0200 Subject: [PATCH 08/25] Orchestrator flavor in RHDH Operator --- ...ly-install-rhdh-orchestrator-operator.adoc | 25 ------ .../assembly-install-rhdh-orchestrator.adoc | 26 ++++++ assemblies/assembly-orchestrator-rhdh.adoc | 33 +++++++ ...n-orchestrator-supported-architecture.adoc | 11 +++ ...ding-orchestrator-plugin-dependencies.adoc | 2 +- ...ll-components-for-orchestrator-plugin.adoc | 4 +- .../proc-install-orchestrator-plugin.adoc | 12 ++- ...stall-rhdh-with-orchestrator-helm-cli.adoc | 86 +++++++++++++++++++ ...all-rhdh-with-orchestrator-helm-webui.adoc | 37 ++++++++ .../ref-orchestrator-resource-limits.adoc | 51 +++++++++++ titles/orchestrator/master.adoc | 17 ++-- 11 files changed, 257 insertions(+), 47 deletions(-) delete mode 100644 assemblies/assembly-install-rhdh-orchestrator-operator.adoc create mode 100644 assemblies/assembly-install-rhdh-orchestrator.adoc create mode 100644 assemblies/assembly-orchestrator-rhdh.adoc create mode 100644 modules/orchestrator/con-orchestrator-supported-architecture.adoc create mode 100644 modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc create mode 100644 modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc create mode 100644 modules/orchestrator/ref-orchestrator-resource-limits.adoc diff --git a/assemblies/assembly-install-rhdh-orchestrator-operator.adoc b/assemblies/assembly-install-rhdh-orchestrator-operator.adoc deleted file mode 100644 index 60b5147962..0000000000 --- a/assemblies/assembly-install-rhdh-orchestrator-operator.adoc +++ /dev/null @@ -1,25 +0,0 @@ -:_mod-docs-content-type: ASSEMBLY - -ifndef::context[] -[id="install-rhdh-ocp-operator"] -endif::[] -ifdef::context[] -[id="assembly-install-rhdh-ocp-operator"] -endif::[] -= Installing {product} with the Orchestrator plugin on {ocp-short} - -:context: assembly-install-rhdh-ocp-operator - -As a cluster administrator, you can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator plugin, along with the required dynamic plugins and integrated workflow infrastructure such as SonataFlow, Knative, OpenShift Serverless Operator, and OpenShift Serverless Logic Operator. - -// orchestrator plugin components -include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] - -// provisioning plugin dependencies -include::modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc[leveloffset=+1] - -// installing the components for the orchestrator plugin -include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] - -// installing the orchestrator plugin -include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] \ No newline at end of file diff --git a/assemblies/assembly-install-rhdh-orchestrator.adoc b/assemblies/assembly-install-rhdh-orchestrator.adoc new file mode 100644 index 0000000000..c89a820a70 --- /dev/null +++ b/assemblies/assembly-install-rhdh-orchestrator.adoc @@ -0,0 +1,26 @@ +:_mod-docs-content-type: ASSEMBLY + +ifndef::context[] +[id="install-rhdh-orchestrator.adoc"] +endif::[] +ifdef::context[] +[id="assembly-install-rhdh-orchestrator"] +endif::[] += Installing {product} with Orchestrator + +:context: assembly-install-rhdh-orchestrator + +To install {product}, use one of the following methods: +* The {product} Operator +* The {product} Helm chart + +// {product} Operator +include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] + +// {product} Helm chart +include::modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc[leveloffset=+1] + +include::modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc[leveloffset=+1] + +include::modules/orchestrator/ref-orchestrator-resource-limits.adoc[leveloffset=+1] + diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc new file mode 100644 index 0000000000..5a84dbc94d --- /dev/null +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -0,0 +1,33 @@ +:_mod-docs-content-type: ASSEMBLY + +ifndef::context[] +[id="assembly-orchestrator-rhdh.adoc"] +endif::[] +ifdef::context[] +[id="assembly-orchestrator-rhdh"] +endif::[] += About Orchestrator + +You can streamline and automate your work by using the Orchestrator in {product}. It enables you to: + +* Design, execute, and monitor workflows to simplify multi-step processes across applications and services. +* Standardize onboarding, migration, and integration workflows to reduce manual effort and improve consistency. +* Extend {product-very-short} with enterprise-grade Orchestration features to support collaboration and scalability. + +To start using Orchestrator in {product-very-short}, you must: + +* Install the required infrastructure components, such as Red Hat OpenShift Serverless Operator, Knative Serving, Knative Eventing, and OpenShift Serverless Logic Operator +* Configure your Backstage custom resource (CR) for Orchestrator +* Import the Orchestrator software templates into the {product} catalog + +// supported architecture +include::modules/orchestrator/con-orchestrator-supported-architecture.adoc[leveloffset=+1] + +// orchestrator plugin components +include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] + +// provisioning plugin dependencies +include::modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc[leveloffset=+1] + +// installing the components for the orchestrator plugin +include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/orchestrator/con-orchestrator-supported-architecture.adoc b/modules/orchestrator/con-orchestrator-supported-architecture.adoc new file mode 100644 index 0000000000..3333b7d522 --- /dev/null +++ b/modules/orchestrator/con-orchestrator-supported-architecture.adoc @@ -0,0 +1,11 @@ +[id='con-orchestrator-supported-architecture_{context}'] += Supported architecture + +You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. + +To help you get started quickly, the following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: + +* `@redhat/backstage-plugin-orchestrator` +* `@redhat/backstage-plugin-orchestrator-backend-dynamic` +* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` +* `@redhat/backstage-plugin-orchestrator-form-widgets` \ No newline at end of file diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc index 75b50e07ad..b888c2ec07 100644 --- a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc +++ b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc @@ -10,7 +10,7 @@ The `orchestrator-backend` plugin uses the `sonataflow-platform-data-index-servi The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`) and applies it to create the required resources. -The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the {product-custom-resource-type} (CR) namespace. +The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources when you configure the Orchestrator plugin with a dependency referencing `sonataflow.yaml`. [IMPORTANT] ==== diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index dca6860fbf..6b7d789be5 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -3,11 +3,11 @@ [id="proc-install-components-for-orchestrator-plugin.adoc_{context}"] = Installing the components for the Orchestrator plugin on {ocp-short} -To run the Orchestrator plugin successfully on {ocp-short}, you must install components that provide the runtime environment and the dependencies that the plugin requires. The Orchestrator plugin requires these components because they provide the serverless runtime, eventing, and workflow infrastructure that the plugin depends on to function. +To run the Orchestrator plugin successfully on {ocp-short}, you must install components that provide the runtime environment and the dependencies that the plugin requires. .Prerequisites -* You have installed {product} with the Orchestrator plugin on {ocp-short} using the following components to support the plugin and its runtime infrastructure: +* To install the Orchestrator plugin on {ocp-short}, you require the following components: ** OpenShift Serverless Operator ** Knative Serving diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index edf155f5f3..bb89b89949 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -1,13 +1,13 @@ :_mod-docs-content-type: PROCEDURE [id="proc-install-orchestrator-plugin.adoc_{context}"] -= Installing the Orchestrator plugin += Installing the Orchestrator plugin using Operator -You can enable the Orchestrator plugin in {product-very-short} by configuring dynamic plugins in your Backstage custom resource (CR). +You can enable the Orchestrator plugin in {product-very-short} by configuring dynamic plugins in your {product-custom-resource-type} custom resource (CR). .Prerequisites * You have installed {product-very-short} on {ocp-short}. -* You have access to edit or create ConfigMaps in the namespace where the Backstage CR is deployed. +* You have access to edit or create ConfigMaps in the namespace where the {product-custom-resource-type} CR is deployed. .Procedure . Identify the Orchestrator plugin dynamic plugins that are included by default in the default `dynamic-plugins.yaml` file of the `install-dynamic-plugins` container: @@ -17,7 +17,7 @@ You can enable the Orchestrator plugin in {product-very-short} by configuring dy * `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` * `@redhat/backstage-plugin-orchestrator-form-widgets` -. To enable the Orchestrator plugin, update the `dynamic-plugins-rhdh` ConfigMap file with the following data: +. To enable the Orchestrator plugin, update the ConfigMap file with the following data: + [source,yaml,subs="+attributes,+quotes"] + @@ -60,7 +60,6 @@ data: disabled: false - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" disabled: false - apiVersion: v1 kind: ConfigMap metadata: @@ -73,7 +72,7 @@ data: guest: # using the guest user to query the '/api/dynamic-plugins-info/loaded-plugins' endpoint. dangerouslyAllowOutsideDevelopment: true - +--- apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: @@ -88,4 +87,3 @@ spec: .Verification * In the {product-very-short} console, confirm that the Orchestrator frontend and backend features are available. - diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc new file mode 100644 index 0000000000..9abb06d6d6 --- /dev/null +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc @@ -0,0 +1,86 @@ +:_mod-docs-content-type: PROCEDURE +[id="proc-install-rhdh-with-orchestrator-helm-cli_{context}"] += Installing {product} ({product-very-short}) on {ocp-short} with the Orchestrator using the Helm CLI + +You can install {product} ({product-very-short}) on {ocp-short} with the Orchestrator by using the Helm CLI. The installation automatically enables the required dynamic plugins and integrates workflow infrastructure. + +.Prerequisites + +* You are logged in as an administrator and have access to the {product} Helm chart repository. +* You can install the necessary infrastructures resources, such as sonataflow, alongside {product-very-short} in the same namespace. ++ +This is a one-off requirement and must be completed before enabling the Orchestrator plugin. + +.Procedure + +. As an administrator, install relevant cluster-wide resources. ++ +[source,yaml] +---- +helm repo add openshift-helm-charts https://charts.openshift.io/ +helm install openshift-helm-charts/redhat-developer-hub-orchestrator-infra +---- ++ +[IMPORTANT] +==== +You must be a cluster administrator to install the `redhat-developer-hub-orchestrator-infra` Helm chart because it deploys additional cluster-scoped OpenShift Serverless and OpenShift Serverless Logic Operators. As an administrator, you need to manually approve the install plans for OpenShift Serverless and Serverless Logic Operators. +==== + +. Install the Backstage chart with the orchestrator enabled as shown in the following example: ++ +[source,terminal,subs="attributes+"] +---- +helm install openshift-helm-charts/redhat-developer-hub --version {product-chart-version} \ + --set orchestrator.enabled=true +---- + +. (Optional) Enable *Notifications* and *Signals* plugins by adding them to the `global.dynamic.plugins` list in your `values.yaml` file as shown in the following example: ++ +[source,yaml] +---- +global: + dynamic: + plugins: + - disabled: false + package: "./dynamic-plugins/dist/backstage-plugin-notifications" + - disabled: false + package: "./dynamic-plugins/dist/backstage-plugin-signals" + - disabled: false + package: "./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic" + - disabled: false + package: "./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic" +---- + +. (Optional) You can disable the Serverless Logic and Serverless Operators individually or together by setting their values to `false`, as shown in the following example: ++ +[source,terminal,subs="attributes+"] +---- +helm install openshift-helm-charts/redhat-developer-hub \ + --version {product-chart-version} \ + --set orchestrator.enabled=true \ + --set orchestrator.serverlessOperator=false \ + --set orchestrator.serverlessLogicOperator=false +---- + +. (Optional) If you are using an external database, add the following configuration under `orchestrator.sonataflowPlatform` in your `values.yaml` file: ++ +[source,yaml] +---- +orchestrator: + sonataflowPlatform: + externalDBsecretRef: "" + externalDBName: "" # The name of the user-configured existing database (Not the database that the orchestrator and sonataflow resources use). + externalDBHost: "" + externalDBPort: "" +---- ++ +[NOTE] +==== +This step only configures the Orchestrators use of an external database. To configure {product} to use an external PostgreSQL instance, follow the steps in link:{configuring-book-url}#proc-configuring-postgresql-instance-using-helm_configuring-external-postgresql-databases[Configuring a PostgreSQL instance using Helm]. +==== + +.Verification + +. Verify that the Orchestrator plugin is visible in the {product} UI. + +. Create and run sample workflows to confirm the orchestration is functioning correctly. \ No newline at end of file diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc new file mode 100644 index 0000000000..a0c5a953fb --- /dev/null +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc @@ -0,0 +1,37 @@ +[id="proc-install-rhdh-with-orchestrator-helm-webui.adoc_{context}"] += Install {product} ({product-very-short}) using {ocp-short} web console + +You can install {product} ({product-very-short}) with the Orchestrator by using the ({ocp-short}) web console. This method is useful if you prefer a graphical interface or want to deploy cluster-wide resources without using the Helm CLI. + +.Prerequisites + +* You are logged in to the {ocp-short} web console as a cluster administrator. +* You have access to the {product} Helm chart repository. +* Your cluster has internet access or the Helm charts are mirrored in a disconnected environment. + +.Procedure + +. In the {ocp-short} web console, go to menu:Helm[Helm Charts]. + +. Click btn:[Repository] and confirm that the {product} Helm chart repository is available. + +. Search for the Orchestrator infrastructure for {product} and click btn:[Install]. ++ +[IMPORTANT] +==== +You must be a cluster administrator to install the Orchestrator Infrastructure for {product} Helm chart because it deploys cluster-scoped resources. As an administrator, you need to manually approve the install plans for OpenShift Serverless and Serverless Logic Operators. +==== ++ +As a regular user, search for the {product} chart and install it by setting the value of `orchestrator.enabled` to `true`. Otherwise, the Orchestrator will not be deployed. + +. Wait until they are successfully deployed. + +. Monitor the deployment status by navigating to menu:Workloads[Pods] or menu:Helm[Releases]. + +.Verification + +After deployment completes: + +* The orchestrator-related pods are running in the selected namespace. +* Cluster-wide resources are present. +* You can start connecting the orchestrator to your {product} UI. \ No newline at end of file diff --git a/modules/orchestrator/ref-orchestrator-resource-limits.adoc b/modules/orchestrator/ref-orchestrator-resource-limits.adoc new file mode 100644 index 0000000000..154f0eb396 --- /dev/null +++ b/modules/orchestrator/ref-orchestrator-resource-limits.adoc @@ -0,0 +1,51 @@ +:_mod-docs-content-type: REFERENCE +[id="ref-orchestrator-resource-limits.adoc_{context}"] += Resource limits for installing {product} with the Orchestrator plugin + +When installing {product} ({product-very-short}) with the Orchestrator plugin using Helm, the chart defines default CPU and memory limits for the `SonataFlowPlatform` component. + +These limits are enforced by the cluster so that pods do not exceed their allocated resources. + +. Default resource limits + +[%header,cols=2*] +|=== +|*Resource* |*Default value* +|CPU limits |`500m` +|Memory limits|`1Gi` +|=== + +.You can override these values in any of the following ways: + +* With `values.yaml` +* With `--set` flags + +. Override defaults with `values.yaml` as shown in the following example: ++ +[source,yaml] +---- +orchestrator: + enabled: true + sonataflowPlatform: + resources: + limits: + cpu: "500m" + memory: "1Gi" +---- + +. Override with `--set` as shown in the following example: ++ +[source,yaml] +---- +helm upgrade --install openshift-helm-charts/redhat-developer-hub \ + --set orchestrator.enabled=true \ + --set orchestrator.sonataflowPlatform.resources.requests.cpu=500m \ + --set orchestrator.sonataflowPlatform.resources.requests.memory=128Mi \ + --set orchestrator.sonataflowPlatform.resources.limits.cpu=1 \ + --set orchestrator.sonataflowPlatform.resources.limits.memory=2Gi +---- ++ +[NOTE] +==== +These settings are applicable only when `orchestrator.enabled` is `true`. By default, it is set to `false`. +==== \ No newline at end of file diff --git a/titles/orchestrator/master.adoc b/titles/orchestrator/master.adoc index e72c5323f6..5a59aa0f54 100644 --- a/titles/orchestrator/master.adoc +++ b/titles/orchestrator/master.adoc @@ -1,16 +1,9 @@ include::artifacts/attributes.adoc[] -:context: orchestrator-install :imagesdir: images -:title: Installing {product} with the Orchestrator plugin -:subtitle: Install, configure, and manage {product} with the Orchestrator plugin using Helm or the {product} Operator -:abstract: As a cluster administrator, you can install {product} ({product-very-short}) with the Orchestrator plugin enabled. +:title: Orchestrator in {product} +:subtitle: Orchestrator enables serverless workflows for cloud migration, onboarding, and customization in {product} +:abstract: As an administrator, you can use Orchestrator to enable serverless workflows in {product} to support cloud migration, developer onboarding, and custom workflows. -= {title} +include::assemblies/assembly-orchestrator-rhdh.adoc[leveloffset=+1] -You can install {product} ({product-very-short}) using one of the following methods: - -* The {product} Operator -* The {product} Helm chart - -// Operator chart method -include::assemblies/assembly-install-rhdh-orchestrator-operator.adoc[leveloffset=+1] \ No newline at end of file +include::assemblies/assembly-install-rhdh-orchestrator.adoc[leveloffset=+1] \ No newline at end of file From 603f654691ee0a2f4df8ef06474cc98569ffc6b0 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 14:28:44 +0200 Subject: [PATCH 09/25] Orchestrator flavor in RHDH Operator --- assemblies/assembly-orchestrator-rhdh.adoc | 2 +- ...ported-architecture.adoc => con-supported-architecture.adoc} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename modules/orchestrator/{con-orchestrator-supported-architecture.adoc => con-supported-architecture.adoc} (92%) diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index 5a84dbc94d..3a18d1f5c9 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -21,7 +21,7 @@ To start using Orchestrator in {product-very-short}, you must: * Import the Orchestrator software templates into the {product} catalog // supported architecture -include::modules/orchestrator/con-orchestrator-supported-architecture.adoc[leveloffset=+1] +include::modules/orchestrator/con-supported-architecture.adoc[leveloffset=+1] // orchestrator plugin components include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] diff --git a/modules/orchestrator/con-orchestrator-supported-architecture.adoc b/modules/orchestrator/con-supported-architecture.adoc similarity index 92% rename from modules/orchestrator/con-orchestrator-supported-architecture.adoc rename to modules/orchestrator/con-supported-architecture.adoc index 3333b7d522..3fc2666e13 100644 --- a/modules/orchestrator/con-orchestrator-supported-architecture.adoc +++ b/modules/orchestrator/con-supported-architecture.adoc @@ -1,4 +1,4 @@ -[id='con-orchestrator-supported-architecture_{context}'] +[id="con-supported-architecture_{context}"] = Supported architecture You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. From 2eafe22739a86c9f93288173fecf8ad28e6d3c9d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 14:41:09 +0200 Subject: [PATCH 10/25] Orchestrator flavor in RHDH Operator --- ...nding-orchestrator-plugin-dependencies.adoc | 12 ++++++------ ...all-components-for-orchestrator-plugin.adoc | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc index b888c2ec07..a2fcd91d4b 100644 --- a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc +++ b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc @@ -10,11 +10,11 @@ The `orchestrator-backend` plugin uses the `sonataflow-platform-data-index-servi The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`) and applies it to create the required resources. -The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources when you configure the Orchestrator plugin with a dependency referencing `sonataflow.yaml`. +The Operator automatically applies the `sonataflow.yaml` manifest, creating the `SonataFlowPlatform` CR and required `NetworkPolicy` resources in the {product-custom-resource-type} CR namespace. [IMPORTANT] ==== -The `SonataFlowPlatform` CR contains dataIndex service that requires PostgreSQL database as shown in the following example: +The `SonataFlowPlatform` CR contains Data Index service that requires PostgreSQL database as shown in the following example: + [source,yaml,subs="+quotes,+attributes"] ---- @@ -25,7 +25,7 @@ The `SonataFlowPlatform` CR contains dataIndex service that requires PostgreSQL userKey: POSTGRES_USER passwordKey: POSTGRES_PASSWORD serviceRef: - name: backstage-psql-{{backstage-name}} # Name of the {product-custom-resource-type} (CR) + name: backstage-psql-{{backstage-name}} # # Namespace where the {product-custom-resource-type} CR is created namespace: {{backstage-ns}} # Namespace where the {product-custom-resource-type} (CR) is created databaseName: backstage_plugin_orchestrator ---- @@ -34,10 +34,10 @@ The `SonataFlowPlatform` CR contains dataIndex service that requires PostgreSQL By default, the Orchestrator plugin dependencies use the following: * The PostgreSQL database named `backstage_plugin_orchestrator` created by {product-custom-resource-type} -* A Secret created by {product-custom-resource-type} Operator for the PostgreSQL with `POSTGRES_USER` and `POSTGRES_PASSWORD` keys as the database credentials in the {product-custom-resource-type} (CR) namespace. -* A Service created by {product-custom-resource-type} Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the {product-custom-resource-type} (CR) namespace. +* A Secret created by {product-custom-resource-type} Operator for the PostgreSQL with `POSTGRES_USER` and `POSTGRES_PASSWORD` keys as the database credentials in the {product-custom-resource-type} CR namespace. +* A Service created by {product-custom-resource-type} Operator for the PostgreSQL database with the name `backstage-psql-{{backstage-name}}` in the {product-custom-resource-type} CR namespace. -For more information about automatic plugin dependency creation when the {product-custom-resource-type} (CR) is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. +For more information about automatic plugin dependency creation when the {product-custom-resource-type} CR is applied to the cluster, see link:https://github.com/redhat-developer/rhdh-operator/blob/release-1.7/docs/dynamic-plugins.md#dynamic-plugins-dependency-management[Dynamic plugins dependency management]. [NOTE] ==== diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 6b7d789be5..62074116a1 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -47,14 +47,21 @@ For more information on preparing the required infrastructure, see link:https:// .{product-very-short} helper script +Suggested change You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters because the script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. +You can install the OpenShift Serverless infrastructure for the Orchestrator plugin in empty clusters by using the {product-very-short} helper script. + +[IMPORTANT] +==== +This method of installation is not suitable for production clusters. The {product-very-short} helper script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. +==== For more information on controlling the installation of the Operators, see link:https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/[Install your Operator with OLM]. .Procedure . Download the `plugin-infra.sh` script as shown in the following example: + -[source,yaml,subs="attributes+"] +[code,terminal] ---- curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs/heads/release-${PRODUCT_VERSION}/config/profile/rhdh/plugin-infra/plugin-infra.sh # Specify the {product} version in the URL or use main ---- @@ -62,11 +69,16 @@ curl -sSLO https://raw.githubusercontent.com/redhat-developer/rhdh-operator/refs + [source,shell] ---- -./plugin-infra.sh +$ ./plugin-infra.sh ---- .{product-very-short} Orchestrator Infra Helm Chart -You can use {product-very-short} Orchestrator Infra Helm Chart in empty clusters. Use with caution in production clusters because {product-very-short} Orchestrator Infra Helm Chart installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. +You can use {product-very-short} Orchestrator Infra Helm Chart to install components for the Orchestrator plugins in empty clusters. + +[IMPORTANT] +==== +{product-very-short} Orchestrator Infra Helm Chart is not a suitable installation method for production clusters. The method installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. +==== .Procedure . Install the required components using the Orchestrator infrastructure Helm chart. \ No newline at end of file From dc991b11ab4ca1c37aa1c7fa0bdff62aa68c6aef Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 14:51:35 +0200 Subject: [PATCH 11/25] Orchestrator flavor in RHDH Operator --- .../proc-install-components-for-orchestrator-plugin.adoc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 62074116a1..1c89aa1bde 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -78,7 +78,4 @@ You can use {product-very-short} Orchestrator Infra Helm Chart to install compon [IMPORTANT] ==== {product-very-short} Orchestrator Infra Helm Chart is not a suitable installation method for production clusters. The method installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. -==== - -.Procedure -. Install the required components using the Orchestrator infrastructure Helm chart. \ No newline at end of file +==== \ No newline at end of file From e4101ad07a7f285f6fec193b381591f43ea445b9 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 14:56:27 +0200 Subject: [PATCH 12/25] Orchestrator flavor in RHDH Operator --- .../proc-install-components-for-orchestrator-plugin.adoc | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 1c89aa1bde..71b99560bb 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -47,7 +47,6 @@ For more information on preparing the required infrastructure, see link:https:// .{product-very-short} helper script -Suggested change You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters because the script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. You can install the OpenShift Serverless infrastructure for the Orchestrator plugin in empty clusters by using the {product-very-short} helper script. From faec098d458574cb1b45a4e4ded727814d5d077f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 15:01:25 +0200 Subject: [PATCH 13/25] Orchestrator flavor in RHDH Operator --- modules/orchestrator/con-supported-architecture.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orchestrator/con-supported-architecture.adoc b/modules/orchestrator/con-supported-architecture.adoc index 3fc2666e13..5baa5e82a8 100644 --- a/modules/orchestrator/con-supported-architecture.adoc +++ b/modules/orchestrator/con-supported-architecture.adoc @@ -1,4 +1,4 @@ -[id="con-supported-architecture_{context}"] +[id="con-supported-architecture.adoc_{context}"] = Supported architecture You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. From dad99529d18c7ecd04ce901f198e35ada0b61294 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 15:05:44 +0200 Subject: [PATCH 14/25] Orchestrator flavor in RHDH Operator --- modules/orchestrator/con-orchestrator-plugin-components.adoc | 2 +- modules/orchestrator/con-supported-architecture.adoc | 2 +- .../con-understanding-orchestrator-plugin-dependencies.adoc | 2 +- .../proc-install-components-for-orchestrator-plugin.adoc | 2 +- modules/orchestrator/proc-install-orchestrator-plugin.adoc | 2 +- .../proc-install-rhdh-with-orchestrator-helm-webui.adoc | 2 +- modules/orchestrator/ref-orchestrator-resource-limits.adoc | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/orchestrator/con-orchestrator-plugin-components.adoc b/modules/orchestrator/con-orchestrator-plugin-components.adoc index ae637582bf..723cfbbd46 100644 --- a/modules/orchestrator/con-orchestrator-plugin-components.adoc +++ b/modules/orchestrator/con-orchestrator-plugin-components.adoc @@ -1,4 +1,4 @@ -[id='con-orchestrator-plugin-components.adoc_{context}'] +[id='con-orchestrator-plugin-components_{context}'] = Orchestrator plugin components The following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: diff --git a/modules/orchestrator/con-supported-architecture.adoc b/modules/orchestrator/con-supported-architecture.adoc index 5baa5e82a8..3fc2666e13 100644 --- a/modules/orchestrator/con-supported-architecture.adoc +++ b/modules/orchestrator/con-supported-architecture.adoc @@ -1,4 +1,4 @@ -[id="con-supported-architecture.adoc_{context}"] +[id="con-supported-architecture_{context}"] = Supported architecture You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc index a2fcd91d4b..6cd753a5d5 100644 --- a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc +++ b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc @@ -1,4 +1,4 @@ -[id='con-understanding-orchestrator-plugin-dependencies.adoc_{context}'] +[id='con-understanding-orchestrator-plugin-dependencies_{context}'] = Understanding Orchestrator plugin dependencies The Orchestrator plugin in {product-very-short} requires components such as SonataFlow and supporting network policies to run. When you enable the plugin in your {product-custom-resource-type} custom resource (CR), the Operator automatically provisions these dependencies for you: diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 71b99560bb..ba4f59d39a 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -1,6 +1,6 @@ :_mod-docs-content-type: PROCEDURE -[id="proc-install-components-for-orchestrator-plugin.adoc_{context}"] +[id="proc-install-components-for-orchestrator-plugin_{context}"] = Installing the components for the Orchestrator plugin on {ocp-short} To run the Orchestrator plugin successfully on {ocp-short}, you must install components that provide the runtime environment and the dependencies that the plugin requires. diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index bb89b89949..d6fc7e0da5 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -1,6 +1,6 @@ :_mod-docs-content-type: PROCEDURE -[id="proc-install-orchestrator-plugin.adoc_{context}"] +[id="proc-install-orchestrator-plugin_{context}"] = Installing the Orchestrator plugin using Operator You can enable the Orchestrator plugin in {product-very-short} by configuring dynamic plugins in your {product-custom-resource-type} custom resource (CR). diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc index a0c5a953fb..82b78e73d2 100644 --- a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc @@ -1,4 +1,4 @@ -[id="proc-install-rhdh-with-orchestrator-helm-webui.adoc_{context}"] +[id="proc-install-rhdh-with-orchestrator-helm-webui_{context}"] = Install {product} ({product-very-short}) using {ocp-short} web console You can install {product} ({product-very-short}) with the Orchestrator by using the ({ocp-short}) web console. This method is useful if you prefer a graphical interface or want to deploy cluster-wide resources without using the Helm CLI. diff --git a/modules/orchestrator/ref-orchestrator-resource-limits.adoc b/modules/orchestrator/ref-orchestrator-resource-limits.adoc index 154f0eb396..64d1bd2ef7 100644 --- a/modules/orchestrator/ref-orchestrator-resource-limits.adoc +++ b/modules/orchestrator/ref-orchestrator-resource-limits.adoc @@ -1,5 +1,5 @@ :_mod-docs-content-type: REFERENCE -[id="ref-orchestrator-resource-limits.adoc_{context}"] +[id="ref-orchestrator-resource-limits_{context}"] = Resource limits for installing {product} with the Orchestrator plugin When installing {product} ({product-very-short}) with the Orchestrator plugin using Helm, the chart defines default CPU and memory limits for the `SonataFlowPlatform` component. From ab3fb017fd4cdef774ea9e0ec5b441a64c1b973e Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 15:40:08 +0200 Subject: [PATCH 15/25] Apply suggestions --- .../con-orchestrator-plugin-components.adoc | 5 +++-- modules/orchestrator/con-supported-architecture.adoc | 11 ++++++----- ...nderstanding-orchestrator-plugin-dependencies.adoc | 3 ++- ...oc-install-components-for-orchestrator-plugin.adoc | 3 +-- .../proc-install-orchestrator-plugin.adoc | 1 - .../proc-install-rhdh-with-orchestrator-helm-cli.adoc | 8 ++++---- ...roc-install-rhdh-with-orchestrator-helm-webui.adoc | 1 + .../ref-orchestrator-resource-limits.adoc | 6 +++--- 8 files changed, 20 insertions(+), 18 deletions(-) diff --git a/modules/orchestrator/con-orchestrator-plugin-components.adoc b/modules/orchestrator/con-orchestrator-plugin-components.adoc index 723cfbbd46..a1f42dde42 100644 --- a/modules/orchestrator/con-orchestrator-plugin-components.adoc +++ b/modules/orchestrator/con-orchestrator-plugin-components.adoc @@ -1,4 +1,5 @@ -[id='con-orchestrator-plugin-components_{context}'] +:_mod-docs-content-type: CONCEPT +[id="con-orchestrator-plugin-components_{context}"] = Orchestrator plugin components The following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: @@ -6,4 +7,4 @@ The following Orchestrator plugin components are included by default in the `dyn * `@redhat/backstage-plugin-orchestrator` * `@redhat/backstage-plugin-orchestrator-backend-dynamic` * `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` -* `@redhat/backstage-plugin-orchestrator-form-widgets` +* `@redhat/backstage-plugin-orchestrator-form-widgets` \ No newline at end of file diff --git a/modules/orchestrator/con-supported-architecture.adoc b/modules/orchestrator/con-supported-architecture.adoc index 3fc2666e13..0903d407b2 100644 --- a/modules/orchestrator/con-supported-architecture.adoc +++ b/modules/orchestrator/con-supported-architecture.adoc @@ -1,11 +1,12 @@ +:_mod-docs-content-type: CONCEPT [id="con-supported-architecture_{context}"] -= Supported architecture += Supported architecture for Orchestrator You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. To help you get started quickly, the following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: -* `@redhat/backstage-plugin-orchestrator` -* `@redhat/backstage-plugin-orchestrator-backend-dynamic` -* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` -* `@redhat/backstage-plugin-orchestrator-form-widgets` \ No newline at end of file +* `"@redhat/backstage-plugin-orchestrator"` +* `"@redhat/backstage-plugin-orchestrator-backend-dynamic"` +* `"@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic"` +* `"@redhat/backstage-plugin-orchestrator-form-widgets"` \ No newline at end of file diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc index 6cd753a5d5..a07887557e 100644 --- a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc +++ b/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc @@ -1,4 +1,5 @@ -[id='con-understanding-orchestrator-plugin-dependencies_{context}'] +:_mod-docs-content-type: CONCEPT +[id="con-understanding-orchestrator-plugin-dependencies_{context}"] = Understanding Orchestrator plugin dependencies The Orchestrator plugin in {product-very-short} requires components such as SonataFlow and supporting network policies to run. When you enable the plugin in your {product-custom-resource-type} custom resource (CR), the Operator automatically provisions these dependencies for you: diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index ba4f59d39a..9de9f4244a 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -1,5 +1,4 @@ :_mod-docs-content-type: PROCEDURE - [id="proc-install-components-for-orchestrator-plugin_{context}"] = Installing the components for the Orchestrator plugin on {ocp-short} @@ -7,7 +6,7 @@ To run the Orchestrator plugin successfully on {ocp-short}, you must install com .Prerequisites -* To install the Orchestrator plugin on {ocp-short}, you require the following components: +* To install the Orchestrator plugin on {ocp-short}, you require the following components installed: ** OpenShift Serverless Operator ** Knative Serving diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index d6fc7e0da5..d843067ec1 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -1,5 +1,4 @@ :_mod-docs-content-type: PROCEDURE - [id="proc-install-orchestrator-plugin_{context}"] = Installing the Orchestrator plugin using Operator diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc index 9abb06d6d6..d8ebfdc5f0 100644 --- a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc @@ -7,7 +7,7 @@ You can install {product} ({product-very-short}) on {ocp-short} with the Orchest .Prerequisites * You are logged in as an administrator and have access to the {product} Helm chart repository. -* You can install the necessary infrastructures resources, such as sonataflow, alongside {product-very-short} in the same namespace. +* You can install the necessary infrastructures resources, such as SonataFlow, alongside {product-very-short} in the same namespace. + This is a one-off requirement and must be completed before enabling the Orchestrator plugin. @@ -15,10 +15,10 @@ This is a one-off requirement and must be completed before enabling the Orchestr . As an administrator, install relevant cluster-wide resources. + -[source,yaml] +[source,yaml,subs="+quotes,+attributes"] ---- helm repo add openshift-helm-charts https://charts.openshift.io/ -helm install openshift-helm-charts/redhat-developer-hub-orchestrator-infra +helm install `` openshift-helm-charts/redhat-developer-hub-orchestrator-infra ---- + [IMPORTANT] @@ -30,7 +30,7 @@ You must be a cluster administrator to install the `redhat-developer-hub-orchest + [source,terminal,subs="attributes+"] ---- -helm install openshift-helm-charts/redhat-developer-hub --version {product-chart-version} \ +$ helm install openshift-helm-charts/redhat-developer-hub --version {product-chart-version} \ --set orchestrator.enabled=true ---- diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc index 82b78e73d2..23853e17bc 100644 --- a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc @@ -1,3 +1,4 @@ +:_mod-docs-content-type: PROCEDURE [id="proc-install-rhdh-with-orchestrator-helm-webui_{context}"] = Install {product} ({product-very-short}) using {ocp-short} web console diff --git a/modules/orchestrator/ref-orchestrator-resource-limits.adoc b/modules/orchestrator/ref-orchestrator-resource-limits.adoc index 64d1bd2ef7..ff15413fa2 100644 --- a/modules/orchestrator/ref-orchestrator-resource-limits.adoc +++ b/modules/orchestrator/ref-orchestrator-resource-limits.adoc @@ -15,7 +15,7 @@ These limits are enforced by the cluster so that pods do not exceed their alloca |Memory limits|`1Gi` |=== -.You can override these values in any of the following ways: +. You can override these values in any of the following ways: * With `values.yaml` * With `--set` flags @@ -35,7 +35,7 @@ orchestrator: . Override with `--set` as shown in the following example: + -[source,yaml] +[source,terminal] ---- helm upgrade --install openshift-helm-charts/redhat-developer-hub \ --set orchestrator.enabled=true \ @@ -47,5 +47,5 @@ helm upgrade --install openshift-helm-charts/redhat-developer-hu + [NOTE] ==== -These settings are applicable only when `orchestrator.enabled` is `true`. By default, it is set to `false`. +The `--set` setting is applicable only when `orchestrator.enabled` is `true`. By default, it is set to `false`. ==== \ No newline at end of file From 99882e71eed0c619516676a270fb51f9a9b459d1 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 15:49:58 +0200 Subject: [PATCH 16/25] Apply suggestions --- assemblies/assembly-orchestrator-rhdh.adoc | 4 ++-- ...d-architecture.adoc => con-orchestrator-architecture.adoc} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename modules/orchestrator/{con-supported-architecture.adoc => con-orchestrator-architecture.adoc} (100%) diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index 3a18d1f5c9..38f89b5a95 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -20,8 +20,8 @@ To start using Orchestrator in {product-very-short}, you must: * Configure your Backstage custom resource (CR) for Orchestrator * Import the Orchestrator software templates into the {product} catalog -// supported architecture -include::modules/orchestrator/con-supported-architecture.adoc[leveloffset=+1] +// orchestrator architecture +include::modules/orchestrator/con-orchestrator-architecture.adoc[leveloffset=+1] // orchestrator plugin components include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] diff --git a/modules/orchestrator/con-supported-architecture.adoc b/modules/orchestrator/con-orchestrator-architecture.adoc similarity index 100% rename from modules/orchestrator/con-supported-architecture.adoc rename to modules/orchestrator/con-orchestrator-architecture.adoc From 785455f38ecc3b2ef9ce49aed23d0f83110f33af Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 15:57:19 +0200 Subject: [PATCH 17/25] Apply suggestions --- modules/orchestrator/con-orchestrator-architecture.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orchestrator/con-orchestrator-architecture.adoc b/modules/orchestrator/con-orchestrator-architecture.adoc index 0903d407b2..2e029ab762 100644 --- a/modules/orchestrator/con-orchestrator-architecture.adoc +++ b/modules/orchestrator/con-orchestrator-architecture.adoc @@ -1,5 +1,5 @@ :_mod-docs-content-type: CONCEPT -[id="con-supported-architecture_{context}"] +[id="con-orchestrator-architecture_{context}"] = Supported architecture for Orchestrator You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. From 4c27dfa17c72d882ac9616a7b7b3d8d5ba07ab3e Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 16:13:31 +0200 Subject: [PATCH 18/25] Apply suggestions --- assemblies/assembly-orchestrator-rhdh.adoc | 7 ++----- .../con-orchestrator-plugin-components.adoc | 10 ---------- ...> con-supported-architecture-for-orchestrator.adoc} | 2 +- 3 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 modules/orchestrator/con-orchestrator-plugin-components.adoc rename modules/orchestrator/{con-orchestrator-architecture.adoc => con-supported-architecture-for-orchestrator.adoc} (92%) diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index 38f89b5a95..64245a1aa1 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -6,7 +6,7 @@ endif::[] ifdef::context[] [id="assembly-orchestrator-rhdh"] endif::[] -= About Orchestrator += About Orchestrator in {product} You can streamline and automate your work by using the Orchestrator in {product}. It enables you to: @@ -21,10 +21,7 @@ To start using Orchestrator in {product-very-short}, you must: * Import the Orchestrator software templates into the {product} catalog // orchestrator architecture -include::modules/orchestrator/con-orchestrator-architecture.adoc[leveloffset=+1] - -// orchestrator plugin components -include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] +include::modules/orchestrator/con-supported-architecture-for-orchestrator.adoc[leveloffset=+1] // provisioning plugin dependencies include::modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc[leveloffset=+1] diff --git a/modules/orchestrator/con-orchestrator-plugin-components.adoc b/modules/orchestrator/con-orchestrator-plugin-components.adoc deleted file mode 100644 index a1f42dde42..0000000000 --- a/modules/orchestrator/con-orchestrator-plugin-components.adoc +++ /dev/null @@ -1,10 +0,0 @@ -:_mod-docs-content-type: CONCEPT -[id="con-orchestrator-plugin-components_{context}"] -= Orchestrator plugin components - -The following Orchestrator plugin components are included by default in the `dynamic-plugins.default.yaml` file: - -* `@redhat/backstage-plugin-orchestrator` -* `@redhat/backstage-plugin-orchestrator-backend-dynamic` -* `@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic` -* `@redhat/backstage-plugin-orchestrator-form-widgets` \ No newline at end of file diff --git a/modules/orchestrator/con-orchestrator-architecture.adoc b/modules/orchestrator/con-supported-architecture-for-orchestrator.adoc similarity index 92% rename from modules/orchestrator/con-orchestrator-architecture.adoc rename to modules/orchestrator/con-supported-architecture-for-orchestrator.adoc index 2e029ab762..76a685fe6b 100644 --- a/modules/orchestrator/con-orchestrator-architecture.adoc +++ b/modules/orchestrator/con-supported-architecture-for-orchestrator.adoc @@ -1,5 +1,5 @@ :_mod-docs-content-type: CONCEPT -[id="con-orchestrator-architecture_{context}"] +[id="con-supported-architecture-for-orchestrator_{context}"] = Supported architecture for Orchestrator You can use Orchestrator to design, run, and monitor workflows that automate key tasks. It builds on components like SonataFlow and OpenShift Serverless, which provide the runtime environment and event-driven capabilities needed to power your workflows. From d1af1c89130327be25272c2fe7e99a8c4baef954 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 16:31:04 +0200 Subject: [PATCH 19/25] Apply suggestions --- assemblies/assembly-install-rhdh-orchestrator.adoc | 5 ++--- assemblies/assembly-orchestrator-rhdh.adoc | 1 + modules/orchestrator/proc-install-orchestrator-plugin.adoc | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/assemblies/assembly-install-rhdh-orchestrator.adoc b/assemblies/assembly-install-rhdh-orchestrator.adoc index c89a820a70..a3aa8f4b04 100644 --- a/assemblies/assembly-install-rhdh-orchestrator.adoc +++ b/assemblies/assembly-install-rhdh-orchestrator.adoc @@ -6,16 +6,15 @@ endif::[] ifdef::context[] [id="assembly-install-rhdh-orchestrator"] endif::[] +:context: install-rhdh-orchestrator = Installing {product} with Orchestrator -:context: assembly-install-rhdh-orchestrator - To install {product}, use one of the following methods: * The {product} Operator * The {product} Helm chart // {product} Operator -include::modules/orchestrator/con-orchestrator-plugin-components.adoc[leveloffset=+1] +include::modules/orchestrator/proc-install-orchestrator-plugin.adoc[leveloffset=+1] // {product} Helm chart include::modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-cli.adoc[leveloffset=+1] diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index 64245a1aa1..6a01980a4b 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -6,6 +6,7 @@ endif::[] ifdef::context[] [id="assembly-orchestrator-rhdh"] endif::[] +:context: orchestrator-rhdh = About Orchestrator in {product} You can streamline and automate your work by using the Orchestrator in {product}. It enables you to: diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index d843067ec1..b95c64b3fc 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -36,8 +36,7 @@ You can enable the Orchestrator plugin in {product-very-short} by configuring dy disabled: false ---- -The following is an example of the complete configuration of the Orchestrator plugin: - +.Example: Complete configuration of the Orchestrator plugin [source,yaml] ---- apiVersion: v1 From b094be27c2956fd2df8e615f978314993d11ff8f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 16:38:32 +0200 Subject: [PATCH 20/25] Apply suggestions --- titles/orchestrator/master.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/titles/orchestrator/master.adoc b/titles/orchestrator/master.adoc index 5a59aa0f54..97584be038 100644 --- a/titles/orchestrator/master.adoc +++ b/titles/orchestrator/master.adoc @@ -1,8 +1,10 @@ include::artifacts/attributes.adoc[] +:context: Orchestrator-in-{product} :imagesdir: images :title: Orchestrator in {product} :subtitle: Orchestrator enables serverless workflows for cloud migration, onboarding, and customization in {product} :abstract: As an administrator, you can use Orchestrator to enable serverless workflows in {product} to support cloud migration, developer onboarding, and custom workflows. += {title} include::assemblies/assembly-orchestrator-rhdh.adoc[leveloffset=+1] From 9ee8d26235cb907096cb7d3747b2a812fcc6118e Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 17:21:22 +0200 Subject: [PATCH 21/25] Apply suggestions --- assemblies/assembly-install-rhdh-orchestrator.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/assemblies/assembly-install-rhdh-orchestrator.adoc b/assemblies/assembly-install-rhdh-orchestrator.adoc index a3aa8f4b04..6a73c01b1a 100644 --- a/assemblies/assembly-install-rhdh-orchestrator.adoc +++ b/assemblies/assembly-install-rhdh-orchestrator.adoc @@ -10,6 +10,7 @@ endif::[] = Installing {product} with Orchestrator To install {product}, use one of the following methods: + * The {product} Operator * The {product} Helm chart From e90dccac5bab431e45462627f33bbafa688271eb Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 17:22:58 +0200 Subject: [PATCH 22/25] Apply suggestions --- modules/orchestrator/ref-orchestrator-resource-limits.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/orchestrator/ref-orchestrator-resource-limits.adoc b/modules/orchestrator/ref-orchestrator-resource-limits.adoc index ff15413fa2..0c3039e5d1 100644 --- a/modules/orchestrator/ref-orchestrator-resource-limits.adoc +++ b/modules/orchestrator/ref-orchestrator-resource-limits.adoc @@ -1,6 +1,6 @@ :_mod-docs-content-type: REFERENCE [id="ref-orchestrator-resource-limits_{context}"] -= Resource limits for installing {product} with the Orchestrator plugin += Resource limits for installing {product} with the Orchestrator plugin when using Helm When installing {product} ({product-very-short}) with the Orchestrator plugin using Helm, the chart defines default CPU and memory limits for the `SonataFlowPlatform` component. From 39450990ee67815ca510c8739a896984135cd79e Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 17:41:37 +0200 Subject: [PATCH 23/25] Apply suggestions --- assemblies/assembly-orchestrator-rhdh.adoc | 7 ++++++- ...doc => con-orchestrator-plugin-dependencies.adoc} | 9 +++++++-- ...c-install-components-for-orchestrator-plugin.adoc | 12 +----------- .../proc-install-orchestrator-plugin.adoc | 12 ------------ ...oc-install-rhdh-with-orchestrator-helm-webui.adoc | 2 +- 5 files changed, 15 insertions(+), 27 deletions(-) rename modules/orchestrator/{con-understanding-orchestrator-plugin-dependencies.adoc => con-orchestrator-plugin-dependencies.adoc} (93%) diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index 6a01980a4b..f3841c0245 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -15,6 +15,11 @@ You can streamline and automate your work by using the Orchestrator in {product} * Standardize onboarding, migration, and integration workflows to reduce manual effort and improve consistency. * Extend {product-very-short} with enterprise-grade Orchestration features to support collaboration and scalability. +[NOTE] +==== +Orchestrator currently supports only {ocp-short}; it is not available on AKS, EKS, or GKE. +==== + To start using Orchestrator in {product-very-short}, you must: * Install the required infrastructure components, such as Red Hat OpenShift Serverless Operator, Knative Serving, Knative Eventing, and OpenShift Serverless Logic Operator @@ -25,7 +30,7 @@ To start using Orchestrator in {product-very-short}, you must: include::modules/orchestrator/con-supported-architecture-for-orchestrator.adoc[leveloffset=+1] // provisioning plugin dependencies -include::modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc[leveloffset=+1] +include::modules/orchestrator/con-orchestrator-plugin-dependencies.adoc[leveloffset=+1] // installing the components for the orchestrator plugin include::modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc b/modules/orchestrator/con-orchestrator-plugin-dependencies.adoc similarity index 93% rename from modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc rename to modules/orchestrator/con-orchestrator-plugin-dependencies.adoc index a07887557e..5aaad9b7e1 100644 --- a/modules/orchestrator/con-understanding-orchestrator-plugin-dependencies.adoc +++ b/modules/orchestrator/con-orchestrator-plugin-dependencies.adoc @@ -1,12 +1,17 @@ :_mod-docs-content-type: CONCEPT -[id="con-understanding-orchestrator-plugin-dependencies_{context}"] -= Understanding Orchestrator plugin dependencies +[id="con-orchestrator-plugin-dependencies_{context}"] += Orchestrator Plugin dependencies The Orchestrator plugin in {product-very-short} requires components such as SonataFlow and supporting network policies to run. When you enable the plugin in your {product-custom-resource-type} custom resource (CR), the Operator automatically provisions these dependencies for you: * A `SonataflowPlatform` CR * `NetworkPolicies` that allow traffic between infrastructure resources (Knative, Serverless Logic Operator), monitoring traffic, and intra-namespace traffic +[NOTE] +==== +Orchestrator currently supports only {ocp-short}; it is not available on AKS, EKS, or GKE. +==== + The `orchestrator-backend` plugin uses the `sonataflow-platform-data-index-service`, which the `SonataFlowPlatform` CR creates to communicate with the SonataFlow platform. The Operator resolves the dependency reference SonataFlow against the `sonataflow.yaml` manifest included in its profile configuration (`config/profile/rhdh/plugin-deps/sonataflow.yaml`) and applies it to create the required resources. diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 9de9f4244a..5c8caf7f86 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -49,11 +49,6 @@ For more information on preparing the required infrastructure, see link:https:// You can install the OpenShift Serverless infrastructure for the Orchestrator plugin using the {product-very-short} helper script. You can use the script in empty clusters, however, use with caution in production clusters because the script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. You can install the OpenShift Serverless infrastructure for the Orchestrator plugin in empty clusters by using the {product-very-short} helper script. -[IMPORTANT] -==== -This method of installation is not suitable for production clusters. The {product-very-short} helper script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. -==== - For more information on controlling the installation of the Operators, see link:https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/[Install your Operator with OLM]. .Procedure @@ -71,9 +66,4 @@ $ ./plugin-infra.sh ---- .{product-very-short} Orchestrator Infra Helm Chart -You can use {product-very-short} Orchestrator Infra Helm Chart to install components for the Orchestrator plugins in empty clusters. - -[IMPORTANT] -==== -{product-very-short} Orchestrator Infra Helm Chart is not a suitable installation method for production clusters. The method installs Operators with automatic upgrades and default settings, which might introduce unplanned changes, version conflicts, or policy misalignments. -==== \ No newline at end of file +You can use {product-very-short} Orchestrator Infra Helm Chart to install components for the Orchestrator plugins in empty clusters. \ No newline at end of file diff --git a/modules/orchestrator/proc-install-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-orchestrator-plugin.adoc index b95c64b3fc..5572f55735 100644 --- a/modules/orchestrator/proc-install-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-orchestrator-plugin.adoc @@ -58,18 +58,6 @@ data: disabled: false - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.6.0" disabled: false -apiVersion: v1 -kind: ConfigMap -metadata: - name: app-config-rhdh -data: - app-config-rhdh.yaml: |- - auth: - environment: development - providers: - guest: - # using the guest user to query the '/api/dynamic-plugins-info/loaded-plugins' endpoint. - dangerouslyAllowOutsideDevelopment: true --- apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage diff --git a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc index 23853e17bc..d7f1f49a37 100644 --- a/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc +++ b/modules/orchestrator/proc-install-rhdh-with-orchestrator-helm-webui.adoc @@ -1,6 +1,6 @@ :_mod-docs-content-type: PROCEDURE [id="proc-install-rhdh-with-orchestrator-helm-webui_{context}"] -= Install {product} ({product-very-short}) using {ocp-short} web console += Install {product} ({product-very-short}) using Helm from the {ocp-short} web console You can install {product} ({product-very-short}) with the Orchestrator by using the ({ocp-short}) web console. This method is useful if you prefer a graphical interface or want to deploy cluster-wide resources without using the Helm CLI. From 4fac0a2a6e13f1ba5b72fd10fa82c9d13c010791 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 17:49:58 +0200 Subject: [PATCH 24/25] Apply suggestions --- assemblies/assembly-orchestrator-rhdh.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assemblies/assembly-orchestrator-rhdh.adoc b/assemblies/assembly-orchestrator-rhdh.adoc index f3841c0245..cf3d1497e9 100644 --- a/assemblies/assembly-orchestrator-rhdh.adoc +++ b/assemblies/assembly-orchestrator-rhdh.adoc @@ -11,7 +11,7 @@ endif::[] You can streamline and automate your work by using the Orchestrator in {product}. It enables you to: -* Design, execute, and monitor workflows to simplify multi-step processes across applications and services. +* Design, run, and monitor workflows to simplify multi-step processes across applications and services. * Standardize onboarding, migration, and integration workflows to reduce manual effort and improve consistency. * Extend {product-very-short} with enterprise-grade Orchestration features to support collaboration and scalability. @@ -23,7 +23,7 @@ Orchestrator currently supports only {ocp-short}; it is not available on AKS, EK To start using Orchestrator in {product-very-short}, you must: * Install the required infrastructure components, such as Red Hat OpenShift Serverless Operator, Knative Serving, Knative Eventing, and OpenShift Serverless Logic Operator -* Configure your Backstage custom resource (CR) for Orchestrator +* Configure your {product-custom-resource-type} custom resource (CR) for Orchestrator * Import the Orchestrator software templates into the {product} catalog // orchestrator architecture From 08d352a5af63131d719af8c1b516a3e0e9af9fcc Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 20 Aug 2025 17:54:03 +0200 Subject: [PATCH 25/25] Apply suggestions --- .../proc-install-components-for-orchestrator-plugin.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc index 5c8caf7f86..934b71eeec 100644 --- a/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc +++ b/modules/orchestrator/proc-install-components-for-orchestrator-plugin.adoc @@ -51,6 +51,11 @@ You can install the OpenShift Serverless infrastructure for the Orchestrator plu For more information on controlling the installation of the Operators, see link:https://olm.operatorframework.io/docs/tasks/install-operator-with-olm/[Install your Operator with OLM]. +[WARNING] +==== +This method of installation is not suitable for production clusters. The {product-very-short} helper script installs Operators with automatic upgrades and default settings, which can introduce unplanned changes, version conflicts, or policy misalignments. +==== + .Procedure . Download the `plugin-infra.sh` script as shown in the following example: +