typeinfo

package
v0.1.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SupportedScheme      = RegisterSchemes()
	NamespacesDescriptor = NewDescriptor(NamespaceKind, NamespaceListKind, false, corev1.SchemeGroupVersion.WithResource("namespaces"), "ns")

	ServiceAccountsDescriptor = NewDescriptor(ServiceAccountKind, ServiceAccountListKind, true, corev1.SchemeGroupVersion.WithResource("serviceaccounts"), "sa")

	ConfigMapsDescriptor = NewDescriptor(ConfigMapKind, ConfigMapListKind, true, corev1.SchemeGroupVersion.WithResource("configmaps"), "cm")
	NodesDescriptor      = NewDescriptor(NodeKind, NodeListKind, false, corev1.SchemeGroupVersion.WithResource("nodes"), "no")
	PodsDescriptor       = NewDescriptor(PodKind, PodListKind, true, corev1.SchemeGroupVersion.WithResource("pods"), "po")

	ServicesDescriptor          = NewDescriptor(ServiceKind, ServiceListKind, true, corev1.SchemeGroupVersion.WithResource("services"), "svc")
	PersistentVolumesDescriptor = NewDescriptor(PersistentVolumeKind, PersistentVolumeListKind, false, corev1.SchemeGroupVersion.WithResource("persistentvolumes"), "pv")

	PersistentVolumeClaimsDescriptor = NewDescriptor(PersistentVolumeClaimKind, PersistentVolumeClaimListKind, true, corev1.SchemeGroupVersion.WithResource("persistentvolumeclaims"), "pvc")

	ReplicationControllersDescriptor = NewDescriptor(ReplicationControllerKind, ReplicationControllerListKind, true, corev1.SchemeGroupVersion.WithResource("replicationcontrollers"), "rc")
	PriorityClassesDescriptor        = NewDescriptor(PriorityClassKind, PriorityClassListKind, false, schedulingv1.SchemeGroupVersion.WithResource("priorityclasses"), "pc")

	LeaseDescriptor = NewDescriptor(LeaseKind, LeaseListKind, true, coordinationv1.SchemeGroupVersion.WithResource("leases"))

	EventsDescriptor              = NewDescriptor(EventKind, EventListKind, true, eventsv1.SchemeGroupVersion.WithResource("events"), "ev")
	RolesDescriptor               = NewDescriptor(RoleKind, RoleListKind, true, rbacv1.SchemeGroupVersion.WithResource("roles"))
	DeploymentDescriptor          = NewDescriptor(DeploymentKind, DeploymentListKind, true, appsv1.SchemeGroupVersion.WithResource("deployments"), "deploy")
	ReplicaSetDescriptor          = NewDescriptor(ReplicaSetKind, ReplicaSetListKind, true, appsv1.SchemeGroupVersion.WithResource("replicasets"), "rs")
	StatefulSetDescriptor         = NewDescriptor(StatefulSetKind, StatefulSetListKind, true, appsv1.SchemeGroupVersion.WithResource("statefulsets"), "sts")
	PodDisruptionBudgetDescriptor = NewDescriptor(PodDisruptionBudgetKind, PodDisruptionBudgetListKind, true, policyv1.SchemeGroupVersion.WithResource("poddisruptionbudgets"), "pdb")

	StorageClassDescriptor = NewDescriptor(StorageClassKind, StorageClassListKind, false, storagev1.SchemeGroupVersion.WithResource("storageclasses"), "sc")

	CSIDriverDescriptor          = NewDescriptor(CSIDriverKind, CSIDriverListKind, false, storagev1.SchemeGroupVersion.WithResource("csidrivers"))
	CSIStorageCapacityDescriptor = NewDescriptor(CSIStorageCapacityKind, CSIStorageCapacityListKind, true, storagev1.SchemeGroupVersion.WithResource("csistoragecapacities"))

	CSINodeDescriptor = NewDescriptor(CSINodeKind, CSINodeListKind, false, storagev1.SchemeGroupVersion.WithResource("csinodes"))

	VolumeAttachmentDescriptor = NewDescriptor(VolumeAttachmentKind, VolumeAttachmentListKind, false, storagev1.SchemeGroupVersion.WithResource("volumeattachments"))

	SupportedDescriptors = []Descriptor{
		ServiceAccountsDescriptor, ConfigMapsDescriptor, NamespacesDescriptor, NodesDescriptor, PodsDescriptor, ServicesDescriptor, PersistentVolumesDescriptor, PersistentVolumeClaimsDescriptor, ReplicationControllersDescriptor,
		PriorityClassesDescriptor,
		LeaseDescriptor,
		EventsDescriptor,
		RolesDescriptor,
		DeploymentDescriptor, ReplicaSetDescriptor, StatefulSetDescriptor,
		PodDisruptionBudgetDescriptor,
		StorageClassDescriptor, CSIDriverDescriptor, CSIStorageCapacityDescriptor, CSINodeDescriptor, VolumeAttachmentDescriptor,
	}

	SupportedVerbs = []string{"create", "delete", "get", "list", "patch", "watch"}

	SupportedAPIVersions = metav1.APIVersions{
		TypeMeta: metav1.TypeMeta{
			Kind: "APIVersions",
		},
		Versions: []string{"v1"},
		ServerAddressByClientCIDRs: []metav1.ServerAddressByClientCIDR{
			{
				ClientCIDR:    "0.0.0.0/0",
				ServerAddress: "127.0.0.1:8008",
			},
		},
	}

	SupportedAPIGroups = buildAPIGroupList()

	SupportedCoreAPIResourceList = metav1.APIResourceList{
		TypeMeta: metav1.TypeMeta{
			Kind: "APIResourceList",
		},
		GroupVersion: "v1",
		APIResources: []metav1.APIResource{
			ServiceAccountsDescriptor.APIResource,
			ConfigMapsDescriptor.APIResource,
			NamespacesDescriptor.APIResource,
			NodesDescriptor.APIResource,
			PodsDescriptor.APIResource,
			ServicesDescriptor.APIResource,
			PersistentVolumesDescriptor.APIResource,
			PersistentVolumeClaimsDescriptor.APIResource,
			ReplicationControllersDescriptor.APIResource,
		},
	}

	SupportedGroupAPIResourceLists = []metav1.APIResourceList{
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: appsv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				DeploymentDescriptor.APIResource,
				ReplicaSetDescriptor.APIResource,
				StatefulSetDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: coordinationv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				LeaseDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: eventsv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				EventsDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: rbacv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				RolesDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: schedulingv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				PriorityClassesDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: policyv1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				PodDisruptionBudgetDescriptor.APIResource,
			},
		},
		{
			TypeMeta:     metaV1APIResourceList,
			GroupVersion: storagev1.SchemeGroupVersion.String(),
			APIResources: []metav1.APIResource{
				StorageClassDescriptor.APIResource,
				CSIDriverDescriptor.APIResource,
				CSIStorageCapacityDescriptor.APIResource,
				CSINodeDescriptor.APIResource,
				VolumeAttachmentDescriptor.APIResource,
			},
		},
	}
)

Functions

func GenerateName

func GenerateName(base string) string

func RegisterSchemes

func RegisterSchemes() (scheme *runtime.Scheme)

Types

type Descriptor

type Descriptor struct {
	Kind         KindName
	GVK          schema.GroupVersionKind
	ListKind     KindName
	ListGVK      schema.GroupVersionKind
	GVR          schema.GroupVersionResource
	ListTypeMeta metav1.TypeMeta
	APIResource  metav1.APIResource
}

Descriptor is an aggregate holder of various bits of type information on a given Kind

func NewDescriptor

func NewDescriptor(kind KindName, listKind KindName, namespaced bool, gvr schema.GroupVersionResource, shortNames ...string) Descriptor

func (Descriptor) CreateObject

func (d Descriptor) CreateObject() (obj metav1.Object, err error)

func (Descriptor) Resource

func (d Descriptor) Resource() string

type KindName

type KindName string
const (
	NamespaceKind     KindName = "Namespace"
	NamespaceListKind KindName = "NamespaceList"

	ServiceAccountKind     KindName = "ServiceAccount"
	ServiceAccountListKind KindName = "ServiceAccountList"

	ConfigMapKind     KindName = "ConfigMap"
	ConfigMapListKind KindName = "ConfigMapList"

	NodeKind     KindName = "Node"
	NodeListKind KindName = "NodeList"

	PodKind     KindName = "Pod"
	PodListKind KindName = "PodList"

	ServiceKind     KindName = "Service"
	ServiceListKind KindName = "ServiceList"

	PersistentVolumeKind          KindName = "PersistentVolume"
	PersistentVolumeListKind      KindName = "PersistentVolumeList"
	PersistentVolumeClaimKind     KindName = "PersistentVolumeClaim"
	PersistentVolumeClaimListKind KindName = "PersistentVolumeClaimList"

	ReplicationControllerKind     KindName = "ReplicationController"
	ReplicationControllerListKind KindName = "ReplicationControllerList"

	PriorityClassKind     KindName = "PriorityClass"
	PriorityClassListKind KindName = "PriorityClassList"

	LeaseKind     KindName = "Lease"
	LeaseListKind KindName = "LeaseList"

	EventKind     KindName = "Event"
	EventListKind KindName = "EventList"

	RoleKind     KindName = "Role"
	RoleListKind KindName = "RoleList"

	RoleBindingKind     KindName = "RoleBinding"
	RoleBindingListKind KindName = "RoleBindingList"

	DeploymentKind     KindName = "Deployment"
	DeploymentListKind KindName = "DeploymentList"

	ReplicaSetKind     KindName = "ReplicaSet"
	ReplicaSetListKind KindName = "ReplicaSetList"

	StatefulSetKind     KindName = "StatefulSet"
	StatefulSetListKind KindName = "StatefulSetList"

	PodDisruptionBudgetKind     KindName = "PodDisruptionBudget"
	PodDisruptionBudgetListKind KindName = "PodDisruptionBudgetList"

	StorageClassKind     KindName = "StorageClass"
	StorageClassListKind KindName = "StorageClassList"

	CSIDriverKind     KindName = "CSIDriver"
	CSIDriverListKind KindName = "CSIDriverList"

	CSIStorageCapacityKind     KindName = "CSIStorageCapacity"
	CSIStorageCapacityListKind KindName = "CSIStorageCapacityList"

	CSINodeKind     KindName = "CSINode"
	CSINodeListKind KindName = "CSINodeList"

	VolumeAttachmentKind     KindName = "VolumeAttachment"
	VolumeAttachmentListKind KindName = "VolumeAttachmentList"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL