-
Notifications
You must be signed in to change notification settings - Fork 41.4k
Add Consul support #31622
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
Add Consul support #31622
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed, please reply here (e.g.
|
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
6 similar comments
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
I signed it! |
@soupdiver is now in our google group, so he should fall under MustWin's CLA |
Can one of the admins verify that this patch is reasonable to test? If so, please reply "ok to test". This message will repeat several times in short succession due to jenkinsci/ghprb-plugin#292. Sorry. |
ok to test On Mon, Aug 29, 2016 at 4:25 PM, Kubernetes Bot [email protected]
|
1c7f9c1
to
2568ec7
Compare
I currently have a problem with adding dependencies properly. It is properly vendored but when I execute How to deal with this scenario? |
7b855cd
to
89d8e63
Compare
89d8e63
to
a933c18
Compare
b7805b2
to
e0fbf5a
Compare
rebased |
1a5e768
to
0e2f64f
Compare
The current project priorities are project health and stability: In addition to the costs and challenges of reviewing this PR, exposing this interface potentially incurs significant cost and risk to the project, so it would need to be considered carefully. We have been focused on the transition to etcd3, which improves reliability and scalability: etcd3 also provides features we requested here, including transactions: We're also moving a lot of code around. In particular, the apiserver and other API machinery needs to be made available to other repos, so the storage-related code is moving out. Additionally, we're trying to craft extension points now such that extensions don't need to reside in our repos. Could an adapter API for consul be built instead, along the lines of https://github.com/coreos/zetcd? We do need to figure out how to expose a storage API for extension apiservers |
I see now that there is also a proposal to use etcd in mantl via zetcd: |
@slackpad, @Theaxiom and @soupdiver it looks like we have feedback on a direction to take this. Thanks, @bgrant0607 will take a look at your suggestion and get back to you. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: soupdiver Assign the PR to them by writing Associated issue: 28508 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
4 similar comments
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: soupdiver Assign the PR to them by writing Associated issue: 28508 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: soupdiver Assign the PR to them by writing Associated issue: 28508 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: soupdiver Assign the PR to them by writing Associated issue: 28508 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: soupdiver Assign the PR to them by writing Associated issue: 28508 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these OWNERS Files:
You can indicate your approval by writing |
This PR hasn't been active in 64 days. It will be closed in 25 days (Sep 12, 2017). You can add 'keep-open' label to prevent this from happening, or add a comment to keep it open another 90 days |
Adding do-not-merge/release-note-label-needed because the release note process has not been followed. |
We're not prepared to move forward with this in the foreseeable future. We need to think hard about what we want the storage API to look like, for pluggability but also for aggregated APIs. We're still in the middle of the etcd2-to-etcd3 transition. We can't afford to increase the dimensionality of our test and support matrix. Etcd3 also added a number of features for us that we have yet to take advantage of, such as atomic transactions across multiple keys/values to give us more flexibility in how we represent resources. Shims such as proposed by mantl/mantl#2013 could potentially provide a way to use other stores. cc @lavalamp @kubernetes/sig-api-machinery-pr-reviews @kubernetes/sig-api-machinery-proposals |
A few days ago I serendipitously added an agenda item for the next API machinery SIG meeting (Sep. 13th) to discuss making a more firm policy about this. If anyone wants to hear more reasoning behind Brian's above decision, it might be good to attend. In my opinion we've waffled about this for too long, we should commit to speaking only etcd3 for the foreseeable future. What if someone REALLLLLLLY has to run against another storage system? Etcd3 is open source. Fork it. Leave the interface, turn everything else into a shim that talks to your preferred store. Realize that you're signing up for a lifetime of pain maintaining 100% compatibility... (That would have been the case no matter how such a thing was implemented; but doing it as I suggest here makes it clear that the compatibility burden won't be born by the Kubernetes project.) |
Such a view is difficult to reconcile with "and now we will add a different kind of storage for aggregated API servers". If a different blob store is still under consideration, I'd be hard pressed to say, "we won't accept another... except for ours.". To properly support a different storage (blob store you've mentioned before), you'll need to separate an interface anyway. |
@soupdiver - I will have a look at this PR. @bgrant0607 @deads2k @lavalamp - Are there still any open PRs or proposals for a pluggable kv store? Interested in following this discussion moving forward. |
@chrrrles thank you! |
@chrrrles No. It's off the table for now. |
Understood, you guys have lots on your plate. |
Is there anything new on that topic? |
For complexity reasons, I don't think there is a plan to officially support Consul anytime (soon). |
An earlier discussion about Consul integration can be found here: #28508
Consul support integration
We worked on getting Consul support into Kubernetes. Our implementation is based on Consul
0.6.4
and should provide the same featureset as theetcd
implementation does.To ensure correct working of the implementation we wrote integration tests which are very similar to the ones for
etcd
. These can be found at `test/integration/master/consul_tools_test.goHowever the implementation is not finished yet. Herein after I will address the remaining issue.
unit tests
Currently unit tests, which need to talk to a storage backend, are using the
etcd
implementation directly (example).This means the tests can't directly be reused with Consul. We tried to solve this problem by refactoring all the
etcd
specific tests to more genericstorage
tests and also using a factory to create all the available storage backends and run the unit tests against each backend. In the end we had to drop this change because we could not keep up with the frequency of changes in these locations. So for now unit tests don't run against Consul.We think this is probably a good discussion point on how to handle multiple storage backends.
This could be handled in a separate PR to keep the scope smaller for each one.
Our test implementation
In the following are snippets showing how our approach to run the tests for multiple backends looks like.
Running tests and creating storage
factory
This change is