mirror of https://github.com/rancher/dashboard.git
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
import semver from 'semver';
|
|
import { CAPI } from '@shell/config/labels-annotations';
|
|
import { MANAGEMENT, VIRTUAL_HARVESTER_PROVIDER } from '@shell/config/types';
|
|
import { SETTING } from '@shell/config/settings';
|
|
|
|
// Filter out any clusters that are not Kubernetes Clusters
|
|
// Currently this removes Harvester clusters
|
|
export function filterOnlyKubernetesClusters(mgmtClusters) {
|
|
return mgmtClusters.filter((c) => {
|
|
return !c.isHarvester;
|
|
});
|
|
}
|
|
|
|
export function isHarvesterCluster(mgmtCluster) {
|
|
// Use the provider if it is set otherwise use the label
|
|
const provider = mgmtCluster?.status?.provider || mgmtCluster?.metadata?.labels?.[CAPI.PROVIDER];
|
|
|
|
return provider === VIRTUAL_HARVESTER_PROVIDER;
|
|
}
|
|
|
|
export function isHarvesterSatisfiesVersion(version = '') {
|
|
if (version.startsWith('v1.21.4+rke2r')) {
|
|
const rkeVersion = version.replace(/.+rke2r/i, '');
|
|
|
|
return Number(rkeVersion) >= 4;
|
|
} else {
|
|
return semver.satisfies(semver.coerce(version), '>=v1.21.4+rke2r4');
|
|
}
|
|
}
|
|
|
|
export function filterHiddenLocalCluster(mgmtClusters, store) {
|
|
const hideLocalSetting = store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.HIDE_LOCAL_CLUSTER) || {};
|
|
const value = hideLocalSetting.value || hideLocalSetting.default || 'false';
|
|
const hideLocal = value === 'true';
|
|
|
|
if (!hideLocal) {
|
|
return mgmtClusters;
|
|
}
|
|
|
|
return mgmtClusters.filter((c) => {
|
|
const target = c.mgmt || c;
|
|
|
|
return !target.isLocal;
|
|
});
|
|
}
|