dashboard/utils/cluster.js

29 lines
934 B
JavaScript

import semver from 'semver';
import { CAPI } from '@/config/labels-annotations';
import { VIRTUAL_HARVESTER_PROVIDER } from '@/config/types';
// 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');
}
}