@backstage/plugin-kubernetes-node 0.4.7-next.0 → 0.4.8-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/index.d.ts +44 -2
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @backstage/plugin-kubernetes-node
|
|
2
2
|
|
|
3
|
+
## 0.4.8-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d9a57de: Add `KubernetesWatcher` interface for streaming Kubernetes resource changes via an async iterator. The watcher is separated from `KubernetesFetcher` because watching is a long-lived streaming connection that only works with server-side auth providers. Watch supports all event types (ADDED, MODIFIED, DELETED, BOOKMARK, ERROR) with errors yielded as data rather than thrown.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/plugin-kubernetes-common@0.9.13-next.0
|
|
10
|
+
|
|
11
|
+
## 0.4.7
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
- @backstage/catalog-model@1.10.0
|
|
17
|
+
- @backstage/backend-plugin-api@1.10.0
|
|
18
|
+
|
|
3
19
|
## 0.4.7-next.0
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { BackstageCredentials, LoggerService } from '@backstage/backend-plugin-a
|
|
|
3
3
|
import { AuthenticationStrategy as AuthenticationStrategy$1, KubernetesClustersSupplier as KubernetesClustersSupplier$1, KubernetesFetcher as KubernetesFetcher$1, KubernetesObjectsProvider as KubernetesObjectsProvider$1, KubernetesServiceLocator as KubernetesServiceLocator$1, CustomResource as CustomResource$1, ObjectToFetch as ObjectToFetch$1 } from '@backstage/plugin-kubernetes-node';
|
|
4
4
|
import express from 'express';
|
|
5
5
|
import { Entity } from '@backstage/catalog-model';
|
|
6
|
-
import { CustomResourceMatcher, KubernetesRequestAuth, KubernetesFetchError, FetchResponse, ObjectsByEntityResponse } from '@backstage/plugin-kubernetes-common';
|
|
6
|
+
import { CustomResourceMatcher, KubernetesRequestAuth, KubernetesFetchError, FetchResponse, ObjectsByEntityResponse, KubernetesWatchOptions, KubernetesWatchEvent } from '@backstage/plugin-kubernetes-common';
|
|
7
7
|
import { JsonObject } from '@backstage/types';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -317,6 +317,22 @@ interface FetchResponseWrapper {
|
|
|
317
317
|
errors: KubernetesFetchError[];
|
|
318
318
|
responses: FetchResponse[];
|
|
319
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Parameters identifying the Kubernetes resource to watch
|
|
322
|
+
* @public
|
|
323
|
+
*/
|
|
324
|
+
interface KubernetesWatchParams {
|
|
325
|
+
/** Cluster connection details */
|
|
326
|
+
clusterDetails: ClusterDetails;
|
|
327
|
+
/** Authentication credentials */
|
|
328
|
+
credential: KubernetesCredential;
|
|
329
|
+
/** API group (empty string for core resources) */
|
|
330
|
+
group: string;
|
|
331
|
+
/** API version (e.g., 'v1', 'v1beta1') */
|
|
332
|
+
apiVersion: string;
|
|
333
|
+
/** Resource plural name (e.g., 'pods', 'deployments') */
|
|
334
|
+
plural: string;
|
|
335
|
+
}
|
|
320
336
|
/**
|
|
321
337
|
* Fetches information from a kubernetes cluster using the cluster details object to target a specific cluster
|
|
322
338
|
*
|
|
@@ -326,6 +342,32 @@ interface KubernetesFetcher {
|
|
|
326
342
|
fetchObjectsForService(params: ObjectFetchParams): Promise<FetchResponseWrapper>;
|
|
327
343
|
fetchPodMetricsByNamespaces(clusterDetails: ClusterDetails, credential: KubernetesCredential, namespaces: Set<string>, labelSelector?: string): Promise<FetchResponseWrapper>;
|
|
328
344
|
}
|
|
345
|
+
/**
|
|
346
|
+
* Watches Kubernetes resources for changes.
|
|
347
|
+
*
|
|
348
|
+
* Separated from {@link KubernetesFetcher} because watching is a long-lived
|
|
349
|
+
* streaming connection that only works with server-side auth providers.
|
|
350
|
+
*
|
|
351
|
+
* @public
|
|
352
|
+
*/
|
|
353
|
+
interface KubernetesWatcher {
|
|
354
|
+
/**
|
|
355
|
+
* Watch Kubernetes resources for changes.
|
|
356
|
+
*
|
|
357
|
+
* Returns an AsyncGenerator whose three type parameters are:
|
|
358
|
+
* - Yield (`KubernetesWatchEvent`): each `yield` produces a watch event.
|
|
359
|
+
* Errors are yielded as `{ type: 'ERROR', error }` (errors-as-data),
|
|
360
|
+
* not thrown, so consumers handle them in the same `for await` loop.
|
|
361
|
+
* - Return (`void`): the generator never produces a meaningful completion
|
|
362
|
+
* value — it ends with bare `return` or by exhausting the stream.
|
|
363
|
+
* - Next (`undefined`): the consumer cannot send values into the generator
|
|
364
|
+
* via `.next(value)`; this is a produce-only stream.
|
|
365
|
+
*
|
|
366
|
+
* @param params - Cluster, credentials, and resource identification
|
|
367
|
+
* @param options - Optional watch parameters (filters, signal, etc.)
|
|
368
|
+
*/
|
|
369
|
+
watchResource(params: KubernetesWatchParams, options?: KubernetesWatchOptions): AsyncGenerator<KubernetesWatchEvent, void, undefined>;
|
|
370
|
+
}
|
|
329
371
|
/**
|
|
330
372
|
* @public
|
|
331
373
|
*/
|
|
@@ -381,4 +423,4 @@ declare class PinnipedHelper {
|
|
|
381
423
|
}
|
|
382
424
|
|
|
383
425
|
export { PinnipedHelper, kubernetesAuthStrategyExtensionPoint, kubernetesClusterSupplierExtensionPoint, kubernetesFetcherExtensionPoint, kubernetesObjectsProviderExtensionPoint, kubernetesRouterExtensionPoint, kubernetesServiceLocatorExtensionPoint };
|
|
384
|
-
export type { AuthMetadata, AuthenticationStrategy, ClusterDetails, CustomResource, CustomResourcesByEntity, FetchResponseWrapper, KubernetesAuthStrategyExtensionPoint, KubernetesClusterSupplierExtensionPoint, KubernetesClusterSupplierFactory, KubernetesClustersSupplier, KubernetesCredential, KubernetesFetcher, KubernetesFetcherExtensionPoint, KubernetesFetcherFactory, KubernetesObjectTypes, KubernetesObjectsByEntity, KubernetesObjectsProvider, KubernetesObjectsProviderExtensionPoint, KubernetesObjectsProviderFactory, KubernetesRouterExtensionPoint, KubernetesRouterFactory, KubernetesServiceLocator, KubernetesServiceLocatorExtensionPoint, KubernetesServiceLocatorFactory, ObjectFetchParams, ObjectToFetch, PinnipedClientCerts, PinnipedParameters, ServiceLocatorRequestContext };
|
|
426
|
+
export type { AuthMetadata, AuthenticationStrategy, ClusterDetails, CustomResource, CustomResourcesByEntity, FetchResponseWrapper, KubernetesAuthStrategyExtensionPoint, KubernetesClusterSupplierExtensionPoint, KubernetesClusterSupplierFactory, KubernetesClustersSupplier, KubernetesCredential, KubernetesFetcher, KubernetesFetcherExtensionPoint, KubernetesFetcherFactory, KubernetesObjectTypes, KubernetesObjectsByEntity, KubernetesObjectsProvider, KubernetesObjectsProviderExtensionPoint, KubernetesObjectsProviderFactory, KubernetesRouterExtensionPoint, KubernetesRouterFactory, KubernetesServiceLocator, KubernetesServiceLocatorExtensionPoint, KubernetesServiceLocatorFactory, KubernetesWatchParams, KubernetesWatcher, ObjectFetchParams, ObjectToFetch, PinnipedClientCerts, PinnipedParameters, ServiceLocatorRequestContext };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-kubernetes-node",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.8-next.0",
|
|
4
4
|
"description": "Node.js library for the kubernetes plugin",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "node-library",
|
|
@@ -38,20 +38,20 @@
|
|
|
38
38
|
"test": "backstage-cli package test"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@backstage/backend-plugin-api": "1.10.0
|
|
42
|
-
"@backstage/catalog-model": "1.
|
|
43
|
-
"@backstage/plugin-kubernetes-common": "0.9.
|
|
41
|
+
"@backstage/backend-plugin-api": "1.10.0",
|
|
42
|
+
"@backstage/catalog-model": "1.10.0",
|
|
43
|
+
"@backstage/plugin-kubernetes-common": "0.9.13-next.0",
|
|
44
44
|
"@backstage/types": "1.2.2",
|
|
45
45
|
"@kubernetes/client-node": "1.4.0",
|
|
46
46
|
"@types/express": "^4.17.6",
|
|
47
47
|
"node-fetch": "^2.7.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@backstage/backend-app-api": "1.7.3
|
|
51
|
-
"@backstage/backend-defaults": "0.17.
|
|
52
|
-
"@backstage/backend-test-utils": "1.11.6
|
|
53
|
-
"@backstage/cli": "0.36.
|
|
54
|
-
"@backstage/plugin-kubernetes-backend": "0.21.
|
|
50
|
+
"@backstage/backend-app-api": "1.7.3",
|
|
51
|
+
"@backstage/backend-defaults": "0.17.7",
|
|
52
|
+
"@backstage/backend-test-utils": "1.11.6",
|
|
53
|
+
"@backstage/cli": "0.36.6-next.0",
|
|
54
|
+
"@backstage/plugin-kubernetes-backend": "0.21.10-next.0",
|
|
55
55
|
"msw": "^1.3.1",
|
|
56
56
|
"supertest": "^7.0.0"
|
|
57
57
|
},
|