Merge pull request #9525 from devth/make-k8s-config-optional-in-dev
fix: allow missing k8s config in dev
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Allow missing kubernetes config in development env
|
||||
@@ -83,15 +83,7 @@ export interface GKEClusterDetails extends ClusterDetails {}
|
||||
export class KubernetesBuilder {
|
||||
constructor(env: KubernetesEnvironment);
|
||||
// (undocumented)
|
||||
build(): Promise<{
|
||||
clusterDetails: ClusterDetails[];
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
customResources: CustomResource[];
|
||||
fetcher: KubernetesFetcher;
|
||||
objectsProvider: KubernetesObjectsProvider;
|
||||
router: express.Router;
|
||||
serviceLocator: KubernetesServiceLocator;
|
||||
}>;
|
||||
build(): KubernetesBuilderReturn;
|
||||
// (undocumented)
|
||||
protected buildClusterSupplier(): KubernetesClustersSupplier;
|
||||
// (undocumented)
|
||||
@@ -142,6 +134,17 @@ export class KubernetesBuilder {
|
||||
setServiceLocator(serviceLocator?: KubernetesServiceLocator): this;
|
||||
}
|
||||
|
||||
// @public
|
||||
export type KubernetesBuilderReturn = Promise<{
|
||||
router: express.Router;
|
||||
clusterDetails: ClusterDetails[];
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
customResources: CustomResource[];
|
||||
fetcher: KubernetesFetcher;
|
||||
objectsProvider: KubernetesObjectsProvider;
|
||||
serviceLocator: KubernetesServiceLocator;
|
||||
}>;
|
||||
|
||||
// Warning: (ae-missing-release-tag) "KubernetesClustersSupplier" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
|
||||
//
|
||||
// @public (undocumented)
|
||||
|
||||
@@ -43,6 +43,21 @@ export interface KubernetesEnvironment {
|
||||
config: Config;
|
||||
}
|
||||
|
||||
/**
|
||||
* The return type of the `KubernetesBuilder.build` method
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export type KubernetesBuilderReturn = Promise<{
|
||||
router: express.Router;
|
||||
clusterDetails: ClusterDetails[];
|
||||
clusterSupplier: KubernetesClustersSupplier;
|
||||
customResources: CustomResource[];
|
||||
fetcher: KubernetesFetcher;
|
||||
objectsProvider: KubernetesObjectsProvider;
|
||||
serviceLocator: KubernetesServiceLocator;
|
||||
}>;
|
||||
|
||||
export class KubernetesBuilder {
|
||||
private clusterSupplier?: KubernetesClustersSupplier;
|
||||
private objectsProvider?: KubernetesObjectsProvider;
|
||||
@@ -55,11 +70,23 @@ export class KubernetesBuilder {
|
||||
|
||||
constructor(protected readonly env: KubernetesEnvironment) {}
|
||||
|
||||
public async build() {
|
||||
public async build(): KubernetesBuilderReturn {
|
||||
const logger = this.env.logger;
|
||||
const config = this.env.config;
|
||||
|
||||
logger.info('Initializing Kubernetes backend');
|
||||
|
||||
if (!config.has('kubernetes')) {
|
||||
if (process.env.NODE_ENV !== 'development') {
|
||||
throw new Error('Kubernetes configuration is missing');
|
||||
}
|
||||
logger.warn(
|
||||
'Failed to initialize kubernetes backend: kubernetes config is missing',
|
||||
);
|
||||
return {
|
||||
router: Router(),
|
||||
} as unknown as KubernetesBuilderReturn;
|
||||
}
|
||||
const customResources = this.buildCustomResources();
|
||||
|
||||
const fetcher = this.fetcher ?? this.buildFetcher();
|
||||
|
||||
Reference in New Issue
Block a user