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

kubeadm shouldn't depend on a specific shell or binary inside the control plane image #167

Closed
luxas opened this issue Feb 16, 2017 · 9 comments
Assignees
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/backlog Higher priority than priority/awaiting-more-evidence.

Comments

@luxas
Copy link
Member

luxas commented Feb 16, 2017

ref: kubernetes/kubernetes#40248

It seems like the shift towards FROM scratch images are coming soon, and we should make sure kubeadm doesn't break.

What we have to do:

  • Specify full paths to the binary we invoke. For the control plane images, this is /usr/local/bin/kube-*, also when hyperkube is used.
  • Do not rely on other binaries in the image(s)

cc @timstclair @jessfraz @thockin @mikedanese @pires @errordeveloper

@luxas luxas added this to the v1.6 milestone Feb 16, 2017
@pires
Copy link
Contributor

pires commented Feb 17, 2017

When will the scratch images land in Kubernetes?

@luxas
Copy link
Member Author

luxas commented Feb 17, 2017

@timstclair ^

@timstclair
Copy link

I just posted an update over in kubernetes/kubernetes#40248 (comment), but wanted to clarify here: only images based on a static go binary with no external dependencies will be moved to scratch. Hyperkube has lots of external dependencies, and will be based off the Debian base image. Does kubeadm have dependencies?

@luxas
Copy link
Member Author

luxas commented Feb 21, 2017

@timstclair The main question for me at least is; Are the server images (kube-apiserver, kube-scheduler, kube-controller-manager) gonna be based FROM scratch in v1.6?
Is the plan to make them FROM scratch in a future version (v1.7, v1.8)?

@timstclair
Copy link

Possibly. I have not yet triaged those images to know whether rebasing on scratch would be trivial. I'm currently prioritizing images that run on the nodes, so if anyone is interested in helping out with the efforts on master images it would be welcome :)

In terms of timeline, I'm not targeting any master images for 1.6 (again, help welcome), but we may update a few on an as-needed basis (e.g. kubernetes-retired/contrib#2390). I don't want to officially commit, but we'll probably target master images for 1.7.

@luxas
Copy link
Member Author

luxas commented Feb 21, 2017

@timstclair Ok. We're just thinking about whether we can/should rely on the flock binary inside the busybox or not. Opinion on that? If we go to scratch we can't, but generally it's a mess to rely on binaries inside of images -- for example -- the busybox and debian flock binaries behave differently and are in different folders.

But I'd like your input on whether we should find a real solution at once and don't depend on flock inside the master images at all or...

@timstclair
Copy link

Unless it's a fairly trivial to reimplement the behavior in go, I don't think the decision of whether to depend on an external binary should be gated on the decision of base image. That said, what does the flock binary offer that can't be translated into an os.Flock syscall?

@pires
Copy link
Contributor

pires commented Feb 21, 2017

@timstclair the problem is flock needs to run as part of the command that runs each component, e.g. flock <args> apiserver <args>.

@luxas luxas removed this from the v1.6 milestone Mar 2, 2017
@mikedanese
Copy link
Member

Why do we need flock?

@luxas luxas self-assigned this May 29, 2017
@luxas luxas added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/backlog Higher priority than priority/awaiting-more-evidence. labels May 29, 2017
@luxas luxas closed this as completed Jul 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. priority/backlog Higher priority than priority/awaiting-more-evidence.
Projects
None yet
Development

No branches or pull requests

4 participants