-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: custom busola extensions #3523
Conversation
examples/custom-extension/README.md
Outdated
|
||
### 4. Deploy Your Extension | ||
|
||
Run `./deploy.sh` to create a ConfigMap and deploy it to your cluster |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To run this command, I need to have exported Kubeconfig to my cluster, please add this information, and also I'll consider changing the name of the sh file to some deploy-custom-extensions
or something more specific.
if (extCustomComponentsEnabled) { | ||
extResourceWithMetadata.data.customHtml = | ||
extResourceWithMetadata.data.customHtml || ''; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are copy-pasting the same value with only the || ''
change, is it really necessary? Can't we handle this value somehow differently?
if (extCustomComponentsEnabled) { | ||
extResourceWithMetadata.data.customHtml = | ||
currentConfigMap.data.customHtml; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe just add here this, and remove the previous copy-paste?
if (extCustomComponentsEnabled) { | |
extResourceWithMetadata.data.customHtml = | |
currentConfigMap.data.customHtml; | |
if (extCustomComponentsEnabled) { | |
extResourceWithMetadata.data.customHtml = | |
currentConfigMap.data.customHtml || ''; |
if (isExtensibilityCustomComponentsEnabled) { | ||
// Wrap busola fetch function to be able to use it in the extensions as regular fetch. | ||
// It reduces the learning curve for the extension developers and introduces loose coupling between Busola and the extensions. | ||
function asRegularFetch(busolaFetch: any, url: string, options: any) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you provide more specific types?
LGTM |
@@ -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 built-in components. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 built-in components. | |
Busola's custom extension feature allows you to design fully custom user interfaces beyond the built-in extensibility functionality. This feature is ideal for creating unique and specialized displays not covered by the 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First, to enable the custom extension feature you need to set the corresponding feature flag in your busola config, which is disabled by default. | |
To enable the custom extension feature, you must set the corresponding feature flag in your Busola config, which is disabled by default. |
isEnabled: true | ||
``` | ||
|
||
## Creating custom extensions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
## Creating custom extensions | |
## Creating Custom Extensions |
|
||
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. | |
See this [example](./../../examples/custom-extension/README.md), to learn more. |
docs/features.md
Outdated
@@ -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/custom-extension/README.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- **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/custom-extension/README.md). | |
- **EXTENSIBILITY_CUSTOM_COMPONENTS** - is used to indicate whether entirely custom extensions can be added to Busola. See [this example](../examples/custom-extension/README.md). |
examples/custom-extension/README.md
Outdated
|
||
--- | ||
|
||
### 4. Deploy Your Extension |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### 4. Deploy Your Extension | |
4. Deploy your extension. |
examples/custom-extension/README.md
Outdated
|
||
### 4. Deploy Your Extension | ||
|
||
Before running the deployment command, ensure that your **Kubeconfig** is correctly exported and points to the desired cluster. You can check the current context by running: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before running the deployment command, ensure that your **Kubeconfig** is correctly exported and points to the desired cluster. You can check the current context by running: | |
Before running the deployment command, ensure that your `kubeconfig` is correctly exported and points to the desired cluster. You can check the current context by running: |
examples/custom-extension/README.md
Outdated
kubectl kustomize . | kubectl apply -n kyma-system -f - | ||
``` | ||
|
||
--- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
--- |
examples/custom-extension/README.md
Outdated
|
||
--- | ||
|
||
### 5. Test Your Changes Locally |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
### 5. Test Your Changes Locally | |
5. Test your changes locally. |
/override tide |
@mrCherry97: Overrode contexts on behalf of mrCherry97: tide In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
* feat: add proxyhandler to backend * feat: adjust busola code to handle custom extensions * feat: added example custom extension * feat: rename folder * feat: add docs * feat: update docs * feat: update docs * feat: add more specific types * feat: adjust to review comments * adjust to comments
Description
Changes proposed in this pull request:
Related issue(s)
#3497
Definition of done
backlog#4567