1
0
mirror of https://github.com/rancher/types.git synced 2025-05-07 14:46:19 +00:00

Explicit group and version for native types

No longer guess group and version from package structure
This commit is contained in:
Craig Jellick 2017-12-11 21:48:47 -07:00 committed by Darren Shepherd
parent 007b83c082
commit 7b8ac28023
2 changed files with 10 additions and 11 deletions

View File

@ -3,11 +3,11 @@ package generator
import (
"fmt"
"path"
"reflect"
"strings"
"github.com/rancher/norman/generator"
"github.com/rancher/norman/types"
"k8s.io/apimachinery/pkg/runtime/schema"
)
var (
@ -28,14 +28,13 @@ func Generate(schemas *types.Schemas) {
}
}
func GenerateNativeTypes(objs ...interface{}) {
pkgNamePaths := strings.Split(reflect.TypeOf(objs[0]).PkgPath(), "/")
version := pkgNamePaths[len(pkgNamePaths)-1]
group := pkgNamePaths[len(pkgNamePaths)-2]
func GenerateNativeTypes(gv schema.GroupVersion, objs ...interface{}) {
version := gv.Version
group := gv.Group
groupPath := group
if group == "core" {
group = ""
if groupPath == "" {
groupPath = "core"
}
k8sOutputPackage := path.Join(basePackage, baseK8s, groupPath, version)

View File

@ -19,8 +19,8 @@ func main() {
generator.Generate(clusterSchema.Schemas)
generator.Generate(projectSchema.Schemas)
// Group by API group
generator.GenerateNativeTypes(v1.Pod{}, v1.Node{}, v1.ComponentStatus{}, v1.Namespace{}, v1.Event{})
generator.GenerateNativeTypes(v1beta2.Deployment{})
generator.GenerateNativeTypes(rbacv1.RoleBinding{}, rbacv1.ClusterRoleBinding{}, rbacv1.ClusterRole{})
generator.GenerateNativeTypes(extv1beta1.PodSecurityPolicy{})
generator.GenerateNativeTypes(v1.SchemeGroupVersion, v1.Pod{}, v1.Node{}, v1.ComponentStatus{}, v1.Namespace{}, v1.Event{})
generator.GenerateNativeTypes(v1beta2.SchemeGroupVersion, v1beta2.Deployment{})
generator.GenerateNativeTypes(rbacv1.SchemeGroupVersion, rbacv1.RoleBinding{}, rbacv1.ClusterRoleBinding{}, rbacv1.ClusterRole{})
generator.GenerateNativeTypes(extv1beta1.SchemeGroupVersion, extv1beta1.PodSecurityPolicy{})
}