Merge pull request #19903 from jamieklassen/clusterdetails-relax-auth-type

Configurable Kubernetes Authentication Strategies
This commit is contained in:
Jamie Klassen
2023-09-15 13:01:08 -04:00
committed by GitHub
50 changed files with 1442 additions and 1131 deletions
+1
View File
@@ -42,6 +42,7 @@
"@backstage/plugin-catalog-react": "workspace:^",
"@backstage/plugin-kubernetes-common": "workspace:^",
"@backstage/theme": "workspace:^",
"@backstage/types": "workspace:^",
"@kubernetes-models/apimachinery": "^1.1.0",
"@kubernetes-models/base": "^4.0.1",
"@kubernetes/client-node": "0.18.1",
@@ -74,7 +74,7 @@ describe('KubernetesAuthProviders tests', () => {
requestBody,
);
expect(details.auth?.oidc?.okta).toBe('oktaToken');
expect(details).toMatchObject({ auth: { oidc: { okta: 'oktaToken' } } });
});
it('returns error for unknown authProvider', async () => {
@@ -14,9 +14,10 @@
* limitations under the License.
*/
import { KubernetesAuthProvider } from './types';
import { JsonObject } from '@backstage/types';
import { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common';
import { OpenIdConnectApi } from '@backstage/core-plugin-api';
import { KubernetesAuthProvider } from './types';
export class OidcKubernetesAuthProvider implements KubernetesAuthProvider {
providerName: string;
@@ -31,9 +32,9 @@ export class OidcKubernetesAuthProvider implements KubernetesAuthProvider {
requestBody: KubernetesRequestBody,
): Promise<KubernetesRequestBody> {
const authToken: string = (await this.getCredentials()).token;
const auth = { ...requestBody.auth };
const auth = { ...(requestBody.auth as JsonObject) };
if (auth.oidc) {
auth.oidc[this.providerName] = authToken;
(auth.oidc as JsonObject)[this.providerName] = authToken;
} else {
auth.oidc = { [this.providerName]: authToken };
}