{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/6676","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/6676/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/6676/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/6676/events","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/6676","id":67577971,"number":6676,"title":"Proposal: Upstream Kubernetes-Mesos framework","user":{"login":"jdef","id":2348332,"avatar_url":"https://avatars.githubusercontent.com/u/2348332?v=3","gravatar_id":"","url":"https://api.github.com/users/jdef","html_url":"https://github.com/jdef","followers_url":"https://api.github.com/users/jdef/followers","following_url":"https://api.github.com/users/jdef/following{/other_user}","gists_url":"https://api.github.com/users/jdef/gists{/gist_id}","starred_url":"https://api.github.com/users/jdef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdef/subscriptions","organizations_url":"https://api.github.com/users/jdef/orgs","repos_url":"https://api.github.com/users/jdef/repos","events_url":"https://api.github.com/users/jdef/events{/privacy}","received_events_url":"https://api.github.com/users/jdef/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/cluster/platform/mesos","name":"cluster/platform/mesos","color":"5319e7"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/priority/P2","name":"priority/P2","color":"fbca04"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/team/cluster-lifecycle","name":"team/cluster-lifecycle","color":"d2b48c"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/team/master","name":"team/master","color":"d2b48c"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/team/UX","name":"team/UX","color":"d2b48c"}],"state":"open","locked":false,"assignee":{"login":"davidopp","id":8264113,"avatar_url":"https://avatars.githubusercontent.com/u/8264113?v=3","gravatar_id":"","url":"https://api.github.com/users/davidopp","html_url":"https://github.com/davidopp","followers_url":"https://api.github.com/users/davidopp/followers","following_url":"https://api.github.com/users/davidopp/following{/other_user}","gists_url":"https://api.github.com/users/davidopp/gists{/gist_id}","starred_url":"https://api.github.com/users/davidopp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidopp/subscriptions","organizations_url":"https://api.github.com/users/davidopp/orgs","repos_url":"https://api.github.com/users/davidopp/repos","events_url":"https://api.github.com/users/davidopp/events{/privacy}","received_events_url":"https://api.github.com/users/davidopp/received_events","type":"User","site_admin":false},"milestone":null,"comments":15,"created_at":"2015-04-10T11:48:32Z","updated_at":"2015-04-17T17:02:38Z","closed_at":null,"body":"## Overview\r\n### Goals\r\n1. It should be super-easy for any k8s user to deploy a k8s cluster on Mesos.\r\n1. Immediate (developer) awareness of divergence between existing k8s core and k8s-mesos integration.\r\n1. [k8s-mesos][2] integration no longer vendors k8s, but is a *part of* the k8s distribution.\r\n1. Compatibility with existing cluster integration tooling\r\n1. Phase 1 (see below) integration complete as of k8s 1.0\r\n\r\n### Dependencies / Assumptions\r\n1. \"mesos\" cloud provider implementation has been merged into k8s core\r\n1. k8s-mesos has achieved adequate test coverage\r\n1. k8s-mesos has adopted Google's Go code style/standards\r\n\r\n## Core Integration\r\n1. Packaging alignment\r\n  - [k8s-mesos][2] isn't really an add-on, it's the basis for an alternate distribution/deployment\r\n1. Releases will consist of the current k8s core components, as well as the k8s-mesos framework\r\n  - Larger distribution size\r\n  - Current k8s-mesos dependencies merged into k8s dependencies (e.g. k8s will vendor mesos-go, et al.)\r\n  - Platform builds will fail upon divergence between k8s core and k8s-mesos framework\r\n1. Phased approach\r\n  - Phase 1: Build & Deploy + Framework\r\n  - Phase 2: Cluster Provider + Salt\r\n  - Phase 3: Wish List\r\n\r\n### Build & Deploy\r\n```shell\r\n$ git clone https://github.com/GoogleCloudPlatform/kubernetes k8s\r\n$ cd k8s\r\n$ export KUBERNETES_PROVIDER=mesos:gce              # s/:/--/ for hier providers\r\n$ hack/dev-build-and-push.sh                        # (unchanged)\r\n$ cluster/kube-up.sh                                # phase 2: bring up mesos/gce cloud w/ k8s\r\n```\r\n\r\n### Framework\r\n```\r\ngithub.com/GoogleCloudPlatform/kubernetes/plugins/third_party/mesos\r\n    doc.go                # what is this stuff?!\r\n    pkg/\r\n        scheduler/\r\n        executor/\r\n        offers/\r\n        ...               # additional, utility classes\r\n    cmd/\r\n        km/               # unified framework binary, can run either as mesos scheduler or executor\r\n```\r\n\r\n### Cluster Provider\r\n```\r\ngithub.com/GoogleCloudPlatform/kubernetes/cluster/mesos--gce\r\n    util.sh        # provide some additional configs for mesos cluster config,\r\n*(other).sh        # but mostly delegate to gce provider.\r\n                   # probably set DISABLE_CORE_K8S (see Salt below)\r\n                   # domain = kubernetes.mesos\r\n```\r\n\r\n### Salt\r\n```\r\ngithub.com/GoogleCloudPlatform/kubernetes/cluster/salt\r\n    ...         # k8s scheduler plugin isn’t started (via DISABLE_CORE_K8S)\r\n                # kubelet isn’t started (via DISABLE_CORE_K8S)\r\n                #    - no static pod support\r\n                # use existing kube-apiserver support\r\n                # use existing controller-manager support\r\n                # use existing kube-proxy support\r\n                # zk started on master node\r\n                # mesos-slave system service started on all minions\r\n                # mesos-master system service started on master node\r\n                # km framework is deployed to mesos (--run_proxy=false)\r\n                #    - this provides both the scheduler and executor components\r\n                # kube-addons should still function if deployed by kubectl\r\n```\r\n\r\n### Wish List\r\n1. [mesos-dns][1] integration (to resolve services in .kubernetes.mesos domain)\r\n  - This would likely become an add-on\r\n1. Hierarchical cloud provider support for the “mesos” cloud provider API implementation\r\n  - To expose the more feature-rich underlying cloud provider impl, like GCE\r\n\r\ncc @bgrant0607 @davidopp @guenter @timothysc @ConnorDoyle\r\n\r\n[1]: https://github.com/mesosphere/mesos-dns\r\n[2]: https://github.com/mesosphere/kubernetes-mesos"},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments/94027844","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/6676#issuecomment-94027844","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/6676","id":94027844,"user":{"login":"jdef","id":2348332,"avatar_url":"https://avatars.githubusercontent.com/u/2348332?v=3","gravatar_id":"","url":"https://api.github.com/users/jdef","html_url":"https://github.com/jdef","followers_url":"https://api.github.com/users/jdef/followers","following_url":"https://api.github.com/users/jdef/following{/other_user}","gists_url":"https://api.github.com/users/jdef/gists{/gist_id}","starred_url":"https://api.github.com/users/jdef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdef/subscriptions","organizations_url":"https://api.github.com/users/jdef/orgs","repos_url":"https://api.github.com/users/jdef/repos","events_url":"https://api.github.com/users/jdef/events{/privacy}","received_events_url":"https://api.github.com/users/jdef/received_events","type":"User","site_admin":false},"created_at":"2015-04-17T17:02:38Z","updated_at":"2015-04-17T17:02:38Z","body":"Thanks for the info. It sounds like static pod support the only blocker. Can I assume that we have a green light for submitting a PR for the phase1 stuff once static pod support is in place?"}}