add more type declarations

Signed-off-by: Jamie Klassen <jklassen@vmware.com>
This commit is contained in:
Jamie Klassen
2022-12-02 16:05:20 -05:00
parent 7c65d54a35
commit ea4192ff68
@@ -15,10 +15,13 @@
*/
import {
Cluster,
Context,
CoreV1Api,
CustomObjectsApi,
KubeConfig,
Metrics,
CustomObjectsApi,
User,
} from '@kubernetes/client-node';
import { ClusterDetails } from '../types/types';
@@ -29,26 +32,26 @@ import { ClusterDetails } from '../types/types';
export class KubernetesClientProvider {
// visible for testing
getKubeConfig(clusterDetails: ClusterDetails) {
const cluster = {
const cluster: Cluster = {
name: clusterDetails.name,
server: clusterDetails.url,
skipTLSVerify: clusterDetails.skipTLSVerify,
skipTLSVerify: clusterDetails.skipTLSVerify || false,
caData: clusterDetails.caData,
};
// TODO configure
const user = {
const user: User = {
name: 'backstage',
token: clusterDetails.serviceAccountToken,
};
const context = {
const context: Context = {
name: `${clusterDetails.name}`,
user: user.name,
cluster: cluster.name,
};
const kc = new KubeConfig();
const kc: KubeConfig = new KubeConfig();
if (clusterDetails.serviceAccountToken) {
kc.loadFromOptions({
clusters: [cluster],
@@ -63,19 +66,19 @@ export class KubernetesClientProvider {
return kc;
}
getCoreClientByClusterDetails(clusterDetails: ClusterDetails) {
getCoreClientByClusterDetails(clusterDetails: ClusterDetails): CoreV1Api {
const kc = this.getKubeConfig(clusterDetails);
return kc.makeApiClient(CoreV1Api);
}
getMetricsClient(clusterDetails: ClusterDetails) {
getMetricsClient(clusterDetails: ClusterDetails): Metrics {
const kc = this.getKubeConfig(clusterDetails);
return new Metrics(kc);
}
getCustomObjectsClient(clusterDetails: ClusterDetails) {
getCustomObjectsClient(clusterDetails: ClusterDetails): CustomObjectsApi {
const kc = this.getKubeConfig(clusterDetails);
return kc.makeApiClient(CustomObjectsApi);