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

Restore ability to run against secured etcd #18760

Closed
liggitt opened this issue Dec 16, 2015 · 24 comments
Closed

Restore ability to run against secured etcd #18760

liggitt opened this issue Dec 16, 2015 · 24 comments
Assignees
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery.
Milestone

Comments

@liggitt
Copy link
Member

liggitt commented Dec 16, 2015

https://github.com/kubernetes/kubernetes/pull/18383/files#r47793705 removed the --etcd-config option from kube-apiserver, which breaks backwards compatibility and removes the ability to run against a secured etcd server.

Ideally, the etcd client package would provide a ConfigFromFile helper that would do the deserialize to support legacy config files, but even if they don't, we need to.

@timothysc @xiang90

@maclof
Copy link
Contributor

maclof commented Dec 16, 2015

+1 I need this functionality

@timothysc
Copy link
Member

Well to be complete, the etcd client removed the behavior. The question is where are the boundary lines.

Also, it appears this use case is not covered by any level of integration or e2e testing, so we should probably address that as well.

@liggitt
Copy link
Member Author

liggitt commented Dec 16, 2015

The client still supports it. We adopted the etcd client config file as our own by surfacing it as an arg.

@j3ffml j3ffml added the sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. label Dec 17, 2015
@liggitt liggitt added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Dec 17, 2015
@liggitt
Copy link
Member Author

liggitt commented Dec 17, 2015

p1, since this is a regression and compatibility issue

@timothysc
Copy link
Member

@liggitt chatted with @xiang90 today, they are hoping to have a 2.2 update next week-ish.

@liggitt
Copy link
Member Author

liggitt commented Feb 5, 2016

This should be in 1.2... otherwise we regress function and cannot run against secured etcd, right?

@liggitt liggitt added this to the v1.2-candidate milestone Feb 5, 2016
@timothysc
Copy link
Member

@xiang90 ?

@timothysc
Copy link
Member

It doesn't look like the etcd folks are going to change the client, I'll get a patch together on this in the a.m.

@xiang90
Copy link
Contributor

xiang90 commented Feb 9, 2016

@timothysc We have a pr at https://github.com/coreos/etcd/pull/4144/commits. We need to test it though.

@liggitt
Copy link
Member Author

liggitt commented Feb 9, 2016

@xiang90 is the proposed config file compatible with the go-etcd config file format? @timothysc if not, we'll need a release note as well, even if we pick up the config file enabled version of the client

@xiang90
Copy link
Contributor

xiang90 commented Feb 9, 2016

@liggitt No. It is not compatible. I guess k8s user should not depend on the etcd file format anyway.

@timothysc
Copy link
Member

Too late for that now, it's in the wild... We must support until we can cleanly deprecate.

@liggitt
Copy link
Member Author

liggitt commented Feb 9, 2016

@timothysc I started a branch a while ago that would populate a new client config from an old config file. branch is at https://github.com/liggitt/etcd/commits/legacy_config (latest commit) if you want to use any of it. I assume we'd have the structs and loaders in k8s

@xiang90
Copy link
Contributor

xiang90 commented Feb 9, 2016

@timothysc We do not have plan to support the old config. The reason is that in the new client, the transport is constructed outside the client and then pass into the client: https://github.com/coreos/etcd/blob/master/client/client.go#L96.

This is very different from go-etcd, which can control the life-cycle of the transport.

@lavalamp
Copy link
Member

@adohe indicated some interest in fixing this. It seems like we would really love a fix.

@lavalamp lavalamp modified the milestones: v1.2, v1.2-candidate Feb 19, 2016
@adohe-zz
Copy link

@lavalamp I will send a PR today.

@lavalamp
Copy link
Member

lavalamp commented Mar 1, 2016

I am thinking about dropping this to p2, which would mean we wouldn't block the release for it, but we're still willing to take @adohe's change when it lands. How many people would be unhappy with that? We can always cherry-pick it in the future.

@maclof
Copy link
Contributor

maclof commented Mar 1, 2016

If this isn't included in 1.2 then I unfortunately will have to wait on upgrading. :(

@danderson
Copy link

Likewise, running with cleartext traffic is not an option for me, so I'd be stuck on 1.1.

@adohe-zz
Copy link

adohe-zz commented Mar 2, 2016

@liggitt so should we add the --etcd-config flag back for backward compatibility?

@liggitt
Copy link
Member Author

liggitt commented Mar 2, 2016

the flag compatibility would be ideal, but I could live with a break there as long as we keep the ability to run against secured etcd

@liggitt
Copy link
Member Author

liggitt commented Mar 2, 2016

either way, if the flag changes (from a config file to cert/key/ca args), or the format of the config file changes, we need a release note

@liggitt
Copy link
Member Author

liggitt commented Mar 2, 2016

it's not quite fair to tag this as a breaking change, since the break happened when the flag was removed, but I want to make sure we call out what people need to do to continue running secured

@lavalamp
Copy link
Member

PR is LGTM'd, we're just waiting for a merge.

@david-mcmahon david-mcmahon added the release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. label Apr 8, 2016
openshift-publish-robot pushed a commit to openshift/kubernetes that referenced this issue Feb 27, 2018
UPSTREAM: 60301: Fix Deployment with Recreate strategy not to wait on pods in terminal phase

Origin-commit: f48a8cfd42efc8edbcabeb8a96a531caad796b16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note-action-required Denotes a PR that introduces potentially breaking changes that require user action. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery.
Projects
None yet
Development

No branches or pull requests

9 participants