This is an automated email from the ASF dual-hosted git repository.

ricardozanini pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 332b7ffb4 Issue #560 - Introduce Global Configuration for Operator 
section (#562)
332b7ffb4 is described below

commit 332b7ffb4900a62a5ce3bad42e62e2d2ed3148d8
Author: Ricardo Zanini <[email protected]>
AuthorDate: Mon Apr 1 16:23:42 2024 -0300

    Issue #560 - Introduce Global Configuration for Operator section (#562)
---
 serverlessworkflow/antora.yml                      |  1 +
 serverlessworkflow/modules/ROOT/nav.adoc           |  3 +-
 .../modules/ROOT/pages/cloud/index.adoc            |  9 ++
 .../cloud/operator/build-and-deploy-workflows.adoc |  9 +-
 .../cloud/operator/building-custom-images.adoc     | 41 +---------
 .../pages/cloud/operator/global-configuration.adoc | 95 ++++++++++++++++++++++
 6 files changed, 116 insertions(+), 42 deletions(-)

diff --git a/serverlessworkflow/antora.yml b/serverlessworkflow/antora.yml
index fc79037ae..0df4f73ed 100644
--- a/serverlessworkflow/antora.yml
+++ b/serverlessworkflow/antora.yml
@@ -33,6 +33,7 @@ asciidoc:
     product_name: SonataFlow
     operator_name: SonataFlow Operator
     operator_installation_namespace: sonataflow-operator-system
+    operator_controller_config: sonataflow-operator-controllers-config
     quarkus_platform: io.quarkus.platform
     kogito_sw_ga: kogito-quarkus-serverless-workflow
     data_index_ref: Data Index
diff --git a/serverlessworkflow/modules/ROOT/nav.adoc 
b/serverlessworkflow/modules/ROOT/nav.adoc
index d3e77ff8b..ac8e00001 100644
--- a/serverlessworkflow/modules/ROOT/nav.adoc
+++ b/serverlessworkflow/modules/ROOT/nav.adoc
@@ -70,9 +70,10 @@
 * xref:cloud/index.adoc[Cloud]
 ** Operator
 *** xref:cloud/operator/install-serverless-operator.adoc[Installation]
+*** xref:cloud/operator/global-configuration.adoc[Admin Configuration]
 *** xref:cloud/operator/developing-workflows.adoc[Development Mode]
 *** xref:cloud/operator/referencing-resource-files.adoc[Referencing Workflow 
Resources]
-*** xref:cloud/operator/configuring-workflows.adoc[Configuration]
+*** xref:cloud/operator/configuring-workflows.adoc[Workflow Configuration]
 *** xref:cloud/operator/build-and-deploy-workflows.adoc[Building and Deploying 
Workflow Images]
 *** xref:cloud/operator/supporting-services.adoc[Deploy Supporting Services]
 *** xref:cloud/operator/workflow-status-conditions.adoc[Custom Resource Status]
diff --git a/serverlessworkflow/modules/ROOT/pages/cloud/index.adoc 
b/serverlessworkflow/modules/ROOT/pages/cloud/index.adoc
index 4780864ce..d1cf5c142 100644
--- a/serverlessworkflow/modules/ROOT/pages/cloud/index.adoc
+++ b/serverlessworkflow/modules/ROOT/pages/cloud/index.adoc
@@ -77,6 +77,15 @@ xref:cloud/operator/build-and-deploy-workflows.adoc[]
 Learn how to build and deploy workflow services with {operator_name}
 --
 
+
+[.card]
+--
+[.card-title]
+xref:cloud/operator/global-configuration.adoc[]
+[.card-description]
+Learn how to change global configuration options for the {operator_name}
+--
+
 [.card]
 --
 [.card-title]
diff --git 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/build-and-deploy-workflows.adoc
 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/build-and-deploy-workflows.adoc
index 077a76892..e0ff9b196 100644
--- 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/build-and-deploy-workflows.adoc
+++ 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/build-and-deploy-workflows.adoc
@@ -49,6 +49,7 @@ By default, the operator will use the image distributed 
upstream to build workfl
 kubectl patch sonataflowplatform <name> --patch  'spec:\n    build:\n    
config:\n    baseImage: <your new image full name with tag>' -n <your_namespace>
 ----
 
+[#customize-base-build]
 === Customize the base build Dockerfile
 
 The operator uses the sonataflow-operator-builder-config `ConfigMap` in the 
operator's installation namespace ({operator_installation_namespace}) to 
configure and run the workflow build process. 
@@ -59,7 +60,6 @@ You can change the `Dockerfile` entry in this `ConfigMap` to 
tailor the Dockerfi
 ----
 apiVersion: v1
 data:
-  DEFAULT_BUILDER_RESOURCE_NAME: Dockerfile
   DEFAULT_WORKFLOW_EXTENSION: .sw.json
   Dockerfile: "FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS 
builder\n\n#
     variables that can be overridden by the builder\n# To add a Quarkus 
extension
@@ -414,13 +414,14 @@ You don't need to do anything to build on OpenShift since 
the operator will conf
 
 In general, the operator will create a 
link:{openshift_build_url}[`BuildConfig` to build] the workflow using the 
mapped xref:cloud/operator/referencing-resource-files.adoc[resource files] and 
your workflow definition. After the build is finished, the image will be pushed 
to the internal OpenShift registry backed by an `ImageStream` object.
 
+[#changing-base-builder]
 === Changing the base builder image
 
 If you are running on OpenShift, you have access to the Red Hat's supported 
registry. You can change the default builder image by editing the 
sonataflow-operator-builder-config `ConfigMap`.
 
 [source,bash,subs="attributes+"]
 ----
-oc edit cm/sonataflow-operator-builder-config -n 
{operator_installation_namespace}
+kubectl edit cm/sonataflow-operator-builder-config -n 
{operator_installation_namespace}
 ----
 
 In your editor, change the first line in the `Dockerfile` entry where it reads 
`FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest` to the desired image.
@@ -570,7 +571,7 @@ Ideally you should use this feature if there's a problem 
with your workflow or t
 
 == Additional resources
 
-* xref:cloud/operator/known-issues.adoc[]
-* xref:cloud/operator/developing-workflows.adoc[]
+* xref:cloud/operator/build-and-deploy-workflows.adoc[]
+* xref:cloud/operator/building-custom-images.adoc[]
 
 include::../../../pages/_common-content/report-issue.adoc[]
diff --git 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/building-custom-images.adoc
 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/building-custom-images.adoc
index ad2cdc8ba..f0b849349 100644
--- 
a/serverlessworkflow/modules/ROOT/pages/cloud/operator/building-custom-images.adoc
+++ 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/building-custom-images.adoc
@@ -4,7 +4,7 @@
 :description: Building custom development images for SonataFlow
 :keywords: sonataflow, workflow, serverless, operator, kubernetes, minikube, 
devmode
 // Links:
-:rh_ubi8_url: 
https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8
+:rh_jdk17_url: 
https://catalog.redhat.com/software/containers/ubi9/openjdk-17/61ee7c26ed74b2ffb22b07f6
 
 // NOTE: this guide can be expanded in the future to include prod images, 
hence the file name
 //       please change the title section and rearrange the others once it's 
done
@@ -13,42 +13,9 @@ This document describes how to build a custom development 
image to use in Sonata
 
 == The development mode image structure
 
-The development image is based on the link:{rh_ubi8_url}[Red Hat UBI 8 
minimal] container image. You can read its documentation for more detailed 
information about that image's architecture.
+The development image is based on the link:{rh_jdk17_url}[Red Hat OpenJDK 17 
UBI 9] container image. You can read its documentation for more detailed 
information about that image's architecture.
 
-The table below lists the additional packages installed in the development 
mode container image.
-
-.List of packages
-[cols="1,2"]
-|===
-|Package | Description
-
-|shadow-utils
-|The shadow-utils package includes the necessary programs for converting UNIX 
password files to the shadow password format.
-
-|tar
-|
-
-|gzip
-|
-
-|unzip
-|
-
-|zip
-|
-
-|tzdata-java
-|
-
-|java-17-openjdk-devel
-|OpenJDK 17
-
-|apache-maven-3.9.3-bin.tar.gz
-|Apache Maven
-
-|===
-
-The next table lists the important paths in the container image's file system.
+The table bellow lists the important paths in the container image's file 
system.
 
 .Important file system paths
 [cols="1,1"]
@@ -135,4 +102,4 @@ Finally, to use the new generated image with the dev 
profile you can see: xref:c
 * xref:cloud/operator/referencing-resource-files.adoc[]
 * xref:cloud/operator/developing-workflows.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/cloud/operator/global-configuration.adoc
 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/global-configuration.adoc
new file mode 100644
index 000000000..4bf338fd1
--- /dev/null
+++ 
b/serverlessworkflow/modules/ROOT/pages/cloud/operator/global-configuration.adoc
@@ -0,0 +1,95 @@
+= Global Configuration Settings
+:compat-mode!:
+// Metadata:
+:description: Global Configuration {operator_name} for cluster admins
+:keywords: sonataflow, workflow, serverless, operator, kubernetes, minikube, 
openshift, containers, configuration
+// links
+
+This document describes how to set global configuration options for the 
{operator_name}.
+
+.Prerequisites
+* You have installed the operator in the target cluster. You can find more 
information at the xref:cloud/operator/install-serverless-operator.adoc[] guide.
+
+== Modifying configuration options
+
+After installing the operator, you can access the ConfigMap named 
`{operator_controller_config}` in the namespace 
`{operator_installation_namespace}`.
+This configuration file governs the operator's behavior when creating new 
resources in the cluster. Existing resources won't be changed after this 
configuration.
+See the section <<config-changes>> for more information.
+
+You can freely edit any of the options in the key `controllers_cfg.yaml` 
entry. The table bellow lists each possible entry.
+
+.Description of Global Configuration
+[cols="1,1,2"]
+|===
+|Configuration Key | Default Value | Description
+
+| `defaultPvcKanikoSize` | 1Gi | The default size of Kaniko PVC when using the 
internal operator builder manager.
+| `healthFailureThresholdDevMode` | 50 | How much time (in seconds) to wait 
for a devmode workflow to start. This information is used for the controller 
manager to create new devmode containers and setup the healthcheck probes.
+| `kanikoDefaultWarmerImageTag` | gcr.io/kaniko-project/warmer:v1.9.0 | 
Default image used internally by the Operator Managed Kaniko builder to create 
the warmup pods.
+| `kanikoExecutorImageTag` | gcr.io/kaniko-project/executor:v1.9.0 | Default 
image used internally by the Operator Managed Kaniko builder to create the 
executor pods.
+| `jobsServicePostgreSQLImageTag` | empty | The Jobs Service image for 
PostgreSQL to use, if empty the operator will use the default Apache Community 
one based on the current operator's version.
+| `jobsServiceEphemeralImageTag` | empty | The Jobs Service image without 
persistence to use, if empty the operator will use the default Apache Community 
one based on the current operator's version.
+| `dataIndexPostgreSQLImageTag` | empty | The Data Index image for PostgreSQL 
to use, if empty the operator will use the default Apache Community one based 
on the current operator's version.
+| `dataIndexEphemeralTag` | empty | The Data Index image without persistence 
to use, if empty the operator will use the default Apache Community one based 
on the current operator's version.
+| `sonataFlowBaseBuilderImageTag` | empty | {product_name} base builder image 
used in the internal Dockerfile to build workflow applications in preview 
profile. If empty the operator will use the default Apache Community one based 
on the current operator's version.
+| `sonataFlowDevModeImageTag` | empty | The image to use to deploy 
{product_name} workflow images in devmode profile. If empty the operator will 
use the default Apache Community one based on the current operator's version.
+
+|===
+
+To edit this file, update the ConfigMap 
`sonataflow-operator-controllers-config` using your preferred tool such as 
`kubectl`.
+
+[#config-changes]
+== Configuration Changes Impact
+
+When updating the global configuration, the changes will be taken impact 
immediately for *newly* created resources only.
+For example, if you change `sonataFlowDevModeImageTag` property, given that 
you already have a workflow deployed in _devmode_, the operator won't rollout a 
new one with the new image configuration. Only new deployments will be affected.
+
+== A Note About the Base Builder Image
+
+As noted in 
xref:cloud/operator/build-and-deploy-workflows.adoc#changing-base-builder[Changing
 Base Builder] section, you can directly change the base builder image in the 
Dockerfile used by the {operator_name}.
+
+Additionally, you can also change the base builder image in the 
`SonataFlowPlatform` in the current namespace:
+
+.Example of SonataFlowPlatform with a custom base builder
+[source,yaml,subs="attributes+"]
+----
+apiVersion: sonataflow.org/v1alpha08
+kind: SonataFlowPlatform
+metadata:
+  name: sonataflow-platform
+spec:
+  build:
+    config:
+        baseImage: dev.local/my-workflow-builder:1.0.0
+----
+
+And finally, you can also change this information directly in the global 
confinguration ConfigMap
+
+.Example of ConfigMap global configuration with a custom base builder
+[source,yaml,subs="attributes+"]
+----
+apiVersion: v1
+data:
+  controllers_cfg.yaml: |
+    sonataFlowBaseBuilderImageTag: dev.local/my-workflow-builder:1.0.0
+kind: ConfigMap
+metadata:
+  name: sonataflow-operator-controllers-config
+  namespace: sonataflow-operator-system
+----
+
+The order of precedence is:
+
+1. The `SonataFlowPlatform` in the current context
+2. The global configuration entry
+3. The `FROM` clause in the Dockerfile in the operator's namespace 
`sonataflow-operator-builder-config` ConfigMap
+
+In summary, the entry in `SonataFlowPlatform` will always override any other 
value.
+
+== Additional resources
+
+* xref:cloud/operator/known-issues.adoc[]
+* xref:cloud/operator/developing-workflows.adoc[]
+* xref:cloud/operator/global-configuration.adoc[]
+
+include::../../../pages/_common-content/report-issue.adoc[]
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to