diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index edec8730..4ea5e043 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -39,6 +39,11 @@ generic: basic: Basic loading: Loading... +unsupported: + serverVersion: 'Current version: {serverVersion}' + description: Harvester ui only supports Harvester cluster versions greater or equal to 1.3.0 + learnMore: Learn more about Harvester from the Harvester Web Site or read the Harvester Docs + nav: group: networks: Networks diff --git a/pkg/harvester/pages/c/_cluster/unsupported/index.vue b/pkg/harvester/pages/c/_cluster/unsupported/index.vue new file mode 100644 index 00000000..1eca2759 --- /dev/null +++ b/pkg/harvester/pages/c/_cluster/unsupported/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/pkg/harvester/routing/harvester-routing.js b/pkg/harvester/routing/harvester-routing.js index 2d79e800..19cd6f69 100644 --- a/pkg/harvester/routing/harvester-routing.js +++ b/pkg/harvester/routing/harvester-routing.js @@ -15,8 +15,25 @@ import HarvesterAirgapUpdgrade from '../pages/c/_cluster/airgapupgrade/index.vue import HarvesterMembers from '../pages/c/_cluster/members/index.vue'; import ProjectNamespaces from '../pages/c/_cluster/projectsnamespaces.vue'; import HarvesterAlertmanagerReceiver from '../pages/c/_cluster/alertmanagerconfig/_alertmanagerconfigid/receiver.vue'; +import HarvesterUnsupported from '../pages/c/_cluster/unsupported/index.vue'; const routes = [ + { + route: { + name: `${ PRODUCT_NAME }-c-cluster-unsupported-standalone`, + path: `/:product`, + component: HarvesterUnsupported + }, + parent: 'blank' + }, + { + route: { + name: `${ PRODUCT_NAME }-c-cluster-unsupported`, + path: `/:product`, + component: HarvesterUnsupported + }, + parent: 'plain' + }, { name: `${ PRODUCT_NAME }-c-cluster-support`, path: `/:product/c/:cluster/support`, diff --git a/pkg/harvester/store/harvester-store/actions.ts b/pkg/harvester/store/harvester-store/actions.ts index c97b1163..55d83f8e 100644 --- a/pkg/harvester/store/harvester-store/actions.ts +++ b/pkg/harvester/store/harvester-store/actions.ts @@ -101,6 +101,19 @@ export default { const res: any = await allHash(hash); + const isHarvesterVersionSupported = rootGetters['harvester-common/getFeatureEnabled']('supportHarvesterClusterVersion'); + + if (!isHarvesterVersionSupported) { + const product = rootGetters['productId']; + + this.$router?.push({ + name: `${ product }-c-cluster-unsupported${ id === 'local' ? '-standalone' : '' }`, + params: { product } + }); + + return; + } + await dispatch('cleanNamespaces', null, { root: true }); commit('updateNamespaces', {