// InterfacesFor returns the default Codec and ResourceVersioner for a given version // string, or an error if the version is not known. func interfacesFor(version string) (*meta.VersionInterfaces, error) { switch version { case "extensions/v1beta1": return &meta.VersionInterfaces{ Codec: v1beta1.Codec, ObjectConvertor: api.Scheme, MetadataAccessor: accessor, }, nil default: g, _ := latest.Group("extensions") return nil, fmt.Errorf("unsupported storage version: %s (valid: %s)", version, strings.Join(g.Versions, ", ")) } }
// New creates a Kubernetes client for the given config. This client works with pods, // replication controllers, daemons, and services. It allows operations such as list, get, update // and delete on these objects. An error is returned if the provided configuration // is not valid. func New(c *Config) (*Client, error) { config := *c if err := SetKubernetesDefaults(&config); err != nil { return nil, err } client, err := RESTClientFor(&config) if err != nil { return nil, err } if _, err := latest.Group("extensions"); err != nil { return &Client{RESTClient: client, ExperimentalClient: nil}, nil } experimentalConfig := *c experimentalClient, err := NewExperimental(&experimentalConfig) if err != nil { return nil, err } return &Client{RESTClient: client, ExperimentalClient: experimentalClient}, nil }