commit | 50b04297e25f1303edc2d006774662744832d596 | [log] [tgz] |
---|---|---|
author | Jenkins CI <noreply@redhat.com> | Wed May 17 09:20:34 2023 -0400 |
committer | Jenkins CI <noreply@redhat.com> | Wed May 17 09:20:34 2023 -0400 |
tree | 9ba716bb60d818783c9cfec797e38efa3384fff5 | |
parent | e517d0889b71612a9c5cc66f1dd5106bd0781237 [diff] |
[1.38.x] Update snapshot version to 1.38.1-snapshot Committed by build jenkins-KIE-kogito-1.38.x-release-kogito-serverless-operator-promote-1: https://eng-jenkins-csb-business-automation.apps.ocp-c1.prod.psi.redhat.com/job/KIE/job/kogito/job/1.38.x/job/release/job/kogito-serverless-operator-promote/1/
The Kogito Serverless Operator is built in order to help the Kogito Serverless users to build and deploy easily on Kubernetes/Knative/OpenShift a service based on Kogito that will be able to execute a workflow.
The CustomResources defined and managed by this operator are the following:
You’ll need a Kubernetes cluster to run against. You can use:
to get a local cluster for testing, or run against a remote cluster.
Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info
shows).
minikube start --cpus 4 --memory 4096 --addons registry --addons metrics-server --insecure-registry "10.0.0.0/24" --insecure-registry "localhost:5000"
Note: To speed up, you can increase cpus and memory options. For example, use --cpus 12 --memory 16384
.
Tip: If it does work with the default driver, aka docker
, you can try to start with the podman
driver:
minikube start [...] --driver podman
Important: There are some issues with the crio
container runtime and Kaniko that the operator is using. Reference: https://github.com/GoogleContainerTools/kaniko/issues/2201
make install
IMG
:make docker-build docker-push IMG=<some-registry>/kogito-serverless-operator:tag
IMG
:make deploy IMG=<some-registry>/kogito-serverless-operator:tag
This will deploy the operator into the kogito-serverless-operator-system
namespace.
A good starting point to check that everything is working well, it is the Greeting workflow.
Follow these steps to create a container that you can than deploy as a Service on Kubernetes or KNative.
kubectl create namespace kogito-workflows
kubectl create secret docker-registry regcred --docker-server=<registry_url> --docker-username=<registry_username> --docker-password=<registry_password> --docker-email=<registry_email> -n kogito-workflows
or you directly import your local docker config into your kubernetes cluster:
kubectl create secret generic regcred --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson -n kogito-workflows
You can find a basic Platform CR example in the config folder.
kubectl apply -f config/samples/sw.kogito_v1alpha08_kogitoserverlessplatform.yaml -n kogito-workflows
Note: In this Custom Resource, spec.platform.registry.secret
is the name of the secret you created just before.
Tip: You can also update “on-the-fly” the platform CR registry field with this command (change <YOUR_REGISTRY>
):
cat config/samples/sw.kogito_v1alpha08_kogitoserverlessplatform.yaml | sed "s|address: .*|address: <YOUR_REGISTRY>|g" | kubectl apply -n kogito-workflows -f -
kubectl apply -f config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml -n kogito-workflows
kubectl logs kogito-greeting-builder -n kogito-workflows
The final pushed image should be printed into the logs at the end of the build.
You will need to remove the different resources you created.
kubectl delete -f config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow.yaml -n kogito-workflows
kogito-workflows
namespacekubectl delete namespace kogito-workflows
make undeploy
In the development mode, a user can edit and reload the files using the quarkus dev mode. To enable the dev mode add this annotation into the KogitoServerlessWorkflow CR:
sw.kogito.kie.org/profile: dev
In development mode, different external files can be edited.
Each file type should be saved into a different configmap.
In order to be able to edit a file via a configmap, you must set up an annotation in your KogitoServerlessWorkflow CR which reference the specific configmap which is already existing into the namespace.
Then, each annotation entry will be turned into a file inside the path src/main/resources/<File type specific folder>
and using the key as the filename. See the table below for the supported types and the corresponding annotations and folder paths.
File type | Annotation | Folder path |
---|---|---|
CamelRoute | sw.kogito.kie.org/resource-camel | src/main/resources/routes |
AsyncApi | sw.kogito.kie.org/resource-openapi | src/main/resources/templates |
OpenApi | sw.kogito.kie.org/resource-asyncapi | src/main/resources/specs |
Generic | sw.kogito.kie.org/resource-generic | src/main/resources/generic |
You could see an example of configmap and a workflow with one of this annotation in the file
https://github.com/kiegroup/kogito-serverless-operator/tree/main/config/samples/sw.kogito_v1alpha08_kogitoserverlessworkflow_devmodeWithConfigMapAndExternalResource.yaml:
By default the builder image use a stable version aligned to the Kogito version.
In the dev mode you can override the default builder image using the devBaseImage in the KogitoServerlessPlatform:
apiVersion: sw.kogito.kie.org/v1alpha08 kind: KogitoServerlessPlatform metadata: name: kogito-workflow-platform spec: cluster: kubernetes devBaseImage: quay.io/<your_org>/<your-swf-builder> platform: registry: address: quay.io/kiegroup secret: regcred
You can find some scripts in the hack folder.
greeting_example_deploy.sh
will install operator and deploy all resources in your current clustergreeting_example_remove.sh
will remove the created workflow resource from greeting_example_deploy.sh
script.-A
or --all
option, it will also remove the operator from the cluster.Setup a pipeline on a Openshift cluster.
Contributing is easy, just take a look at our contributors'guide.