Decode/Encode everywhere

Necessary for Brendan's upcoming api versioning PR. This is a fixed version of #567.

All types stored in etcd are now API objects.
>This means I made an api.ContainerManifestList, and added a JSONBase to endpoints (and changed Name to JSONBase.ID).
Yeah, we really don't want to break old kubelets - or if we do that we do
it all at once, one time.
On Jul 23, 2014 12:09 PM, "Daniel Smith" <notifications@github.com> wrote:

> In pkg/api/types.go:
>
> > @@ -58,6 +58,12 @@ type ContainerManifest struct {
> >  	Containers []Container `yaml:"containers" json:"containers"`
> >  }
> >
> > +// ContainerManifestList is used to communicate container manifests to kubelet.
> > +type ContainerManifestList struct {
>
> Yes, it's two schema changes in etcd (Endpoints changes, too).
>
> Hm. That may be a good idea. If we had the reconciliation loop that I
> wanted in apiserver, it wouldn't be a problem, but we don't. Let me think
> about this while I grab lunch.
>
> --
> Reply to this email directly or view it on GitHub
> <https://github.com/GoogleCloudPlatform/kubernetes/pull/571/files#r15308571>
> .
>