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
That's good, but I think we can make that change in a compatible way, so
v1b3 doesn't need to block.

On Tue, Sep 30, 2014 at 9:53 AM, bgrant0607 <notifications@github.com>
wrote:

> In pkg/api/v1beta3/types.go:
>
> > @@ -86,16 +129,16 @@ type VolumeSource struct {
> >  	// HostDirectory represents a pre-existing directory on the host machine that is directly
> >  	// exposed to the container. This is generally used for system agents or other privileged
> >  	// things that are allowed to see the host machine. Most containers will NOT need this.
> > -	// TODO(jonesdl) We need to restrict who can use host directory mounts and
> > -	// who can/can not mount host directories as read/write.
> > -	HostDirectory *HostDirectory `yaml:"hostDir" json:"hostDir"`
> > +	// TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
> > +	// mount host directories as read/write.
> > +	HostDirectory *HostDirectory `json:"hostDir" yaml:"hostDir"`
>
> How about hostPath and emptyDirectory?
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/GoogleCloudPlatform/kubernetes/pull/1225/files#r18230436>
> .
>