mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Document extending KubernetesCluster in extension guides.
Signed-off-by: Panu Horsmalahti <phorsmalahti@mirantis.com>
This commit is contained in:
parent
8c6afc6743
commit
f2da036fbe
@ -20,6 +20,7 @@ Each guide or code sample includes the following:
|
|||||||
| [Main process extension](main-extension.md) | Main.LensExtension |
|
| [Main process extension](main-extension.md) | Main.LensExtension |
|
||||||
| [Renderer process extension](renderer-extension.md) | Renderer.LensExtension |
|
| [Renderer process extension](renderer-extension.md) | Renderer.LensExtension |
|
||||||
| [Resource stack (cluster feature)](resource-stack.md) | |
|
| [Resource stack (cluster feature)](resource-stack.md) | |
|
||||||
|
| [Extending KubernetesCluster)](extending-kubernetes-cluster.md) | |
|
||||||
| [Stores](stores.md) | |
|
| [Stores](stores.md) | |
|
||||||
| [Components](components.md) | |
|
| [Components](components.md) | |
|
||||||
| [KubeObjectListLayout](kube-object-list-layout.md) | |
|
| [KubeObjectListLayout](kube-object-list-layout.md) | |
|
||||||
|
|||||||
69
docs/extensions/guides/extending-kubernetes-cluster.md
Normal file
69
docs/extensions/guides/extending-kubernetes-cluster.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Extending KubernetesCluster
|
||||||
|
|
||||||
|
Extension can specify it's own subclass of Common.Catalog.KubernetesCluster. Extension can also specify a new Category for it in the Catalog.
|
||||||
|
|
||||||
|
## Extending Common.Catalog.KubernetesCluster
|
||||||
|
|
||||||
|
``` typescript
|
||||||
|
import { Common } from "@k8slens/extensions";
|
||||||
|
|
||||||
|
// The kind must be different from KubernetesCluster's kind
|
||||||
|
export const kind = "ManagedDevCluster";
|
||||||
|
|
||||||
|
export class ManagedDevCluster extends Common.Catalog.KubernetesCluster {
|
||||||
|
public static readonly kind = kind;
|
||||||
|
|
||||||
|
public readonly kind = kind;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extending Common.Catalog.CatalogCategory
|
||||||
|
|
||||||
|
These custom Catalog entities can be added a new Category in the Catalog.
|
||||||
|
|
||||||
|
``` typescript
|
||||||
|
import { Common } from "@k8slens/extensions";
|
||||||
|
import { kind, ManagedDevCluster } from "../entities/ManagedDevCluster";
|
||||||
|
|
||||||
|
class ManagedDevClusterCategory extends Common.Catalog.CatalogCategory {
|
||||||
|
public readonly apiVersion = "catalog.k8slens.dev/v1alpha1";
|
||||||
|
public readonly kind = "CatalogCategory";
|
||||||
|
public metadata = {
|
||||||
|
name: "Managed Dev Clusters",
|
||||||
|
icon: ""
|
||||||
|
};
|
||||||
|
public spec: Common.Catalog.CatalogCategorySpec = {
|
||||||
|
group: "entity.k8slens.dev",
|
||||||
|
versions: [
|
||||||
|
{
|
||||||
|
name: "v1alpha1",
|
||||||
|
entityClass: ManagedDevCluster as any,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
names: {
|
||||||
|
kind
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export { ManagedDevClusterCategory };
|
||||||
|
export type { ManagedDevClusterCategory as ManagedDevClusterCategoryType };
|
||||||
|
```
|
||||||
|
|
||||||
|
The category needs to be registered in the `onActivate()` method both in main and renderer
|
||||||
|
|
||||||
|
``` typescript
|
||||||
|
// in main's on onActivate
|
||||||
|
Main.Catalog.catalogCategories.add(new ManagedDevClusterCategory());
|
||||||
|
```
|
||||||
|
|
||||||
|
``` typescript
|
||||||
|
// in renderer's on onActivate
|
||||||
|
Renderer.Catalog.catalogCategories.add(new ManagedDevClusterCategory());
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then add the entities to the Catalog as a new source:
|
||||||
|
|
||||||
|
``` typescript
|
||||||
|
this.addCatalogSource("managedDevClusters", this.managedDevClusters);
|
||||||
|
```
|
||||||
@ -24,6 +24,7 @@ nav:
|
|||||||
- Renderer Extension: extensions/guides/renderer-extension.md
|
- Renderer Extension: extensions/guides/renderer-extension.md
|
||||||
- Catalog: extensions/guides/catalog.md
|
- Catalog: extensions/guides/catalog.md
|
||||||
- Resource Stack: extensions/guides/resource-stack.md
|
- Resource Stack: extensions/guides/resource-stack.md
|
||||||
|
- Extending KubernetesCluster: extensions/guides/extending-kubernetes-cluster.md
|
||||||
- Stores: extensions/guides/stores.md
|
- Stores: extensions/guides/stores.md
|
||||||
- Working with MobX: extensions/guides/working-with-mobx.md
|
- Working with MobX: extensions/guides/working-with-mobx.md
|
||||||
- Protocol Handlers: extensions/guides/protocol-handlers.md
|
- Protocol Handlers: extensions/guides/protocol-handlers.md
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user