-
Notifications
You must be signed in to change notification settings - Fork 380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KOGITO-9412: Create the serverless-workflow-timeouts-showcase for the Operator Dev Mode #1696
Conversation
… Operator Dev Mode - Initial version
(tests) - serverless-workflow-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT= NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: Build projects / org.kie.kogito.examples.TimeoutIT.testWorkflow1 expectation failed.Expected status code <201> but was <404>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool! Thanks for this example. This Java app is just a client app for testing the workflows, right? Theoretically, I could use only the YAML files + the operator to run the example.
@@ -0,0 +1,67 @@ | |||
apiVersion: sw.kogito.kie.org/v1alpha08 | |||
kind: KogitoServerlessWorkflow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you change the types, please? See: https://github.com/kiegroup/kogito-serverless-operator/blob/main/config/samples/sonataflow.org_v1alpha08_sonataflow.yaml#L1-L2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch! fixed, thanks
@@ -0,0 +1,16 @@ | |||
# Local dns service names in the format <serviceName>.<namespaceName>.svc.cluster.local are ok for this example UI, | |||
# since invocations to the SWs occurs withing the cluster by design. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# since invocations to the SWs occurs withing the cluster by design. | |
# since invocations to the SWs occur within the cluster by design. |
quarkus.rest-client.callback_state_timeouts.url=http://callbackstatetimeouts.timeouts-showcase.svc.cluster.local | ||
quarkus.rest-client.switch_state_timeouts.url=http://switchstatetimeouts.timeouts-showcase.svc.cluster.local | ||
quarkus.rest-client.event_state_timeouts.url=http://eventstatetimeouts.timeouts-showcase.svc.cluster.local | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe use service discovery here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Y can give it a try..., but this UI is a completely standalone web app, has no workflows, and no references to kogito.
I'm not sure if the kogito-addons-quarkus-fabric8-kubernetes-service-catalog is something completelly standalone or brings in other kogito specific struff. It' looks like it brings in
[INFO] +- org.kie.kogito:kogito-addons-kubernetes:jar:2.0.0-SNAPSHOT:compile
[INFO] | +- org.kie.kogito:kogito-api:jar:2.0.0-SNAPSHOT:compile
[INFO] | | +- org.kie:kie-api:jar:8.40.0-SNAPSHOT:compile
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IDK, not sure if the resolution is picked up in a standalone project.
if I set, for instance:
quarkus.rest-client.event_state_timeouts.url=kubernetes:services.v1/timeouts-showcase/eventstatetimeouts
it fails:
Caused by: java.lang.IllegalArgumentException: The value of URL was invalid kubernetes:services.v1/timeouts-showcase/eventstatetimeouts
at io.quarkus.restclient.runtime.RestClientBase.configureBaseUrl(RestClientBase.java:329)
at io.quarkus.restclient.runtime.RestClientBase.configureBuilder(RestClientBase.java:71)
at io.quarkus.restclient.runtime.RestClientBase.create(RestClientBase.java:60)
at org.kie.kogito.examples.EventStateTimeoutsClient_5b4fc5498d96220d9adc052558a924600948ef05_Synthetic_Bean.create(Unknown Source)
at org.kie.kogito.examples.EventStateTimeoutsClient_5b4fc5498d96220d9adc052558a924600948ef05_Synthetic_Bean.get(Unknown Source)
at org.kie.kogito.examples.EventStateTimeoutsClient_5b4fc5498d96220d9adc052558a924600948ef05_Synthetic_Bean.get(Unknown Source)
at io.quarkus.arc.impl.CurrentInjectionPointProvider.get(CurrentInjectionPointProvider.java:62)
... 33 more
Caused by: java.net.MalformedURLException: unknown protocol: kubernetes
at java.base/java.net.URL.(URL.java:652)
If I set:
quarkus.rest-client.event_state_timeouts.url=services.v1/timeouts-showcase/eventstatetimeouts
it fails too:
Caused by: java.net.MalformedURLException: no protocol: services.v1/timeouts-showcase/eventstatetimeouts
at java.base/java.net.URL.(URL.java:645)
at java.base/java.net.URL.(URL.java:541)
IDK, I couldn't make it work even by adding the following deps to the project;
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>kogito-quarkus-serverless-workflow</artifactId>
</dependency>
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>kogito-addons-quarkus-knative-eventing</artifactId>
</dependency>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm maybe adding the fabric8 discovery catalog? @hbelmiro cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it will work in a standalone application.
Yes, this is correct. The UI is a kind of helper component to facilitate to play with the workflows. And comes at the end of the Readme, with an explanation. In general the example starts by showing all that the operator provides first. But yeah, there are room for improvements. Id want to have a "start" point, and review the SW guide dedicated to the timeouts, as part of this process I don't discard improvements in the example too. |
(tests) - kogito-springboot-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT= NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: org.kie.kogito.examples.PmmlEventDrivenIT.testModelRegressionFullResultAssertion condition defined as a lambda expression in org.kie.kogito.examples.PmmlEventDrivenIT null within 15 seconds. |
(tests) - kogito-quarkus-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT=-Dvalidate-formatting NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: Build projects / org.acme.deals.DealsRestIT.testDealsRestjava.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors[error]: Build step io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor#launchDatabases threw an exception: java.lang.RuntimeException: org.testcontainers.containers.ContainerLaunchException: Container startup failed at io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor.startDevDb(DevServicesDatasourceProcessor.java:345) at io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor.launchDatabases(DevServicesDatasourceProcessor.java:136) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:909) at io.quarkus.builder.BuildContext.run(BuildContext.java:281) at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) at java.base/java.lang.Thread.run(Thread.java:829) at org.jboss.threads.JBossThread.run(JBossThread.java:501) Caused by: org.testcontainers.containers.ContainerLaunchException: Container startup failed at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:349) at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:322) at io.quarkus.devservices.postgresql.deployment.PostgresqlDevServicesProcessor$1.startDatabase(PostgresqlDevServicesProcessor.java:65) at io.quarkus.datasource.deployment.devservices.DevServicesDatasourceProcessor.startDevDb(DevServicesDatasourceProcessor.java:282) ... 12 more Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88) at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:334) ... 15 more Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:542) at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:344) at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81) ... 16 more Caused by: org.testcontainers.containers.ContainerLaunchException: Timed out waiting for log output matching '.*database system is ready to accept connections.*\s' at org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy.waitUntilReady(LogMessageWaitStrategy.java:47) at org.testcontainers.containers.wait.strategy.AbstractWaitStrategy.waitUntilReady(AbstractWaitStrategy.java:52) at org.testcontainers.containers.PostgreSQLContainer.waitUntilContainerStarted(PostgreSQLContainer.java:143) at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:485) ... 18 more |
(tests) - serverless-workflow-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT= NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: Build projects / org.kie.kogito.examples.TimeoutIT.testWorkflow1 expectation failed.Expected status code <201> but was <404>. |
(tests) - serverless-workflow-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT= NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: Build projects / org.kie.kogito.examples.TimeoutIT.testWorkflow1 expectation failed.Expected status code <201> but was <404>. |
(tests) - serverless-workflow-examples job Reproducerexport BUILD_MVN_OPTS_CURRENT= NOTE: To install the build-chain tool, please refer to https://github.com/kiegroup/github-action-build-chain#local-execution Test results:
Those are the test failures: Build projects / org.kie.kogito.examples.TimeoutIT.testWorkflow1 expectation failed.Expected status code <201> but was <404>. |
Many thanks for submitting your Pull Request ❤️!
Please make sure that your PR meets the following requirements:
WARNING! Please make sure you are opening your PR against
main
branch!KOGITO-XYZ Subject
[0.9.x] KOGITO-XYZ Subject
How to replicate CI configuration locally?
Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use build-chain tool to handle cross repository builds and be sure that we always use latest version of the code for each repository.
build-chain tool is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See local execution details to get more information about it.
How to retest this PR or trigger a specific build:
for pull request checks
Please add comment: Jenkins retest this
for a specific pull request check
Please add comment: Jenkins (re)run [kogito-examples] tests
for quarkus branch checks
Run checks against Quarkus current used branch
Please add comment: Jenkins run quarkus-branch
for a quarkus branch specific check
Run checks against Quarkus current used branch
Please add comment: Jenkins (re)run [kogito-examples] quarkus-branch
for quarkus main checks
Run checks against Quarkus main branch
Please add comment: Jenkins run quarkus-main
for a specific quarkus main check
Run checks against Quarkus main branch
Please add comment: Jenkins (re)run [kogito-examples] quarkus-main
for quarkus lts checks
Run checks against Quarkus lts branch
Please add comment: Jenkins run quarkus-lts
for a specific quarkus lts check
Run checks against Quarkus lts branch
Please add comment: Jenkins (re)run [kogito-examples] quarkus-lts
for native checks
Run native checks
Please add comment: Jenkins run native
for a specific native check
Run native checks
Please add comment: Jenkins (re)run [kogito-examples] native
for native lts checks
Run native checks against quarkus lts branch
Please add comment: Jenkins run native-lts
for a specific native lts check
Run native checks against quarkus lts branch
Please add comment: Jenkins (re)run [kogito-examples] native-lts
How to backport a pull request to a different branch?
In order to automatically create a backporting pull request please add one or more labels having the following format
backport-<branch-name>
, where<branch-name>
is the name of the branch where the pull request must be backported to (e.g.,backport-7.67.x
to backport the original PR to the7.67.x
branch).Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.