From bb8cea4a75bf350d03eb15eb072b85321e031954 Mon Sep 17 00:00:00 2001 From: Aldira Putra Raharja Date: Mon, 11 Oct 2021 21:51:01 +0700 Subject: [PATCH] Add `caData` support for kubernetes config Signed-off-by: Aldira Putra Raharja --- .../src/cluster-locator/ConfigClusterLocator.test.ts | 6 ++++++ .../src/cluster-locator/ConfigClusterLocator.ts | 1 + .../kubernetes-backend/src/cluster-locator/index.test.ts | 2 ++ .../src/service/KubernetesClientProvider.ts | 1 + plugins/kubernetes-backend/src/types/types.ts | 1 + 5 files changed, 11 insertions(+) diff --git a/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.test.ts b/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.test.ts index 6d1506c4c7..62346ac6c3 100644 --- a/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.test.ts +++ b/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.test.ts @@ -53,6 +53,7 @@ describe('ConfigClusterLocator', () => { url: 'http://localhost:8080', authProvider: 'serviceAccount', skipTLSVerify: false, + caData: undefined, }, ]); }); @@ -89,6 +90,7 @@ describe('ConfigClusterLocator', () => { url: 'http://localhost:8080', authProvider: 'serviceAccount', skipTLSVerify: false, + caData: undefined, }, { name: 'cluster2', @@ -96,6 +98,7 @@ describe('ConfigClusterLocator', () => { url: 'http://localhost:8081', authProvider: 'google', skipTLSVerify: true, + caData: undefined, }, ]); }); @@ -141,6 +144,7 @@ describe('ConfigClusterLocator', () => { url: 'http://localhost:8080', authProvider: 'aws', skipTLSVerify: false, + caData: undefined, }, { assumeRole: 'SomeRole', @@ -150,6 +154,7 @@ describe('ConfigClusterLocator', () => { url: 'http://localhost:8081', authProvider: 'aws', skipTLSVerify: true, + caData: undefined, }, { assumeRole: 'SomeRole', @@ -159,6 +164,7 @@ describe('ConfigClusterLocator', () => { serviceAccountToken: undefined, authProvider: 'aws', skipTLSVerify: true, + caData: undefined, }, ]); }); diff --git a/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.ts b/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.ts index 53d3a1d025..bb9dbfe13f 100644 --- a/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.ts +++ b/plugins/kubernetes-backend/src/cluster-locator/ConfigClusterLocator.ts @@ -35,6 +35,7 @@ export class ConfigClusterLocator implements KubernetesClustersSupplier { url: c.getString('url'), serviceAccountToken: c.getOptionalString('serviceAccountToken'), skipTLSVerify: c.getOptionalBoolean('skipTLSVerify') ?? false, + caData: c.getOptionalString('caData'), authProvider: authProvider, }; const dashboardUrl = c.getOptionalString('dashboardUrl'); diff --git a/plugins/kubernetes-backend/src/cluster-locator/index.test.ts b/plugins/kubernetes-backend/src/cluster-locator/index.test.ts index 95be99a8a5..dde4dc1d93 100644 --- a/plugins/kubernetes-backend/src/cluster-locator/index.test.ts +++ b/plugins/kubernetes-backend/src/cluster-locator/index.test.ts @@ -54,6 +54,7 @@ describe('getCombinedClusterDetails', () => { url: 'http://localhost:8080', authProvider: 'serviceAccount', skipTLSVerify: false, + caData: undefined, }, { name: 'cluster2', @@ -61,6 +62,7 @@ describe('getCombinedClusterDetails', () => { url: 'http://localhost:8081', authProvider: 'google', skipTLSVerify: false, + caData: undefined, }, ]); }); diff --git a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts index 61b19854c2..4b2848508e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesClientProvider.ts @@ -31,6 +31,7 @@ export class KubernetesClientProvider { name: clusterDetails.name, server: clusterDetails.url, skipTLSVerify: clusterDetails.skipTLSVerify, + caData: clusterDetails.caData, }; // TODO configure diff --git a/plugins/kubernetes-backend/src/types/types.ts b/plugins/kubernetes-backend/src/types/types.ts index cff87f265a..0e78f64f01 100644 --- a/plugins/kubernetes-backend/src/types/types.ts +++ b/plugins/kubernetes-backend/src/types/types.ts @@ -88,6 +88,7 @@ export interface ClusterDetails { authProvider: string; serviceAccountToken?: string | undefined; skipTLSVerify?: boolean; + caData?: string | undefined; /** * Specifies the link to the Kubernetes dashboard managing this cluster. * @remarks