From 3ef2650e69d910684b1f210eddc4e28ce45f7b78 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Thu, 22 Oct 2020 15:05:14 -0700 Subject: [PATCH] Fix kubectl storage class check (#13046) --- .../resource-deployment/src/services/tools/kubeCtlTool.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/resource-deployment/src/services/tools/kubeCtlTool.ts b/extensions/resource-deployment/src/services/tools/kubeCtlTool.ts index 215224e100..73cf23bc8b 100644 --- a/extensions/resource-deployment/src/services/tools/kubeCtlTool.ts +++ b/extensions/resource-deployment/src/services/tools/kubeCtlTool.ts @@ -67,10 +67,12 @@ export class KubeCtlTool extends ToolBase { } public async getStorageClasses(): Promise<{ storageClasses: string[], defaultStorageClass: string }> { - const storageClasses: KubeStorageClass[] = JSON.parse(await this.platformService.runCommand('kubectl get sc -o json')).items; + // Ignore any values without metadata - that should never happen but if it doesn't we don't have anything useful to do with it anyways + const storageClasses = (JSON.parse(await this.platformService.runCommand('kubectl get sc -o json')).items as KubeStorageClass[]) + .filter(sc => sc.metadata); return { storageClasses: storageClasses.map(sc => sc.metadata.name), - defaultStorageClass: storageClasses.find(sc => sc.metadata.annotations['storageclass.kubernetes.io/is-default-class'] === 'true')?.metadata.name ?? '' + defaultStorageClass: storageClasses.find(sc => sc.metadata.annotations?.['storageclass.kubernetes.io/is-default-class'] === 'true')?.metadata.name ?? '' }; }