Skip to content

Commit

Permalink
Merge pull request rancher#12071 from aalves08/12037-defaults-extensi…
Browse files Browse the repository at this point in the history
…ons-api-version-checks

Fix: Vue3: Installed extensions throw unhandled exception
  • Loading branch information
richard-cox authored Oct 2, 2024
2 parents 211a051 + aedaca5 commit 9489da3
Show file tree
Hide file tree
Showing 16 changed files with 330 additions and 322 deletions.
8 changes: 6 additions & 2 deletions docusaurus/docs/extensions/advanced/version-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@ Here are the annotations you can modify:
| --- | --- | --- |
| `catalog.cattle.io/kube-version` | v2.7.0 | Defines a possible minimum and maximum Kubernetes version for the extension to work with. Prevents extension version from being loaded on the UI
| `catalog.cattle.io/rancher-version` | v2.7.0 | Defines a possible minimum and maximum Rancher version for the extension to work with. Prevents extension version from being loaded on the UI
| `catalog.cattle.io/host` | v2.7.0 | Defines the host for the extension, which should have the value `rancher-manager`. Prevents extension version from being loaded on the UI
| `catalog.cattle.io/ui-extensions-version` | v2.9.0 | Defines a possible minimum and maximum Extensions API version for the extension to work with. Prevents extension version from being loaded on the UI
| `catalog.cattle.io/ui-version` | v2.7.3 | Defines a possible minimum and maximum Rancher Dashboard version for the extension to work with. Extension version will be loaded but will appear as disabled


Since both `catalog.cattle.io/kube-version` and `catalog.cattle.io/rancher-version` will prevent a given extension version from being loaded onto the UI by the extensions operator, `catalog.cattle.io/ui-version` will have a sligthly different behaviour and allow for the extension version to be loaded, but will disable it on the Install, Upgrade and Rollback scenarios, where that given version will not appear on those dropdowns and also the extension version button on the side panel will be disabled and will show a tooltip on hover with the information, such as:

**NOTE: The annotation `catalog.cattle.io/ui-extensions-version` will become mandatory from Rancher 2.10 and onwards. If the annotation is not present on a given extension Helm Chart, the extension itself will not be loaded**

All annotations will prevent the loading of an extension into Rancher apart from `catalog.cattle.io/ui-version`, which will have a sligthly different behaviour and allow for the extension version to be loaded, but will disable it on the Install, Upgrade and Rollback scenarios, where that given version will not appear on those dropdowns and also the extension version button on the side panel will be disabled and will show a tooltip on hover with the information, such as:

![UI version annotation](../screenshots/ui-version-annotation.png)
11 changes: 6 additions & 5 deletions docusaurus/docs/extensions/support-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
The Shell package enables Extensions to integrate with Rancher.
It's important to know which version of the Shell package is compatible with each Rancher version:

| | Rancher 2.7.x | Rancher 2.8.x | Rancher 2.9.x |
|---|---|---|---|
|Shell **0.3.8**|Supported|Limited support|Not supported|
|Shell 0.5.3/**1.2.3**|Limited support|Supported|Not supported|
|Shell **2.0.1**|Not supported|Not supported|Supported|
| | Rancher 2.7.x | Rancher 2.8.x <br/> (Extensions API V1) | Rancher 2.9.x <br/> (Extensions API V2) | Rancher 2.10.x <br/> (Extensions API V3) |
|---|---|---|---|---|
|Shell **0.3.8**|Supported|Limited support|Not supported|Not supported|
|Shell 0.5.3/**1.2.3**|Limited support|Supported|Not supported|Not supported|
|Shell **2.0.1**|Not supported|Not supported|Supported|Not supported|
|Shell **3.0.0**|Not supported|Not supported|Not supported|Supported|

To know more about the Shell package versioning take a look at the diagram [here](./rancher-2.9-support).

Expand Down
10 changes: 7 additions & 3 deletions shell/assets/translations/en-us.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4267,6 +4267,7 @@ inactivity:
plugins:
incompatibleRancherVersion: "The latest version of this extension ({ version }) is not compatible with the current Rancher version ({ required })."
incompatibleKubeVersion: "The latest version of this extension ({ version }) is not compatible with the current Kube version ({ required })."
incompatibleUiExtensionsApiVersionMissing: 'The latest version of this extension ({ version }) is missing the mandatory annotation catalog.cattle.io/ui-extensions-version from Rancher 2.10 and onwards.'
incompatibleUiExtensionsApiVersion: "The latest version of this extension ({ version }) is not compatible with the current Extensions API version ({ required })."
incompatibleHost: 'The latest version of this extension ({ version }) has a host of "{ required }" which is not compatible with this application "{ mainHost }".'
currentInstalledVersionBlockedByKubeVersion: "This version is not compatible with the current Kubernetes version ({ kubeVersion } Vs { kubeVersionToCheck })."
Expand All @@ -4286,9 +4287,11 @@ plugins:
title: Error loading extension
message: Could not load extension code
generic: Extension error
api: This Extension is not compatible with the current Extensions API version
host: This Extension is not compatible with this application
version: This Extension is not compatible with this version of Rancher
apiAnnotationMissing: 'Unable to load Extension. The version installed is not compatible with the current Extensions API Version (Extension is missing the annotation catalog.cattle.io/ui-extensions-version which implies incompatibility with Rancher 2.10 and onwards)'
api: Unable to load Extension. The version installed is not compatible with the current Extensions API version
host: Unable to load Extension. The version installed is not compatible with this application host
version: Unable to load Extension. The version installed is not compatible with the current version of Rancher
kubeVersion: Unable to load Extension. The version installed is not compatible with the current Rancher kubernetes version
load: An error occurred loading the code for this Extension
developerPkg: This Extension has been loaded internally, so we won't load the external version
success:
Expand All @@ -4308,6 +4311,7 @@ plugins:
versionError: Could not load version information
requiresRancherVersion: "Requires Rancher {required}"
requiresKubeVersion: "Requires Kube version {required}"
requiresExtensionApiVersionMissing: 'Missing the annotation catalog.cattle.io/ui-extensions-version which implies incompatibility with Rancher 2.10 and onwards'
requiresExtensionApiVersion: "Requires Extensions API version {required}"
requiresHost: 'Requires a host that matches "{mainHost}"'
empty:
Expand Down
Loading

0 comments on commit 9489da3

Please sign in to comment.