Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
92c36bed
Commit
92c36bed
authored
Feb 19, 2017
by
Dr. Stefan Schimanski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
client-set: use clientset internal scheme
parent
49c536ba
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
287 additions
and
106 deletions
+287
-106
client_generator.go
cmd/libs/go2idl/client-gen/generators/client_generator.go
+48
-12
generator_for_group.go
cmd/libs/go2idl/client-gen/generators/generator_for_group.go
+16
-25
generator_for_scheme.go
...libs/go2idl/client-gen/generators/generator_for_scheme.go
+175
-0
generator_for_type.go
cmd/libs/go2idl/client-gen/generators/generator_for_type.go
+23
-22
helpers.go
cmd/libs/go2idl/client-gen/types/helpers.go
+11
-0
types.go
cmd/libs/go2idl/client-gen/types/types.go
+5
-0
import_known_versions.go
...tset_generated/internalclientset/import_known_versions.go
+0
-42
register_custom.go
...set_generated/internalclientset/scheme/register_custom.go
+9
-5
No files found.
cmd/libs/go2idl/client-gen/generators/client_generator.go
View file @
92c36bed
...
@@ -85,11 +85,12 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
...
@@ -85,11 +85,12 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
DefaultGen
:
generator
.
DefaultGen
{
DefaultGen
:
generator
.
DefaultGen
{
OptionalName
:
strings
.
ToLower
(
c
.
Namers
[
"private"
]
.
Name
(
t
)),
OptionalName
:
strings
.
ToLower
(
c
.
Namers
[
"private"
]
.
Name
(
t
)),
},
},
outputPackage
:
groupVersionClientPackage
,
outputPackage
:
groupVersionClientPackage
,
group
:
gv
.
Group
.
NonEmpty
(),
clientsetPackage
:
clientsetPackage
,
version
:
gv
.
Version
.
String
(),
group
:
gv
.
Group
.
NonEmpty
(),
typeToMatch
:
t
,
version
:
gv
.
Version
.
String
(),
imports
:
generator
.
NewImportTracker
(),
typeToMatch
:
t
,
imports
:
generator
.
NewImportTracker
(),
})
})
}
}
...
@@ -97,13 +98,14 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
...
@@ -97,13 +98,14 @@ func packageForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, cli
DefaultGen
:
generator
.
DefaultGen
{
DefaultGen
:
generator
.
DefaultGen
{
OptionalName
:
gv
.
Group
.
NonEmpty
()
+
"_client"
,
OptionalName
:
gv
.
Group
.
NonEmpty
()
+
"_client"
,
},
},
outputPackage
:
groupVersionClientPackage
,
outputPackage
:
groupVersionClientPackage
,
inputPackage
:
inputPackage
,
inputPackage
:
inputPackage
,
group
:
gv
.
Group
.
NonEmpty
(),
clientsetPackage
:
clientsetPackage
,
version
:
gv
.
Version
.
String
(),
group
:
gv
.
Group
.
NonEmpty
(),
apiPath
:
apiPath
,
version
:
gv
.
Version
.
String
(),
types
:
typeList
,
apiPath
:
apiPath
,
imports
:
generator
.
NewImportTracker
(),
types
:
typeList
,
imports
:
generator
.
NewImportTracker
(),
})
})
expansionFileName
:=
"generated_expansion"
expansionFileName
:=
"generated_expansion"
...
@@ -154,6 +156,39 @@ func packageForClientset(customArgs clientgenargs.Args, clientsetPackage string,
...
@@ -154,6 +156,39 @@ 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"
)
return
&
generator
.
DefaultPackage
{
PackageName
:
"scheme"
,
PackagePath
:
schemePackage
,
HeaderText
:
boilerplate
,
PackageDocumentation
:
[]
byte
(
generatedBy
+
`// This package contains the scheme of the automatically generated clientset.
`
),
// GeneratorFunc returns a list of generators. Each generator generates a
// single file.
GeneratorFunc
:
func
(
c
*
generator
.
Context
)
(
generators
[]
generator
.
Generator
)
{
generators
=
[]
generator
.
Generator
{
// Always generate a "doc.go" file.
generator
.
DefaultGen
{
OptionalName
:
"doc"
},
&
genScheme
{
DefaultGen
:
generator
.
DefaultGen
{
OptionalName
:
"register"
,
},
inputPackages
:
customArgs
.
GroupVersionToInputPath
,
outputPackage
:
schemePackage
,
outputPath
:
filepath
.
Join
(
srcTreePath
,
schemePackage
),
groups
:
customArgs
.
Groups
,
imports
:
generator
.
NewImportTracker
(),
},
}
return
generators
},
}
}
// Packages makes the client package definition.
// Packages makes the client package definition.
func
Packages
(
context
*
generator
.
Context
,
arguments
*
args
.
GeneratorArgs
)
generator
.
Packages
{
func
Packages
(
context
*
generator
.
Context
,
arguments
*
args
.
GeneratorArgs
)
generator
.
Packages
{
boilerplate
,
err
:=
arguments
.
LoadGoBoilerplate
()
boilerplate
,
err
:=
arguments
.
LoadGoBoilerplate
()
...
@@ -204,6 +239,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
...
@@ -204,6 +239,7 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
clientsetPackage
:=
filepath
.
Join
(
customArgs
.
ClientsetOutputPath
,
customArgs
.
ClientsetName
)
clientsetPackage
:=
filepath
.
Join
(
customArgs
.
ClientsetOutputPath
,
customArgs
.
ClientsetName
)
packageList
=
append
(
packageList
,
packageForClientset
(
customArgs
,
clientsetPackage
,
boilerplate
,
generatedBy
))
packageList
=
append
(
packageList
,
packageForClientset
(
customArgs
,
clientsetPackage
,
boilerplate
,
generatedBy
))
packageList
=
append
(
packageList
,
packageForScheme
(
customArgs
,
clientsetPackage
,
arguments
.
OutputBase
,
boilerplate
,
generatedBy
))
if
customArgs
.
FakeClient
{
if
customArgs
.
FakeClient
{
packageList
=
append
(
packageList
,
fake
.
PackageForClientset
(
customArgs
,
clientsetPackage
,
boilerplate
,
generatedBy
))
packageList
=
append
(
packageList
,
fake
.
PackageForClientset
(
customArgs
,
clientsetPackage
,
boilerplate
,
generatedBy
))
}
}
...
...
cmd/libs/go2idl/client-gen/generators/generator_for_group.go
View file @
92c36bed
...
@@ -18,6 +18,7 @@ package generators
...
@@ -18,6 +18,7 @@ package generators
import
(
import
(
"io"
"io"
"path/filepath"
"k8s.io/gengo/generator"
"k8s.io/gengo/generator"
"k8s.io/gengo/namer"
"k8s.io/gengo/namer"
...
@@ -32,9 +33,10 @@ type genGroup struct {
...
@@ -32,9 +33,10 @@ type genGroup struct {
version
string
version
string
apiPath
string
apiPath
string
// types in this group
// types in this group
types
[]
*
types
.
Type
types
[]
*
types
.
Type
imports
namer
.
ImportTracker
imports
namer
.
ImportTracker
inputPackage
string
inputPackage
string
clientsetPackage
string
}
}
var
_
generator
.
Generator
=
&
genGroup
{}
var
_
generator
.
Generator
=
&
genGroup
{}
...
@@ -52,6 +54,7 @@ func (g *genGroup) Namers(c *generator.Context) namer.NameSystems {
...
@@ -52,6 +54,7 @@ func (g *genGroup) Namers(c *generator.Context) namer.NameSystems {
func
(
g
*
genGroup
)
Imports
(
c
*
generator
.
Context
)
(
imports
[]
string
)
{
func
(
g
*
genGroup
)
Imports
(
c
*
generator
.
Context
)
(
imports
[]
string
)
{
imports
=
append
(
imports
,
g
.
imports
.
ImportLines
()
...
)
imports
=
append
(
imports
,
g
.
imports
.
ImportLines
()
...
)
imports
=
append
(
imports
,
filepath
.
Join
(
g
.
clientsetPackage
,
"scheme"
))
return
return
}
}
...
@@ -85,17 +88,14 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
...
@@ -85,17 +88,14 @@ func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer
"groupName"
:
groupName
,
"groupName"
:
groupName
,
"types"
:
g
.
types
,
"types"
:
g
.
types
,
"apiPath"
:
apiPath
(
g
.
group
),
"apiPath"
:
apiPath
(
g
.
group
),
"fmtErrorf"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"fmt"
,
Name
:
"Errorf"
}),
"runtimeAPIVersionInternal"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime"
,
Name
:
"APIVersionInternal"
}),
"schemaGroupVersion"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/schema"
,
Name
:
"GroupVersion"
}),
"schemaGroupVersion"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/schema"
,
Name
:
"GroupVersion"
}),
"
schemaParseGroupVersion"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/schema"
,
Name
:
"ParseGroupVersion
"
}),
"
runtimeAPIVersionInternal"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime"
,
Name
:
"APIVersionInternal
"
}),
"serializerDirectCodecFactory"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/serializer"
,
Name
:
"DirectCodecFactory"
}),
"serializerDirectCodecFactory"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/serializer"
,
Name
:
"DirectCodecFactory"
}),
"restConfig"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Config"
}),
"restConfig"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Config"
}),
"restDefaultKubernetesUserAgent"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"DefaultKubernetesUserAgent"
}),
"restDefaultKubernetesUserAgent"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"DefaultKubernetesUserAgent"
}),
"restRESTClientInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Interface"
}),
"restRESTClientInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Interface"
}),
"restRESTClientFor"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"RESTClientFor"
}),
"restRESTClientFor"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"RESTClientFor"
}),
"apiCodecs"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
"k8s.io/kubernetes/pkg/api"
,
Name
:
"Codecs"
}),
"SchemeGroupVersion"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
g
.
inputPackage
,
Name
:
"SchemeGroupVersion"
}),
"apiRegistry"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
"k8s.io/kubernetes/pkg/api"
,
Name
:
"Registry"
}),
}
}
sw
.
Do
(
groupInterfaceTemplate
,
m
)
sw
.
Do
(
groupInterfaceTemplate
,
m
)
sw
.
Do
(
groupClientTemplate
,
m
)
sw
.
Do
(
groupClientTemplate
,
m
)
...
@@ -198,8 +198,7 @@ func New(c $.restRESTClientInterface|raw$) *$.GroupVersion$Client {
...
@@ -198,8 +198,7 @@ func New(c $.restRESTClientInterface|raw$) *$.GroupVersion$Client {
var
setInternalVersionClientDefaultsTemplate
=
`
var
setInternalVersionClientDefaultsTemplate
=
`
func setConfigDefaults(config *$.restConfig|raw$) error {
func setConfigDefaults(config *$.restConfig|raw$) error {
// if $.group$ group is not registered, return an error
g, err := scheme.Registry.Group("$.groupName$")
g, err := $.apiRegistry|raw$.Group("$.groupName$")
if err != nil {
if err != nil {
return err
return err
}
}
...
@@ -209,10 +208,10 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
...
@@ -209,10 +208,10 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
}
}
if config.GroupVersion == nil || config.GroupVersion.Group != g.GroupVersion.Group {
if config.GroupVersion == nil || config.GroupVersion.Group != g.GroupVersion.Group {
copyGroupVersion
:= g.GroupVersion
gv
:= g.GroupVersion
config.GroupVersion = &
copyGroupVersion
config.GroupVersion = &
gv
}
}
config.NegotiatedSerializer =
$.apiCodecs|raw$
config.NegotiatedSerializer =
scheme.Codecs
if config.QPS == 0 {
if config.QPS == 0 {
config.QPS = 5
config.QPS = 5
...
@@ -227,22 +226,14 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
...
@@ -227,22 +226,14 @@ func setConfigDefaults(config *$.restConfig|raw$) error {
var
setClientDefaultsTemplate
=
`
var
setClientDefaultsTemplate
=
`
func setConfigDefaults(config *$.restConfig|raw$) error {
func setConfigDefaults(config *$.restConfig|raw$) error {
gv, err := $.schemaParseGroupVersion|raw$("$.groupName$/$.version$")
gv := $.SchemeGroupVersion|raw$
if err != nil {
config.GroupVersion = &gv
return err
}
// if $.groupName$/$.version$ is not enabled, return an error
if ! $.apiRegistry|raw$.IsEnabledVersion(gv) {
return $.fmtErrorf|raw$("$.groupName$/$.version$ is not enabled")
}
config.APIPath = $.apiPath$
config.APIPath = $.apiPath$
config.NegotiatedSerializer = $.serializerDirectCodecFactory|raw${CodecFactory: scheme.Codecs}
if config.UserAgent == "" {
if config.UserAgent == "" {
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
config.UserAgent = $.restDefaultKubernetesUserAgent|raw$()
}
}
copyGroupVersion := gv
config.GroupVersion = ©GroupVersion
config.NegotiatedSerializer = $.serializerDirectCodecFactory|raw${CodecFactory: $.apiCodecs|raw$}
return nil
return nil
}
}
...
...
cmd/libs/go2idl/client-gen/generators/generator_for_scheme.go
0 → 100644
View file @
92c36bed
/*
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
generators
import
(
"fmt"
"io"
"os"
"path/filepath"
"strings"
"k8s.io/gengo/generator"
"k8s.io/gengo/namer"
"k8s.io/gengo/types"
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
{
generator
.
DefaultGen
outputPackage
string
groups
[]
clientgentypes
.
GroupVersions
inputPackages
map
[
clientgentypes
.
GroupVersion
]
string
outputPath
string
imports
namer
.
ImportTracker
schemeGenerated
bool
}
func
(
g
*
genScheme
)
Namers
(
c
*
generator
.
Context
)
namer
.
NameSystems
{
return
namer
.
NameSystems
{
"raw"
:
namer
.
NewRawNamer
(
g
.
outputPackage
,
g
.
imports
),
}
}
// We only want to call GenerateType() once.
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
{
for
_
,
version
:=
range
group
.
Versions
{
packagePath
:=
g
.
inputPackages
[
clientgentypes
.
GroupVersion
{
Group
:
group
.
Group
,
Version
:
version
}]
if
internal
{
// import the install package for internal clientsets instead of the type package with register.go
if
version
!=
""
{
packagePath
=
filepath
.
Dir
(
packagePath
)
}
packagePath
=
filepath
.
Join
(
packagePath
,
"install"
)
imports
=
append
(
imports
,
strings
.
ToLower
(
fmt
.
Sprintf
(
"%s
\"
%s
\"
"
,
group
.
Group
.
NonEmpty
(),
packagePath
)))
break
}
else
{
imports
=
append
(
imports
,
strings
.
ToLower
(
fmt
.
Sprintf
(
"%s%s
\"
%s
\"
"
,
group
.
Group
.
NonEmpty
(),
version
.
NonEmpty
(),
packagePath
)))
}
}
}
return
}
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
)
m
:=
map
[
string
]
interface
{}{
"allGroupVersions"
:
allGroupVersions
,
"allInstallGroups"
:
allInstallGroups
,
"customRegister"
:
false
,
"osGetenv"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"os"
,
Name
:
"Getenv"
}),
"runtimeNewParameterCodec"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime"
,
Name
:
"NewParameterCodec"
}),
"runtimeNewScheme"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime"
,
Name
:
"NewScheme"
}),
"serializerNewCodecFactory"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/serializer"
,
Name
:
"NewCodecFactory"
}),
"runtimeScheme"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime"
,
Name
:
"Scheme"
}),
"schemaGroupVersion"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/runtime/schema"
,
Name
:
"GroupVersion"
}),
"metav1AddToGroupVersion"
:
c
.
Universe
.
Function
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"AddToGroupVersion"
}),
"announcedAPIGroupFactoryRegistry"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apimachinery/announced"
,
Name
:
"APIGroupFactoryRegistry"
}),
"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
}
if
g
.
internalClientset
()
{
sw
.
Do
(
internalRegistration
,
m
)
}
else
{
sw
.
Do
(
registration
,
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
internalRegistration
=
`
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)
}
// Install registers the API group and adds types to a scheme
func Install(groupFactoryRegistry $.announcedAPIGroupFactoryRegistry|raw$, registry *$.registeredAPIRegistrationManager|raw$, scheme *$.runtimeScheme|raw$) {
$range .allInstallGroups$ $.InstallPackageName$.Install(groupFactoryRegistry, registry, scheme)
$end$
$if .customRegister$ExtraInstall(groupFactoryRegistry, registry, scheme)$end$
}
`
var
registration
=
`
func init() {
$.metav1AddToGroupVersion|raw$(Scheme, $.schemaGroupVersion|raw${Version: "v1"})
AddToScheme(Scheme)
}
// AddToScheme adds all types of this clientset into the given scheme. This allows composition
// of clientsets, like in:
//
// import (
// "k8s.io/client-go/kubernetes"
// clientsetscheme "k8s.io/client-go/kuberentes/scheme"
// aggregatorclientsetscheme "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme"
// )
//
// kclientset, _ := kubernetes.NewForConfig(c)
// aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)
//
// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types
// correctly.
func AddToScheme(scheme *$.runtimeScheme|raw$) {
$range .allGroupVersions$ $.PackageName$.AddToScheme(scheme)
$end$
$if .customRegister$ExtraAddToScheme(scheme)$end$
}
`
cmd/libs/go2idl/client-gen/generators/generator_for_type.go
View file @
92c36bed
...
@@ -29,11 +29,12 @@ import (
...
@@ -29,11 +29,12 @@ import (
// genClientForType produces a file for each top-level type.
// genClientForType produces a file for each top-level type.
type
genClientForType
struct
{
type
genClientForType
struct
{
generator
.
DefaultGen
generator
.
DefaultGen
outputPackage
string
outputPackage
string
group
string
clientsetPackage
string
version
string
group
string
typeToMatch
*
types
.
Type
version
string
imports
namer
.
ImportTracker
typeToMatch
*
types
.
Type
imports
namer
.
ImportTracker
}
}
var
_
generator
.
Generator
=
&
genClientForType
{}
var
_
generator
.
Generator
=
&
genClientForType
{}
...
@@ -78,19 +79,19 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
...
@@ -78,19 +79,19 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
pkg
:=
filepath
.
Base
(
t
.
Name
.
Package
)
pkg
:=
filepath
.
Base
(
t
.
Name
.
Package
)
namespaced
:=
!
extractBoolTagOrDie
(
"nonNamespaced"
,
t
.
SecondClosestCommentLines
)
namespaced
:=
!
extractBoolTagOrDie
(
"nonNamespaced"
,
t
.
SecondClosestCommentLines
)
m
:=
map
[
string
]
interface
{}{
m
:=
map
[
string
]
interface
{}{
"type"
:
t
,
"type"
:
t
,
"package"
:
pkg
,
"package"
:
pkg
,
"Package"
:
namer
.
IC
(
pkg
),
"Package"
:
namer
.
IC
(
pkg
),
"namespaced"
:
namespaced
,
"namespaced"
:
namespaced
,
"Group"
:
namer
.
IC
(
g
.
group
),
"Group"
:
namer
.
IC
(
g
.
group
),
"GroupVersion"
:
namer
.
IC
(
g
.
group
)
+
namer
.
IC
(
g
.
version
),
"GroupVersion"
:
namer
.
IC
(
g
.
group
)
+
namer
.
IC
(
g
.
version
),
"DeleteOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"DeleteOptions"
}),
"DeleteOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"DeleteOptions"
}),
"ListOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"ListOptions"
}),
"ListOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"ListOptions"
}),
"GetOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"GetOptions"
}),
"GetOptions"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/apis/meta/v1"
,
Name
:
"GetOptions"
}),
"PatchType"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/types"
,
Name
:
"PatchType"
}),
"PatchType"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/types"
,
Name
:
"PatchType"
}),
"watchInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/watch"
,
Name
:
"Interface"
}),
"watchInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/apimachinery/pkg/watch"
,
Name
:
"Interface"
}),
"RESTClientInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Interface"
}),
"RESTClientInterface"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/client-go/rest"
,
Name
:
"Interface"
}),
"
apiParameterCodec"
:
c
.
Universe
.
Type
(
types
.
Name
{
Package
:
"k8s.io/kubernetes/pkg/api"
,
Name
:
"ParameterCodec"
}),
"
schemeParameterCodec"
:
c
.
Universe
.
Variable
(
types
.
Name
{
Package
:
filepath
.
Join
(
g
.
clientsetPackage
,
"scheme"
)
,
Name
:
"ParameterCodec"
}),
}
}
sw
.
Do
(
getterComment
,
m
)
sw
.
Do
(
getterComment
,
m
)
...
@@ -224,7 +225,7 @@ func (c *$.type|privatePlural$) List(opts $.ListOptions|raw$) (result *$.type|ra
...
@@ -224,7 +225,7 @@ func (c *$.type|privatePlural$) List(opts $.ListOptions|raw$) (result *$.type|ra
err = c.client.Get().
err = c.client.Get().
$if .namespaced$Namespace(c.ns).$end$
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|allLowercasePlural$").
Resource("$.type|allLowercasePlural$").
VersionedParams(&opts, $.
api
ParameterCodec|raw$).
VersionedParams(&opts, $.
scheme
ParameterCodec|raw$).
Do().
Do().
Into(result)
Into(result)
return
return
...
@@ -238,7 +239,7 @@ func (c *$.type|privatePlural$) Get(name string, options $.GetOptions|raw$) (res
...
@@ -238,7 +239,7 @@ func (c *$.type|privatePlural$) Get(name string, options $.GetOptions|raw$) (res
$if .namespaced$Namespace(c.ns).$end$
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|allLowercasePlural$").
Resource("$.type|allLowercasePlural$").
Name(name).
Name(name).
VersionedParams(&options, $.
api
ParameterCodec|raw$).
VersionedParams(&options, $.
scheme
ParameterCodec|raw$).
Do().
Do().
Into(result)
Into(result)
return
return
...
@@ -264,7 +265,7 @@ func (c *$.type|privatePlural$) DeleteCollection(options *$.DeleteOptions|raw$,
...
@@ -264,7 +265,7 @@ func (c *$.type|privatePlural$) DeleteCollection(options *$.DeleteOptions|raw$,
return c.client.Delete().
return c.client.Delete().
$if .namespaced$Namespace(c.ns).$end$
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|allLowercasePlural$").
Resource("$.type|allLowercasePlural$").
VersionedParams(&listOptions, $.
api
ParameterCodec|raw$).
VersionedParams(&listOptions, $.
scheme
ParameterCodec|raw$).
Body(options).
Body(options).
Do().
Do().
Error()
Error()
...
@@ -325,7 +326,7 @@ func (c *$.type|privatePlural$) Watch(opts $.ListOptions|raw$) ($.watchInterface
...
@@ -325,7 +326,7 @@ func (c *$.type|privatePlural$) Watch(opts $.ListOptions|raw$) ($.watchInterface
Prefix("watch").
Prefix("watch").
$if .namespaced$Namespace(c.ns).$end$
$if .namespaced$Namespace(c.ns).$end$
Resource("$.type|allLowercasePlural$").
Resource("$.type|allLowercasePlural$").
VersionedParams(&opts, $.
api
ParameterCodec|raw$).
VersionedParams(&opts, $.
scheme
ParameterCodec|raw$).
Watch()
Watch()
}
}
`
`
...
...
cmd/libs/go2idl/client-gen/types/helpers.go
View file @
92c36bed
...
@@ -102,6 +102,17 @@ func ToGroupVersionPackages(groups []GroupVersions) []GroupVersionPackage {
...
@@ -102,6 +102,17 @@ func ToGroupVersionPackages(groups []GroupVersions) []GroupVersionPackage {
return
groupVersionPackages
return
groupVersionPackages
}
}
func
ToGroupInstallPackages
(
groups
[]
GroupVersions
)
[]
GroupInstallPackage
{
var
groupInstallPackages
[]
GroupInstallPackage
for
_
,
group
:=
range
groups
{
groupInstallPackages
=
append
(
groupInstallPackages
,
GroupInstallPackage
{
Group
:
Group
(
namer
.
IC
(
group
.
Group
.
NonEmpty
())),
InstallPackageName
:
strings
.
ToLower
(
group
.
Group
.
NonEmpty
()),
})
}
return
groupInstallPackages
}
// NormalizeGroupVersion calls normalizes the GroupVersion.
// NormalizeGroupVersion calls normalizes the GroupVersion.
//func NormalizeGroupVersion(gv GroupVersion) GroupVersion {
//func NormalizeGroupVersion(gv GroupVersion) GroupVersion {
// return GroupVersion{Group: gv.Group.NonEmpty(), Version: gv.Version, NonEmptyVersion: normalization.Version(gv.Version)}
// return GroupVersion{Group: gv.Group.NonEmpty(), Version: gv.Version, NonEmptyVersion: normalization.Version(gv.Version)}
...
...
cmd/libs/go2idl/client-gen/types/types.go
View file @
92c36bed
...
@@ -62,3 +62,8 @@ type GroupVersionPackage struct {
...
@@ -62,3 +62,8 @@ type GroupVersionPackage struct {
GroupVersion
string
GroupVersion
string
PackageName
string
PackageName
string
}
}
type
GroupInstallPackage
struct
{
Group
Group
InstallPackageName
string
}
pkg/client/clientset_generated/internalclientset/import_known_versions.go
deleted
100644 → 0
View file @
49c536ba
/*
Copyright 2015 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
internalclientset
// These imports are the API groups the client will support.
import
(
"fmt"
"k8s.io/kubernetes/pkg/api"
_
"k8s.io/kubernetes/pkg/api/install"
_
"k8s.io/kubernetes/pkg/apis/apps/install"
_
"k8s.io/kubernetes/pkg/apis/authentication/install"
_
"k8s.io/kubernetes/pkg/apis/authorization/install"
_
"k8s.io/kubernetes/pkg/apis/autoscaling/install"
_
"k8s.io/kubernetes/pkg/apis/batch/install"
_
"k8s.io/kubernetes/pkg/apis/certificates/install"
_
"k8s.io/kubernetes/pkg/apis/componentconfig/install"
_
"k8s.io/kubernetes/pkg/apis/extensions/install"
_
"k8s.io/kubernetes/pkg/apis/policy/install"
_
"k8s.io/kubernetes/pkg/apis/rbac/install"
_
"k8s.io/kubernetes/pkg/apis/storage/install"
)
func
init
()
{
if
missingVersions
:=
api
.
Registry
.
ValidateEnvRequestedVersions
();
len
(
missingVersions
)
!=
0
{
panic
(
fmt
.
Sprintf
(
"KUBE_API_VERSIONS contains versions that are not installed: %q."
,
missingVersions
))
}
}
federation/client/clientset_generated/federation_internalclientset/import_known_versions
.go
→
pkg/client/clientset_generated/internalclientset/scheme/register_custom
.go
View file @
92c36bed
/*
/*
Copyright 201
6
The Kubernetes Authors.
Copyright 201
7
The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
you may not use this file except in compliance with the License.
...
@@ -14,12 +14,16 @@ See the License for the specific language governing permissions and
...
@@ -14,12 +14,16 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
federation_internalclientset
package
scheme
// These imports are the API groups the client will support.
import
(
import
(
_
"k8s.io/kubernetes/federation/apis/federation/install"
"k8s.io/apimachinery/pkg/apimachinery/announced"
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime"
componentconfig
"k8s.io/kubernetes/pkg/apis/componentconfig/install"
)
)
func
init
()
{
func
ExtraInstall
(
groupFactoryRegistry
announced
.
APIGroupFactoryRegistry
,
registry
*
registered
.
APIRegistrationManager
,
scheme
*
runtime
.
Scheme
)
{
// componentconfig is an apigroup, but we don't have an API endpoint because its objects are just embedded in ConfigMaps.
componentconfig
.
Install
(
groupFactoryRegistry
,
registry
,
scheme
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment