diff --git a/cmd/libs/go2idl/client-gen/generators/BUILD b/cmd/libs/go2idl/client-gen/generators/BUILD index d6af96b66e1..a6f89c86136 100644 --- a/cmd/libs/go2idl/client-gen/generators/BUILD +++ b/cmd/libs/go2idl/client-gen/generators/BUILD @@ -14,7 +14,6 @@ go_library( "generator_for_clientset.go", "generator_for_expansion.go", "generator_for_group.go", - "generator_for_scheme.go", "generator_for_type.go", "tags.go", ], @@ -22,6 +21,7 @@ go_library( deps = [ "//cmd/libs/go2idl/client-gen/args:go_default_library", "//cmd/libs/go2idl/client-gen/generators/fake:go_default_library", + "//cmd/libs/go2idl/client-gen/generators/scheme:go_default_library", "//cmd/libs/go2idl/client-gen/types:go_default_library", "//vendor:github.com/golang/glog", "//vendor:k8s.io/gengo/args", @@ -43,6 +43,7 @@ filegroup( srcs = [ ":package-srcs", "//cmd/libs/go2idl/client-gen/generators/fake:all-srcs", + "//cmd/libs/go2idl/client-gen/generators/scheme:all-srcs", ], tags = ["automanaged"], ) diff --git a/cmd/libs/go2idl/client-gen/generators/client_generator.go b/cmd/libs/go2idl/client-gen/generators/client_generator.go index b8363c81070..cafb98ee5fe 100644 --- a/cmd/libs/go2idl/client-gen/generators/client_generator.go +++ b/cmd/libs/go2idl/client-gen/generators/client_generator.go @@ -28,6 +28,7 @@ import ( "k8s.io/gengo/types" clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args" "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/fake" + "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/scheme" clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types" "github.com/golang/glog" @@ -158,6 +159,19 @@ func packageForClientset(customArgs clientgenargs.Args, clientsetPackage string, func packageForScheme(customArgs clientgenargs.Args, clientsetPackage string, srcTreePath string, boilerplate []byte, generatedBy string) generator.Package { schemePackage := filepath.Join(clientsetPackage, "scheme") + + // create runtime.Registry for internal client because it has to know about group versions + internalClient := false +NextGroup: + for _, group := range customArgs.Groups { + for _, v := range group.Versions { + if v == "" { + internalClient = true + break NextGroup + } + } + } + return &generator.DefaultPackage{ PackageName: "scheme", PackagePath: schemePackage, @@ -173,15 +187,16 @@ func packageForScheme(customArgs clientgenargs.Args, clientsetPackage string, sr // Always generate a "doc.go" file. generator.DefaultGen{OptionalName: "doc"}, - &genScheme{ + &scheme.GenScheme{ DefaultGen: generator.DefaultGen{ OptionalName: "register", }, - inputPackages: customArgs.GroupVersionToInputPath, - outputPackage: schemePackage, - outputPath: filepath.Join(srcTreePath, schemePackage), - groups: customArgs.Groups, - imports: generator.NewImportTracker(), + InputPackages: customArgs.GroupVersionToInputPath, + OutputPackage: schemePackage, + OutputPath: filepath.Join(srcTreePath, schemePackage), + Groups: customArgs.Groups, + ImportTracker: generator.NewImportTracker(), + CreateRegistry: internalClient, }, } return generators diff --git a/cmd/libs/go2idl/client-gen/generators/fake/BUILD b/cmd/libs/go2idl/client-gen/generators/fake/BUILD index 3ab07b80fb0..ed8b8447c35 100644 --- a/cmd/libs/go2idl/client-gen/generators/fake/BUILD +++ b/cmd/libs/go2idl/client-gen/generators/fake/BUILD @@ -18,6 +18,7 @@ go_library( tags = ["automanaged"], deps = [ "//cmd/libs/go2idl/client-gen/args:go_default_library", + "//cmd/libs/go2idl/client-gen/generators/scheme:go_default_library", "//cmd/libs/go2idl/client-gen/types:go_default_library", "//vendor:github.com/golang/glog", "//vendor:k8s.io/gengo/generator", diff --git a/cmd/libs/go2idl/client-gen/generators/fake/fake_client_generator.go b/cmd/libs/go2idl/client-gen/generators/fake/fake_client_generator.go index 7fe315796e5..baa2642c2df 100644 --- a/cmd/libs/go2idl/client-gen/generators/fake/fake_client_generator.go +++ b/cmd/libs/go2idl/client-gen/generators/fake/fake_client_generator.go @@ -25,6 +25,7 @@ import ( "k8s.io/gengo/generator" "k8s.io/gengo/types" clientgenargs "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/args" + scheme "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/generators/scheme" clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types" ) @@ -118,6 +119,17 @@ func PackageForClientset(customArgs clientgenargs.Args, fakeClientsetPackage str imports: generator.NewImportTracker(), realClientsetPackage: filepath.Join(customArgs.ClientsetOutputPath, customArgs.ClientsetName), }, + &scheme.GenScheme{ + DefaultGen: generator.DefaultGen{ + OptionalName: "register", + }, + InputPackages: customArgs.GroupVersionToInputPath, + OutputPackage: fakeClientsetPackage, + Groups: customArgs.Groups, + ImportTracker: generator.NewImportTracker(), + PrivateScheme: true, + CreateRegistry: true, // needed to know about root resources and for RESTMapper + }, } return generators }, diff --git a/cmd/libs/go2idl/client-gen/generators/fake/generator_fake_for_clientset.go b/cmd/libs/go2idl/client-gen/generators/fake/generator_fake_for_clientset.go index e3c4205f39c..19ede1e35c8 100644 --- a/cmd/libs/go2idl/client-gen/generators/fake/generator_fake_for_clientset.go +++ b/cmd/libs/go2idl/client-gen/generators/fake/generator_fake_for_clientset.go @@ -70,7 +70,6 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) { imports = append(imports, fmt.Sprintf("clientset \"%s\"", g.realClientsetPackage)) // imports for the code in commonTemplate imports = append(imports, - "k8s.io/kubernetes/pkg/api", "k8s.io/client-go/testing", "k8s.io/client-go/discovery", "fakediscovery \"k8s.io/client-go/discovery/fake\"", @@ -109,7 +108,7 @@ var common = ` // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -117,7 +116,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/cmd/libs/go2idl/client-gen/generators/scheme/BUILD b/cmd/libs/go2idl/client-gen/generators/scheme/BUILD new file mode 100644 index 00000000000..1cc883cf8d5 --- /dev/null +++ b/cmd/libs/go2idl/client-gen/generators/scheme/BUILD @@ -0,0 +1,33 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["generator_for_scheme.go"], + tags = ["automanaged"], + deps = [ + "//cmd/libs/go2idl/client-gen/types:go_default_library", + "//vendor:k8s.io/gengo/generator", + "//vendor:k8s.io/gengo/namer", + "//vendor:k8s.io/gengo/types", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/libs/go2idl/client-gen/generators/generator_for_scheme.go b/cmd/libs/go2idl/client-gen/generators/scheme/generator_for_scheme.go similarity index 67% rename from cmd/libs/go2idl/client-gen/generators/generator_for_scheme.go rename to cmd/libs/go2idl/client-gen/generators/scheme/generator_for_scheme.go index 562381f769d..869c76a3b54 100644 --- a/cmd/libs/go2idl/client-gen/generators/generator_for_scheme.go +++ b/cmd/libs/go2idl/client-gen/generators/scheme/generator_for_scheme.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package generators +package scheme import ( "fmt" @@ -29,37 +29,38 @@ import ( clientgentypes "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/types" ) -// genScheme produces a package for a clientset with the scheme, codecs and parameter codecs. -type genScheme struct { +// GenScheme produces a package for a clientset with the scheme, codecs and parameter codecs. +type GenScheme struct { generator.DefaultGen - outputPackage string - groups []clientgentypes.GroupVersions - inputPackages map[clientgentypes.GroupVersion]string - outputPath string - imports namer.ImportTracker + OutputPackage string + Groups []clientgentypes.GroupVersions + InputPackages map[clientgentypes.GroupVersion]string + OutputPath string + ImportTracker namer.ImportTracker + PrivateScheme bool + CreateRegistry bool schemeGenerated bool } -func (g *genScheme) Namers(c *generator.Context) namer.NameSystems { +func (g *GenScheme) Namers(c *generator.Context) namer.NameSystems { return namer.NameSystems{ - "raw": namer.NewRawNamer(g.outputPackage, g.imports), + "raw": namer.NewRawNamer(g.OutputPackage, g.ImportTracker), } } // We only want to call GenerateType() once. -func (g *genScheme) Filter(c *generator.Context, t *types.Type) bool { +func (g *GenScheme) Filter(c *generator.Context, t *types.Type) bool { ret := !g.schemeGenerated g.schemeGenerated = true return ret } -func (g *genScheme) Imports(c *generator.Context) (imports []string) { - imports = append(imports, g.imports.ImportLines()...) - internal := g.internalClientset() - for _, group := range g.groups { +func (g *GenScheme) Imports(c *generator.Context) (imports []string) { + imports = append(imports, g.ImportTracker.ImportLines()...) + for _, group := range g.Groups { for _, version := range group.Versions { - packagePath := g.inputPackages[clientgentypes.GroupVersion{Group: group.Group, Version: version}] - if internal { + packagePath := g.InputPackages[clientgentypes.GroupVersion{Group: group.Group, Version: version}] + if g.CreateRegistry { // import the install package for internal clientsets instead of the type package with register.go if version != "" { packagePath = filepath.Dir(packagePath) @@ -75,11 +76,11 @@ func (g *genScheme) Imports(c *generator.Context) (imports []string) { return } -func (g *genScheme) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { +func (g *GenScheme) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error { sw := generator.NewSnippetWriter(w, c, "$", "$") - allGroupVersions := clientgentypes.ToGroupVersionPackages(g.groups) - allInstallGroups := clientgentypes.ToGroupInstallPackages(g.groups) + allGroupVersions := clientgentypes.ToGroupVersionPackages(g.Groups) + allInstallGroups := clientgentypes.ToGroupInstallPackages(g.Groups) m := map[string]interface{}{ "allGroupVersions": allGroupVersions, @@ -96,45 +97,51 @@ func (g *genScheme) GenerateType(c *generator.Context, t *types.Type, w io.Write "registeredNewOrDie": c.Universe.Function(types.Name{Package: "k8s.io/apimachinery/pkg/apimachinery/registered", Name: "NewOrDie"}), "registeredAPIRegistrationManager": c.Universe.Type(types.Name{Package: "k8s.io/apimachinery/pkg/apimachinery/registered", Name: "APIRegistrationManager"}), } - sw.Do(globalsTemplate, m) - - if _, err := os.Stat(filepath.Join(g.outputPath, strings.ToLower("register_custom.go"))); err == nil { - m["customRegister"] = true + globals := map[string]string{ + "Scheme": "Scheme", + "Codecs": "Codecs", + "ParameterCodec": "ParameterCodec", + "Registry": "Registry", + "GroupFactoryRegistry": "GroupFactoryRegistry", + } + for k, v := range globals { + if g.PrivateScheme { + m[k] = strings.ToLower(v[0:1]) + v[1:] + } else { + m[k] = v + } } - if g.internalClientset() { - sw.Do(internalRegistration, m) + sw.Do(globalsTemplate, m) + + if g.OutputPath != "" { + if _, err := os.Stat(filepath.Join(g.OutputPath, strings.ToLower("register_custom.go"))); err == nil { + m["customRegister"] = true + } + } + + if g.CreateRegistry { + sw.Do(registryRegistration, m) } else { - sw.Do(registration, m) + sw.Do(simpleRegistration, m) } return sw.Error() } -func (g *genScheme) internalClientset() bool { - for _, group := range g.groups { - for _, v := range group.Versions { - if v == "" { - return true - } - } - } - return false -} - var globalsTemplate = ` -var Scheme = $.runtimeNewScheme|raw$() -var Codecs = $.serializerNewCodecFactory|raw$(Scheme) -var ParameterCodec = $.runtimeNewParameterCodec|raw$(Scheme) +var $.Scheme$ = $.runtimeNewScheme|raw$() +var $.Codecs$ = $.serializerNewCodecFactory|raw$($.Scheme$) +var $.ParameterCodec$ = $.runtimeNewParameterCodec|raw$($.Scheme$) ` -var internalRegistration = ` -var Registry = $.registeredNewOrDie|raw$($.osGetenv|raw$("KUBE_API_VERSIONS")) -var GroupFactoryRegistry = make($.announcedAPIGroupFactoryRegistry|raw$) +var registryRegistration = ` +var $.Registry$ = $.registeredNewOrDie|raw$($.osGetenv|raw$("KUBE_API_VERSIONS")) +var $.GroupFactoryRegistry$ = make($.announcedAPIGroupFactoryRegistry|raw$) func init() { - $.metav1AddToGroupVersion|raw$(Scheme, $.schemaGroupVersion|raw${Version: "v1"}) - Install(GroupFactoryRegistry, Registry, Scheme) + $.metav1AddToGroupVersion|raw$($.Scheme$, $.schemaGroupVersion|raw${Version: "v1"}) + Install($.GroupFactoryRegistry$, $.Registry$, $.Scheme$) } // Install registers the API group and adds types to a scheme @@ -145,12 +152,12 @@ func Install(groupFactoryRegistry $.announcedAPIGroupFactoryRegistry|raw$, regis } ` -var registration = ` +var simpleRegistration = ` func init() { - $.metav1AddToGroupVersion|raw$(Scheme, $.schemaGroupVersion|raw${Version: "v1"}) - AddToScheme(Scheme) + $.metav1AddToGroupVersion|raw$($.Scheme$, $.schemaGroupVersion|raw${Version: "v1"}) + AddToScheme($.Scheme$) } // AddToScheme adds all types of this clientset into the given scheme. This allows composition diff --git a/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/BUILD b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/BUILD index 37e503add50..8ba24e23fc4 100644 --- a/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/BUILD +++ b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/BUILD @@ -12,14 +12,20 @@ go_library( srcs = [ "clientset_generated.go", "doc.go", + "register.go", ], tags = ["automanaged"], deps = [ + "//cmd/libs/go2idl/client-gen/test_apis/testgroup/install:go_default_library", "//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset:go_default_library", "//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion:go_default_library", "//cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion/fake:go_default_library", - "//pkg/api:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", diff --git a/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/clientset_generated.go b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/clientset_generated.go index 2b97b40b01e..47f501e7854 100644 --- a/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/clientset_generated.go +++ b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/clientset_generated.go @@ -25,7 +25,6 @@ import ( clientset "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset" testgroupinternalversion "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion" faketestgroupinternalversion "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/typed/testgroup/internalversion/fake" - "k8s.io/kubernetes/pkg/api" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -33,7 +32,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -41,7 +40,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/register.go b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/register.go new file mode 100644 index 00000000000..c73ab04db52 --- /dev/null +++ b/cmd/libs/go2idl/client-gen/testoutput/clientset_generated/test_internalclientset/fake/register.go @@ -0,0 +1,46 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + testgroup "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + testgroup.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/federation/client/clientset_generated/federation_clientset/fake/BUILD b/federation/client/clientset_generated/federation_clientset/fake/BUILD index 2f186251124..7813bde199a 100644 --- a/federation/client/clientset_generated/federation_clientset/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/fake/BUILD @@ -12,9 +12,11 @@ go_library( srcs = [ "clientset_generated.go", "doc.go", + "register.go", ], tags = ["automanaged"], deps = [ + "//federation/apis/federation/install:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake:go_default_library", @@ -26,8 +28,16 @@ go_library( "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/extensions/install:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", diff --git a/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go b/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go index cf7555d810e..ac7c4d35dd1 100644 --- a/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go +++ b/federation/client/clientset_generated/federation_clientset/fake/clientset_generated.go @@ -33,7 +33,6 @@ import ( fakeextensionsv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake" federationv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1" fakefederationv1beta1 "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake" - "k8s.io/kubernetes/pkg/api" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -41,7 +40,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -49,7 +48,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/federation/client/clientset_generated/federation_clientset/fake/register.go b/federation/client/clientset_generated/federation_clientset/fake/register.go new file mode 100644 index 00000000000..9bcf2349e5b --- /dev/null +++ b/federation/client/clientset_generated/federation_clientset/fake/register.go @@ -0,0 +1,54 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + federation "k8s.io/kubernetes/federation/apis/federation/install" + core "k8s.io/kubernetes/pkg/api/install" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling/install" + batch "k8s.io/kubernetes/pkg/apis/batch/install" + extensions "k8s.io/kubernetes/pkg/apis/extensions/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + core.Install(groupFactoryRegistry, registry, scheme) + autoscaling.Install(groupFactoryRegistry, registry, scheme) + batch.Install(groupFactoryRegistry, registry, scheme) + extensions.Install(groupFactoryRegistry, registry, scheme) + federation.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/federation/client/clientset_generated/federation_internalclientset/fake/BUILD b/federation/client/clientset_generated/federation_internalclientset/fake/BUILD index 98926afac8a..b48adb79c9e 100644 --- a/federation/client/clientset_generated/federation_internalclientset/fake/BUILD +++ b/federation/client/clientset_generated/federation_internalclientset/fake/BUILD @@ -12,9 +12,11 @@ go_library( srcs = [ "clientset_generated.go", "doc.go", + "register.go", ], tags = ["automanaged"], deps = [ + "//federation/apis/federation/install:go_default_library", "//federation/client/clientset_generated/federation_internalclientset:go_default_library", "//federation/client/clientset_generated/federation_internalclientset/typed/autoscaling/internalversion:go_default_library", "//federation/client/clientset_generated/federation_internalclientset/typed/autoscaling/internalversion/fake:go_default_library", @@ -26,8 +28,16 @@ go_library( "//federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake:go_default_library", "//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion:go_default_library", "//federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake:go_default_library", - "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/extensions/install:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", diff --git a/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go b/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go index 44d198b5335..ef8fb8ff5af 100644 --- a/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go +++ b/federation/client/clientset_generated/federation_internalclientset/fake/clientset_generated.go @@ -33,7 +33,6 @@ import ( fakeextensionsinternalversion "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion/fake" federationinternalversion "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion" fakefederationinternalversion "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion/fake" - "k8s.io/kubernetes/pkg/api" ) // NewSimpleClientset returns a clientset that will respond with the provided objects. @@ -41,7 +40,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -49,7 +48,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/federation/client/clientset_generated/federation_internalclientset/fake/register.go b/federation/client/clientset_generated/federation_internalclientset/fake/register.go new file mode 100644 index 00000000000..9bcf2349e5b --- /dev/null +++ b/federation/client/clientset_generated/federation_internalclientset/fake/register.go @@ -0,0 +1,54 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + federation "k8s.io/kubernetes/federation/apis/federation/install" + core "k8s.io/kubernetes/pkg/api/install" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling/install" + batch "k8s.io/kubernetes/pkg/apis/batch/install" + extensions "k8s.io/kubernetes/pkg/apis/extensions/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + core.Install(groupFactoryRegistry, registry, scheme) + autoscaling.Install(groupFactoryRegistry, registry, scheme) + batch.Install(groupFactoryRegistry, registry, scheme) + extensions.Install(groupFactoryRegistry, registry, scheme) + federation.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/pkg/client/clientset_generated/clientset/fake/BUILD b/pkg/client/clientset_generated/clientset/fake/BUILD index f4941cd7af9..c1a10a96b20 100644 --- a/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/pkg/client/clientset_generated/clientset/fake/BUILD @@ -12,10 +12,21 @@ go_library( srcs = [ "clientset_generated.go", "doc.go", + "register.go", ], tags = ["automanaged"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/authentication/install:go_default_library", + "//pkg/apis/authorization/install:go_default_library", + "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/certificates/install:go_default_library", + "//pkg/apis/extensions/install:go_default_library", + "//pkg/apis/policy/install:go_default_library", + "//pkg/apis/rbac/install:go_default_library", + "//pkg/apis/storage/install:go_default_library", "//pkg/client/clientset_generated/clientset:go_default_library", "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1:go_default_library", "//pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake:go_default_library", @@ -49,7 +60,12 @@ go_library( "//pkg/client/clientset_generated/clientset/typed/rbac/v1beta1/fake:go_default_library", "//pkg/client/clientset_generated/clientset/typed/storage/v1beta1:go_default_library", "//pkg/client/clientset_generated/clientset/typed/storage/v1beta1/fake:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", diff --git a/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/pkg/client/clientset_generated/clientset/fake/clientset_generated.go index 6642b0186dd..9be6be9f3a0 100644 --- a/pkg/client/clientset_generated/clientset/fake/clientset_generated.go +++ b/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -22,7 +22,6 @@ import ( "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" appsv1beta1 "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1" fakeappsv1beta1 "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/apps/v1beta1/fake" @@ -63,7 +62,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -71,7 +70,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/pkg/client/clientset_generated/clientset/fake/register.go b/pkg/client/clientset_generated/clientset/fake/register.go new file mode 100644 index 00000000000..b1651791963 --- /dev/null +++ b/pkg/client/clientset_generated/clientset/fake/register.go @@ -0,0 +1,66 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + core "k8s.io/kubernetes/pkg/api/install" + apps "k8s.io/kubernetes/pkg/apis/apps/install" + authentication "k8s.io/kubernetes/pkg/apis/authentication/install" + authorization "k8s.io/kubernetes/pkg/apis/authorization/install" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling/install" + batch "k8s.io/kubernetes/pkg/apis/batch/install" + certificates "k8s.io/kubernetes/pkg/apis/certificates/install" + extensions "k8s.io/kubernetes/pkg/apis/extensions/install" + policy "k8s.io/kubernetes/pkg/apis/policy/install" + rbac "k8s.io/kubernetes/pkg/apis/rbac/install" + storage "k8s.io/kubernetes/pkg/apis/storage/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + core.Install(groupFactoryRegistry, registry, scheme) + apps.Install(groupFactoryRegistry, registry, scheme) + authentication.Install(groupFactoryRegistry, registry, scheme) + authorization.Install(groupFactoryRegistry, registry, scheme) + autoscaling.Install(groupFactoryRegistry, registry, scheme) + batch.Install(groupFactoryRegistry, registry, scheme) + certificates.Install(groupFactoryRegistry, registry, scheme) + extensions.Install(groupFactoryRegistry, registry, scheme) + policy.Install(groupFactoryRegistry, registry, scheme) + rbac.Install(groupFactoryRegistry, registry, scheme) + storage.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/pkg/client/clientset_generated/internalclientset/fake/BUILD b/pkg/client/clientset_generated/internalclientset/fake/BUILD index 8a356e5af4b..e5c450213fe 100644 --- a/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -12,10 +12,21 @@ go_library( srcs = [ "clientset_generated.go", "doc.go", + "register.go", ], tags = ["automanaged"], deps = [ - "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/apis/apps/install:go_default_library", + "//pkg/apis/authentication/install:go_default_library", + "//pkg/apis/authorization/install:go_default_library", + "//pkg/apis/autoscaling/install:go_default_library", + "//pkg/apis/batch/install:go_default_library", + "//pkg/apis/certificates/install:go_default_library", + "//pkg/apis/extensions/install:go_default_library", + "//pkg/apis/policy/install:go_default_library", + "//pkg/apis/rbac/install:go_default_library", + "//pkg/apis/storage/install:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake:go_default_library", @@ -39,7 +50,12 @@ go_library( "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/storage/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake:go_default_library", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", diff --git a/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go b/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go index 2cc55322b81..090fb7fe446 100644 --- a/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -22,7 +22,6 @@ import ( "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" "k8s.io/client-go/testing" - "k8s.io/kubernetes/pkg/api" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" appsinternalversion "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion" fakeappsinternalversion "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake" @@ -53,7 +52,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -61,7 +60,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/pkg/client/clientset_generated/internalclientset/fake/register.go b/pkg/client/clientset_generated/internalclientset/fake/register.go new file mode 100644 index 00000000000..b1651791963 --- /dev/null +++ b/pkg/client/clientset_generated/internalclientset/fake/register.go @@ -0,0 +1,66 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + core "k8s.io/kubernetes/pkg/api/install" + apps "k8s.io/kubernetes/pkg/apis/apps/install" + authentication "k8s.io/kubernetes/pkg/apis/authentication/install" + authorization "k8s.io/kubernetes/pkg/apis/authorization/install" + autoscaling "k8s.io/kubernetes/pkg/apis/autoscaling/install" + batch "k8s.io/kubernetes/pkg/apis/batch/install" + certificates "k8s.io/kubernetes/pkg/apis/certificates/install" + extensions "k8s.io/kubernetes/pkg/apis/extensions/install" + policy "k8s.io/kubernetes/pkg/apis/policy/install" + rbac "k8s.io/kubernetes/pkg/apis/rbac/install" + storage "k8s.io/kubernetes/pkg/apis/storage/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + core.Install(groupFactoryRegistry, registry, scheme) + apps.Install(groupFactoryRegistry, registry, scheme) + authentication.Install(groupFactoryRegistry, registry, scheme) + authorization.Install(groupFactoryRegistry, registry, scheme) + autoscaling.Install(groupFactoryRegistry, registry, scheme) + batch.Install(groupFactoryRegistry, registry, scheme) + certificates.Install(groupFactoryRegistry, registry, scheme) + extensions.Install(groupFactoryRegistry, registry, scheme) + policy.Install(groupFactoryRegistry, registry, scheme) + rbac.Install(groupFactoryRegistry, registry, scheme) + storage.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go index 72943935f42..4647ade3c11 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -54,7 +54,6 @@ import ( fakerbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake" storagev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1" fakestoragev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/testing" ) @@ -63,7 +62,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -71,7 +70,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/register.go b/staging/src/k8s.io/client-go/kubernetes/fake/register.go new file mode 100644 index 00000000000..312867e659c --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/fake/register.go @@ -0,0 +1,66 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + core "k8s.io/client-go/pkg/api/install" + apps "k8s.io/client-go/pkg/apis/apps/install" + authentication "k8s.io/client-go/pkg/apis/authentication/install" + authorization "k8s.io/client-go/pkg/apis/authorization/install" + autoscaling "k8s.io/client-go/pkg/apis/autoscaling/install" + batch "k8s.io/client-go/pkg/apis/batch/install" + certificates "k8s.io/client-go/pkg/apis/certificates/install" + extensions "k8s.io/client-go/pkg/apis/extensions/install" + policy "k8s.io/client-go/pkg/apis/policy/install" + rbac "k8s.io/client-go/pkg/apis/rbac/install" + storage "k8s.io/client-go/pkg/apis/storage/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + core.Install(groupFactoryRegistry, registry, scheme) + apps.Install(groupFactoryRegistry, registry, scheme) + authentication.Install(groupFactoryRegistry, registry, scheme) + authorization.Install(groupFactoryRegistry, registry, scheme) + autoscaling.Install(groupFactoryRegistry, registry, scheme) + batch.Install(groupFactoryRegistry, registry, scheme) + certificates.Install(groupFactoryRegistry, registry, scheme) + extensions.Install(groupFactoryRegistry, registry, scheme) + policy.Install(groupFactoryRegistry, registry, scheme) + rbac.Install(groupFactoryRegistry, registry, scheme) + storage.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh b/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh index 6e4aab5ec59..656d405749a 100755 --- a/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh +++ b/staging/src/k8s.io/kube-aggregator/hack/update-codegen.sh @@ -77,13 +77,3 @@ ${informergen} \ --listers-package k8s.io/kube-aggregator/pkg/client/listers \ --output-package k8s.io/kube-aggregator/pkg/client/informers "$@" - - -# this is a temporary hack until we manage to update codegen to accept a scheme instead of hardcoding it -echo "rewriting imports" -grep -R -H "\"k8s.io/kubernetes/pkg" "${KUBE_ROOT}/vendor/k8s.io/kube-aggregator/pkg/client" | cut -d: -f1 | sort | uniq | \ - grep "\.go" | \ - xargs ${SED} -i "s|\"k8s.io/kubernetes/pkg|\"k8s.io/client-go/pkg|g" - -echo "running gofmt" -find "${KUBE_ROOT}/vendor/k8s.io/kube-aggregator/pkg/client" -type f -name "*.go" -print0 | xargs -0 gofmt -w diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go index 4d8ecd43ce0..61cfa8f5a1f 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go @@ -21,7 +21,6 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/testing" clientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset" apiregistrationv1alpha1 "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1alpha1" @@ -33,7 +32,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -41,7 +40,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/register.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/register.go new file mode 100644 index 00000000000..8de51af7d8c --- /dev/null +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/register.go @@ -0,0 +1,46 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + apiregistration "k8s.io/kube-aggregator/pkg/apis/apiregistration/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + apiregistration.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go index 1aaee074552..c12eff37fc3 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go @@ -21,7 +21,6 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" - "k8s.io/client-go/pkg/api" "k8s.io/client-go/testing" clientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset" apiregistrationinternalversion "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion" @@ -33,7 +32,7 @@ import ( // without applying any validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. func NewSimpleClientset(objects ...runtime.Object) *Clientset { - o := testing.NewObjectTracker(api.Registry, api.Scheme, api.Codecs.UniversalDecoder()) + o := testing.NewObjectTracker(registry, scheme, codecs.UniversalDecoder()) for _, obj := range objects { if err := o.Add(obj); err != nil { panic(err) @@ -41,7 +40,7 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { } fakePtr := testing.Fake{} - fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, api.Registry.RESTMapper())) + fakePtr.AddReactor("*", "*", testing.ObjectReaction(o, registry.RESTMapper())) fakePtr.AddWatchReactor("*", testing.DefaultWatchReactor(watch.NewFake(), nil)) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/register.go b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/register.go new file mode 100644 index 00000000000..8de51af7d8c --- /dev/null +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/register.go @@ -0,0 +1,46 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + announced "k8s.io/apimachinery/pkg/apimachinery/announced" + registered "k8s.io/apimachinery/pkg/apimachinery/registered" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + apiregistration "k8s.io/kube-aggregator/pkg/apis/apiregistration/install" + os "os" +) + +var scheme = runtime.NewScheme() +var codecs = serializer.NewCodecFactory(scheme) +var parameterCodec = runtime.NewParameterCodec(scheme) + +var registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS")) +var groupFactoryRegistry = make(announced.APIGroupFactoryRegistry) + +func init() { + v1.AddToGroupVersion(scheme, schema.GroupVersion{Version: "v1"}) + Install(groupFactoryRegistry, registry, scheme) +} + +// Install registers the API group and adds types to a scheme +func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { + apiregistration.Install(groupFactoryRegistry, registry, scheme) + +} diff --git a/vendor/BUILD b/vendor/BUILD index 7022b2ec8dc..bb41f7ef7d0 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -12999,10 +12999,16 @@ go_library( srcs = [ "k8s.io/client-go/kubernetes/fake/clientset_generated.go", "k8s.io/client-go/kubernetes/fake/doc.go", + "k8s.io/client-go/kubernetes/fake/register.go", ], tags = ["automanaged"], deps = [ + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", @@ -13039,7 +13045,17 @@ go_library( "//vendor:k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake", "//vendor:k8s.io/client-go/kubernetes/typed/storage/v1beta1", "//vendor:k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake", - "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/install", + "//vendor:k8s.io/client-go/pkg/apis/apps/install", + "//vendor:k8s.io/client-go/pkg/apis/authentication/install", + "//vendor:k8s.io/client-go/pkg/apis/authorization/install", + "//vendor:k8s.io/client-go/pkg/apis/autoscaling/install", + "//vendor:k8s.io/client-go/pkg/apis/batch/install", + "//vendor:k8s.io/client-go/pkg/apis/certificates/install", + "//vendor:k8s.io/client-go/pkg/apis/extensions/install", + "//vendor:k8s.io/client-go/pkg/apis/policy/install", + "//vendor:k8s.io/client-go/pkg/apis/rbac/install", + "//vendor:k8s.io/client-go/pkg/apis/storage/install", "//vendor:k8s.io/client-go/testing", ], ) @@ -15981,15 +15997,21 @@ go_library( srcs = [ "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/clientset_generated.go", "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/doc.go", + "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/register.go", ], tags = ["automanaged"], deps = [ + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", - "//vendor:k8s.io/client-go/pkg/api", "//vendor:k8s.io/client-go/testing", + "//vendor:k8s.io/kube-aggregator/pkg/apis/apiregistration/install", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1alpha1", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1alpha1/fake", @@ -16058,15 +16080,21 @@ go_library( srcs = [ "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/clientset_generated.go", "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/doc.go", + "k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/register.go", ], tags = ["automanaged"], deps = [ + "//vendor:k8s.io/apimachinery/pkg/apimachinery/announced", + "//vendor:k8s.io/apimachinery/pkg/apimachinery/registered", + "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/runtime", + "//vendor:k8s.io/apimachinery/pkg/runtime/schema", + "//vendor:k8s.io/apimachinery/pkg/runtime/serializer", "//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/client-go/discovery", "//vendor:k8s.io/client-go/discovery/fake", - "//vendor:k8s.io/client-go/pkg/api", "//vendor:k8s.io/client-go/testing", + "//vendor:k8s.io/kube-aggregator/pkg/apis/apiregistration/install", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion", "//vendor:k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake",