mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 18:00:08 +00:00
code-generator/client-gen: decouple core group from package name 'api'
Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@gmail.com>
This commit is contained in:
parent
7e52d34852
commit
6b2f779bd4
@ -15,6 +15,7 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=package
|
// +k8s:deepcopy-gen=package
|
||||||
|
// +groupName=
|
||||||
|
|
||||||
// Package core contains the latest (or "internal") version of the
|
// Package core contains the latest (or "internal") version of the
|
||||||
// Kubernetes API objects. This is the API objects as represented in memory.
|
// Kubernetes API objects. This is the API objects as represented in memory.
|
||||||
|
@ -18,6 +18,7 @@ limitations under the License.
|
|||||||
// +k8s:deepcopy-gen=package
|
// +k8s:deepcopy-gen=package
|
||||||
// +k8s:protobuf-gen=package
|
// +k8s:protobuf-gen=package
|
||||||
// +k8s:prerelease-lifecycle-gen=true
|
// +k8s:prerelease-lifecycle-gen=true
|
||||||
|
// +groupName=
|
||||||
|
|
||||||
// Package v1 is the v1 version of the core API.
|
// Package v1 is the v1 version of the core API.
|
||||||
package v1 // import "k8s.io/api/core/v1"
|
package v1 // import "k8s.io/api/core/v1"
|
||||||
|
@ -71,9 +71,9 @@ func TestGVPackageFlag(t *testing.T) {
|
|||||||
{
|
{
|
||||||
args: []string{"api/v1", "api"},
|
args: []string{"api/v1", "api"},
|
||||||
expectedGroups: []types.GroupVersions{
|
expectedGroups: []types.GroupVersions{
|
||||||
{PackageName: "core", Group: types.Group("api"), Versions: []types.PackageVersion{
|
{PackageName: "api", Group: types.Group("api"), Versions: []types.PackageVersion{
|
||||||
{Version: "v1", Package: "core/v1"},
|
{Version: "v1", Package: "api/v1"},
|
||||||
{Version: "", Package: "core"},
|
{Version: "", Package: "api"},
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -71,31 +71,25 @@ func (g *genGroup) Imports(c *generator.Context) (imports []string) {
|
|||||||
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
func (g *genGroup) GenerateType(c *generator.Context, t *types.Type, w io.Writer) error {
|
||||||
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
sw := generator.NewSnippetWriter(w, c, "$", "$")
|
||||||
|
|
||||||
apiPath := func(group string) string {
|
|
||||||
if group == "core" {
|
|
||||||
return `"/api"`
|
|
||||||
}
|
|
||||||
return `"` + g.apiPath + `"`
|
|
||||||
}
|
|
||||||
|
|
||||||
groupName := g.group
|
|
||||||
if g.group == "core" {
|
|
||||||
groupName = ""
|
|
||||||
}
|
|
||||||
// allow user to define a group name that's different from the one parsed from the directory.
|
// allow user to define a group name that's different from the one parsed from the directory.
|
||||||
p := c.Universe.Package(g.inputPackage)
|
p := c.Universe.Package(g.inputPackage)
|
||||||
|
groupName := g.group
|
||||||
if override := gengo.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil {
|
if override := gengo.ExtractCommentTags("+", p.Comments)["groupName"]; override != nil {
|
||||||
groupName = override[0]
|
groupName = override[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apiPath := `"` + g.apiPath + `"`
|
||||||
|
if groupName == "" {
|
||||||
|
apiPath = `"/api"`
|
||||||
|
}
|
||||||
|
|
||||||
m := map[string]interface{}{
|
m := map[string]interface{}{
|
||||||
"group": g.group,
|
|
||||||
"version": g.version,
|
"version": g.version,
|
||||||
"groupName": groupName,
|
"groupName": groupName,
|
||||||
"GroupGoName": g.groupGoName,
|
"GroupGoName": g.groupGoName,
|
||||||
"Version": namer.IC(g.version),
|
"Version": namer.IC(g.version),
|
||||||
"types": g.types,
|
"types": g.types,
|
||||||
"apiPath": apiPath(g.group),
|
"apiPath": apiPath,
|
||||||
"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"}),
|
||||||
"runtimeAPIVersionInternal": c.Universe.Variable(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "APIVersionInternal"}),
|
"runtimeAPIVersionInternal": c.Universe.Variable(types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "APIVersionInternal"}),
|
||||||
"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"}),
|
||||||
|
@ -42,7 +42,7 @@ func (g Group) String() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g Group) NonEmpty() string {
|
func (g Group) NonEmpty() string {
|
||||||
if g == "api" {
|
if g == "" {
|
||||||
return "core"
|
return "core"
|
||||||
}
|
}
|
||||||
return string(g)
|
return string(g)
|
||||||
@ -76,7 +76,7 @@ type GroupVersionKind struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (gv GroupVersion) ToAPIVersion() string {
|
func (gv GroupVersion) ToAPIVersion() string {
|
||||||
if len(gv.Group) > 0 && gv.Group.NonEmpty() != "core" {
|
if len(gv.Group) > 0 && gv.Group != "" {
|
||||||
return gv.Group.String() + "/" + gv.Version.String()
|
return gv.Group.String() + "/" + gv.Version.String()
|
||||||
} else {
|
} else {
|
||||||
return gv.Version.String()
|
return gv.Version.String()
|
||||||
|
@ -15,5 +15,6 @@ limitations under the License.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// +k8s:deepcopy-gen=package
|
// +k8s:deepcopy-gen=package
|
||||||
|
// +groupName=
|
||||||
|
|
||||||
package core // import "k8s.io/code-generator/examples/apiserver/apis/core"
|
package core // import "k8s.io/code-generator/examples/apiserver/apis/core"
|
||||||
|
@ -18,5 +18,6 @@ limitations under the License.
|
|||||||
// +k8s:deepcopy-gen=package
|
// +k8s:deepcopy-gen=package
|
||||||
// +k8s:defaulter-gen=TypeMeta
|
// +k8s:defaulter-gen=TypeMeta
|
||||||
// +k8s:conversion-gen=k8s.io/code-generator/examples/apiserver/apis/core
|
// +k8s:conversion-gen=k8s.io/code-generator/examples/apiserver/apis/core
|
||||||
|
// +groupName=
|
||||||
|
|
||||||
package v1 // import "k8s.io/code-generator/examples/apiserver/apis/core/v1"
|
package v1 // import "k8s.io/code-generator/examples/apiserver/apis/core/v1"
|
||||||
|
Loading…
Reference in New Issue
Block a user