flink-kubernetes-operator
flink-kubernetes-operator copied to clipboard
[FLINK-33634] Add Conditions to Flink CRD's Status field
What is the purpose of the change
This PR is for issue https://issues.apache.org/jira/browse/FLINK-33634 to add Conditions field in the CR status of Flink Deployment and FlinkSessionJob.
Brief change log
- Created a new class CommonCRStatus to build different Conditions with type and status. This reusable class can be used to build CR condition of type Ready or Error conditions based on jobmanager status and job status.
- FlinkDeploymentStatus is updated to add list of Condition
- FlinkDeploymentController is updated to add Conditions to FlinkDeploymentStatus based on JobManagerDeploymentStatus. Following JobManagerDeploymentStatus are considerd to add conditions status to CR. READY DEPLOYED_NOT_READY DEPLOYING ERROR
- FlinkSessionJobStatus is updated to add list of Condition
- FlinkSessionJobController is updated to add Conditions to FlinkSessionJobStatus based on JobStatus. Following JobStatus are considered to add conditions status to CR RUNNING CREATED CANCELED FAILED
- FlinkDeploymentControllerTest and FlinkSessionJobControllerTest are modified to test the Status update with conditions.
Verifying this change
This change is already covered by existing tests, such as FlinkDeploymentControllerTest and FlinkSessionJobControllerTest
Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): (yes / no) no
- The public API, i.e., is any changes to the
CustomResourceDescriptors: (yes / no) yes - Core observer or reconciler logic that is regularly executed: (yes / no) yes
Documentation
- Does this pull request introduce a new feature? (yes / no) yes
- If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented) docs
Pushed the changes for re review.
@lajith2006 @tagarr I have been contemplating about this after reviewing the code and also read a bit more on the topic here: https://maelvls.dev/kubernetes-conditions/
To be honest I am not sure whether the current simplistic approach for representing a single status part (JobManagerDeplyomentStats / ResourceLifecycleState) makes too much sense. It doesn't really follow the semantics laid out by other Kubernetes resources like pod conditions etc.
I think it would make sense to open a FLIP and properly design the conditions that we should represent instead of just adding this feature to "tick a box"
@gyfora do you want me to open a FLIP for this?.
@gyfora do you want me to open a FLIP for this?.
I think we need a FLIP with the design of the conditions yes. So that the community can discuss and vote on it as I said previously.
Sure, I will open FLIP with design.
Hi @gyfora I was referring the page https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals to open a FLIP with all details of what should be there in FLIP . But what I was trying to understand was that how to login to open FLIP, I guess as per the page https://cwiki.apache.org/confluence/display/FLINK/General+Information+for+Committers , we need to have apache id to login and create FLIP template?. Could you please let me know steps or any document I can refer to get into FLIP template to Open FLIP. Thank you in advance.
@lajith2006 do you already have a Jira account?
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
account name : lajithk
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
account name : lajithk
It seems like you need to create a confluence account (cwiki.apache.org) once you have that I can give you permissions to create a FLIP page
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
account name : lajithk
It seems like you need to create a confluence account (cwiki.apache.org) once you have that I can give you permissions to create a FLIP page
I have been checking on to create confluence account , https://cwiki.apache.org/confluence , it says for register go to Log in page, but don't see any option to register there in login page. On further digging noticed some thing like https://cwiki.apache.org/confluence/display/DIRxTRIPLESEC/User+Registration . Is that something I have to follow up ?. or are there any path I can look for registration?.
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
account name : lajithk
It seems like you need to create a confluence account (cwiki.apache.org) once you have that I can give you permissions to create a FLIP page
I have been checking on to create confluence account , https://cwiki.apache.org/confluence , it says for register go to Log in page, but don't see any option to register there in login page. On further digging noticed some thing like https://cwiki.apache.org/confluence/display/DIRxTRIPLESEC/User+Registration . Is that something I have to follow up ?. or are there any path I can look for registration?.
@gyfora , Could you please point me anyone I can reach out to get assistance on helping to get account created in https://cwiki.apache.org/confluence?. Thank you in advance.
@gyfora yes, I am having JIRA account using which I can login to https://issues.apache.org/jira/projects/FLINK/.
okay then can you please tell me the account name? :D
account name : lajithk
It seems like you need to create a confluence account (cwiki.apache.org) once you have that I can give you permissions to create a FLIP page
I have been checking on to create confluence account , https://cwiki.apache.org/confluence , it says for register go to Log in page, but don't see any option to register there in login page. On further digging noticed some thing like https://cwiki.apache.org/confluence/display/DIRxTRIPLESEC/User+Registration . Is that something I have to follow up ?. or are there any path I can look for registration?.
@gyfora , Could you please point me anyone I can reach out to get assistance on helping to get account created in https://cwiki.apache.org/confluence?. Thank you in advance.
Seems like confluence access for non-committers have been recently disabled. Based on a recent discussion we are adopting a new (somewhat simpler) process for new FLIPS: https://lists.apache.org/thread/rkpvlnwj9gv1hvx1dyklx6k88qpnvk2t
Contributors create a Google Doc and make that view-only, and post that Google Doc to the mailing list for a discussion thread.
When the discussions have been resolved, the contributor ask on the Dev mailing list to a committer/PMC to copy the contents from the Google Doc, and create a FLIP number for them.
The contributor can then use that FLIP to actually have a VOTE thread.
I am closing this old PR , as we will have new implementation with respect to FLIP 493.
@lajith2006 please update the Jira to remove the link to this PR and add in the link to the new PR, thanks.