From 3cf8d8dcdbc3c2dc5856c4842d2a646b340402cb Mon Sep 17 00:00:00 2001 From: fantonangeli Date: Mon, 14 Oct 2024 17:38:22 +0200 Subject: [PATCH] Add SonataFlow Management Console guide --- serverlessworkflow/antora.yml | 1 + serverlessworkflow/modules/ROOT/nav.adoc | 1 + .../deployments/deploying-on-openshift.adoc | 4 +- ...aflow-management-console-on-openshift.adoc | 149 ++++++++++++++++++ 4 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-sonataflow-management-console-on-openshift.adoc diff --git a/serverlessworkflow/antora.yml b/serverlessworkflow/antora.yml index 090b78b87..9f1fde0e9 100644 --- a/serverlessworkflow/antora.yml +++ b/serverlessworkflow/antora.yml @@ -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 diff --git a/serverlessworkflow/modules/ROOT/nav.adoc b/serverlessworkflow/modules/ROOT/nav.adoc index 3fcd0031b..4bf4bd112 100644 --- a/serverlessworkflow/modules/ROOT/nav.adoc +++ b/serverlessworkflow/modules/ROOT/nav.adoc @@ -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[] diff --git a/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc b/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc index 3b15f5884..03c1dba1a 100644 --- a/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc +++ b/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-on-openshift.adoc @@ -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] @@ -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[] \ No newline at end of file +include::../../../../pages/_common-content/report-issue.adoc[] diff --git a/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-sonataflow-management-console-on-openshift.adoc b/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-sonataflow-management-console-on-openshift.adoc new file mode 100644 index 000000000..d1dd8c1ac --- /dev/null +++ b/serverlessworkflow/modules/ROOT/pages/use-cases/advanced-developer-use-cases/deployments/deploying-sonataflow-management-console-on-openshift.adoc @@ -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[]