/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import React from "react"; import { KubeObjectDetailRegistry } from "../api/kube-object-detail-registry"; import type { HpaDetailsProps } from "../components/+config-autoscalers"; import { HpaDetails } from "../components/+config-autoscalers"; import { LimitRangeDetails } from "../components/+config-limit-ranges"; import { ConfigMapDetails } from "../components/+config-maps"; import { PodDisruptionBudgetDetails } from "../components/+config-pod-disruption-budgets"; import { ResourceQuotaDetails } from "../components/+config-resource-quotas"; import { SecretDetails } from "../components/+config-secrets"; import { CRDDetails } from "../components/+custom-resources"; import { EventDetails } from "../components/+events"; import { KubeEventDetails } from "../components/+events/kube-event-details"; import { NamespaceDetails } from "../components/+namespaces"; import { EndpointsDetails } from "../components/+network-endpoints"; import { IngressDetails } from "../components/+network-ingresses"; import { NetworkPolicyDetails } from "../components/+network-policies"; import { ServiceDetails } from "../components/+network-services"; import { NodeDetails } from "../components/+nodes/details"; import { PodSecurityPolicyDetails } from "../components/+pod-security-policies"; import { StorageClassDetails } from "../components/+storage-classes"; import { PersistentVolumeClaimDetails } from "../components/+storage-volume-claims"; import { PersistentVolumeDetails } from "../components/+storage-volumes"; import { ClusterRoleDetails } from "../components/+user-management/+cluster-roles"; import { ClusterRoleBindingDetails } from "../components/+user-management/+cluster-role-bindings"; import { RoleDetails } from "../components/+user-management/+roles"; import { RoleBindingDetails } from "../components/+user-management/+role-bindings"; import { ServiceAccountsDetails } from "../components/+user-management/+service-accounts"; import { CronJobDetails } from "../components/+workloads-cronjobs"; import { DaemonSetDetails } from "../components/+workloads-daemonsets"; import { DeploymentDetails } from "../components/+workloads-deployments"; import { JobDetails } from "../components/+workloads-jobs"; import { PodDetails } from "../components/+workloads-pods"; import { ReplicaSetDetails } from "../components/+workloads-replicasets"; import { StatefulSetDetails } from "../components/+workloads-statefulsets"; import type { KubeObjectDetailsProps } from "../components/kube-object-details"; export function initKubeObjectDetailRegistry() { const registry = KubeObjectDetailRegistry.getInstance(); registry.add({ kind: "HorizontalPodAutoscaler", apiVersions: ["autoscaling/v2beta1"], components: { // Note: this line is left in the long form as a validation that this usecase is valid Details: (props: HpaDetailsProps) => , }, }); registry.add({ kind: "HorizontalPodAutoscaler", apiVersions: ["autoscaling/v2beta1"], components: { // Note: this line is left in the long form as a validation that this usecase is valid Details: (props: HpaDetailsProps) => , }, }); registry.add({ kind: "HorizontalPodAutoscaler", apiVersions: ["autoscaling/v2beta1"], priority: 5, components: { // Note: this line is left in the long form as a validation that this usecase is valid Details: (props: KubeObjectDetailsProps) => , }, }); registry.add({ kind: "LimitRange", apiVersions: ["v1"], components: { Details: LimitRangeDetails, }, }); registry.add({ kind: "ConfigMap", apiVersions: ["v1"], components: { Details: ConfigMapDetails, }, }); registry.add({ kind: "ConfigMap", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "PodDisruptionBudget", apiVersions: ["policy/v1beta1"], components: { Details: PodDisruptionBudgetDetails, }, }); registry.add({ kind: "ResourceQuota", apiVersions: ["v1"], components: { Details: ResourceQuotaDetails, }, }); registry.add({ kind: "Secret", apiVersions: ["v1"], components: { Details: SecretDetails, }, }); registry.add({ kind: "CustomResourceDefinition", apiVersions: ["apiextensions.k8s.io/v1", "apiextensions.k8s.io/v1beta1"], components: { Details: CRDDetails, }, }); registry.add({ kind: "Event", apiVersions: ["v1"], components: { Details: EventDetails, }, }); registry.add({ kind: "Namespace", apiVersions: ["v1"], components: { Details: NamespaceDetails, }, }); registry.add({ kind: "Endpoints", apiVersions: ["v1"], components: { Details: EndpointsDetails, }, }); registry.add({ kind: "Endpoints", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Ingress", apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], components: { Details: IngressDetails, }, }); registry.add({ kind: "Ingress", apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "NetworkPolicy", apiVersions: ["networking.k8s.io/v1"], components: { Details: NetworkPolicyDetails, }, }); registry.add({ kind: "NetworkPolicy", apiVersions: ["networking.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Service", apiVersions: ["v1"], components: { Details: ServiceDetails, }, }); registry.add({ kind: "Service", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Node", apiVersions: ["v1"], components: { Details: NodeDetails, }, }); registry.add({ kind: "Node", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "PodSecurityPolicy", apiVersions: ["policy/v1beta1"], components: { Details: PodSecurityPolicyDetails, }, }); registry.add({ kind: "StorageClass", apiVersions: ["storage.k8s.io/v1"], components: { Details: StorageClassDetails, }, }); registry.add({ kind: "StorageClass", apiVersions: ["storage.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "PersistentVolumeClaim", apiVersions: ["v1"], components: { Details: PersistentVolumeClaimDetails, }, }); registry.add({ kind: "PersistentVolumeClaim", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "PersistentVolume", apiVersions: ["v1"], components: { Details: PersistentVolumeDetails, }, }); registry.add({ kind: "PersistentVolume", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Role", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: RoleDetails, }, }); registry.add({ kind: "Role", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "ClusterRole", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: ClusterRoleDetails, }, }); registry.add({ kind: "ClusterRole", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "RoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: RoleBindingDetails, }, }); registry.add({ kind: "RoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "ClusterRoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], components: { Details: ClusterRoleBindingDetails, }, }); registry.add({ kind: "ClusterRoleBinding", apiVersions: ["rbac.authorization.k8s.io/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "ServiceAccount", apiVersions: ["v1"], components: { Details: ServiceAccountsDetails, }, }); registry.add({ kind: "ServiceAccount", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "CronJob", apiVersions: ["batch/v1beta1"], components: { Details: CronJobDetails, }, }); registry.add({ kind: "CronJob", apiVersions: ["batch/v1beta1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "DaemonSet", apiVersions: ["apps/v1"], components: { Details: DaemonSetDetails, }, }); registry.add({ kind: "DaemonSet", apiVersions: ["apps/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Deployment", apiVersions: ["apps/v1"], components: { Details: DeploymentDetails, }, }); registry.add({ kind: "Deployment", apiVersions: ["apps/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Job", apiVersions: ["batch/v1"], components: { Details: JobDetails, }, }); registry.add({ kind: "Job", apiVersions: ["batch/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "Pod", apiVersions: ["v1"], components: { Details: PodDetails, }, }); registry.add({ kind: "Pod", apiVersions: ["v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "ReplicaSet", apiVersions: ["apps/v1"], components: { Details: ReplicaSetDetails, }, }); registry.add({ kind: "ReplicaSet", apiVersions: ["apps/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); registry.add({ kind: "StatefulSet", apiVersions: ["apps/v1"], components: { Details: StatefulSetDetails, }, }); registry.add({ kind: "StatefulSet", apiVersions: ["apps/v1"], priority: 5, components: { Details: KubeEventDetails, }, }); }