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

Make addon-manager cross-platform and use it with hyperkube #25631

Merged
merged 2 commits into from
May 20, 2016

Conversation

luxas
Copy link
Member

@luxas luxas commented May 15, 2016

Fixes: #22752 and some other issues as well

Big changes to the docker deployment. Added kube-addon-manager as a static pod. The addon-manager deploys kube-proxy as a DaemonSet, Dashboard and DNS automatically

Make the addon-manager cross-platform, change naming to binary-arch:version, remove deprecated kubectl command, add support for DaemonSets

@mikedanese @vishh @bgrant0607 @fgrzadkowski @dlorenc @brendandburns @thockin @roberthbailey @johndmulhausen @bryk @cheld @lavalamp

@luxas luxas added this to the v1.3 milestone May 15, 2016
@k8s-github-robot k8s-github-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. release-note-label-needed labels May 15, 2016
@bgrant0607
Copy link
Member

cc @Q-Lee

@bprashanth
Copy link
Contributor

@k8s-bot unit test this github issue: #25629

@bprashanth
Copy link
Contributor

fyi Integration test failed because of merge conflict

GitHub pull request #25631 of commit 6373bc9b55d7c3287486ecc80fa10c9d5d96d4e0, has merge conflicts.
Setting status of 6373bc9b55d7c3287486ecc80fa10c9d5d96d4e0 to PENDING with url https://console.cloud.google.com/storage/browser/kubernetes-jenkins/pr-logs/pull/25631/kubernetes-pull-test-unit-integration/25972/ and message: 'Build started sha1 is original commit.'
Using context: Jenkins unit/integration

@cheld
Copy link
Contributor

cheld commented May 16, 2016

CC @batikanu, @zreigz

@luxas luxas force-pushed the hyperkube_cni_cross branch from 6373bc9 to a6332dd Compare May 16, 2016 06:16
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 16, 2016
spec:
containers:
- name: kubernetes-dashboard
image: gcr.io/google_containers/kubernetes-dashboard-ARCH:v1.0.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will ARCH be replaced here? If yes, please comment how and why. If not, please fix :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it will be replaced by a sed command in the Makefile.
Valid values are amd64, arm, arm64 and ppc64le (as you probably know already 😄)

I'll add a comment

@bryk
Copy link
Contributor

bryk commented May 16, 2016

A few comments on the dashboard UI side.

@luxas
Copy link
Member Author

luxas commented May 16, 2016

Updated.
Some patches are included in #25693, though and I'll remove them before I'm done.
Comment if there's anything other that should be done, then I'll squash and it's ready for LGTM

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 16, 2016
@@ -1,3 +1,4 @@
# This file should be kept in sync with cluster/images/hyperkube/dashboard-rc.yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line 5 also says the same about files in gce/coreos/kube-manifests/addons/dashboard. Can you merge them in one?

@bryk
Copy link
Contributor

bryk commented May 17, 2016

One small comment and LGTM for Dashboard UI side.

@luxas luxas added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed release-note-label-needed labels May 17, 2016
@luxas
Copy link
Member Author

luxas commented May 17, 2016

@mikedanese Any comments on this one?
Otherwise, I'll rebase, fix @bryk's nit and commit properly for LGTM

@luxas luxas force-pushed the hyperkube_cni_cross branch from 8d600de to 12b8c98 Compare May 17, 2016 20:04
@k8s-github-robot k8s-github-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 17, 2016
@luxas
Copy link
Member Author

luxas commented May 17, 2016

Updated. Let's get this in now
@mikedanese Could you kindly review this and push the v2 images after lgtm?

@yifan-gu
Copy link
Contributor

cc @euank

@luxas
Copy link
Member Author

luxas commented May 18, 2016

@k8s-bot e2e test this please github issue: #IGNORE

@cheld
Copy link
Contributor

cheld commented May 18, 2016

CC @tamir, @kenan435

@taimir
Copy link
Contributor

taimir commented May 18, 2016

Just out of curiosity, have you thought of adding heapster to the addons in the hyperkube container?
And if so, what is the plan to pass configuration (e.g. the sink to which the metrics are sent)?

@luxas
Copy link
Member Author

luxas commented May 19, 2016

@taimir heapster may come in the future, when I've cross-compiled it for all arches.

And if so, what is the plan to pass configuration (e.g. the sink to which the metrics are sent)?

I guess the sink will also be deployed as an addon in that case (influxdb + grafana)
Maybe we'll expose /etc/kubernetes/addons to the user, but we'll have to discuss that if we want to.
The hyperkube deployment should be an easy way to get started, not being a solution that has many config options.

@mikedanese
Copy link
Member

@luxas I will review this tomorrow morning, sorry

hostNetwork: true
containers:
- name: kube-proxy
image: gcr.io/google_containers/hyperkube-ARCH:VERSION
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like that we are introducing even more ways to templative yaml in the addons directory.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What should we do then?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More of an observation... We should redo the entire directory with a single templating langage and expansion script.

@mikedanese
Copy link
Member

It seems like we are conflating hyperkube image with the docker setup. Hyperkube is generally useful, and we are adding a ton of cruft in that image that is specific to the docker setup (e.g. cert generation stuff, all addons configuration...). I know this is not introduced in this PR but I think we should work to make the hyperkube image more general and slimmer.

@@ -1,6 +1,4 @@
#!/bin/bash
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does github think these are the same file??

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no idea...

@mikedanese
Copy link
Member

I will push then lgtm

@luxas
Copy link
Member Author

luxas commented May 19, 2016

Yes, I know.
We should make an issue about the future of the hyperkube image.
I think that localkube (which we are developing right now in the minikube repo) will replace the current docker-based deployment in v1.4 or later.

minikube will take the same approach as hyperkube (very few deps), and make it easy to develop and test Kubernetes out. minikube (which only is a CLI) will offer two kinds of isolation for localkube (which is the kubernetes-all-in-one-server): via docker and a docker-machine VM.

To hyperkube again... There have been discussion about deprecating the individual server binaries and only having two binaries to care about: hyperkube (, maybe kubelet) and kubectl. If we go towards that direction,
the hyperkube image might be used in production deployments for hosting the control plane and the proxy instead of the kube-apiserver, ... images that we have now.

But this is outside the scope of this PR. This is about leveraging a better getting-started solution for v1.3 for people to use.

@k8s-github-robot k8s-github-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label May 20, 2016
@mikedanese mikedanese added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 20, 2016
luxas added 2 commits May 20, 2016 19:27
…ersion, remove deprecated kubectl command, add support for DaemonSets
… static pod. The addon-manager deploys kube-proxy as a DaemonSet as well as Dashboard and DNS automatically. SecurityContextDeny is removed from the manifests. Also, the turnup.sh and turndown.sh scripts are removed because we don't need them anymore, they're covered by the online documentation
@luxas luxas force-pushed the hyperkube_cni_cross branch from 12b8c98 to 73947cc Compare May 20, 2016 16:28
@k8s-github-robot k8s-github-robot removed lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels May 20, 2016
@luxas luxas added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 20, 2016
@luxas
Copy link
Member Author

luxas commented May 20, 2016

Reapplying LGTM and retesting unit

@luxas
Copy link
Member Author

luxas commented May 20, 2016

@k8s-bot unit test this please github issue: #IGNORE

@k8s-bot
Copy link

k8s-bot commented May 20, 2016

GCE e2e build/test passed for commit 73947cc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.