Proposal: Separate desired and current states

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

Only look at the second commit, the first is just to get a nice diff from v1beta1.


----- Original Message -----
> > +}
> > +
> > +// Metadata is shared by all resources stored on a server.
> > +type Metadata struct {
> > +	APIMetadata `json:",inline" yaml:",inline"`
> > +	// UID is the unique in time and space value for this object.  It is not
> > settable
> > +	// by a client and servers must not allow it to change during PUT
> > operations.
> > +	UID string `json:"uid,omitempty" yaml:"uid,omitempty"`
> > +	// CreationTimestamp is a value representing the server time this object
> > was created.
> > +	// It is not guaranteed to be set in happens-before order across
> > disconnected operations.
> > +	// Clients may not set this value.
> > +	CreationTimestamp util.Time `json:"creationTimestamp,omitempty"
> > yaml:"creationTimestamp,omitempty"`
> > +	// Labels are key value pairs that may be used to scope and select
> > individual resources.
> > +	Labels map[string]string `json:"labels,omitempty"
> > yaml:"labels,omitempty"`
> > +	// Config is unstructured key value data stored with a resource that may
> > be set by external
> > +	// tooling.
> 
> Can we consider just storing this stuff separately?
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/GoogleCloudPlatform/kubernetes/pull/1225/files#r17316632

Define separately?  Out of the storage system altogether?