-
Notifications
You must be signed in to change notification settings - Fork 828
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
Do we need to change the method from UpdateStatus
to Update
?
#3551
Comments
A good summary of the problems. IMOP, for the resource interpreter, it deals with the status part of the resource, and the status is a subresource. If a CRD resource does not have a subresource, the interpreter cannot process it. Even though the resource has a field name status, it is not technically the other status. However, if strict requirements are met, some resource that do not have the status subresource cannot collect the status part, as analyzed in the example. Therefore, I think we should ask users to define resources correctly, and push the upstream community to modify the resources mentioned in the issue description. |
Thanks for replying! |
Until we solve this problem, I feel that we can use this issue to track the problem, so keep it open will be ok. |
As a lack of activity, let's close this first, feel free to reopen it if you still need it. |
@XiShanYongYe-Chang: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Please provide an in-depth description of the question you have:
When I bundle third-party resources into the Resource Interpreter framework and write
ResourceInterpreterCustomization
forargoproj.io/v1alpha1/Workflow
, I find that the.status
ofworkflow sample
which I propagate from karmada to member cluster can't be updated.The logs of
karmada-controller-manager
show thatFailed to update resource(argoproj.io/v1alpha1, Resource=workflows/test-workflow/sample), Error: workflows.argoproj.io "sample" not found
. refThis is because the
.status
ofworkflow
is not a subresource. And syncBindingStatus -> updateResourceStatus can't update the.status
ofworkflow
bydynamicClient.Resource(gvr).Namespace(resource.GetNamespace()).UpdateStatus(context.TODO(), newObj, metav1.UpdateOptions{})
.refIf we change method from
dynamicClient.Resource(gvr).Namespace(resource.GetNamespace()).UpdateStatus(context.TODO(), newObj, metav1.UpdateOptions{})
todynamicClient.Resource(gvr).Namespace(resource.GetNamespace()).Update(context.TODO(), newObj, metav1.UpdateOptions{})
, the.status
ofworkflow
can be updated successfully.What do you think about this question?:
There may also be other resources whose
status
is not a subresource.To update the
status
successfully fromresourceBinding
, we need to change the CRD of resources which doesn't supportstatus subresource
inkarmada-control-plane
to make it supportstatus subresource
, or change the method of updateResourceStatus to update the status.Environment:
The text was updated successfully, but these errors were encountered: