1
0
mirror of https://github.com/rancher/steve.git synced 2025-07-12 06:08:24 +00:00
steve/pkg/schema/converter/k8stonorman.go
Kevin Joiner 7a5069b811 Bumps rancher/wrangler to it's tagged v2 version.
The previous wrangler commit included all of the v2 changes.
Except for the import paths changes.
2024-01-24 09:11:32 -05:00

58 lines
1.5 KiB
Go

package converter
import (
"fmt"
"strings"
"github.com/rancher/apiserver/pkg/types"
v1 "github.com/rancher/wrangler/v2/pkg/generated/controllers/apiextensions.k8s.io/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/discovery"
)
func GVKToVersionedSchemaID(gvk schema.GroupVersionKind) string {
if gvk.Group == "" {
return strings.ToLower(fmt.Sprintf("core.%s.%s", gvk.Version, gvk.Kind))
}
return strings.ToLower(fmt.Sprintf("%s.%s.%s", gvk.Group, gvk.Version, gvk.Kind))
}
func gvrToPluralName(gvr schema.GroupVersionResource) string {
if gvr.Group == "" {
return fmt.Sprintf("core.%s.%s", gvr.Version, gvr.Resource)
}
return fmt.Sprintf("%s.%s.%s", gvr.Group, gvr.Version, gvr.Resource)
}
func GVKToSchemaID(gvk schema.GroupVersionKind) string {
if gvk.Group == "" {
return strings.ToLower(gvk.Kind)
}
return strings.ToLower(fmt.Sprintf("%s.%s", gvk.Group, gvk.Kind))
}
func GVRToPluralName(gvr schema.GroupVersionResource) string {
if gvr.Group == "" {
return gvr.Resource
}
return fmt.Sprintf("%s.%s", gvr.Group, gvr.Resource)
}
func ToSchemas(crd v1.CustomResourceDefinitionClient, client discovery.DiscoveryInterface) (map[string]*types.APISchema, error) {
result := map[string]*types.APISchema{}
if err := AddOpenAPI(client, result); err != nil {
return nil, err
}
if err := AddDiscovery(client, result); err != nil {
return nil, err
}
if err := AddCustomResources(crd, result); err != nil {
return nil, err
}
return result, nil
}