{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/10408","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/10408/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/10408/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/10408/events","html_url":"https://github.com/kubernetes/kubernetes/issues/10408","id":91305902,"number":10408,"title":"Upstreaming OpenShift features","user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/design","name":"kind/design","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/enhancement","name":"kind/enhancement","color":"c7def8"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P1","name":"priority/P1","color":"eb6420"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/cluster","name":"team/cluster","color":"d2b48c"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/control-plane","name":"team/control-plane","color":"d2b48c"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/ux","name":"team/ux","color":"d2b48c"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/16","html_url":"https://github.com/kubernetes/kubernetes/milestones/v1.2-candidate","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/milestones/16/labels","id":1278500,"number":16,"title":"v1.2-candidate","description":"Things to consider for next minor release.","creator":{"login":"bgrant0607","id":7725777,"avatar_url":"https://avatars.githubusercontent.com/u/7725777?v=3","gravatar_id":"","url":"https://api.github.com/users/bgrant0607","html_url":"https://github.com/bgrant0607","followers_url":"https://api.github.com/users/bgrant0607/followers","following_url":"https://api.github.com/users/bgrant0607/following{/other_user}","gists_url":"https://api.github.com/users/bgrant0607/gists{/gist_id}","starred_url":"https://api.github.com/users/bgrant0607/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgrant0607/subscriptions","organizations_url":"https://api.github.com/users/bgrant0607/orgs","repos_url":"https://api.github.com/users/bgrant0607/repos","events_url":"https://api.github.com/users/bgrant0607/events{/privacy}","received_events_url":"https://api.github.com/users/bgrant0607/received_events","type":"User","site_admin":false},"open_issues":216,"closed_issues":22,"state":"open","created_at":"2015-08-29T03:54:34Z","updated_at":"2015-11-17T23:47:53Z","due_on":null,"closed_at":null},"comments":25,"created_at":"2015-06-26T17:15:49Z","updated_at":"2015-11-18T17:16:50Z","closed_at":null,"body":"This is a tracking issue for the purposes of identifying the pieces of OpenShift we would like to componentize and make more consumable for other users of Kube post 1.0.  This list should record whether we want the component in core Kube, contrib Kube, an ecosystem plugin, or to remain in OpenShift (which is a distribution of Kube with enhancements).  This issue does not track the actual work required to compile/build/include/run these components, just the high level discussion.\r\n\r\n* A declarative description of how to iteratively roll out deployments (covered by #1743)\r\n* The OAuth daemon (which manages OAuth clients, tokens, and apps and can authenticate bearer tokens to the API)\r\n* The authorization engine - which can apply policy decisions on Kubernetes resources in an ABAC and RBAC model and manages a policy, roles, role bindings\r\n* The user / identity API which allows third party auth integrations to track users by user name and store them in etcd, as well as group integration for folks integrating with LDAP\r\n* The image build component - a pattern for building Docker images on the cluster as jobs (launch a container that can run a build and then push an image into a registry)\r\n* A version of the Docker registry that stores its metadata in etcd and exposes access to track, watch, and manage images via a Kube compatible API, and authenticates back to the cluster (allows both builds and deployments to iteratively \r\n* a declarative route resource which maps a service into one or more proxies - offers programmable http / HTTPS endpoints and configuration of L7 rules"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/157783884","html_url":"https://github.com/kubernetes/kubernetes/issues/10408#issuecomment-157783884","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/10408","id":157783884,"user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"created_at":"2015-11-18T17:16:50Z","updated_at":"2015-11-18T17:16:50Z","body":"OpenShift templates were designed from the beginning as \"how would we do simple templatization in a consumable way for users of a Kube platform that leverage all of the core Kube patterns\".  The patterns they expose are the same principles we've built Kube around.  \r\n\r\nThey solve a particular problem - how do I consume, reuse, and expose precanned API object groups to a server, without requiring a full configuration processing tool, but without attempting to solve complex coordination.  They also encode simple input, generation, and feedback to end users without precluding more complex situations.  That has been demonstrated useful to users across a wide range of environments - we've got production applications built using them, and identified gaps and future directions already.\r\n\r\nI don't think templates as described are counter to other templating and parameterization mechanisms - they are instead complementary because they are api objects on their own, sit at the sweet spot of value / reward, and don't attempt to solve orchestration and reconciliation (deployment manager), complex templating (deployment manager or any template lange), yet are strictly better than a pure list of api objects (which is scarcely portable).\r\n\r\nDiscussions about the suitability of the design choices is really something that should be done against the proposal - I think the proposal should be able to stand on its own."}}