@k8slens/extensions 5.5.0-git.a08b9bd5e9.0 → 5.5.0-git.ab2cd27a27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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[];