@k8slens/extensions 5.5.0-git.93069e8600.0 → 5.5.0-git.ab2cd27a27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Copyright (c) OpenLens Authors. All rights reserved.
3
+ * Licensed under MIT License. See LICENSE in root directory for more information.
4
+ */
5
+ export {};
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) OpenLens Authors. All rights reserved.
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
- import { KubeObject } from "../kube-object";
5
+ import { KubeObject, TypedLocalObjectReference } from "../kube-object";
6
6
  import { IMetrics } from "./metrics.api";
7
7
  import { KubeApi } from "../kube-api";
8
8
  import type { KubeJsonApiData } from "../kube-json-api";
@@ -21,46 +21,50 @@ export interface ILoadBalancerIngress {
21
21
  hostname?: string;
22
22
  ip?: string;
23
23
  }
24
- interface IExtensionsBackend {
25
- serviceName: string;
26
- servicePort: number | string;
24
+ export interface ExtensionsBackend {
25
+ serviceName?: string;
26
+ servicePort?: number | string;
27
27
  }
28
- interface INetworkingBackend {
29
- service: IIngressService;
28
+ export interface NetworkingBackend {
29
+ service?: IngressService;
30
30
  }
31
- export declare type IIngressBackend = IExtensionsBackend | INetworkingBackend;
32
- export interface IIngressService {
31
+ export declare type IngressBackend = (ExtensionsBackend | NetworkingBackend) & {
32
+ resource?: TypedLocalObjectReference;
33
+ };
34
+ export interface IngressService {
33
35
  name: string;
34
- port: {
35
- name?: string;
36
- number?: number;
36
+ port: RequireExactlyOne<{
37
+ name: string;
38
+ number: number;
39
+ }>;
40
+ }
41
+ /**
42
+ * Format an ingress backend into the name of the service and port
43
+ * @param backend The ingress target
44
+ */
45
+ export declare function getBackendServiceNamePort(backend: IngressBackend): string;
46
+ export interface IngressRule {
47
+ host?: string;
48
+ http?: {
49
+ paths: {
50
+ path?: string;
51
+ backend: IngressBackend;
52
+ }[];
37
53
  };
38
54
  }
39
- export declare const getBackendServiceNamePort: (backend: IIngressBackend) => {
40
- serviceName: string;
41
- servicePort: string | number;
42
- };
43
55
  export interface Ingress {
44
- spec: {
45
- tls: {
56
+ spec?: {
57
+ tls?: {
46
58
  secretName: string;
47
59
  }[];
48
- rules?: {
49
- host?: string;
50
- http: {
51
- paths: {
52
- path?: string;
53
- backend: IIngressBackend;
54
- }[];
55
- };
56
- }[];
57
- backend?: IExtensionsBackend;
60
+ rules?: IngressRule[];
61
+ backend?: ExtensionsBackend;
58
62
  /**
59
63
  * The default backend which is exactly on of:
60
64
  * - service
61
65
  * - resource
62
66
  */
63
- defaultBackend?: RequireExactlyOne<INetworkingBackend & {
67
+ defaultBackend?: RequireExactlyOne<NetworkingBackend & {
64
68
  resource: {
65
69
  apiGroup: string;
66
70
  kind: string;
@@ -74,16 +78,25 @@ export interface Ingress {
74
78
  };
75
79
  };
76
80
  }
81
+ export interface ComputedIngressRoute {
82
+ displayAsLink: boolean;
83
+ pathname: string;
84
+ url: string;
85
+ service: string;
86
+ }
77
87
  export declare class Ingress extends KubeObject {
78
88
  static kind: string;
79
89
  static namespaced: boolean;
80
90
  static apiBase: string;
81
91
  constructor(data: KubeJsonApiData);
92
+ getRules(): IngressRule[];
82
93
  getRoutes(): string[];
83
- getServiceNamePort(): IExtensionsBackend;
94
+ getServiceNamePort(): ExtensionsBackend;
84
95
  getHosts(): string[];
85
96
  getPorts(): string;
86
97
  getLoadBalancers(): string[];
87
98
  }
99
+ export declare function computeRuleDeclarations(ingress: Ingress, rule: IngressRule): ComputedIngressRoute[];
100
+ export declare function computeRouteDeclarations(ingress: Ingress): ComputedIngressRoute[];
88
101
  declare let ingressApi: IngressApi;
89
102
  export { ingressApi, };
@@ -89,6 +89,11 @@ export declare type LabelMatchExpression = {
89
89
  */
90
90
  values: string[];
91
91
  });
92
+ export interface TypedLocalObjectReference {
93
+ apiGroup?: string;
94
+ kind: string;
95
+ name: string;
96
+ }
92
97
  export interface LabelSelector {
93
98
  matchLabels?: Record<string, string | undefined>;
94
99
  matchExpressions?: LabelMatchExpression[];
@@ -3,7 +3,11 @@
3
3
  * Licensed under MIT License. See LICENSE in root directory for more information.
4
4
  */
5
5
  import type { KubeJsonApiData } from "./kube-json-api";
6
- export interface IKubeWatchEvent<T extends KubeJsonApiData> {
7
- type: "ADDED" | "MODIFIED" | "DELETED" | "ERROR";
8
- object?: T;
9
- }
6
+ import type { KubeStatusData } from "./kube-object";
7
+ export declare type IKubeWatchEvent<T extends KubeJsonApiData> = {
8
+ type: "ADDED" | "MODIFIED" | "DELETED";
9
+ object: T;
10
+ } | {
11
+ type: "ERROR";
12
+ object: KubeStatusData;
13
+ };