Skip to content

Commit

Permalink
feat: add docs
Browse files Browse the repository at this point in the history
  • Loading branch information
chriskari committed Dec 9, 2024
1 parent 1c12253 commit ce0d50b
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/extensibility/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

With Busola's extensibility feature, you can create a dedicated user interface (UI) page for your CustomResourceDefinition (CRD). It enables you to add navigation nodes, on cluster or namespace level, and to configure your [UI display](./30-details-summary.md), for example, a resource list page, and details pages. You can also [create and edit forms](./40-form-fields.md). To create a UI component, you need a ConfigMap.

You can also leverage Busola's [custom extension feature](./custom-extensions.md) to design entirely custom user interfaces tailored to your specific needs.

## Create a ConfigMap for Your UI

To create a ConfigMap with your CRD's UI configuration, you can either use the Extensions feature or do it manually.
Expand Down
24 changes: 24 additions & 0 deletions docs/extensibility/custom-extensions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Custom Extensions

Busola's custom extension feature allows you to design fully custom user interfaces that go beyond the built-in extensibility functionality. This feature is ideal for creating unique and specialized displays that are not covered by the standard built-in components.

## Getting Started

First, to enable the custom extension feature you need to set the corresponding feature flag in your busola config, which is disabled by default.

```yaml
EXTENSIBILITY_CUSTOM_COMPONENTS:
isEnabled: true
```
## Creating custom extensions
Creating a custom extension is as straightforward as setting up a ConfigMap with the following sections:
- `data.general`: Contains configuration details
- `data.customHtml`: Defines static HTML content
- `data.customScript`: Adds dynamic behavior to your extension.

Once your ConfigMap is ready, add it to your cluster, and Busola will load and display your custom UI.

The best way to get familiar with this mechanism is to have a look at our [example](./../../examples/custom-extension/README.md), where everything is explained in detail.
9 changes: 9 additions & 0 deletions docs/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,15 @@ EXTENSIBILITY:
isEnabled: true
```
- **EXTENSIBILITY_CUSTOM_COMPONENTS** - is used to indicate whether entirely custom extensions can be added to Busola. An example for a custom extension can be found [here](../examples/web-component-ext/README.md).
Default settings:
```yaml
EXTENSIBILITY_CUSTOM_COMPONENTS:
isEnabled: false
```
- **EXTERNAL_NODES** - a list of links to external websites. `category`: a category name, `icon`: an optional icon, `scope`: either `namespace` or `cluster` (defaults to `cluster`), `children`: a list of pairs (label and link).

Default settings:
Expand Down
2 changes: 1 addition & 1 deletion examples/custom-extension/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Set Up Your Custom Busola Extension

This example contains a basic custom extension, that queries all deployments corresponding to a selected namespace of your cluster, and additionally retrieves the current weather data for Munich, Germany from an external weather API.
This example contains a basic custom extension, that queries all deployments of a selected namespace of your cluster, and additionally retrieves the current weather data for Munich, Germany from an external weather API.

To set up and deploy your own custom Busola extension, follow these steps.

Expand Down

0 comments on commit ce0d50b

Please sign in to comment.