mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #71657 from mrIncompetent/informer-gen/respect-resourceName-tag
make informer-gen respect the resourceName tag
This commit is contained in:
commit
0351853ea1
@ -204,6 +204,7 @@ filegroup(
|
|||||||
"//staging/src/k8s.io/code-generator/cmd/register-gen:all-srcs",
|
"//staging/src/k8s.io/code-generator/cmd/register-gen:all-srcs",
|
||||||
"//staging/src/k8s.io/code-generator/cmd/set-gen:all-srcs",
|
"//staging/src/k8s.io/code-generator/cmd/set-gen:all-srcs",
|
||||||
"//staging/src/k8s.io/code-generator/hack:all-srcs",
|
"//staging/src/k8s.io/code-generator/hack:all-srcs",
|
||||||
|
"//staging/src/k8s.io/code-generator/pkg/namer:all-srcs",
|
||||||
"//staging/src/k8s.io/code-generator/pkg/util:all-srcs",
|
"//staging/src/k8s.io/code-generator/pkg/util:all-srcs",
|
||||||
"//staging/src/k8s.io/code-generator/third_party/forked/golang/reflect:all-srcs",
|
"//staging/src/k8s.io/code-generator/third_party/forked/golang/reflect:all-srcs",
|
||||||
"//staging/src/k8s.io/csi-api/pkg/apis/csi/v1alpha1:all-srcs",
|
"//staging/src/k8s.io/csi-api/pkg/apis/csi/v1alpha1:all-srcs",
|
||||||
|
@ -13,7 +13,6 @@ go_library(
|
|||||||
"generator_for_expansion.go",
|
"generator_for_expansion.go",
|
||||||
"generator_for_group.go",
|
"generator_for_group.go",
|
||||||
"generator_for_type.go",
|
"generator_for_type.go",
|
||||||
"tags.go",
|
|
||||||
],
|
],
|
||||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/client-gen/generators",
|
importmap = "k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/client-gen/generators",
|
||||||
importpath = "k8s.io/code-generator/cmd/client-gen/generators",
|
importpath = "k8s.io/code-generator/cmd/client-gen/generators",
|
||||||
@ -24,6 +23,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/code-generator/cmd/client-gen/generators/util:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/client-gen/generators/util:go_default_library",
|
||||||
"//staging/src/k8s.io/code-generator/cmd/client-gen/path:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/client-gen/path:go_default_library",
|
||||||
"//staging/src/k8s.io/code-generator/cmd/client-gen/types:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/client-gen/types:go_default_library",
|
||||||
|
"//staging/src/k8s.io/code-generator/pkg/namer:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/args:go_default_library",
|
"//vendor/k8s.io/gengo/args:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/generator:go_default_library",
|
"//vendor/k8s.io/gengo/generator:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/namer:go_default_library",
|
"//vendor/k8s.io/gengo/namer:go_default_library",
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"k8s.io/code-generator/cmd/client-gen/generators/util"
|
"k8s.io/code-generator/cmd/client-gen/generators/util"
|
||||||
"k8s.io/code-generator/cmd/client-gen/path"
|
"k8s.io/code-generator/cmd/client-gen/path"
|
||||||
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
|
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
|
||||||
|
codegennamer "k8s.io/code-generator/pkg/namer"
|
||||||
"k8s.io/gengo/args"
|
"k8s.io/gengo/args"
|
||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
@ -101,7 +102,7 @@ func NameSystems() namer.NameSystems {
|
|||||||
"publicPlural": publicPluralNamer,
|
"publicPlural": publicPluralNamer,
|
||||||
"privatePlural": privatePluralNamer,
|
"privatePlural": privatePluralNamer,
|
||||||
"allLowercasePlural": lowercaseNamer,
|
"allLowercasePlural": lowercaseNamer,
|
||||||
"resource": NewTagOverrideNamer("resourceName", lowercaseNamer),
|
"resource": codegennamer.NewTagOverrideNamer("resourceName", lowercaseNamer),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,27 +401,3 @@ func Packages(context *generator.Context, arguments *args.GeneratorArgs) generat
|
|||||||
|
|
||||||
return generator.Packages(packageList)
|
return generator.Packages(packageList)
|
||||||
}
|
}
|
||||||
|
|
||||||
// tagOverrideNamer is a namer which pulls names from a given tag, if specified,
|
|
||||||
// and otherwise falls back to a different namer.
|
|
||||||
type tagOverrideNamer struct {
|
|
||||||
tagName string
|
|
||||||
fallback namer.Namer
|
|
||||||
}
|
|
||||||
|
|
||||||
func (n *tagOverrideNamer) Name(t *types.Type) string {
|
|
||||||
if nameOverride := extractTag(n.tagName, append(t.SecondClosestCommentLines, t.CommentLines...)); nameOverride != "" {
|
|
||||||
return nameOverride
|
|
||||||
}
|
|
||||||
|
|
||||||
return n.fallback.Name(t)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTagOverrideNamer creates a namer.Namer which uses the contents of the given tag as
|
|
||||||
// the name, or falls back to another Namer if the tag is not present.
|
|
||||||
func NewTagOverrideNamer(tagName string, fallback namer.Namer) namer.Namer {
|
|
||||||
return &tagOverrideNamer{
|
|
||||||
tagName: tagName,
|
|
||||||
fallback: fallback,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -24,6 +24,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/code-generator/cmd/client-gen/generators/util:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/client-gen/generators/util:go_default_library",
|
||||||
"//staging/src/k8s.io/code-generator/cmd/client-gen/types:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/client-gen/types:go_default_library",
|
||||||
"//staging/src/k8s.io/code-generator/cmd/informer-gen/args:go_default_library",
|
"//staging/src/k8s.io/code-generator/cmd/informer-gen/args:go_default_library",
|
||||||
|
"//staging/src/k8s.io/code-generator/pkg/namer:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/args:go_default_library",
|
"//vendor/k8s.io/gengo/args:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/generator:go_default_library",
|
"//vendor/k8s.io/gengo/generator:go_default_library",
|
||||||
"//vendor/k8s.io/gengo/namer:go_default_library",
|
"//vendor/k8s.io/gengo/namer:go_default_library",
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
|
clientgentypes "k8s.io/code-generator/cmd/client-gen/types"
|
||||||
|
codegennamer "k8s.io/code-generator/pkg/namer"
|
||||||
"k8s.io/gengo/generator"
|
"k8s.io/gengo/generator"
|
||||||
"k8s.io/gengo/namer"
|
"k8s.io/gengo/namer"
|
||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
@ -56,6 +57,7 @@ func (g *genericGenerator) Namers(c *generator.Context) namer.NameSystems {
|
|||||||
"raw": namer.NewRawNamer(g.outputPackage, g.imports),
|
"raw": namer.NewRawNamer(g.outputPackage, g.imports),
|
||||||
"allLowercasePlural": namer.NewAllLowercasePluralNamer(pluralExceptions),
|
"allLowercasePlural": namer.NewAllLowercasePluralNamer(pluralExceptions),
|
||||||
"publicPlural": namer.NewPublicPluralNamer(pluralExceptions),
|
"publicPlural": namer.NewPublicPluralNamer(pluralExceptions),
|
||||||
|
"resource": codegennamer.NewTagOverrideNamer("resourceName", namer.NewAllLowercasePluralNamer(pluralExceptions)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +170,7 @@ func (f *sharedInformerFactory) ForResource(resource {{.schemaGroupVersionResour
|
|||||||
{{range $version := .Versions -}}
|
{{range $version := .Versions -}}
|
||||||
// Group={{$group.Name}}, Version={{.Name}}
|
// Group={{$group.Name}}, Version={{.Name}}
|
||||||
{{range .Resources -}}
|
{{range .Resources -}}
|
||||||
case {{index $.schemeGVs $version|raw}}.WithResource("{{.|allLowercasePlural}}"):
|
case {{index $.schemeGVs $version|raw}}.WithResource("{{.|resource}}"):
|
||||||
return &genericInformer{resource: resource.GroupResource(), informer: f.{{$GroupGoName}}().{{$version.GoName}}().{{.|publicPlural}}().Informer()}, nil
|
return &genericInformer{resource: resource.GroupResource(), informer: f.{{$GroupGoName}}().{{$version.GoName}}().{{.|publicPlural}}().Informer()}, nil
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
|
27
staging/src/k8s.io/code-generator/pkg/namer/BUILD
Normal file
27
staging/src/k8s.io/code-generator/pkg/namer/BUILD
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["tag-override.go"],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/k8s.io/code-generator/pkg/namer",
|
||||||
|
importpath = "k8s.io/code-generator/pkg/namer",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//vendor/k8s.io/gengo/namer:go_default_library",
|
||||||
|
"//vendor/k8s.io/gengo/types:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
@ -14,12 +14,38 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package generators
|
package namer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"k8s.io/gengo/namer"
|
||||||
"k8s.io/gengo/types"
|
"k8s.io/gengo/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TagOverrideNamer is a namer which pulls names from a given tag, if specified,
|
||||||
|
// and otherwise falls back to a different namer.
|
||||||
|
type TagOverrideNamer struct {
|
||||||
|
tagName string
|
||||||
|
fallback namer.Namer
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name returns the tag value if it exists. It no tag was found the fallback namer will be used
|
||||||
|
func (n *TagOverrideNamer) Name(t *types.Type) string {
|
||||||
|
if nameOverride := extractTag(n.tagName, append(t.SecondClosestCommentLines, t.CommentLines...)); nameOverride != "" {
|
||||||
|
return nameOverride
|
||||||
|
}
|
||||||
|
|
||||||
|
return n.fallback.Name(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewTagOverrideNamer creates a namer.Namer which uses the contents of the given tag as
|
||||||
|
// the name, or falls back to another Namer if the tag is not present.
|
||||||
|
func NewTagOverrideNamer(tagName string, fallback namer.Namer) namer.Namer {
|
||||||
|
return &TagOverrideNamer{
|
||||||
|
tagName: tagName,
|
||||||
|
fallback: fallback,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// extractTag gets the comment-tags for the key. If the tag did not exist, it
|
// extractTag gets the comment-tags for the key. If the tag did not exist, it
|
||||||
// returns the empty string.
|
// returns the empty string.
|
||||||
func extractTag(key string, lines []string) string {
|
func extractTag(key string, lines []string) string {
|
Loading…
Reference in New Issue
Block a user