k9s/internal/model/registry.go

203 lines
4.2 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// Copyright Authors of K9s
package model
import (
"github.com/derailed/k9s/internal/client"
"github.com/derailed/k9s/internal/dao"
"github.com/derailed/k9s/internal/render"
"github.com/derailed/k9s/internal/render/helm"
"github.com/derailed/k9s/internal/xray"
)
// Registry tracks resources metadata.
// BOZO!! Break up deps and merge into single registrar.
var Registry = map[*client.GVR]ResourceMeta{
// Custom...
client.WkGVR: {
DAO: new(dao.Workload),
Renderer: new(render.Workload),
},
client.RefGVR: {
DAO: new(dao.Reference),
Renderer: new(render.Reference),
},
client.DirGVR: {
DAO: new(dao.Dir),
Renderer: new(render.Dir),
},
client.PuGVR: {
DAO: new(dao.Pulse),
},
client.HmGVR: {
DAO: new(dao.HelmChart),
Renderer: new(helm.Chart),
},
client.HmhGVR: {
DAO: new(dao.HelmHistory),
Renderer: new(helm.History),
},
client.CoGVR: {
DAO: new(dao.Container),
Renderer: new(render.Container),
TreeRenderer: new(xray.Container),
},
client.ScnGVR: {
DAO: new(dao.ImageScan),
Renderer: new(render.ImageScan),
},
client.CtGVR: {
DAO: new(dao.Context),
Renderer: new(render.Context),
},
client.SdGVR: {
DAO: new(dao.ScreenDump),
Renderer: new(render.ScreenDump),
},
client.RbacGVR: {
DAO: new(dao.Rbac),
Renderer: new(render.Rbac),
},
client.PolGVR: {
DAO: new(dao.Policy),
Renderer: new(render.Policy),
},
client.UsrGVR: {
DAO: new(dao.Subject),
Renderer: new(render.Subject),
},
client.GrpGVR: {
DAO: new(dao.Subject),
Renderer: new(render.Subject),
},
client.PfGVR: {
DAO: new(dao.PortForward),
Renderer: new(render.PortForward),
},
client.BeGVR: {
DAO: new(dao.Benchmark),
Renderer: new(render.Benchmark),
},
client.AliGVR: {
DAO: new(dao.Alias),
Renderer: new(render.Alias),
},
// Discovery...
client.EpsGVR: {
Renderer: new(render.EndpointSlice),
},
// Core...
client.EpGVR: {
Renderer: new(render.Endpoints),
},
client.PodGVR: {
DAO: new(dao.Pod),
Renderer: render.NewPod(),
TreeRenderer: new(xray.Pod),
},
client.NsGVR: {
DAO: new(dao.Namespace),
Renderer: new(render.Namespace),
},
client.SecGVR: {
DAO: new(dao.Secret),
Renderer: new(render.Secret),
},
client.CmGVR: {
DAO: new(dao.ConfigMap),
Renderer: new(render.ConfigMap),
},
client.NodeGVR: {
DAO: new(dao.Node),
Renderer: new(render.Node),
},
client.SvcGVR: {
DAO: new(dao.Service),
Renderer: new(render.Service),
TreeRenderer: new(xray.Service),
},
client.SaGVR: {
Renderer: new(render.ServiceAccount),
},
client.PvGVR: {
Renderer: new(render.PersistentVolume),
},
client.PvcGVR: {
Renderer: new(render.PersistentVolumeClaim),
},
client.EvGVR: {
DAO: new(dao.Table),
Renderer: new(render.Event),
},
// Apps...
client.DpGVR: {
DAO: new(dao.Deployment),
Renderer: new(render.Deployment),
TreeRenderer: new(xray.Deployment),
},
client.RsGVR: {
Renderer: new(render.ReplicaSet),
TreeRenderer: new(xray.ReplicaSet),
},
client.StsGVR: {
DAO: new(dao.StatefulSet),
Renderer: new(render.StatefulSet),
TreeRenderer: new(xray.StatefulSet),
},
client.DsGVR: {
DAO: new(dao.DaemonSet),
Renderer: new(render.DaemonSet),
TreeRenderer: new(xray.DaemonSet),
},
// Extensions...
client.NpGVR: {
Renderer: &render.NetworkPolicy{},
},
// Batch...
client.CjGVR: {
DAO: new(dao.CronJob),
Renderer: new(render.CronJob),
},
client.JobGVR: {
DAO: new(dao.Job),
Renderer: new(render.Job),
},
// CRDs...
client.CrdGVR: {
DAO: new(dao.CustomResourceDefinition),
Renderer: new(render.CustomResourceDefinition),
},
// Storage...
client.ScGVR: {
Renderer: &render.StorageClass{},
},
// Policy...
client.PdbGVR: {
Renderer: &render.PodDisruptionBudget{},
},
// RBAC...
client.CrGVR: {
DAO: new(dao.Rbac),
Renderer: new(render.ClusterRole),
},
client.CrbGVR: {
Renderer: new(render.ClusterRoleBinding),
},
client.RoGVR: {
Renderer: new(render.Role),
},
client.RobGVR: {
Renderer: new(render.RoleBinding),
},
}