Refactor internal API for Services to match v1beta3

First commit is services (working unit and integration).
There's a todo in v1beta3 to clear status prior to update or create (or at minimum, to merge it).


> On Nov 3, 2014, at 9:43 PM, bgrant0607 <notifications@github.com> wrote:
> 
> In pkg/api/types.go:
> 
> > @@ -479,34 +479,50 @@ type ServiceList struct {
> >  	Items []Service `json:"items" yaml:"items"`
> >  }
> >  
> > -// Service is a named abstraction of software service (for example, mysql) consisting of local port
> > -// (for example 3306) that the proxy listens on, and the selector that determines which pods
> > -// will answer requests sent through the proxy.
> > -type Service struct {
> > -	TypeMeta   `json:",inline" yaml:",inline"`
> > -	ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"`
> > +// ServiceStatus represents the current status of a service
> > +type ServiceStatus struct {
> > +	// ProxyPort is assigned by the master.  If 0, the proxy will choose an ephemeral port.
> > +	// TODO: This is awkward - if we had a BoundService, it would be better factored.
> Well, right now, it looks like we probably do store the status, but that seems like a bug, since we take it directly from the user.
> 
> —
> Reply to this email directly or view it on GitHub.