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:
parent
5c6402b60a
commit
2315857932
18
src/common/k8s-api/endpoints/ingress-class.api.injectable.ts
Normal file
18
src/common/k8s-api/endpoints/ingress-class.api.injectable.ts
Normal 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;
|
||||||
51
src/common/k8s-api/endpoints/ingress-class.api.ts
Normal file
51
src/common/k8s-api/endpoints/ingress-class.api.ts
Normal 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";
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user