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

fix: show loaded items from api into IngressClasses view

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2022-12-21 14:56:30 +02:00
parent b385c281c1
commit 6492770fa6
3 changed files with 18 additions and 20 deletions

View File

@ -36,8 +36,8 @@ export interface IngressClassParametersReference {
} }
export interface IngressClassSpec { export interface IngressClassSpec {
"controller": string; // example.com/ingress-controller controller: string; // example.com/ingress-controller
"parameters": IngressClassParametersReference, parameters?: IngressClassParametersReference,
} }
export interface IngressClassStatus { export interface IngressClassStatus {
@ -52,27 +52,27 @@ export class IngressClass extends KubeObject<IngressClassMetadata, IngressClassS
return this.spec.controller; return this.spec.controller;
} }
getApiGroup(){ getApiGroup() {
return this.spec.parameters.apiGroup; return this.spec.parameters?.apiGroup;
} }
getScope(){ getScope() {
return this.spec.parameters.scope; return this.spec.parameters?.scope;
} }
getNs() { getNs() {
return this.spec.parameters?.namespace as string; return this.spec.parameters?.namespace as string;
} }
getKind(){ getKind() {
return this.spec.parameters.kind; return this.spec.parameters?.kind;
} }
getName(){ getSpecName() {
return this.spec.parameters.name; return this.spec.parameters?.name as string;
} }
get isDefault(){ get isDefault() {
return this.metadata?.annotations?.["ingressclass.kubernetes.io/is-default-class"] === "true"; return this.metadata.annotations?.["ingressclass.kubernetes.io/is-default-class"] === "true";
} }
} }

View File

@ -5,3 +5,4 @@
export * from "./ingresses"; export * from "./ingresses";
export * from "./ingress-details"; export * from "./ingress-details";
export * from "./ingress-classes";

View File

@ -15,7 +15,6 @@ import ingressClassStoreInjectable from "./ingress-class-store.injectable";
import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api"; import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api";
enum columnId { enum columnId {
is_default = "is-default",
name = "name", name = "name",
namespace = "namespace", namespace = "namespace",
controller = "controller", controller = "controller",
@ -41,7 +40,6 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
className={styles.IngressClasses} className={styles.IngressClasses}
store={store} store={store}
sortingCallbacks={{ sortingCallbacks={{
[columnId.is_default]: (resource: IngressClass) => resource.isDefault ? 1 : 0,
[columnId.name]: (resource: IngressClass) => resource.getName(), [columnId.name]: (resource: IngressClass) => resource.getName(),
[columnId.namespace]: (resource: IngressClass) => resource.getNs(), [columnId.namespace]: (resource: IngressClass) => resource.getNs(),
[columnId.controller]: (resource: IngressClass) => resource.getController(), [columnId.controller]: (resource: IngressClass) => resource.getController(),
@ -54,8 +52,7 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
]} ]}
renderHeaderTitle="Ingress Classes" renderHeaderTitle="Ingress Classes"
renderTableHeader={[ renderTableHeader={[
{ title: "Default", className: styles.is_default, id: columnId.is_default }, { title: "Name", className: styles.name, sortBy: columnId.name, id: columnId.name },
{ title: "Name", className: styles.names, sortBy: columnId.name, id: columnId.name },
{ {
title: "Namespace", title: "Namespace",
className: styles.namespace, className: styles.namespace,
@ -69,7 +66,7 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
id: columnId.controller, id: columnId.controller,
}, },
{ {
title: "ApiGroup", title: "API Group",
className: styles.apiGroup, className: styles.apiGroup,
sortBy: columnId.apiGroup, sortBy: columnId.apiGroup,
id: columnId.apiGroup, id: columnId.apiGroup,
@ -77,11 +74,11 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
{ title: "Scope", className: styles.scope, sortBy: columnId.scope, id: columnId.scope, }, { title: "Scope", className: styles.scope, sortBy: columnId.scope, id: columnId.scope, },
{ title: "Kind", className: styles.kind, sortBy: columnId.kind, id: columnId.kind, }, { title: "Kind", className: styles.kind, sortBy: columnId.kind, id: columnId.kind, },
]} ]}
renderTableContents={ingressClass => [ renderTableContents={(ingressClass: IngressClass) => [
<span>checkbox-set-default</span>, // TODO: add "is-default" icon/marker + some actions how to "set as default" for each IngressClass
ingressClass.getName(), ingressClass.getName(),
ingressClass.getNs(),
ingressClass.getController(), ingressClass.getController(),
ingressClass.getNs(),
ingressClass.getApiGroup(), ingressClass.getApiGroup(),
ingressClass.getScope(), ingressClass.getScope(),
ingressClass.getKind(), ingressClass.getKind(),