Skip to content
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

Cross Site - Gossip Router tunnel support #1201

Merged
merged 1 commit into from Oct 6, 2021

Conversation

pruivo
Copy link
Member

@pruivo pruivo commented Jul 21, 2021

Adds support to use JGroups' TUNNEL protocol with GossipRouter pods.
It uses the JGroups JAR inside the server image to avoid depending on another image.

PR is open to get feedback sooner than later. No rush to integrate yet.

TODO:

  • Create an entry point in the server image (avoid doing "java -jar ...")
  • Handle server image upgrades (?)
  • Add Gossip Router pod condition to Infinispan CR
  • Add readiness & liveness probes

@pruivo
Copy link
Member Author

pruivo commented Sep 27, 2021

@pruivo pruivo force-pushed the t_xsite_tunnel branch 2 times, most recently from 265ad36 to 64ae91c Compare September 29, 2021 08:31
@pruivo pruivo marked this pull request as ready for review September 29, 2021 08:38
@dmvolod
Copy link
Member

dmvolod commented Sep 29, 2021

Also we need to watch Deployment resources to catch unpredictable resource remove/delete/update

@pruivo
Copy link
Member Author

pruivo commented Sep 29, 2021

Also we need to watch Deployment resources to catch unpredictable resource remove/delete/update

I wasn't aware of that. Is there any example in the code?

@dmvolod
Copy link
Member

dmvolod commented Sep 29, 2021

I wasn't aware of that. Is there any example in the code?

You should add appsv1.Deployment to the secondaryResourceTypes list

secondaryResourceTypes := []client.Object{&appsv1.StatefulSet{}, &corev1.ConfigMap{}, &corev1.Secret{}}

controllers/xsite.go Outdated Show resolved Hide resolved
@pruivo
Copy link
Member Author

pruivo commented Sep 29, 2021

updated the code to use controllerutil.CreateOrUpdate().

Also, just crossed my mind, I should add some readiness and liveness probes to GossipRouter pod.

@pruivo
Copy link
Member Author

pruivo commented Sep 29, 2021

code updated.
Added probes
Added condition "GossipRouterReady" example

Status:
  Conditions:
    Status:   True
    Type:     PreliminaryChecksPassed
    Status:   True
    Type:     GossipRouterReady
    Message:  View: test-cross-site-view-internal-xsite2-0-63738
    Status:   True
    Type:     WellFormed
    Message:  Cross-Site view: xsite1,xsite2
    Status:   True
    Type:     CrossSiteViewFormed

@pruivo
Copy link
Member Author

pruivo commented Oct 1, 2021

updated.
Added: shutting down the GossipRouter pod (set Deployment.Spec.Replicas=0) if Infinispan.Spec.Replicas == 0

controllers/xsite.go Outdated Show resolved Hide resolved
controllers/xsite.go Outdated Show resolved Hide resolved
controllers/xsite.go Outdated Show resolved Hide resolved
Using Gossip Router and TUNNEL transport for cross-site replication
between Infinispan clusters
@ryanemerson
Copy link
Contributor

If you're happy with the changes @dmvolod I will merge

@dmvolod
Copy link
Member

dmvolod commented Oct 6, 2021

If you're happy with the changes @dmvolod I will merge

Yes, @ryanemerson looks good, thanks
Also Rolling Upgrade PR need to be adopted for GossipRouter deployment if it will be supported

@ryanemerson ryanemerson merged commit 533e042 into infinispan:main Oct 6, 2021
@ryanemerson
Copy link
Contributor

Thanks @pruivo

@pruivo pruivo deleted the t_xsite_tunnel branch October 6, 2021 15:19
@ryanemerson
Copy link
Contributor

Also Rolling Upgrade PR need to be adopted for GossipRouter deployment if it will be supported

Good point @dmvolod. FYI @gustavonalle

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants