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

View File

@ -5,3 +5,4 @@
export * from "./ingresses";
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";
enum columnId {
is_default = "is-default",
name = "name",
namespace = "namespace",
controller = "controller",
@ -41,7 +40,6 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
className={styles.IngressClasses}
store={store}
sortingCallbacks={{
[columnId.is_default]: (resource: IngressClass) => resource.isDefault ? 1 : 0,
[columnId.name]: (resource: IngressClass) => resource.getName(),
[columnId.namespace]: (resource: IngressClass) => resource.getNs(),
[columnId.controller]: (resource: IngressClass) => resource.getController(),
@ -54,8 +52,7 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
]}
renderHeaderTitle="Ingress Classes"
renderTableHeader={[
{ title: "Default", className: styles.is_default, id: columnId.is_default },
{ title: "Name", className: styles.names, sortBy: columnId.name, id: columnId.name },
{ title: "Name", className: styles.name, sortBy: columnId.name, id: columnId.name },
{
title: "Namespace",
className: styles.namespace,
@ -69,7 +66,7 @@ const NonInjectedIngressClasses = observer((props: Dependencies) => {
id: columnId.controller,
},
{
title: "ApiGroup",
title: "API Group",
className: styles.apiGroup,
sortBy: 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: "Kind", className: styles.kind, sortBy: columnId.kind, id: columnId.kind, },
]}
renderTableContents={ingressClass => [
<span>checkbox-set-default</span>,
renderTableContents={(ingressClass: IngressClass) => [
// TODO: add "is-default" icon/marker + some actions how to "set as default" for each IngressClass
ingressClass.getName(),
ingressClass.getNs(),
ingressClass.getController(),
ingressClass.getNs(),
ingressClass.getApiGroup(),
ingressClass.getScope(),
ingressClass.getKind(),