Proposal: v1beta3 API overhaul

Speculative change for some items from #1200:

* Metadata that applies to resources is split from APIMetadata on non-resource API objects
* Metadata is a sub field of objects
* Labels are on Metadata
* Pod current and desired state is split
* Name is used for pods instead of ID (UID is part of metadata, Name is part of resource) for idempotent creation #148 and #1216 
* PodTemplate is a Metadata carrying object as per #170
 * If replicationController gave way to a generic "replicator", then pod template could be both a nested struct and a real resource.
* A ScheduledPod and ScheduledPodList is what the kubelet sees as per #860
* Non-schema'd k/v values on Metadata as `Config` (better names welcome) as per #1201

Not changed yet:

* ReplicationControllers
* Services

EDIT: Moving to higher bandwidth document here: https://docs.google.com/document/d/1E_HNsbyocweD9zJHXbz5Xb9XPwBqvDnLHhGeBq15FlI/edit?usp=sharing
I guess I searched from NodeSpec and did not find it.  It's speculative for
now, so OK.

On Thu, Sep 25, 2014 at 9:39 PM, Clayton Coleman <notifications@github.com>
wrote:

> In pkg/api/v1beta3/types.go:
>
> >  }
> >
> > -func (*EndpointsList) IsAnAPIObject() {}
> > +// Node is a worker node in Kubernetenes.
> > +// The name of the node according to etcd is in JSONBase.ID.
> > +type Node struct {
>
> Hrm, I thought I created NodeStatus and moved hostIP to it (since that
> could change)
> ... <#148b041b63cdc4de_>
>  On Sep 26, 2014, at 12:29 AM, Tim Hockin <notifications@github.com>
> wrote: In pkg/api/v1beta3/types.go: > } > > -func (*EndpointsList)
> IsAnAPIObject() {} > +// Node is a worker node in Kubernetenes. > +// The
> name of the node according to etcd is in JSONBase.ID. > +type Node struct {
> This comment did not get a rply -- Reply to this email directly or view it
> on GitHub.
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/GoogleCloudPlatform/kubernetes/pull/1225/files#r18073502>
> .
>