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

Script based hyperkube to avoid dependencies #84662

Conversation

@dims
Copy link
Member

dims commented Nov 1, 2019

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
cmd/hyperkube is a magnet that drags in all kinds of dependencies. After lot of back and forth discussion in the code-organization subproject and attempts at proof-of-concept of a external repository for it we ended up with this alternative. The main reason being that a cmd/hyperkube will by definition need to vendor k8s.io/kubernetes which we do not want to support as a community (see #84558)

Essentially in this PR:

  • we add back a hyperkube container image
  • we have a shell script that replaces the go based binary
  • the new container images bundles all the binaries supported (yes, this increases the size of the container image)
  • Just like before the script looks at its command line parameters and launches the correct binary.

Note that this variation of hyperkube image is for convenience to help folks migrate to specific binary / images and not depend on the kubernetes project supporting a single convenience binary (and image) for all the components. Please see #81760 for additional discussion and notes/recording of the recent code-organization meetings as well for more context.

Which issue(s) this PR fixes:

Related to #81760

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

Simple script based hyperkube image that bundles all the necessary binaries. This is a equivalent replacement for the image based on the go based hyperkube command + image.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@justaugustus

This comment has been minimized.

Copy link
Member

justaugustus commented Nov 2, 2019

/assign @justaugustus @liggitt
/priority important-soon
/milestone v1.17
/area release-eng hyperkube

@justaugustus

This comment has been minimized.

Copy link
Member

justaugustus commented Nov 2, 2019

/kind cleanup

@k8s-ci-robot k8s-ci-robot added kind/cleanup and removed needs-kind labels Nov 2, 2019
@dims dims force-pushed the dims:script-based-hyperkube-to-avoid-dependencies branch 5 times, most recently from 1995f10 to ee7fe57 Nov 2, 2019
@dims

This comment has been minimized.

Copy link
Member Author

dims commented Nov 7, 2019

/hold cancel

thanks @BenTheElder

@dims

This comment has been minimized.

Copy link
Member Author

dims commented Nov 7, 2019

@liggitt this is now ready to merge.

@liggitt

This comment has been minimized.

Copy link
Member

liggitt commented Nov 7, 2019

/approve

@k8s-ci-robot

This comment has been minimized.

Copy link
Contributor

k8s-ci-robot commented Nov 7, 2019

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: BenTheElder, dims, liggitt

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@justaugustus

This comment has been minimized.

Copy link
Member

justaugustus commented Nov 7, 2019

Thanks for working on this, @dims! :)

@k8s-ci-robot k8s-ci-robot merged commit 84fcf12 into kubernetes:master Nov 7, 2019
17 checks passed
17 checks passed
cla/linuxfoundation dims authorized
Details
pull-kubernetes-bazel-build Job succeeded.
Details
pull-kubernetes-bazel-test Job succeeded.
Details
pull-kubernetes-cross Job succeeded.
Details
pull-kubernetes-dependencies Job succeeded.
Details
pull-kubernetes-e2e-gce Job succeeded.
Details
pull-kubernetes-e2e-gce-100-performance Job succeeded.
Details
pull-kubernetes-e2e-gce-device-plugin-gpu Job succeeded.
Details
pull-kubernetes-e2e-kind Job succeeded.
Details
pull-kubernetes-integration Job succeeded.
Details
pull-kubernetes-kubemark-e2e-gce-big Job succeeded.
Details
pull-kubernetes-local-e2e Job succeeded.
Details
pull-kubernetes-node-e2e Job succeeded.
Details
pull-kubernetes-node-e2e-containerd Job succeeded.
Details
pull-kubernetes-typecheck Job succeeded.
Details
pull-kubernetes-verify Job succeeded.
Details
tide In merge pool.
Details
Release Engineering automation moved this from In progress to Done (1.17) Nov 7, 2019
dghubble added a commit to poseidon/typhoon that referenced this pull request Nov 23, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble added a commit to poseidon/typhoon that referenced this pull request Dec 6, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble added a commit to poseidon/typhoon that referenced this pull request Dec 9, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble added a commit to poseidon/typhoon that referenced this pull request Dec 10, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble-jenkins pushed a commit to poseidon/terraform-google-kubernetes that referenced this pull request Dec 10, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble-jenkins pushed a commit to poseidon/terraform-onprem-kubernetes that referenced this pull request Dec 10, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble-jenkins pushed a commit to poseidon/terraform-digitalocean-kubernetes that referenced this pull request Dec 10, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
dghubble-jenkins pushed a commit to poseidon/terraform-aws-kubernetes that referenced this pull request Dec 10, 2019
* Binary asset locations within the upstream hyperkube image
changed kubernetes/kubernetes#84662
* Fix Container Linux and Flatcar Linux kubelet.service
(rkt-fly with fairly dated CoreOS kubelet-wrapper)
* Fix Fedora CoreOS kubelet.service (podman)
* Fix Fedora CoreOS bootstrap.service
* Fix delete-node kubectl usage for workers where nodes may
delete themselves on shutdown (e.g. preemptible instances)
@Oats87 Oats87 mentioned this pull request Feb 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.