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

added backbone for k8s-api/endpoints/ingress-class.api

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2022-12-17 18:52:08 +02:00
parent 5c6402b60a
commit 2315857932
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,18 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { IngressClassApi } from "./ingress-class.api";
import { kubeApiInjectionToken } from "../kube-api/kube-api-injection-token";
const ingressClassApiInjectable = getInjectable({
id: "ingress-class-api",
instantiate: (di) => {
return new IngressClassApi();
},
injectionToken: kubeApiInjectionToken,
});
export default ingressClassApiInjectable;

View File

@ -0,0 +1,51 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { KubeObject, KubeObjectMetadata, KubeObjectScope } from "../kube-object";
import { KubeApi } from "../kube-api";
export class IngressClassApi extends KubeApi<IngressClass> {
constructor() {
super({
objectConstructor: IngressClass,
});
}
}
// API docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#ingressclass-v1-networking-k8s-io
export type IngressClassMetadata = KubeObjectMetadata<KubeObjectScope.Namespace> & {
"name": string;
"labels"?: {
[name: string]: string | undefined;
"app.kubernetes.io/component"?: "controller"
}
"annotations"?: {
[name: string]: string | undefined;
"ingressclass.kubernetes.io/is-default-class"?: "true",
}
};
export interface IngressClassParametersReference {
"apiGroup": string; // k8s.example.net
"scope": "Namespace" | "Cluster"
"kind": "ClusterIngressParameter" | "IngressParameter"
"name": string; // external-config-1
"namespace"?: string; // namespaced for IngressClass must be defined in `spec.parameters.namespace` instead of `metadata.namespace` (!)
}
export interface IngressClassSpec {
"controller": string; // example.com/ingress-controller
"parameters": IngressClassParametersReference,
}
export interface IngressClassStatus {
}
export class IngressClass extends KubeObject<IngressClassMetadata, IngressClassStatus, IngressClassSpec> {
static readonly kind = "IngressClass";
static readonly namespaced = true;
static readonly apiBase = "/apis/networking.k8s.io/v1/ingressclasses";
}