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