diff --git a/extensions/kind/src/create-cluster.ts b/extensions/kind/src/create-cluster.ts index 701676a142b..69e25ed50e6 100644 --- a/extensions/kind/src/create-cluster.ts +++ b/extensions/kind/src/create-cluster.ts @@ -157,14 +157,22 @@ export async function createCluster( // update PATH to include kind env.PATH = getKindPath(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const telemetryOptions: Record = { + provider, + httpHostPort, + httpsHostPort, + ingressController, + }; + // now execute the command to create the cluster + const startTime = performance.now(); try { await extensionApi.process.exec(kindCli, ['create', 'cluster', '--config', tmpFilePath], { env, logger, token }); if (ingressController) { logger.log('Creating ingress controller resources'); await setupIngressController(clusterName); } - telemetryLogger.logUsage('createCluster', { provider, httpHostPort, httpsHostPort, ingressController }); } catch (error) { let errorMessage: string; @@ -174,16 +182,15 @@ export async function createCluster( errorMessage = error; } - telemetryLogger.logError('createCluster', { - provider, - httpHostPort, - httpsHostPort, - ingressController, - error: errorMessage, - stdErr: errorMessage, - }); + telemetryOptions.error = errorMessage; + telemetryOptions.stdErr = errorMessage; + throw new Error(`Failed to create kind cluster. ${errorMessage}`); } finally { + const endTime = performance.now(); + telemetryOptions.duration = endTime - startTime; + telemetryLogger.logUsage('createCluster', telemetryOptions); + // delete temporary directory/file await fs.promises.rm(tmpDirectory, { recursive: true }); }