openyurtio / openyurt

OpenYurt - Extending your native Kubernetes to edge(project under CNCF)

Home Page:https://openyurt.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[BUG] the controller on edge node can not list same path but with different selector when edge node is offline

windnod opened this issue · comments

What happened:
the CanCacheFor() method filters out requests with the same path but different selector, so the controller on edge node can not list same path but with different selector when edge node is offline.

What you expected to happen:
YurtHub is capable of correctly proxying requests that have the same path but different selectors when edge node is offline.

Anything else we need to know?:

Environment:

  • OpenYurt version:
  • Kubernetes version (use kubectl version):
  • OS (e.g: cat /etc/os-release):
  • Kernel (e.g. uname -a):
  • Install tools:
  • Others:

others

/kind bug

@windnod Thank you for raising the issue. the reason that yurthub can not support different list requests is:

  1. different list requests maybe get different responses from kube-apiserver, this means the latter response of list request will overwrite the previous response of another list request.
  2. list from cache will return all objects for this different list requests, i think this can not satisfy the needs for list request.

based on the above explanation, we can not solve this problem by modifying the CanCacheFor function.

and we have discussed this case in the community, and @JameKeal have raised a proposal to solve this problem, the proposal link is here: #1614

but i think @JameKeal maybe has not enough time to implement this proposal. If you are interested in this case, we can have a discussion on the community meeting.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.