Merge pull request #24224 from drodil/logger_service
chore: change most of plugins to use LoggerService
This commit is contained in:
@@ -24,6 +24,7 @@ import { KubernetesRequestAuth } from '@backstage/plugin-kubernetes-common';
|
||||
import type { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common';
|
||||
import { KubernetesServiceLocator as KubernetesServiceLocator_2 } from '@backstage/plugin-kubernetes-node';
|
||||
import { Logger } from 'winston';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { ObjectToFetch as ObjectToFetch_2 } from '@backstage/plugin-kubernetes-node';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import { PermissionsService } from '@backstage/backend-plugin-api';
|
||||
@@ -75,7 +76,7 @@ export class AwsIamStrategy implements AuthenticationStrategy_2 {
|
||||
|
||||
// @public (undocumented)
|
||||
export class AzureIdentityStrategy implements AuthenticationStrategy_2 {
|
||||
constructor(logger: Logger, tokenCredential?: TokenCredential);
|
||||
constructor(logger: LoggerService, tokenCredential?: TokenCredential);
|
||||
// (undocumented)
|
||||
getCredential(): Promise<KubernetesCredential_2>;
|
||||
// (undocumented)
|
||||
@@ -189,7 +190,7 @@ export class KubernetesBuilder {
|
||||
): KubernetesObjectsProvider_2;
|
||||
// (undocumented)
|
||||
protected buildProxy(
|
||||
logger: Logger,
|
||||
logger: LoggerService,
|
||||
clusterSupplier: KubernetesClustersSupplier_2,
|
||||
discovery: DiscoveryService,
|
||||
httpAuth: HttpAuthService,
|
||||
@@ -240,7 +241,7 @@ export class KubernetesBuilder {
|
||||
protected getObjectTypesToFetch(): ObjectToFetch_2[] | undefined;
|
||||
// (undocumented)
|
||||
protected getProxy(
|
||||
logger: Logger,
|
||||
logger: LoggerService,
|
||||
clusterSupplier: KubernetesClustersSupplier_2,
|
||||
discovery: DiscoveryService,
|
||||
httpAuth: HttpAuthService,
|
||||
@@ -301,7 +302,7 @@ export interface KubernetesEnvironment {
|
||||
// (undocumented)
|
||||
httpAuth?: HttpAuthService;
|
||||
// (undocumented)
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
// (undocumented)
|
||||
permissions: PermissionEvaluator;
|
||||
}
|
||||
@@ -321,7 +322,7 @@ export interface KubernetesObjectsProviderOptions {
|
||||
// (undocumented)
|
||||
fetcher: k8sAuthTypes.KubernetesFetcher;
|
||||
// (undocumented)
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
// (undocumented)
|
||||
objectTypesToFetch?: k8sAuthTypes.ObjectToFetch[];
|
||||
// (undocumented)
|
||||
@@ -347,7 +348,7 @@ export type KubernetesProxyCreateRequestHandlerOptions = {
|
||||
|
||||
// @public
|
||||
export type KubernetesProxyOptions = {
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
authStrategy: AuthenticationStrategy;
|
||||
discovery: DiscoveryService;
|
||||
|
||||
@@ -14,17 +14,17 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Logger } from 'winston';
|
||||
import {
|
||||
AccessToken,
|
||||
DefaultAzureCredential,
|
||||
TokenCredential,
|
||||
} from '@azure/identity';
|
||||
import {
|
||||
AuthMetadata,
|
||||
AuthenticationStrategy,
|
||||
AuthMetadata,
|
||||
KubernetesCredential,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
const aksScope = '6dae42f8-4368-4678-94ff-3960e28e3630/.default'; // This scope is the same for all Azure Managed Kubernetes
|
||||
|
||||
@@ -37,7 +37,7 @@ export class AzureIdentityStrategy implements AuthenticationStrategy {
|
||||
private newTokenPromise: Promise<string> | undefined;
|
||||
|
||||
constructor(
|
||||
private readonly logger: Logger,
|
||||
private readonly logger: LoggerService,
|
||||
private readonly tokenCredential: TokenCredential = new DefaultAzureCredential(),
|
||||
) {}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { Config } from '@backstage/config';
|
||||
import { Duration } from 'luxon';
|
||||
import { Logger } from 'winston';
|
||||
import { ClusterDetails, KubernetesClustersSupplier } from '../types/types';
|
||||
import { AuthenticationStrategy } from '../auth/types';
|
||||
import { ConfigClusterLocator } from './ConfigClusterLocator';
|
||||
@@ -27,12 +26,13 @@ import { LocalKubectlProxyClusterLocator } from './LocalKubectlProxyLocator';
|
||||
import {
|
||||
AuthService,
|
||||
BackstageCredentials,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
class CombinedClustersSupplier implements KubernetesClustersSupplier {
|
||||
constructor(
|
||||
readonly clusterSuppliers: KubernetesClustersSupplier[],
|
||||
readonly logger: Logger,
|
||||
readonly logger: LoggerService,
|
||||
) {}
|
||||
|
||||
async getClusters(options: {
|
||||
@@ -71,7 +71,7 @@ export const getCombinedClusterSupplier = (
|
||||
rootConfig: Config,
|
||||
catalogClient: CatalogApi,
|
||||
authStrategy: AuthenticationStrategy,
|
||||
logger: Logger,
|
||||
logger: LoggerService,
|
||||
refreshInterval: Duration | undefined = undefined,
|
||||
auth: AuthService,
|
||||
): KubernetesClustersSupplier => {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
coreServices,
|
||||
createBackendPlugin,
|
||||
@@ -24,20 +23,20 @@ import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha';
|
||||
import { KubernetesBuilder } from '@backstage/plugin-kubernetes-backend';
|
||||
|
||||
import {
|
||||
kubernetesAuthStrategyExtensionPoint,
|
||||
kubernetesClusterSupplierExtensionPoint,
|
||||
kubernetesFetcherExtensionPoint,
|
||||
kubernetesObjectsProviderExtensionPoint,
|
||||
kubernetesServiceLocatorExtensionPoint,
|
||||
type AuthenticationStrategy,
|
||||
kubernetesAuthStrategyExtensionPoint,
|
||||
type KubernetesAuthStrategyExtensionPoint,
|
||||
type KubernetesClusterSupplierExtensionPoint,
|
||||
type KubernetesClustersSupplier,
|
||||
kubernetesClusterSupplierExtensionPoint,
|
||||
type KubernetesClusterSupplierExtensionPoint,
|
||||
type KubernetesFetcher,
|
||||
kubernetesFetcherExtensionPoint,
|
||||
type KubernetesFetcherExtensionPoint,
|
||||
type KubernetesObjectsProvider,
|
||||
kubernetesObjectsProviderExtensionPoint,
|
||||
type KubernetesObjectsProviderExtensionPoint,
|
||||
type KubernetesServiceLocator,
|
||||
kubernetesServiceLocatorExtensionPoint,
|
||||
type KubernetesServiceLocatorExtensionPoint,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
|
||||
@@ -194,10 +193,9 @@ export const kubernetesPlugin = createBackendPlugin({
|
||||
auth,
|
||||
httpAuth,
|
||||
}) {
|
||||
const winstonLogger = loggerToWinstonLogger(logger);
|
||||
// TODO: expose all of the customization & extension points of the builder here
|
||||
const builder: KubernetesBuilder = KubernetesBuilder.createBuilder({
|
||||
logger: winstonLogger,
|
||||
logger,
|
||||
config,
|
||||
catalogApi,
|
||||
permissions,
|
||||
|
||||
@@ -25,7 +25,6 @@ import { createPermissionIntegrationRouter } from '@backstage/plugin-permission-
|
||||
import express from 'express';
|
||||
import Router from 'express-promise-router';
|
||||
import { Duration } from 'luxon';
|
||||
import { Logger } from 'winston';
|
||||
|
||||
import {
|
||||
AksStrategy,
|
||||
@@ -46,15 +45,16 @@ import {
|
||||
BackstageCredentials,
|
||||
DiscoveryService,
|
||||
HttpAuthService,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
AuthMetadata,
|
||||
AuthenticationStrategy,
|
||||
AuthMetadata,
|
||||
CustomResource,
|
||||
KubernetesClustersSupplier,
|
||||
KubernetesFetcher,
|
||||
KubernetesObjectTypes,
|
||||
KubernetesObjectsProvider,
|
||||
KubernetesObjectTypes,
|
||||
KubernetesServiceLocator,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
import { addResourceRoutesToRouter } from '../routes/resourcesRoutes';
|
||||
@@ -78,7 +78,7 @@ import { KubernetesProxy } from './KubernetesProxy';
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesEnvironment {
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
config: Config;
|
||||
catalogApi: CatalogApi;
|
||||
discovery: DiscoveryService;
|
||||
@@ -353,7 +353,7 @@ export class KubernetesBuilder {
|
||||
}
|
||||
|
||||
protected buildProxy(
|
||||
logger: Logger,
|
||||
logger: LoggerService,
|
||||
clusterSupplier: KubernetesClustersSupplier,
|
||||
discovery: DiscoveryService,
|
||||
httpAuth: HttpAuthService,
|
||||
@@ -540,7 +540,7 @@ export class KubernetesBuilder {
|
||||
}
|
||||
|
||||
protected getProxy(
|
||||
logger: Logger,
|
||||
logger: LoggerService,
|
||||
clusterSupplier: KubernetesClustersSupplier,
|
||||
discovery: DiscoveryService,
|
||||
httpAuth: HttpAuthService,
|
||||
|
||||
@@ -15,26 +15,25 @@
|
||||
*/
|
||||
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { Logger } from 'winston';
|
||||
import {
|
||||
CustomResource,
|
||||
FetchResponseWrapper,
|
||||
KubernetesFetcher,
|
||||
KubernetesObjectsProviderOptions,
|
||||
KubernetesServiceLocator,
|
||||
ObjectsByEntityRequest,
|
||||
FetchResponseWrapper,
|
||||
ObjectToFetch,
|
||||
CustomResource,
|
||||
} from '../types/types';
|
||||
import {
|
||||
ClientContainerStatus,
|
||||
ClientCurrentResourceUsage,
|
||||
ClientPodStatus,
|
||||
ClusterObjects,
|
||||
CustomResourceMatcher,
|
||||
FetchResponse,
|
||||
KubernetesRequestAuth,
|
||||
ObjectsByEntityResponse,
|
||||
PodFetchResponse,
|
||||
KubernetesRequestAuth,
|
||||
CustomResourceMatcher,
|
||||
PodStatusFetchResponse,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import {
|
||||
@@ -50,7 +49,10 @@ import {
|
||||
KubernetesObjectsByEntity,
|
||||
KubernetesObjectsProvider,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
import { BackstageCredentials } from '@backstage/backend-plugin-api';
|
||||
import {
|
||||
BackstageCredentials,
|
||||
LoggerService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -193,7 +195,7 @@ const toClientSafePodMetrics = (
|
||||
type responseWithMetrics = [FetchResponseWrapper, PodStatusFetchResponse[]];
|
||||
|
||||
export class KubernetesFanOutHandler implements KubernetesObjectsProvider {
|
||||
private readonly logger: Logger;
|
||||
private readonly logger: LoggerService;
|
||||
private readonly fetcher: KubernetesFetcher;
|
||||
private readonly serviceLocator: KubernetesServiceLocator;
|
||||
private readonly customResources: CustomResource[];
|
||||
|
||||
@@ -15,16 +15,15 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
Config,
|
||||
bufferFromFileOrString,
|
||||
Cluster,
|
||||
Config,
|
||||
CoreV1Api,
|
||||
KubeConfig,
|
||||
Metrics,
|
||||
bufferFromFileOrString,
|
||||
topPods,
|
||||
} from '@kubernetes/client-node';
|
||||
import lodash, { Dictionary } from 'lodash';
|
||||
import { Logger } from 'winston';
|
||||
import {
|
||||
FetchResponseWrapper,
|
||||
KubernetesFetcher,
|
||||
@@ -33,8 +32,8 @@ import {
|
||||
import {
|
||||
ANNOTATION_KUBERNETES_AUTH_PROVIDER,
|
||||
FetchResponse,
|
||||
KubernetesFetchError,
|
||||
KubernetesErrorTypes,
|
||||
KubernetesFetchError,
|
||||
PodStatusFetchResponse,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import fetch, { RequestInit, Response } from 'node-fetch';
|
||||
@@ -45,9 +44,10 @@ import {
|
||||
ClusterDetails,
|
||||
KubernetesCredential,
|
||||
} from '@backstage/plugin-kubernetes-node';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
export interface KubernetesClientBasedFetcherOptions {
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
}
|
||||
|
||||
type FetchResult = FetchResponse | KubernetesFetchError;
|
||||
@@ -84,7 +84,7 @@ const statusCodeToErrorType = (statusCode: number): KubernetesErrorTypes => {
|
||||
};
|
||||
|
||||
export class KubernetesClientBasedFetcher implements KubernetesFetcher {
|
||||
private readonly logger: Logger;
|
||||
private readonly logger: LoggerService;
|
||||
|
||||
constructor({ logger }: KubernetesClientBasedFetcherOptions) {
|
||||
this.logger = logger;
|
||||
|
||||
@@ -22,19 +22,18 @@ import {
|
||||
} from '@backstage/errors';
|
||||
import {
|
||||
ANNOTATION_KUBERNETES_AUTH_PROVIDER,
|
||||
KubernetesRequestAuth,
|
||||
kubernetesProxyPermission,
|
||||
KubernetesRequestAuth,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import { AuthorizeResult } from '@backstage/plugin-permission-common';
|
||||
import {
|
||||
Cluster,
|
||||
KubeConfig,
|
||||
bufferFromFileOrString,
|
||||
Cluster,
|
||||
Config,
|
||||
KubeConfig,
|
||||
} from '@kubernetes/client-node';
|
||||
import { createProxyMiddleware, RequestHandler } from 'http-proxy-middleware';
|
||||
import { Logger } from 'winston';
|
||||
import fs from 'fs-extra';
|
||||
import { Config } from '@kubernetes/client-node';
|
||||
|
||||
import { AuthenticationStrategy } from '../auth';
|
||||
import { ClusterDetails, KubernetesClustersSupplier } from '../types/types';
|
||||
@@ -44,9 +43,13 @@ import { IncomingHttpHeaders } from 'http';
|
||||
import {
|
||||
DiscoveryService,
|
||||
HttpAuthService,
|
||||
LoggerService,
|
||||
PermissionsService,
|
||||
} from '@backstage/backend-plugin-api';
|
||||
import { createLegacyAuthAdapters } from '@backstage/backend-common';
|
||||
import {
|
||||
createLegacyAuthAdapters,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-common';
|
||||
|
||||
export const APPLICATION_JSON: string = 'application/json';
|
||||
|
||||
@@ -80,7 +83,7 @@ export type KubernetesProxyCreateRequestHandlerOptions = {
|
||||
* @public
|
||||
*/
|
||||
export type KubernetesProxyOptions = {
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
authStrategy: AuthenticationStrategy;
|
||||
discovery: DiscoveryService;
|
||||
@@ -94,7 +97,7 @@ export type KubernetesProxyOptions = {
|
||||
*/
|
||||
export class KubernetesProxy {
|
||||
private readonly middlewareForClusterName = new Map<string, RequestHandler>();
|
||||
private readonly logger: Logger;
|
||||
private readonly logger: LoggerService;
|
||||
private readonly clusterSupplier: KubernetesClustersSupplier;
|
||||
private readonly authStrategy: AuthenticationStrategy;
|
||||
private readonly httpAuth: HttpAuthService;
|
||||
@@ -154,7 +157,8 @@ export class KubernetesProxy {
|
||||
if (!middleware) {
|
||||
const logger = this.logger.child({ cluster: originalCluster.name });
|
||||
middleware = createProxyMiddleware({
|
||||
logProvider: () => logger,
|
||||
// TODO: Add 'log' to LoggerService
|
||||
logProvider: () => loggerToWinstonLogger(logger),
|
||||
ws: true,
|
||||
secure: !originalCluster.skipTLSVerify,
|
||||
changeOrigin: true,
|
||||
@@ -212,7 +216,7 @@ export class KubernetesProxy {
|
||||
error,
|
||||
);
|
||||
|
||||
logger.error(wrappedError);
|
||||
logger.error('Kubernetes proxy error', wrappedError);
|
||||
|
||||
const body: ErrorResponseBody = {
|
||||
error: serializeError(wrappedError, {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
import { Config } from '@backstage/config';
|
||||
import type { KubernetesRequestBody } from '@backstage/plugin-kubernetes-common';
|
||||
import * as k8sTypes from '@backstage/plugin-kubernetes-node';
|
||||
import { Logger } from 'winston';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -34,7 +34,7 @@ export type ServiceLocatorMethod =
|
||||
* @public
|
||||
*/
|
||||
export interface KubernetesObjectsProviderOptions {
|
||||
logger: Logger;
|
||||
logger: LoggerService;
|
||||
config: Config;
|
||||
fetcher: k8sTypes.KubernetesFetcher;
|
||||
serviceLocator: k8sTypes.KubernetesServiceLocator;
|
||||
|
||||
Reference in New Issue
Block a user