2019-08-13 23:36:03 +00:00
|
|
|
package converter
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
2019-09-11 18:03:22 +00:00
|
|
|
"strings"
|
2019-08-13 23:36:03 +00:00
|
|
|
|
2020-06-12 04:50:59 +00:00
|
|
|
"github.com/rancher/apiserver/pkg/types"
|
2024-01-11 21:32:09 +00:00
|
|
|
v1 "github.com/rancher/wrangler/v2/pkg/generated/controllers/apiextensions.k8s.io/v1"
|
2019-08-13 23:36:03 +00:00
|
|
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
|
|
|
"k8s.io/client-go/discovery"
|
|
|
|
)
|
|
|
|
|
2020-03-12 21:01:40 +00:00
|
|
|
func GVKToVersionedSchemaID(gvk schema.GroupVersionKind) string {
|
2019-08-13 23:36:03 +00:00
|
|
|
if gvk.Group == "" {
|
2019-09-11 18:03:22 +00:00
|
|
|
return strings.ToLower(fmt.Sprintf("core.%s.%s", gvk.Version, gvk.Kind))
|
2019-08-13 23:36:03 +00:00
|
|
|
}
|
2019-09-11 18:03:22 +00:00
|
|
|
return strings.ToLower(fmt.Sprintf("%s.%s.%s", gvk.Group, gvk.Version, gvk.Kind))
|
2019-08-13 23:36:03 +00:00
|
|
|
}
|
|
|
|
|
2020-03-11 06:12:04 +00:00
|
|
|
func gvrToPluralName(gvr schema.GroupVersionResource) string {
|
2019-08-14 18:08:34 +00:00
|
|
|
if gvr.Group == "" {
|
|
|
|
return fmt.Sprintf("core.%s.%s", gvr.Version, gvr.Resource)
|
2019-08-13 23:36:03 +00:00
|
|
|
}
|
2019-08-14 18:08:34 +00:00
|
|
|
return fmt.Sprintf("%s.%s.%s", gvr.Group, gvr.Version, gvr.Resource)
|
2019-08-13 23:36:03 +00:00
|
|
|
}
|
|
|
|
|
2020-03-11 06:12:04 +00:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2021-04-21 16:49:03 +00:00
|
|
|
func ToSchemas(crd v1.CustomResourceDefinitionClient, client discovery.DiscoveryInterface) (map[string]*types.APISchema, error) {
|
2020-01-31 05:37:59 +00:00
|
|
|
result := map[string]*types.APISchema{}
|
2019-08-13 23:36:03 +00:00
|
|
|
|
|
|
|
if err := AddOpenAPI(client, result); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
|
|
|
if err := AddDiscovery(client, result); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2019-08-14 18:08:34 +00:00
|
|
|
if err := AddCustomResources(crd, result); err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
|
2019-08-13 23:36:03 +00:00
|
|
|
return result, nil
|
|
|
|
}
|