adamant-kite-43734
04/22/2024, 5:07 PMbig-greece-35822
04/22/2024, 5:33 PMbusy-ability-54059
04/24/2024, 12:25 PMui-extension-....
(ex: ui-extension-user-country
). We are discussing this internally so that a backend change would occur that would prevent the deletion of user preferences that start with ui-extension-....
.
Ofc take this with the due grain of salt since we aren’t making any promises here that it will work like this. Just stating that we are aware of this and taking due diligences with the correct team(s).
As for general data, CRD seems a good approach in terms of persistance.
Bear in mind that an extension may encompass more than just a UI/frontend part but also have a piece of backend (installable via helm chart, for example, like a depolyment) that manages resources that are specific to your extension.
Hope I could helpbig-greece-35822
04/24/2024, 2:24 PMwitty-honey-18052
04/24/2024, 2:52 PMbig-greece-35822
04/24/2024, 2:55 PMbusy-ability-54059
04/24/2024, 3:06 PM1)
(sorry, not in my best days, but will try to help). Could you provide a clearer example?
are there some examples of how you could render the UI elements for a config CRD for which there only needs to be a single instance, for instance where you would store details for calling out to a different service?
As for 2)
, there’s no UI for install options, unfortunately.big-greece-35822
04/24/2024, 3:09 PMbusy-ability-54059
04/24/2024, 3:38 PMbasicType
(I think you might still need to do the configureType
, but you can test that). Example: https://rancher.github.io/dashboard/extensions/api/nav/side-menu#defining-a-page-as-a-side-menu-entry-basictype
The rest is just about navigation (Vue routing)… Ofc, bear in mind that the name
part should be in conformity with the structure of your extension.
For an extension registered with id as myextension
the path for the details
would be (for a global-level extension):
{
name: `myextension-c-cluster-resource-id`,
params: {
product: 'myextension',
cluster: 'local',
resource: 'my-custom-crd-resource-name',
id: 'my-crd-item-id',
}
}
as for edit
:
{
name: `myextension-c-cluster-resource-id`,
params: {
product: 'myextension',
cluster: '_',
resource: 'my-custom-crd-resource-name',
id: 'my-crd-item-id',
},
query: {
mode: 'edit'
}
}
and `create`:
{
name: `myextension-c-cluster-resource-create`,
params: {
product: 'myextension',
cluster: '_',
resource: 'my-custom-crd-resource-name',
}
}
Just add it to a router-link
vue native component on the param to
, like:
https://github.com/rancher/dashboard/blob/master/shell/components/ResourceList/Masthead.vue#L190-L197busy-ability-54059
04/24/2024, 3:40 PMbusy-ability-54059
04/24/2024, 3:42 PMname
includes the extension id there as a string so that it doesn’t interfere with wildcard paths -product-
big-greece-35822
04/24/2024, 7:21 PM