Skip to content

Commit

Permalink
Add SonataFlow Management Console guide
Browse files Browse the repository at this point in the history
  • Loading branch information
fantonangeli committed Oct 14, 2024
1 parent a9b6165 commit 3cf8d8d
Show file tree
Hide file tree
Showing 4 changed files with 153 additions and 2 deletions.
1 change: 1 addition & 0 deletions serverlessworkflow/antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ asciidoc:
sonataflow_devmode_imagename: quay.io/kiegroup/kogito-swf-devmode-nightly
sonataflow_builder_imagename: quay.io/kiegroup/kogito-swf-builder-nightly
sonataflow_devmode_devui_url: /q/dev-ui/org.apache.kie.sonataflow.sonataflow-quarkus-devui/
sonataflow_management_console_imagename: quay.io/kiegroup/osl-management-console-image
serverless_logic_web_tools_name: Serverless Logic Web Tools
serverless_workflow_vscode_extension_name: KIE Serverless Workflow Editor
kie_kogito_examples_repo_name: incubator-kie-kogito-examples
Expand Down
1 change: 1 addition & 0 deletions serverlessworkflow/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@
**** xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-minikube.adoc[Deploying on Minikube]
**** xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-kubernetes.adoc[Deploying on Kubernetes]
**** xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc[Deploying on OpenShift]
**** xref:use-cases/advanced-developer-use-cases/deployments/deploying-sonataflow-management-console-on-openshift.adoc[Deploying Management Console on OpenShift]
*** Persistence
**** xref:use-cases/advanced-developer-use-cases/persistence/persistence-core-concepts.adoc[]
**** xref:use-cases/advanced-developer-use-cases/persistence/persistence-with-postgresql.adoc[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ For the following steps we will be using the link:{ocp_local_url}[OpenShift Loca

_If you already have an OpenShift cluster available you can skip this section._

Instructions to install Openshift Local can be found {ocp_local_url_install}[here].
Instructions to install OpenShift Local can be found {ocp_local_url_install}[here].

Once you have OpenShift Local running, proceed to the next topic.
[IMPORTANT]
Expand Down Expand Up @@ -176,4 +176,4 @@ include::./common/_proc_deploy_sw_oc.adoc[]
// deploy with quarkus-cli
include::./common/_proc_deploy_sw_quarkus_cli.adoc[]

include::../../../../pages/_common-content/report-issue.adoc[]
include::../../../../pages/_common-content/report-issue.adoc[]
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
= Deploying {product_name} Management Console on OpenShift
:compat-mode!:
// Metadata:
:description: Deploying Management Console on OpenShift
:keywords: kogito, workflow, quarkus, serverless, kn, oc, openshift, sonataflow
:table-caption: Data Set
// envs for common content
:management_console: SonataFlow Management Console
:registry: OpenShift's
:command_line_tool: oc
:command_line_tool_name: OpenShift CLI
:ocp_name: OpenShift Container Platform
:platform: OpenShift
// links
:ocp_cli_url: https://docs.openshift.com/container-platform/4.12/cli_reference/openshift_cli/getting-started-cli.html#cli-about-cli_cli-developer-commands


This document describes how to deploy the {product_name} Management Console using on OpenShift.

The SonataFlow Management Console is a web interface designed to manage and monitor workflows in a production-ready environment. It allows users to initiate workflows, trigger Cloud Events, and monitor their execution.

.Prerequisites
* Your xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc[{product_name} application] is deployed and ready to use.
* link:{ocp_cli_url}[OpenShift CLI] is installed.
* (Optional) xref:security/orchestrating-third-party-services-with-oauth2.adoc[Keycloak server] is installed in OpenShift.
== Set up {ocp_name} and deploy your SonataFlow application on OpenShift

The SonataFlow Management Console relies on the underlying services of the SonataFlow application, including the Data Index service. The Data Index provides data from workflow executions, enabling the Management Console to display workflow information.

Ensure that your Data Index service is deployed and accessible before deploying the Management Console.
Instructions to set up {ocp_name} and deploy your SonataFlow application on OpenShift can be found xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc[here].

== (Optional) Deploy Keycloak for production

_If you already have Keycloak deployment or server available you can skip this section._

For production environments, deploy Keycloak to handle authentication or choose your orwn OAuth2 server. You can refer to the SonataFlow Keycloak documentation xref:security/orchestrating-third-party-services-with-oauth2.adoc[here].

== Deploy {management_console}

Create the deployment for the SonataFlow Management Console by applying the following YAML definition:

.Example configuration in `osl-management-console-deployment.yaml`
[source,yaml,subs="attributes+"]
----
apiVersion: apps/v1
kind: Deployment
metadata:
name: osl-management-console
spec:
replicas: 1
selector:
matchLabels:
app: osl-management-console
template:
metadata:
labels:
app: osl-management-console
spec:
containers:
- name: osl-management-console
image: {sonataflow_management_console_imagename}:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
name: http
protocol: TCP
env:
- name: SONATAFLOW_MANAGEMENT_CONSOLE_KOGITO_ENV_MODE
value: DEV <1>
- name: SONATAFLOW_MANAGEMENT_CONSOLE_DATA_INDEX_ENDPOINT
value: DATA-INDEX-URL <2>
----
<1> (Optional) Environment mode: "PROD" or "DEV". PROD enables Keycloak integration.
<2> The URL to the Data Index Deployment created xref:use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc[here].

.Apply {management_console} Deployment
[source,shell]
----
oc apply -f osl-management-console-deployment.yaml
----

== Create the Service

Once the deployment is created, expose it through a service. Create a service definition by applying the following YAML:

.Example configuration in `osl-management-console-service.yaml`
[source,yaml]
----
apiVersion: v1
kind: Service
metadata:
name: osl-management-console-service
spec:
selector:
app: osl-management-console
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
----

.Apply {management_console} Service
[source,shell]
----
oc apply -f osl-management-console-service.yaml
----
This will create a service exposing the SonataFlow Management Console.

== Create the Route

Finally, expose the service with a route, so that it can be accessed externally.

Create the route by applying the following YAML:

.Example configuration in `osl-management-console-route.yaml`
[source,yaml]
----
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: osl-management-console-route
spec:
to:
kind: Service
name: osl-management-console-service
port:
targetPort: http
----

.Apply {management_console} Route
[source,shell]
----
oc apply -f osl-management-console-route.yaml
----

== Optional: Keycloak authentication for Production

In a production environment, you can integrate the SonataFlow Management Console with a Keycloak server for authentication or any OAuth2 server.

Set the following environment variables in your deployment:

* `SONATAFLOW_MANAGEMENT_CONSOLE_DATA_INDEX_ENDPOINT="PROD"`
* `KOGITO_CONSOLES_KEYCLOAK_HEALTH_CHECK_URL` – The Keycloak realm’s health check URL.
* `KOGITO_CONSOLES_KEYCLOAK_URL` – The Keycloak server URL.

include::../../../../pages/_common-content/report-issue.adoc[]

0 comments on commit 3cf8d8d

Please sign in to comment.