improve error message on missing authProvider

Signed-off-by: Jamie Klassen <jamie.klassen@broadcom.com>
This commit is contained in:
Jamie Klassen
2024-01-12 17:42:23 -05:00
parent 7125d9c432
commit 413f08ddcc
2 changed files with 13 additions and 3 deletions
@@ -262,7 +262,9 @@ describe('ConfigClusterLocator', () => {
});
expect(() => ConfigClusterLocator.fromConfig(config, authStrategy)).toThrow(
'Missing required config value',
`cluster 'cluster' has no auth provider configured; this must be specified` +
` via the 'authProvider' or ` +
`'authMetadata.${ANNOTATION_KUBERNETES_AUTH_PROVIDER}' parameter`,
);
});
@@ -40,11 +40,19 @@ export class ConfigClusterLocator implements KubernetesClustersSupplier {
const authMetadataBlock = c.getOptional<{
[ANNOTATION_KUBERNETES_AUTH_PROVIDER]?: string;
}>('authMetadata');
const name = c.getString('name');
const authProvider =
authMetadataBlock?.[ANNOTATION_KUBERNETES_AUTH_PROVIDER] ??
c.getString('authProvider');
c.getOptionalString('authProvider');
if (!authProvider) {
throw new Error(
`cluster '${name}' has no auth provider configured; this must be ` +
`specified via the 'authProvider' or ` +
`'authMetadata.${ANNOTATION_KUBERNETES_AUTH_PROVIDER}' parameter`,
);
}
const clusterDetails: ClusterDetails = {
name: c.getString('name'),
name,
url: c.getString('url'),
skipTLSVerify: c.getOptionalBoolean('skipTLSVerify') ?? false,
skipMetricsLookup: c.getOptionalBoolean('skipMetricsLookup') ?? false,