meshery-operator icon indicating copy to clipboard operation
meshery-operator copied to clipboard

Meshery Operator to watch Broker custom resource for changes to Endpoint location

Open leecalcote opened this issue 2 years ago β€’ 9 comments

Current Behavior

Meshery Server connects to Meshery Broker by way of the information contained in the broker custom resource, specifically, the IP / hostname contained in the Endpoint section.

...
....
Status:
  Endpoint:
    External:  localhost:4222
    Internal:  10.96.168.204:4222
Events:        <none>

Desired Behavior

When this endpoint location changes, Meshery Server learns of it and updates the location it connects to.

Implementation

  1. Ideally, Meshery Operator informs Meshery Server of this change (pushes the change), so that this is an event-based flow.2.
  2. If this isn't feasible, users should be able to manually have Meshery Server refresh this information. Let's avoid period polling initially as it only brings in more concerns.

Acceptance Tests

  1. Users can update networking of their broker, update the endpoint location in their custom resource, and then have Meshery Server refresh the endpoint location information. Then, establish a new subscription to the MeshSync topic.2.

Mockups

See Meshery Architecture deck for sequence diagrams.


Contributor Guides and Resources

leecalcote avatar Jul 20 '22 22:07 leecalcote

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.

stale[bot] avatar Sep 04 '22 07:09 stale[bot]

@leecalcote I would like to work on this issue. Can you give me some pointer on this?

siddhikhapare avatar Jan 04 '23 10:01 siddhikhapare

Bump

I noticed this happening, and I am researching to see how to make this better.

acald-creator avatar Feb 24 '23 14:02 acald-creator

@leecalcote can i take this issue?

rohan472000 avatar Feb 28 '23 09:02 rohan472000

@rohan472000, yes, please propose a solution so that your approach can be vetted before you spend time implementing.

leecalcote avatar Feb 28 '23 13:02 leecalcote

@leecalcote we can implement a watch on the custom resource, which tracks changes to the endpoint location, the meshery operator can trigger this watch, which will notify Meshery Server of any changes to the endpoint location.

or

we can provide a manual refresh option to Meshery Server, this option will allow users to update the endpoint location information by triggering a refresh action. Once the endpoint location changes, Meshery Server should establish a new connection to the updated location.

or

we can use API based approach, that Meshery Server can use to retrieve the current endpoint location. Whenever the endpoint location changes, the API can return the updated information to Meshery Server. Server can call this API periodically to fetch endpoint location.

rohan472000 avatar Feb 28 '23 17:02 rohan472000

Hey @leecalcote and @acald-creator, is this issue still relevant ?

i-dipanshu avatar Sep 19 '23 08:09 i-dipanshu

@i-dipanshu yes it is.

leecalcote avatar Sep 19 '23 15:09 leecalcote

Thank you, @leecalcote , for the update on the issue. I've started my research to understand and resolve it. While I have experience with few other Kubernetes operators, Meshery operator is new to me. Any specific insights to help resolve this issue would be appreciated.

i-dipanshu avatar Sep 20 '23 03:09 i-dipanshu