-
Notifications
You must be signed in to change notification settings - Fork 42
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-9972] Add SonataFlowClusterPlatform CRD & Controller #345
Conversation
dadfac1
to
1ea6a88
Compare
1ea6a88
to
add4de1
Compare
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.
Looks great! I've added a few non-critical comments. Many thanks!
Let me see if I understand this:
Questions:
I find strange that the services spec in a platform CR can be either a reference to platforms that are configured to inherit from the cluster platform, or just consumers, depending on the information of a CR. |
@tchughesiv I remember that we discussed this possibility and it was deferred to preserve the namespace information. I'll review the ADR again, 'cause I don't remember if we talked about it in the chat or doc. I want to refresh/review why we tabled this to avoid back-to-back discussions on a topic that's supposed to be tabled. |
we discussed this in chat, i'll add to ADR though under |
@jordigilh Nothing about how service deployments are handled is being changed w/ this PR. This PR is all about allowing workflows to communicate with a defined set of "central" services. The I'll address your other questions and comments shortly |
@jordigilh I've also added these notes to the ADR. Here are some reasons why that approach sounds nice, but is problematic.
By simply adding a reference to an active |
Yes it will reconcile all platforms. But no, it will not delete their service specs. It WILL delete the
In the above example, the "sonataflow-platform" Please define what you mean by "just consumers" here. It's important we allow the user the ability to decide whether they want to use the cluster-wide services, or override by defining their own within their namespace. |
@jordigilh thanks for the extensive review! i've done my best to answer your Qs or explain design choices. i've implemented a few of your suggestion. there are a couple i need to think about a bit more and some others requiring @ricardozanini's input. |
517e7d6
to
baf7bc5
Compare
@tchughesiv LGTM. I can't mark the comments as resolved, just replied as |
baf7bc5
to
3c7740a
Compare
33bd7b3
to
81e1e83
Compare
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 have left some comments.
Thanks @tchughesiv for the response. |
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 leave the runtime testing to QE to not block this PR from my side.
We are waiting for QE review to merge this one. @domhanak |
cefb2fd
to
03729dd
Compare
Signed-off-by: Tommy Hughes <[email protected]>
Signed-off-by: Tommy Hughes <[email protected]>
Signed-off-by: Tommy Hughes <[email protected]>
03729dd
to
8c07c60
Compare
) * SonataFlowClusterPlatform CRD & Controller Signed-off-by: Tommy Hughes <[email protected]> * service constants cleanup Signed-off-by: Tommy Hughes <[email protected]> * clusterplatform api descrip change Signed-off-by: Tommy Hughes <[email protected]> --------- Signed-off-by: Tommy Hughes <[email protected]>
Description of the change:
Create a new cluster-scoped SonataFlowClusterPlatform CRD which is optionally used to specify a cluster-wide set of services for workflow consumption. This is done by referencing an existing, namespaced SonataFlowPlatform resource... thus leveraging its existing service deployment capabilities, and making its services available to workflows in the entire cluster.
With this change workflows cluster-wide will be able to leverage supporting services in a "central" namespace.
Example of an active
SonataFlowClusterPlatform
CR -Example of an active
SonataFlowPlatform
CR which is leveraging the cluster-scoped services defined in the aboveSonataFlowClusterPlatform
. Workflows in thistest
namespace will leverage services in thecentral-platform-ns
namespace -Example of an active
SonataFlowPlatform
CR which is overriding the cluster-scoped services defined in the aboveSonataFlowClusterPlatform
. Workflows in thistest2
namespace will not leverage services in thecentral-platform-ns
namespace. These workflows will, instead, use any locally deployed services that might be configured -Motivation for the change:
The current Sonataflow Operator implementation will only configure workflows to use supporting services, like Data Index & Job Service, within the same deployed namespace. While there is a manual step one could take to leverage "central" infra/services by modifying a workflow’s configuration post-deployment, this is not scalable or manageable. The operator should support handling service(s) deployment at the cluster scope as well.
Checklist
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.