replace global registry in apimachinery with global registry in k8s.io/kubernetes

This commit is contained in:
deads2k 2017-01-12 13:16:30 -05:00
parent 1854d48238
commit 05eb75612f
5 changed files with 21 additions and 38 deletions

View File

@ -70,7 +70,6 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
// imports for the code in commonTemplate // imports for the code in commonTemplate
imports = append(imports, imports = append(imports,
"k8s.io/kubernetes/pkg/api", "k8s.io/kubernetes/pkg/api",
"k8s.io/apimachinery/pkg/apimachinery/registered",
"k8s.io/kubernetes/pkg/client/testing/core", "k8s.io/kubernetes/pkg/client/testing/core",
"k8s.io/kubernetes/pkg/client/typed/discovery", "k8s.io/kubernetes/pkg/client/typed/discovery",
"fakediscovery \"k8s.io/kubernetes/pkg/client/typed/discovery/fake\"", "fakediscovery \"k8s.io/kubernetes/pkg/client/typed/discovery/fake\"",
@ -118,7 +117,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
} }
fakePtr := core.Fake{} fakePtr := core.Fake{}
fakePtr.AddReactor("*", "*", core.ObjectReaction(o, registered.RESTMapper())) fakePtr.AddReactor("*", "*", core.ObjectReaction(o, api.Registry.RESTMapper()))
fakePtr.AddWatchReactor("*", core.DefaultWatchReactor(watch.NewFake(), nil)) fakePtr.AddWatchReactor("*", core.DefaultWatchReactor(watch.NewFake(), nil))

View File

@ -58,7 +58,6 @@ func (g *genGroup) Imports(c *generator.Context) (imports []string) {
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
sw := generator.NewSnippetWriter(w, c, "$", "$") sw := generator.NewSnippetWriter(w, c, "$", "$")
const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient" const pkgRESTClient = "k8s.io/kubernetes/pkg/client/restclient"
const pkgRegistered = "k8s.io/apimachinery/pkg/apimachinery/registered"
const pkgAPI = "k8s.io/kubernetes/pkg/api" const pkgAPI = "k8s.io/kubernetes/pkg/api"
const pkgSerializer = "k8s.io/apimachinery/pkg/runtime/serializer" const pkgSerializer = "k8s.io/apimachinery/pkg/runtime/serializer"
const pkgUnversioned = "k8s.io/kubernetes/pkg/api/unversioned" const pkgUnversioned = "k8s.io/kubernetes/pkg/api/unversioned"
@ -94,11 +93,9 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
"DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}), "DefaultKubernetesUserAgent": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "DefaultKubernetesUserAgent"}),
"RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}), "RESTClientInterface": c.Universe.Type(types.Name{Package: pkgRESTClient, Name: "Interface"}),
"RESTClientFor": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "RESTClientFor"}), "RESTClientFor": c.Universe.Function(types.Name{Package: pkgRESTClient, Name: "RESTClientFor"}),
"Group": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "Group"}),
"GroupOrDie": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "GroupOrDie"}),
"IsEnabledVersion": c.Universe.Variable(types.Name{Package: pkgRegistered, Name: "IsEnabledVersion"}),
"ParseGroupVersion": c.Universe.Function(types.Name{Package: pkgSchema, Name: "ParseGroupVersion"}), "ParseGroupVersion": c.Universe.Function(types.Name{Package: pkgSchema, Name: "ParseGroupVersion"}),
"apiPath": apiPath(g.group), "apiPath": apiPath(g.group),
"apiRegistry": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Registry"}),
"codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}), "codecs": c.Universe.Variable(types.Name{Package: pkgAPI, Name: "Codecs"}),
"directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}), "directCodecFactory": c.Universe.Variable(types.Name{Package: pkgSerializer, Name: "DirectCodecFactory"}),
"Errorf": c.Universe.Variable(types.Name{Package: "fmt", Name: "Errorf"}), "Errorf": c.Universe.Variable(types.Name{Package: "fmt", Name: "Errorf"}),
@ -140,7 +137,7 @@ type $.GroupVersion$Interface interface {
` `
var groupClientTemplate = ` var groupClientTemplate = `
// $.GroupVersion$Client is used to interact with features provided by the $.Group$ group. // $.GroupVersion$Client is used to interact with features provided by the $.groupName$ group.
type $.GroupVersion$Client struct { type $.GroupVersion$Client struct {
restClient $.RESTClientInterface|raw$ restClient $.RESTClientInterface|raw$
} }
@ -205,7 +202,7 @@ func New(c $.RESTClientInterface|raw$) *$.GroupVersion$Client {
var setInternalVersionClientDefaultsTemplate = ` var setInternalVersionClientDefaultsTemplate = `
func setConfigDefaults(config *$.Config|raw$) error { func setConfigDefaults(config *$.Config|raw$) error {
// if $.group$ group is not registered, return an error // if $.group$ group is not registered, return an error
g, err := $.Group|raw$("$.groupName$") g, err := $.apiRegistry|raw$.Group("$.groupName$")
if err != nil { if err != nil {
return err return err
} }
@ -236,7 +233,7 @@ func setConfigDefaults(config *$.Config|raw$) error {
return err return err
} }
// if $.groupName$/$.version$ is not enabled, return an error // if $.groupName$/$.version$ is not enabled, return an error
if ! $.IsEnabledVersion|raw$(gv) { if ! $.apiRegistry|raw$.IsEnabledVersion(gv) {
return $.Errorf|raw$("$.groupName$/$.version$ is not enabled") return $.Errorf|raw$("$.groupName$/$.version$ is not enabled")
} }
config.APIPath = $.apiPath$ config.APIPath = $.apiPath$

View File

@ -17,13 +17,20 @@ limitations under the License.
package api package api
import ( import (
"os"
"k8s.io/apimachinery/pkg/apimachinery/registered"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/runtime/serializer"
) )
// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. // Registry is an instance of an API registry. This is an interim step to start removing the idea of a global
// API registry.
var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already api.Registry.
// NOTE: If you are copying this file to start a new api group, STOP! Copy the // NOTE: If you are copying this file to start a new api group, STOP! Copy the
// extensions group instead. This Scheme is special and should appear ONLY in // extensions group instead. This Scheme is special and should appear ONLY in
// the api group, unless you really know what you're doing. // the api group, unless you really know what you're doing.
@ -65,7 +72,7 @@ func init() {
// TODO(lavalamp): move this call to scheme builder above. Can't // TODO(lavalamp): move this call to scheme builder above. Can't
// remove it from here because lots of people inappropriately rely on it // remove it from here because lots of people inappropriately rely on it
// (specifically the unversioned time conversion). Can't have it in // (specifically the unversioned time conversion). Can't have it in
// both places because then it gets double registered. Consequence of // both places because then it gets double api.Registry. Consequence of
// current state is that it only ever gets registered in the main // current state is that it only ever gets registered in the main
// api.Scheme, even though everyone that uses anything from unversioned // api.Scheme, even though everyone that uses anything from unversioned
// needs these. // needs these.

View File

@ -19,7 +19,6 @@ package registered
import ( import (
"fmt" "fmt"
"os"
"sort" "sort"
"strings" "strings"
@ -31,10 +30,6 @@ import (
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
) )
var (
DefaultAPIRegistrationManager = NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
)
// APIRegistrationManager provides the concept of what API groups are enabled. // APIRegistrationManager provides the concept of what API groups are enabled.
// //
// TODO: currently, it also provides a "registered" concept. But it's wrong to // TODO: currently, it also provides a "registered" concept. But it's wrong to
@ -99,28 +94,6 @@ func NewOrDie(kubeAPIVersions string) *APIRegistrationManager {
return m return m
} }
// People are calling global functions. Let them continue to do that (for now).
var (
ValidateEnvRequestedVersions = DefaultAPIRegistrationManager.ValidateEnvRequestedVersions
AllPreferredGroupVersions = DefaultAPIRegistrationManager.AllPreferredGroupVersions
RESTMapper = DefaultAPIRegistrationManager.RESTMapper
GroupOrDie = DefaultAPIRegistrationManager.GroupOrDie
AddThirdPartyAPIGroupVersions = DefaultAPIRegistrationManager.AddThirdPartyAPIGroupVersions
IsThirdPartyAPIGroupVersion = DefaultAPIRegistrationManager.IsThirdPartyAPIGroupVersion
RegisteredGroupVersions = DefaultAPIRegistrationManager.RegisteredGroupVersions
IsRegisteredVersion = DefaultAPIRegistrationManager.IsRegisteredVersion
IsRegistered = DefaultAPIRegistrationManager.IsRegistered
Group = DefaultAPIRegistrationManager.Group
EnabledVersionsForGroup = DefaultAPIRegistrationManager.EnabledVersionsForGroup
EnabledVersions = DefaultAPIRegistrationManager.EnabledVersions
IsEnabledVersion = DefaultAPIRegistrationManager.IsEnabledVersion
IsAllowedVersion = DefaultAPIRegistrationManager.IsAllowedVersion
EnableVersions = DefaultAPIRegistrationManager.EnableVersions
RegisterGroup = DefaultAPIRegistrationManager.RegisterGroup
RegisterVersions = DefaultAPIRegistrationManager.RegisterVersions
InterfacesFor = DefaultAPIRegistrationManager.InterfacesFor
)
// RegisterVersions adds the given group versions to the list of registered group versions. // RegisterVersions adds the given group versions to the list of registered group versions.
func (m *APIRegistrationManager) RegisterVersions(availableVersions []schema.GroupVersion) { func (m *APIRegistrationManager) RegisterVersions(availableVersions []schema.GroupVersion) {
for _, v := range availableVersions { for _, v := range availableVersions {

View File

@ -17,12 +17,19 @@ limitations under the License.
package api package api
import ( import (
"os"
"k8s.io/apimachinery/pkg/apimachinery/registered"
metav1 "k8s.io/client-go/pkg/apis/meta/v1" metav1 "k8s.io/client-go/pkg/apis/meta/v1"
"k8s.io/client-go/pkg/runtime" "k8s.io/client-go/pkg/runtime"
"k8s.io/client-go/pkg/runtime/schema" "k8s.io/client-go/pkg/runtime/schema"
"k8s.io/client-go/pkg/runtime/serializer" "k8s.io/client-go/pkg/runtime/serializer"
) )
// Registry is an instance of an API registry. This is an interim step to start removing the idea of a global
// API registry.
var Registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
// Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered. // Scheme is the default instance of runtime.Scheme to which types in the Kubernetes API are already registered.
// NOTE: If you are copying this file to start a new api group, STOP! Copy the // NOTE: If you are copying this file to start a new api group, STOP! Copy the
// extensions group instead. This Scheme is special and should appear ONLY in // extensions group instead. This Scheme is special and should appear ONLY in