[
https://issues.apache.org/jira/browse/CAMEL-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118184#comment-16118184
]
ASF GitHub Bot commented on CAMEL-11331:
GitHub user nicolaferraro opened a pull request:
https://github.com/apache/camel/pull/1877
CAMEL-11331: Kubernetes Cluster Service
I'm adding a new Camel Cluster Service based on the fabric8-master
component.
I've changed a bit the algorithm to take into account many possible
scenario that can happen in a Kubernetes/Openshift cluster, e.g.:
- Not using websocket-based watches because they are unreliable in case of
network instability
- Adding lease time to shut down automatically routes in pods that are
isolated because of network partitions
- Using a proper lock mechanism when updating the shared configmap to avoid
having multiple leaders at the same time
I've done some changes and refactored the default configuration in order to
use the "current cluster" when no master URL is provided. This should have no
effect in normal route endpoints since the master URL is mandatory.
The cluster service can work oob without special configuration (just create
a new instance and add to the Camel context). Running it on Openshift require
"edit" privileges on the ServiceAccount that is running the pod.
I've added examples and tests for common failure scenarios.
Can you have a look @oscerd and @lburgazzoli?
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/nicolaferraro/camel CAMEL-11331-v4
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/camel/pull/1877.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1877
commit 43265d2a39b916f98d6fe96335ac8b56a9e3f4fc
Author: Nicola Ferraro
Date: 2017-06-30T15:42:33Z
CAMEL-11331: Implemented KubernetesClusterService
commit f9e5f450e6d7fe0532430b68c3ee1d9d7e2f8728
Author: Nicola Ferraro
Date: 2017-07-07T15:05:31Z
CAMEL-11331: Lease based implementation of Kubernetes lock
commit c8f5fe298aa3aeb61adb1ee8e8dcbc4bbc30b38b
Author: Nicola Ferraro
Date: 2017-07-07T15:18:05Z
CAMEL-11331: Adding clarifications to the leader interface and fix impl
commit 4ba197660b0dbcaac72d1b41b3dd6a62b663b2d9
Author: Nicola Ferraro
Date: 2017-07-14T09:21:50Z
CAMEL-11331: Adding tests and fixing impl
commit caa1b7c11e1ddfa244137ae76bf14f6cc1689dab
Author: Nicola Ferraro
Date: 2017-07-19T13:24:48Z
CAMEL-11331: Adjusted log level
commit 21d16f76ac8cbefb9e958b9b770f6877ee04f6e4
Author: Nicola Ferraro
Date: 2017-07-19T14:34:51Z
CAMEL-11331: Removed unnecessary change in leadership for followers
commit 930fcee08f8996051166b9ee013fca9fef3d7d01
Author: Nicola Ferraro
Date: 2017-07-31T15:17:34Z
CAMEL-11331: Clock-drift-free version of the protocol
commit cc19aa24b9c992fc690114f39ea2ad564c1170fa
Author: Nicola Ferraro
Date: 2017-07-31T15:40:53Z
CAMEL-11331: Speeding up default config
commit 90f622d3b72e56d8342063d26f269e630860da04
Author: Nicola Ferraro
Date: 2017-07-31T15:56:08Z
CAMEL-11331: Fixed logging and avoid unnecessary wait
commit 101dadbc0f1a59181615fd2b7dd4fd76992d7037
Author: Nicola Ferraro
Date: 2017-08-01T08:30:26Z
CAMEL-11331: Added better logging and upgrade library
commit 5e2f1d579dfd6d23eeff2e8aeb4790b8edc2a881
Author: Nicola Ferraro
Date: 2017-08-08T10:05:59Z
CAMEL-11331: Adding connection timeout as parameter (auto-computed)
commit 9b829f29c8265a5561a4b373a8199d5d1a0c48d1
Author: Nicola Ferraro
Date: 2017-08-08T10:40:24Z
CAMEL-11331: Fix doc
> camel-kubernetes - Add Kubernetes based RoutePolicy
> ---
>
> Key: CAMEL-11331
> URL: https://issues.apache.org/jira/browse/CAMEL-11331
> Project: Camel
> Issue Type: New Feature
> Components: camel-kubernetes
>Reporter: Nicola Ferraro
>Assignee: Nicola Ferraro
> Fix For: 2.20.0
>
>
> We should try to create a Camel route policy based on kubernetes resource
> locking, as done in:
> https://github.com/fabric8io/fabric8-ipaas/tree/master/camel-master (but also
> https://github.com/kubernetes/kubernetes/blob/master/pkg/client/leaderelection/leaderelection.go).
> The implementation inside Camel will provide a RoutePolicy instead of a
> "master" component.
> [~davsclaus] do you think we should ask the fabric8 team to donate it to
> camel? I think we can just implement our route-policy version based on its
> algorithm. The two modules will not have the same API at the end, so we will
> not provide a replacement for it...
--
This message was sent by Atlassian