From 60e463c8d444cf5a51d73298705774cd940d0ba6 Mon Sep 17 00:00:00 2001 From: Jonah Back Date: Wed, 24 Mar 2021 21:46:26 -0700 Subject: [PATCH 1/2] improve credential loading for AWS IAM translator Signed-off-by: Jonah Back --- .changeset/sharp-flowers-prove.md | 5 +++++ .../AwsIamKubernetesAuthTranslator.ts | 11 ++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 .changeset/sharp-flowers-prove.md diff --git a/.changeset/sharp-flowers-prove.md b/.changeset/sharp-flowers-prove.md new file mode 100644 index 0000000000..299bb3b022 --- /dev/null +++ b/.changeset/sharp-flowers-prove.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes-backend': patch +--- + +Load credentials properly for AWS Kubernetes Auth Translator diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts index 902fe62dfc..10b2eea92f 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.ts @@ -32,7 +32,16 @@ const makeUrlSafe = pipe([replace('+', '-'), replace('/', '_')]); export class AwsIamKubernetesAuthTranslator implements KubernetesAuthTranslator { async getBearerToken(clusterName: string): Promise { - const credentials = AWS.config.credentials; + const credentials = await new Promise((resolve, reject) => { + AWS.config.getCredentials(err => { + if (err) { + reject(err); + } else { + resolve(AWS.config.credentials); + } + }); + }); + if (!(credentials instanceof Credentials)) { throw new Error('no AWS credentials found.'); } From e0ecfc5eeb726f4c4bd042f9128e7184b9cafddb Mon Sep 17 00:00:00 2001 From: Jonah Back Date: Thu, 25 Mar 2021 22:07:09 -0700 Subject: [PATCH 2/2] update error message to be the one sent from AWS sdk Signed-off-by: Jonah Back --- .../AwsIamKubernetesAuthTranslator.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts index 08752f6ba1..f7973eb32b 100644 --- a/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts +++ b/plugins/kubernetes-backend/src/kubernetes-auth-translator/AwsIamKubernetesAuthTranslator.test.ts @@ -46,6 +46,8 @@ describe('AwsIamKubernetesAuthTranslator tests', () => { url: '', authProvider: 'aws', }); - await expect(promise).rejects.toThrow('no AWS credentials found.'); + await expect(promise).rejects.toThrow( + 'Could not load credentials from any providers', + ); }); });