mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
35 lines
867 B
TypeScript
35 lines
867 B
TypeScript
import request, { RequestPromiseOptions } from "request-promise-native";
|
|
import { Cluster } from "../cluster";
|
|
|
|
export type ClusterDetectionResult = {
|
|
value: string | number | boolean
|
|
accuracy: number
|
|
};
|
|
|
|
export class BaseClusterDetector {
|
|
cluster: Cluster;
|
|
key: string;
|
|
|
|
constructor(cluster: Cluster) {
|
|
this.cluster = cluster;
|
|
}
|
|
|
|
detect(): Promise<ClusterDetectionResult> {
|
|
return null;
|
|
}
|
|
|
|
protected async k8sRequest<T = any>(path: string, options: RequestPromiseOptions = {}): Promise<T> {
|
|
const apiUrl = this.cluster.kubeProxyUrl + path;
|
|
|
|
return request(apiUrl, {
|
|
json: true,
|
|
timeout: 30000,
|
|
...options,
|
|
headers: {
|
|
Host: `${this.cluster.id}.${new URL(this.cluster.kubeProxyUrl).host}`, // required in ClusterManager.getClusterForRequest()
|
|
...(options.headers || {}),
|
|
},
|
|
});
|
|
}
|
|
}
|