From 5151daee5e652b7b8a4706def62ccf648d1811dc Mon Sep 17 00:00:00 2001 From: Jonah Back Date: Sun, 26 Jun 2022 13:35:03 -0700 Subject: [PATCH] address review comments Signed-off-by: Jonah Back --- .../catalog-backend-module-aws/api-report.md | 21 +++++++++++++++++++ .../catalog-backend-module-aws/src/index.ts | 1 + .../src/processors/AwsEKSClusterProcessor.ts | 7 +++++++ .../src/processors/index.ts | 1 + .../catalog-backend-module-aws/src/types.ts | 5 +++++ 5 files changed, 35 insertions(+) diff --git a/plugins/catalog-backend-module-aws/api-report.md b/plugins/catalog-backend-module-aws/api-report.md index c2c18431b9..4e8db41fac 100644 --- a/plugins/catalog-backend-module-aws/api-report.md +++ b/plugins/catalog-backend-module-aws/api-report.md @@ -7,6 +7,7 @@ import { CatalogProcessor } from '@backstage/plugin-catalog-backend'; import { CatalogProcessorEmit } from '@backstage/plugin-catalog-backend'; import { CatalogProcessorParser } from '@backstage/plugin-catalog-backend'; import { Config } from '@backstage/config'; +import { Credentials } from 'aws-sdk'; import { EntityProvider } from '@backstage/plugin-catalog-backend'; import { EntityProviderConnection } from '@backstage/plugin-catalog-backend'; import { LocationSpec } from '@backstage/plugin-catalog-backend'; @@ -14,6 +15,26 @@ import { Logger } from 'winston'; import { TaskRunner } from '@backstage/backend-tasks'; import { UrlReader } from '@backstage/backend-common'; +// @public +export type AWSCredentialFactory = ( + awsAccountId: string, +) => Promise; + +// @public +export class AwsEKSClusterProcessor implements CatalogProcessor { + constructor(options: { credentialsFactory?: AWSCredentialFactory }); + // (undocumented) + getProcessorName(): string; + // (undocumented) + normalizeName(name: string): string; + // (undocumented) + readLocation( + location: LocationSpec, + _optional: boolean, + emit: CatalogProcessorEmit, + ): Promise; +} + // @public export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { // (undocumented) diff --git a/plugins/catalog-backend-module-aws/src/index.ts b/plugins/catalog-backend-module-aws/src/index.ts index 1d8e844895..212308edaa 100644 --- a/plugins/catalog-backend-module-aws/src/index.ts +++ b/plugins/catalog-backend-module-aws/src/index.ts @@ -22,3 +22,4 @@ export * from './processors'; export * from './providers'; +export * from './types'; diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts index c85531e944..620f3951df 100644 --- a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts +++ b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts @@ -29,6 +29,13 @@ import { AWSCredentialFactory } from '../types'; const ACCOUNTID_ANNOTATION: string = 'amazonaws.com/account-id'; const ARN_ANNOTATION: string = 'amazonaws.com/arn'; +/** + * A processor for automatic discovery of resources from EKS clusters. Handles the + * `aws-eks` location type, and target accounts/regions of the form + * `/`. + * + * @public + */ export class AwsEKSClusterProcessor implements CatalogProcessor { private credentialsFactory?: AWSCredentialFactory; diff --git a/plugins/catalog-backend-module-aws/src/processors/index.ts b/plugins/catalog-backend-module-aws/src/processors/index.ts index 8718e77a6f..63b8a47139 100644 --- a/plugins/catalog-backend-module-aws/src/processors/index.ts +++ b/plugins/catalog-backend-module-aws/src/processors/index.ts @@ -14,5 +14,6 @@ * limitations under the License. */ +export { AwsEKSClusterProcessor } from './AwsEKSClusterProcessor'; export { AwsOrganizationCloudAccountProcessor } from './AwsOrganizationCloudAccountProcessor'; export { AwsS3DiscoveryProcessor } from './AwsS3DiscoveryProcessor'; diff --git a/plugins/catalog-backend-module-aws/src/types.ts b/plugins/catalog-backend-module-aws/src/types.ts index 88fdc067eb..3d9df38181 100644 --- a/plugins/catalog-backend-module-aws/src/types.ts +++ b/plugins/catalog-backend-module-aws/src/types.ts @@ -15,6 +15,11 @@ */ import { Credentials } from 'aws-sdk'; +/** + * A factory for providing user-specified AWS credentials for a given AWS account. + * + * @public + */ export type AWSCredentialFactory = ( awsAccountId: string, ) => Promise;