1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Simplify most of the KubeObjectDetailRegistry initial values (#3529)

- Keep one without any type param to make sure that an extension
  developer can as well

- Keep one with a child type to make sure the same as above

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2021-08-03 08:51:13 -04:00 committed by GitHub
parent b9bb990690
commit b546f1df72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 59 additions and 60 deletions

View File

@ -33,11 +33,11 @@ import { Table, TableCell, TableHead, TableRow } from "../table";
import { lookupApiLink } from "../../api/kube-api"; import { lookupApiLink } from "../../api/kube-api";
import { KubeObjectMeta } from "../kube-object/kube-object-meta"; import { KubeObjectMeta } from "../kube-object/kube-object-meta";
interface Props extends KubeObjectDetailsProps<HorizontalPodAutoscaler> { export interface HpaDetailsProps extends KubeObjectDetailsProps<HorizontalPodAutoscaler> {
} }
@observer @observer
export class HpaDetails extends React.Component<Props> { export class HpaDetails extends React.Component<HpaDetailsProps> {
renderMetrics() { renderMetrics() {
const { object: hpa } = this.props; const { object: hpa } = this.props;

View File

@ -20,10 +20,8 @@
*/ */
import React from "react"; import React from "react";
import type * as endpoints from "../api/endpoints";
import type { KubeObject } from "../api/kube-object";
import { KubeObjectDetailRegistry } from "../api/kube-object-detail-registry"; import { KubeObjectDetailRegistry } from "../api/kube-object-detail-registry";
import { HpaDetails } from "../components/+config-autoscalers"; import { HpaDetails, HpaDetailsProps } from "../components/+config-autoscalers";
import { LimitRangeDetails } from "../components/+config-limit-ranges"; import { LimitRangeDetails } from "../components/+config-limit-ranges";
import { ConfigMapDetails } from "../components/+config-maps"; import { ConfigMapDetails } from "../components/+config-maps";
import { PodDisruptionBudgetDetails } from "../components/+config-pod-disruption-budgets"; import { PodDisruptionBudgetDetails } from "../components/+config-pod-disruption-budgets";
@ -55,7 +53,6 @@ import { PodDetails } from "../components/+workloads-pods";
import { ReplicaSetDetails } from "../components/+workloads-replicasets"; import { ReplicaSetDetails } from "../components/+workloads-replicasets";
import { StatefulSetDetails } from "../components/+workloads-statefulsets"; import { StatefulSetDetails } from "../components/+workloads-statefulsets";
import type { KubeObjectDetailsProps } from "../components/kube-object"; import type { KubeObjectDetailsProps } from "../components/kube-object";
import type { CustomResourceDefinition } from "../api/endpoints";
export function intiKubeObjectDetailRegistry() { export function intiKubeObjectDetailRegistry() {
KubeObjectDetailRegistry.getInstance() KubeObjectDetailRegistry.getInstance()
@ -64,7 +61,8 @@ export function intiKubeObjectDetailRegistry() {
kind: "HorizontalPodAutoscaler", kind: "HorizontalPodAutoscaler",
apiVersions: ["autoscaling/v2beta1"], apiVersions: ["autoscaling/v2beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.HorizontalPodAutoscaler>) => <HpaDetails {...props}/>, // Note: this line is left in the long form as a validation that this usecase is valid
Details: (props: HpaDetailsProps) => <HpaDetails {...props}/>,
} }
}, },
{ {
@ -72,21 +70,22 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["autoscaling/v2beta1"], apiVersions: ["autoscaling/v2beta1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, // Note: this line is left in the long form as a validation that this usecase is valid
} Details: (props: KubeObjectDetailsProps) => <KubeEventDetails {...props}/>,
},
}, },
{ {
kind: "LimitRange", kind: "LimitRange",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.LimitRange>) => <LimitRangeDetails {...props}/>, Details: LimitRangeDetails,
} }
}, },
{ {
kind: "ConfigMap", kind: "ConfigMap",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ConfigMap>) => <ConfigMapDetails {...props}/>, Details: ConfigMapDetails,
} }
}, },
{ {
@ -94,56 +93,56 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "PodDisruptionBudget", kind: "PodDisruptionBudget",
apiVersions: ["policy/v1beta1"], apiVersions: ["policy/v1beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.PodDisruptionBudget>) => <PodDisruptionBudgetDetails {...props}/>, Details: PodDisruptionBudgetDetails,
} }
}, },
{ {
kind: "ResourceQuota", kind: "ResourceQuota",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ResourceQuota>) => <ResourceQuotaDetails {...props}/>, Details: ResourceQuotaDetails,
} }
}, },
{ {
kind: "Secret", kind: "Secret",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Secret>) => <SecretDetails {...props}/>, Details: SecretDetails,
} }
}, },
{ {
kind: "CustomResourceDefinition", kind: "CustomResourceDefinition",
apiVersions: ["apiextensions.k8s.io/v1", "apiextensions.k8s.io/v1beta1"], apiVersions: ["apiextensions.k8s.io/v1", "apiextensions.k8s.io/v1beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.CustomResourceDefinition>) => <CRDDetails {...props}/>, Details: CRDDetails,
} }
}, },
{ {
kind: "Event", kind: "Event",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.KubeEvent>) => <EventDetails {...props}/>, Details: EventDetails,
} }
}, },
{ {
kind: "Namespace", kind: "Namespace",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Namespace>) => <NamespaceDetails {...props}/>, Details: NamespaceDetails,
} }
}, },
{ {
kind: "Endpoints", kind: "Endpoints",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Endpoint>) => <EndpointDetails {...props}/>, Details: EndpointDetails,
} }
}, },
{ {
@ -151,14 +150,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Ingress", kind: "Ingress",
apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Ingress>) => <IngressDetails {...props}/>, Details: IngressDetails,
} }
}, },
{ {
@ -166,14 +165,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"], apiVersions: ["networking.k8s.io/v1", "extensions/v1beta1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "NetworkPolicy", kind: "NetworkPolicy",
apiVersions: ["networking.k8s.io/v1"], apiVersions: ["networking.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.NetworkPolicy>) => <NetworkPolicyDetails {...props}/>, Details: NetworkPolicyDetails,
} }
}, },
{ {
@ -181,14 +180,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["networking.k8s.io/v1"], apiVersions: ["networking.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Service", kind: "Service",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Service>) => <ServiceDetails {...props}/>, Details: ServiceDetails,
} }
}, },
{ {
@ -196,14 +195,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Node", kind: "Node",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Node>) => <NodeDetails {...props}/>, Details: NodeDetails,
} }
}, },
{ {
@ -211,21 +210,21 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "PodSecurityPolicy", kind: "PodSecurityPolicy",
apiVersions: ["policy/v1beta1"], apiVersions: ["policy/v1beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.PodSecurityPolicy>) => <PodSecurityPolicyDetails {...props}/>, Details: PodSecurityPolicyDetails,
} }
}, },
{ {
kind: "StorageClass", kind: "StorageClass",
apiVersions: ["storage.k8s.io/v1"], apiVersions: ["storage.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.StorageClass>) => <StorageClassDetails {...props}/>, Details: StorageClassDetails,
} }
}, },
{ {
@ -233,14 +232,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["storage.k8s.io/v1"], apiVersions: ["storage.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "PersistentVolumeClaim", kind: "PersistentVolumeClaim",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.PersistentVolumeClaim>) => <PersistentVolumeClaimDetails {...props}/>, Details: PersistentVolumeClaimDetails,
} }
}, },
{ {
@ -248,14 +247,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "PersistentVolume", kind: "PersistentVolume",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.PersistentVolume>) => <PersistentVolumeDetails {...props}/>, Details: PersistentVolumeDetails,
} }
}, },
{ {
@ -263,14 +262,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Role", kind: "Role",
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Role>) => <RoleDetails {...props}/>, Details: RoleDetails,
} }
}, },
{ {
@ -278,14 +277,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "ClusterRole", kind: "ClusterRole",
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ClusterRole>) => <ClusterRoleDetails {...props}/>, Details: ClusterRoleDetails,
} }
}, },
{ {
@ -293,14 +292,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "RoleBinding", kind: "RoleBinding",
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.RoleBinding>) => <RoleBindingDetails {...props}/>, Details: RoleBindingDetails,
} }
}, },
{ {
@ -308,14 +307,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "ClusterRoleBinding", kind: "ClusterRoleBinding",
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ClusterRoleBinding>) => <ClusterRoleBindingDetails {...props}/>, Details: ClusterRoleBindingDetails,
} }
}, },
{ {
@ -323,14 +322,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["rbac.authorization.k8s.io/v1"], apiVersions: ["rbac.authorization.k8s.io/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "ServiceAccount", kind: "ServiceAccount",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ServiceAccount>) => <ServiceAccountsDetails {...props}/>, Details: ServiceAccountsDetails,
} }
}, },
{ {
@ -338,14 +337,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "CronJob", kind: "CronJob",
apiVersions: ["batch/v1beta1"], apiVersions: ["batch/v1beta1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.CronJob>) => <CronJobDetails {...props}/>, Details: CronJobDetails,
} }
}, },
{ {
@ -353,14 +352,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["batch/v1beta1"], apiVersions: ["batch/v1beta1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "DaemonSet", kind: "DaemonSet",
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.DaemonSet>) => <DaemonSetDetails {...props}/>, Details: DaemonSetDetails,
} }
}, },
{ {
@ -368,14 +367,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Deployment", kind: "Deployment",
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Deployment>) => <DeploymentDetails {...props}/>, Details: DeploymentDetails,
} }
}, },
{ {
@ -383,14 +382,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Job", kind: "Job",
apiVersions: ["batch/v1"], apiVersions: ["batch/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Job>) => <JobDetails {...props}/>, Details: JobDetails,
} }
}, },
{ {
@ -398,14 +397,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["batch/v1"], apiVersions: ["batch/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "Pod", kind: "Pod",
apiVersions: ["v1"], apiVersions: ["v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.Pod>) => <PodDetails {...props}/>, Details: PodDetails,
} }
}, },
{ {
@ -413,14 +412,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["v1"], apiVersions: ["v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "ReplicaSet", kind: "ReplicaSet",
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.ReplicaSet>) => <ReplicaSetDetails {...props}/>, Details: ReplicaSetDetails,
} }
}, },
{ {
@ -428,14 +427,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "StatefulSet", kind: "StatefulSet",
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<endpoints.StatefulSet>) => <StatefulSetDetails {...props}/>, Details: StatefulSetDetails,
} }
}, },
{ {
@ -443,14 +442,14 @@ export function intiKubeObjectDetailRegistry() {
apiVersions: ["apps/v1"], apiVersions: ["apps/v1"],
priority: 5, priority: 5,
components: { components: {
Details: (props: KubeObjectDetailsProps<KubeObject>) => <KubeEventDetails {...props}/>, Details: KubeEventDetails,
} }
}, },
{ {
kind: "CustomResourceDefinition", kind: "CustomResourceDefinition",
apiVersions: ["apiextensions.k8s.io/v1"], apiVersions: ["apiextensions.k8s.io/v1"],
components: { components: {
Details: (props: KubeObjectDetailsProps<CustomResourceDefinition>) => <CrdResourceDetails {...props}/>, Details: CrdResourceDetails,
} }
} }
]); ]);