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.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', + ); }); }); 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.'); }