mirror of https://github.com/rancher/dashboard.git
1108 lines
26 KiB
JavaScript
1108 lines
26 KiB
JavaScript
import { CATTLE_PUBLIC_ENDPOINTS, STORAGE } from '@shell/config/labels-annotations';
|
|
import { NODE as NODE_TYPE } from '@shell/config/types';
|
|
import { COLUMN_BREAKPOINTS } from '@shell/types/store/type-map';
|
|
|
|
// Note: 'id' is always the last sort, so you don't have to specify it here.
|
|
|
|
export const STATE = {
|
|
name: 'state',
|
|
labelKey: 'tableHeaders.state',
|
|
sort: ['stateSort', 'nameSort'],
|
|
value: 'stateDisplay',
|
|
getValue: (row) => row.stateDisplay,
|
|
width: 100,
|
|
default: 'unknown',
|
|
formatter: 'BadgeStateFormatter',
|
|
};
|
|
|
|
export const USER_STATE = {
|
|
name: 'user-state',
|
|
labelKey: 'tableHeaders.userState',
|
|
sort: ['stateSort', 'nameSort'],
|
|
value: 'stateDisplay',
|
|
getValue: (row) => row.stateDisplay,
|
|
width: 72,
|
|
default: 'unknown',
|
|
formatter: 'BadgeStateFormatter',
|
|
};
|
|
|
|
export const DOWNLOAD = {
|
|
name: 'download',
|
|
labelKey: 'tableHeaders.download',
|
|
value: 'download',
|
|
canBeVariable: true,
|
|
align: 'right',
|
|
};
|
|
|
|
// This header is used for nodes in
|
|
// both Cluster Explorer and Cluster Management.
|
|
export const INTERNAL_EXTERNAL_IP = {
|
|
// @TODO this is called internal/external but displays external/internal (╯°□°)╯︵ ┻━┻
|
|
name: 'internal-external-ip',
|
|
labelKey: 'tableHeaders.internalExternalIp',
|
|
search: ['externalIp', 'internalIp'],
|
|
sort: ['externalIp', 'internalIp'],
|
|
formatter: 'InternalExternalIP'
|
|
};
|
|
|
|
export const NAME = {
|
|
name: 'name',
|
|
labelKey: 'tableHeaders.name',
|
|
value: 'nameDisplay',
|
|
getValue: (row) => row.nameDisplay,
|
|
sort: ['nameSort'],
|
|
formatter: 'LinkDetail',
|
|
canBeVariable: true,
|
|
};
|
|
|
|
export const LOGGING_OUTPUT_PROVIDERS = {
|
|
name: 'logging-output-providers',
|
|
labelKey: 'tableHeaders.loggingOutputProviders',
|
|
value: 'providersDisplay',
|
|
sort: ['providersSortable'],
|
|
formatter: 'List',
|
|
};
|
|
|
|
export const SIMPLE_NAME = {
|
|
name: 'name',
|
|
labelKey: 'tableHeaders.simpleName',
|
|
value: 'name',
|
|
sort: ['name'],
|
|
width: 200,
|
|
canBeVariable: true,
|
|
};
|
|
|
|
export const EFFECT = {
|
|
name: 'effect',
|
|
labelKey: 'tableHeaders.effect',
|
|
value: 'effect',
|
|
sort: ['effect'],
|
|
};
|
|
|
|
export const STORAGE_CLASS_PROVISIONER = {
|
|
name: 'storage_class_provisioner',
|
|
labelKey: 'tableHeaders.storage_class_provisioner',
|
|
value: 'provisionerListDisplay',
|
|
sort: ['provisioner'],
|
|
};
|
|
|
|
export const STORAGE_CLASS_DEFAULT = {
|
|
name: 'storage_class_default',
|
|
labelKey: 'tableHeaders.default',
|
|
value: 'isDefault',
|
|
sort: ['isDefault'],
|
|
formatter: 'Checked',
|
|
};
|
|
|
|
/**
|
|
* spec.csi.driver OR spec[known driver type]
|
|
*/
|
|
export const PERSISTENT_VOLUME_SOURCE = {
|
|
name: 'persistent_volume_source',
|
|
labelKey: 'tableHeaders.persistentVolumeSource',
|
|
value: 'source',
|
|
sort: ['provisioner'],
|
|
};
|
|
|
|
/**
|
|
* Link to the PVC associated with PV
|
|
*/
|
|
export const PERSISTENT_VOLUME_CLAIM = {
|
|
name: 'persistent-volume-claim',
|
|
labelKey: 'tableHeaders.persistentVolumeClaim',
|
|
sort: ['claimName'],
|
|
value: 'claimName',
|
|
formatter: 'LinkDetail',
|
|
formatterOpts: { reference: 'claim.detailLocation' }
|
|
};
|
|
|
|
export const OUTPUT = {
|
|
name: 'localOutputRefs',
|
|
labelKey: 'tableHeaders.output',
|
|
value: 'outputs',
|
|
sort: ['outputsSortable'],
|
|
formatter: 'ListLink',
|
|
formatterOpts: { options: { internal: true } },
|
|
};
|
|
|
|
export const CONFIGURED_PROVIDERS = {
|
|
name: 'providers',
|
|
labelKey: 'tableHeaders.providers',
|
|
value: 'providersDisplay',
|
|
sort: 'providersSortable',
|
|
formatter: 'List'
|
|
};
|
|
|
|
export const CLUSTER_OUTPUT = {
|
|
...OUTPUT,
|
|
name: 'globalOutputRefs',
|
|
value: 'clusterOutputs',
|
|
sort: ['clusterOutputsSortable'],
|
|
labelKey: 'tableHeaders.clusterOutput',
|
|
};
|
|
|
|
export const ID_UNLINKED = {
|
|
name: 'id',
|
|
labelKey: 'tableHeaders.id',
|
|
value: 'id',
|
|
sort: ['id'],
|
|
canBeVariable: true,
|
|
};
|
|
|
|
export const NAME_UNLINKED = {
|
|
name: 'name',
|
|
labelKey: 'tableHeaders.nameUnlinked',
|
|
value: 'nameDisplay',
|
|
sort: ['nameSort'],
|
|
canBeVariable: true,
|
|
};
|
|
|
|
export const NAMESPACE = {
|
|
name: 'namespace',
|
|
labelKey: 'tableHeaders.namespace',
|
|
value: 'namespace',
|
|
getValue: (row) => row.namespace,
|
|
sort: 'namespace',
|
|
dashIfEmpty: true,
|
|
};
|
|
|
|
export const NODE = {
|
|
name: 'node',
|
|
labelKey: 'tableHeaders.node',
|
|
value: 'spec.nodeName',
|
|
getValue: (row) => row.spec?.nodeName,
|
|
sort: 'spec.nodeName',
|
|
formatter: 'LinkName',
|
|
formatterOpts: { type: NODE_TYPE },
|
|
};
|
|
|
|
export const NODE_NAME = {
|
|
name: 'nodeName',
|
|
labelKey: 'tableHeaders.nodeName',
|
|
sort: 'name',
|
|
value: 'name',
|
|
getValue: (row) => row.name,
|
|
formatter: 'LinkDetail',
|
|
};
|
|
|
|
export const ROLES = {
|
|
name: 'roles',
|
|
labelKey: 'tableHeaders.roles',
|
|
sort: 'roles',
|
|
value: 'roles'
|
|
};
|
|
|
|
export const VERSION = {
|
|
name: 'version',
|
|
labelKey: 'tableHeaders.version',
|
|
sort: 'version',
|
|
value: 'version',
|
|
getValue: (row) => row.version
|
|
};
|
|
|
|
export const CPU = {
|
|
name: 'cpu',
|
|
labelKey: 'tableHeaders.cpu',
|
|
sort: 'cpuUsage',
|
|
search: false,
|
|
value: 'cpuUsagePercentage',
|
|
formatter: 'PercentageBar',
|
|
width: 120,
|
|
};
|
|
|
|
export const RAM = {
|
|
name: 'ram',
|
|
labelKey: 'tableHeaders.ram',
|
|
sort: 'ramUsage',
|
|
search: false,
|
|
value: 'ramUsagePercentage',
|
|
formatter: 'PercentageBar',
|
|
width: 120,
|
|
};
|
|
|
|
export const PRINCIPAL = {
|
|
name: 'principal',
|
|
labelKey: 'tableHeaders.name',
|
|
sort: 'principal.loginName',
|
|
value: 'principalId',
|
|
formatter: 'Principal',
|
|
};
|
|
|
|
export const PODS = {
|
|
name: 'pods',
|
|
labelKey: 'tableHeaders.pods',
|
|
sort: 'podConsumed',
|
|
search: false,
|
|
value: (row) => row.podConsumedUsage,
|
|
formatter: 'PercentageBar',
|
|
width: 120,
|
|
};
|
|
|
|
export const AGE = {
|
|
name: 'age',
|
|
labelKey: 'tableHeaders.age',
|
|
value: 'creationTimestamp',
|
|
getValue: (row) => row.creationTimestamp,
|
|
sort: 'creationTimestamp:desc',
|
|
search: false,
|
|
formatter: 'LiveDate',
|
|
width: 100,
|
|
align: 'left'
|
|
};
|
|
|
|
export const AGE_NORMAN = {
|
|
...AGE,
|
|
getValue: (row) => row.created,
|
|
value: 'created',
|
|
sort: 'created:desc',
|
|
};
|
|
|
|
export const CREATION_DATE = {
|
|
name: 'date',
|
|
labelKey: 'tableHeaders.date',
|
|
value: 'metadata.creationTimestamp',
|
|
sort: ['date'],
|
|
formatter: 'Date'
|
|
};
|
|
|
|
export const DESCRIPTION = {
|
|
name: 'description',
|
|
labelKey: 'tableHeaders.description',
|
|
align: 'left',
|
|
sort: ['description'],
|
|
width: 300,
|
|
};
|
|
|
|
export const NS_SNAPSHOT_QUOTA = {
|
|
name: 'NamespaceSnapshotQuota',
|
|
labelKey: 'harvester.tableHeaders.totalSnapshotQuota',
|
|
value: 'snapshotSizeQuota',
|
|
sort: 'snapshotSizeQuota',
|
|
align: 'center',
|
|
formatter: 'Si',
|
|
formatterOpts: {
|
|
opts: {
|
|
increment: 1024, addSuffix: true, suffix: 'i',
|
|
},
|
|
needParseSi: false
|
|
},
|
|
};
|
|
|
|
export const DURATION = {
|
|
name: 'duration',
|
|
labelKey: 'tableHeaders.duration',
|
|
value: 'duration.value',
|
|
sort: 'duration.seconds',
|
|
formatter: 'LiveDuration',
|
|
};
|
|
|
|
export const IMAGE_NAME = {
|
|
name: 'image',
|
|
labelKey: 'tableHeaders.image',
|
|
value: 'image',
|
|
sort: ['image', 'nameSort'],
|
|
formatter: 'ImageName',
|
|
};
|
|
|
|
export const POD_IMAGES = {
|
|
name: 'pod_images',
|
|
labelKey: 'tableHeaders.podImages',
|
|
value: 'imageNames',
|
|
getValue: (row) => row.imageNames,
|
|
sort: 'imageNames',
|
|
// search: 'imageNames',
|
|
formatter: 'PodImages'
|
|
};
|
|
|
|
export const POD_RESTARTS = {
|
|
name: 'pod_restarts',
|
|
labelKey: 'tableHeaders.podRestarts',
|
|
formatter: 'LivePodRestarts',
|
|
delayLoading: true,
|
|
value: 'restartCount',
|
|
getValue: (row) => row.restartCount,
|
|
// This column is expensive to compute, so don't make it searchable
|
|
search: false,
|
|
liveUpdates: true
|
|
};
|
|
|
|
export const ENDPOINTS = {
|
|
name: 'endpoint',
|
|
labelKey: 'tableHeaders.endpoints',
|
|
value: 'status.endpoints',
|
|
formatter: 'Endpoints',
|
|
width: 60,
|
|
align: 'center',
|
|
};
|
|
|
|
export const SCALE = {
|
|
name: 'scale',
|
|
labelKey: 'tableHeaders.scale',
|
|
value: 'scales.desired',
|
|
sort: ['scales.desired', 'nameSort'],
|
|
formatter: 'Scale',
|
|
width: 60,
|
|
align: 'center',
|
|
};
|
|
|
|
export const SIMPLE_SCALE = {
|
|
name: 'simple-scale',
|
|
labelKey: 'tableHeaders.simpleScale',
|
|
value: 'scale',
|
|
sort: ['scale']
|
|
};
|
|
|
|
export const SUCCESS = {
|
|
name: 'success',
|
|
labelKey: 'tableHeaders.success',
|
|
value: 'success',
|
|
width: 100,
|
|
align: 'right',
|
|
};
|
|
|
|
export const REQ_RATE = {
|
|
name: 'req-rate',
|
|
labelKey: 'tableHeaders.reqRate',
|
|
value: 'rps',
|
|
width: 100,
|
|
align: 'right',
|
|
};
|
|
|
|
export const P95 = {
|
|
name: 'p95',
|
|
labelKey: 'tableHeaders.p95',
|
|
value: 'p95',
|
|
width: 100,
|
|
align: 'right',
|
|
};
|
|
|
|
export const KEYS = {
|
|
name: 'keys',
|
|
labelKey: 'tableHeaders.keys',
|
|
sort: false,
|
|
value: 'keysDisplay',
|
|
};
|
|
|
|
export const SECRET_DATA = {
|
|
name: 'data',
|
|
labelKey: 'tableHeaders.data',
|
|
value: 'dataPreview',
|
|
formatter: 'SecretData'
|
|
};
|
|
|
|
export const TARGET_KIND = {
|
|
name: 'target-kind',
|
|
labelKey: 'tableHeaders.targetKind',
|
|
value: 'kindDisplay',
|
|
width: 100,
|
|
};
|
|
|
|
export const TARGET = {
|
|
name: 'target',
|
|
labelKey: 'tableHeaders.target',
|
|
value: 'targetDisplay',
|
|
};
|
|
|
|
export const USERNAME = {
|
|
name: 'username',
|
|
labelKey: 'tableHeaders.username',
|
|
value: 'username',
|
|
dashIfEmpty: true,
|
|
sort: 'username',
|
|
};
|
|
|
|
export const USER_DISPLAY_NAME = {
|
|
name: 'name',
|
|
labelKey: 'tableHeaders.name',
|
|
value: 'nameDisplay',
|
|
sort: ['nameSort'],
|
|
dashIfEmpty: true,
|
|
};
|
|
|
|
export const USER_PROVIDER = {
|
|
name: 'provider',
|
|
labelKey: 'tableHeaders.provider',
|
|
value: 'providerDisplay',
|
|
dashIfEmpty: true,
|
|
sort: 'providerDisplay',
|
|
};
|
|
|
|
export const USER_LAST_LOGIN = {
|
|
name: 'user-last-login',
|
|
labelKey: 'tableHeaders.userLastLogin',
|
|
value: 'userLastLogin',
|
|
formatter: 'LiveDate',
|
|
formatterOpts: { addSuffix: true },
|
|
sort: 'userLastLogin',
|
|
};
|
|
|
|
export const USER_DISABLED_IN = {
|
|
name: 'user-disabled-in',
|
|
labelKey: 'tableHeaders.userDisabledIn',
|
|
value: 'userDisabledInDisplay',
|
|
formatter: 'LiveDate',
|
|
formatterOpts: { isCountdown: true },
|
|
sort: 'userDisabledIn',
|
|
};
|
|
|
|
export const USER_DELETED_IN = {
|
|
name: 'user-deleted-in',
|
|
labelKey: 'tableHeaders.userDeletedIn',
|
|
value: 'userDeletedIn',
|
|
formatter: 'LiveDate',
|
|
formatterOpts: { isCountdown: true },
|
|
sort: 'userDeletedIn',
|
|
};
|
|
|
|
export const USER_ID = {
|
|
name: 'user-id',
|
|
labelKey: 'tableHeaders.userId',
|
|
value: 'id',
|
|
formatter: 'LinkDetail',
|
|
canBeVariable: true,
|
|
sort: 'id',
|
|
};
|
|
|
|
export const ADDRESS = {
|
|
name: 'address',
|
|
labelKey: 'tableHeaders.address',
|
|
value: 'address',
|
|
sort: ['address'],
|
|
};
|
|
|
|
export const SIMPLE_TYPE = {
|
|
name: 'type',
|
|
labelKey: 'tableHeaders.simpleType',
|
|
value: 'type',
|
|
sort: ['type'],
|
|
width: 175,
|
|
};
|
|
|
|
export const IMAGE_SIZE = {
|
|
name: 'sizeBytes',
|
|
labelKey: 'tableHeaders.imageSize',
|
|
value: 'sizeBytes',
|
|
sort: ['sizeBytes'],
|
|
formatter: 'Si'
|
|
};
|
|
|
|
export const TYPE = {
|
|
name: 'type',
|
|
labelKey: 'tableHeaders.type',
|
|
value: 'typeDisplay',
|
|
getValue: (row) => row.typeDisplay,
|
|
sort: ['typeDisplay'],
|
|
width: 100,
|
|
};
|
|
|
|
export const SUB_TYPE = {
|
|
name: 'subType',
|
|
labelKey: 'tableHeaders.subType',
|
|
value: 'subTypeDisplay',
|
|
sort: ['subTypeDisplay'],
|
|
width: 120,
|
|
};
|
|
|
|
export const EVENT_TYPE = {
|
|
name: 'type',
|
|
labelKey: 'tableHeaders.type',
|
|
value: 'eventType',
|
|
sort: 'eventType',
|
|
};
|
|
|
|
export const STATUS = {
|
|
name: 'status',
|
|
labelKey: 'tableHeaders.status',
|
|
value: 'status',
|
|
sort: ['status'],
|
|
width: 175
|
|
};
|
|
export const LAST_SEEN_TIME = {
|
|
name: 'lastSeen',
|
|
labelKey: 'tableHeaders.lastSeen',
|
|
value: 'lastSeen',
|
|
sort: 'lastTimestamp:desc',
|
|
tooltip: 'tableHeaders.lastSeenTooltip'
|
|
};
|
|
export const LAST_HEARTBEAT_TIME = {
|
|
name: 'lastHeartbeatTime',
|
|
labelKey: 'tableHeaders.lastSeen',
|
|
value: 'lastHeartbeatTime',
|
|
sort: ['lastHeartbeatTime'],
|
|
formatter: 'LiveDate',
|
|
width: 175
|
|
};
|
|
export const REASON = {
|
|
name: 'reason',
|
|
labelKey: 'tableHeaders.reason',
|
|
value: 'reason',
|
|
sort: ['reason']
|
|
};
|
|
export const OBJECT = {
|
|
name: 'object',
|
|
labelKey: 'tableHeaders.object',
|
|
value: 'involvedObject',
|
|
sort: ['involvedObject.kind', 'involvedObject.name'],
|
|
canBeVariable: true,
|
|
formatter: 'InvolvedObjectLink',
|
|
};
|
|
export const RECLAIM_POLICY = {
|
|
name: 'reclaimPolicy',
|
|
labelKey: 'tableHeaders.reclaimPolicy',
|
|
value: 'spec.persistentVolumeReclaimPolicy',
|
|
sort: ['spec.persistentVolumeReclaimPolicy']
|
|
};
|
|
export const PV_REASON = {
|
|
name: 'pvReason',
|
|
labelKey: 'tableHeaders.reason',
|
|
value: 'status.reason',
|
|
sort: ['status.reason']
|
|
};
|
|
|
|
export const MESSAGE = {
|
|
name: 'message',
|
|
labelKey: 'tableHeaders.message',
|
|
value: 'message',
|
|
sort: ['message']
|
|
};
|
|
export const KEY = {
|
|
name: 'key',
|
|
labelKey: 'tableHeaders.key',
|
|
value: 'key',
|
|
sort: ['key']
|
|
};
|
|
export const VALUE = {
|
|
name: 'value',
|
|
labelKey: 'tableHeaders.value',
|
|
value: 'value',
|
|
sort: ['value'],
|
|
};
|
|
|
|
export const BUILT_IN = {
|
|
name: 'builtIn',
|
|
labelKey: 'tableHeaders.builtIn',
|
|
value: 'builtIn',
|
|
sort: ['builtIn'],
|
|
align: 'center',
|
|
formatter: 'IconIsDefault'
|
|
};
|
|
|
|
export const CLUSTER_CREATOR_DEFAULT = {
|
|
name: 'default',
|
|
labelKey: 'tableHeaders.clusterCreatorDefault',
|
|
value: 'default',
|
|
sort: ['Default'],
|
|
align: 'center',
|
|
formatter: 'IconIsDefault'
|
|
};
|
|
|
|
export const RBAC_DEFAULT = {
|
|
name: 'default',
|
|
labelKey: 'tableHeaders.default',
|
|
value: 'default',
|
|
formatter: 'Checked',
|
|
sort: ['default']
|
|
};
|
|
|
|
export const RBAC_BUILTIN = {
|
|
name: 'builtin',
|
|
labelKey: 'tableHeaders.builtin',
|
|
value: 'builtin',
|
|
formatter: 'Checked',
|
|
sort: ['builtin']
|
|
};
|
|
|
|
export const RESOURCE = {
|
|
name: 'resource',
|
|
labelKey: 'tableHeaders.resource',
|
|
value: 'resource',
|
|
sort: ['resourceNames']
|
|
};
|
|
|
|
export const API_GROUP = {
|
|
name: 'apigroups',
|
|
labelKey: 'tableHeaders.apiGroup',
|
|
value: 'apiGroups',
|
|
sort: ['apiGroups']
|
|
};
|
|
|
|
export const INGRESS_CLASS = {
|
|
name: 'ingressClassName',
|
|
labelKey: 'tableHeaders.ingressClass',
|
|
value: `$['spec']['ingressClassName']`,
|
|
sort: `$['spec']['ingressClassName']`,
|
|
};
|
|
|
|
export const INGRESS_DEFAULT_BACKEND = {
|
|
name: 'ingressDefaultBackend',
|
|
labelKey: 'tableHeaders.ingressDefaultBackend',
|
|
value: 'hasDefaultBackend',
|
|
sort: ['hasDefaultBackend:desc'],
|
|
formatter: 'Checked',
|
|
width: 75,
|
|
align: 'center'
|
|
};
|
|
|
|
export const INGRESS_TARGET = {
|
|
name: 'ingressTarget',
|
|
labelKey: 'tableHeaders.ingressTarget',
|
|
value: "$['spec']",
|
|
formatter: 'IngressTarget',
|
|
sort: "$['spec']['rules'][0].host",
|
|
};
|
|
|
|
export const SPEC_TYPE = {
|
|
name: 'type',
|
|
labelKey: 'tableHeaders.type',
|
|
value: `$['spec']['type']`,
|
|
sort: `$['spec']['type']`,
|
|
formatter: 'ServiceType',
|
|
};
|
|
|
|
export const TARGET_PORT = {
|
|
formatter: 'ServiceTargets',
|
|
labelKey: 'tableHeaders.targetPort',
|
|
name: 'targetPort',
|
|
sort: `$['spec']['targetPort']`,
|
|
value: `$['spec']['targetPort']`,
|
|
};
|
|
|
|
export const SELECTOR = {
|
|
formatter: 'KeyValue',
|
|
name: 'selector',
|
|
labelKey: 'tableHeaders.selector',
|
|
value: `$['spec']['selector']`,
|
|
sort: `$['spec']['selector']`,
|
|
};
|
|
|
|
export const CHART = {
|
|
name: 'chart',
|
|
labelKey: 'tableHeaders.chart',
|
|
value: 'chartDisplay',
|
|
sort: ['chartDisplay', 'versionSort'],
|
|
};
|
|
|
|
export const CHART_UPGRADE = {
|
|
name: 'upgrade',
|
|
labelKey: 'tableHeaders.upgrade',
|
|
value: 'upgradeAvailable',
|
|
sort: 'upgradeAvailableSort:desc',
|
|
dashIfEmpty: true,
|
|
};
|
|
|
|
export const RESOURCES = {
|
|
name: 'resources',
|
|
labelKey: 'tableHeaders.resources',
|
|
value: 'spec.resources.length',
|
|
sort: 'spec.resources.length',
|
|
width: 100,
|
|
};
|
|
|
|
export const URL = {
|
|
name: 'url',
|
|
labelKey: 'tableHeaders.url',
|
|
value: 'spec.url',
|
|
sort: 'spec.url',
|
|
};
|
|
|
|
export const LAST_UPDATED = {
|
|
name: 'lastUpdated',
|
|
labelKey: 'tableHeaders.lastUpdated',
|
|
value: 'lastTransitionTime',
|
|
formatter: 'LiveDate',
|
|
formatterOpts: { addSuffix: true },
|
|
sort: ['lastTransitionTime']
|
|
};
|
|
|
|
export const WORKSPACE = {
|
|
name: 'workspace',
|
|
label: 'Workspace',
|
|
value: 'metadata.namespace',
|
|
sort: ['metadata.namespace', 'nameSort'],
|
|
};
|
|
|
|
export const WORKLOAD_IMAGES = {
|
|
...POD_IMAGES,
|
|
value: '',
|
|
breakpoint: COLUMN_BREAKPOINTS.LAPTOP
|
|
};
|
|
|
|
export const WORKLOAD_ENDPOINTS = {
|
|
name: 'workloadEndpoints',
|
|
labelKey: 'tableHeaders.endpoints',
|
|
value: `$['metadata']['annotations']['${ CATTLE_PUBLIC_ENDPOINTS }']`,
|
|
getValue: (row) => row.metadata?.annotations?.[CATTLE_PUBLIC_ENDPOINTS],
|
|
formatter: 'Endpoints',
|
|
dashIfEmpty: true,
|
|
breakpoint: COLUMN_BREAKPOINTS.DESKTOP,
|
|
maxPageSize: 25, // Hide this column when the page size is bigger than 25
|
|
};
|
|
|
|
export const WORKLOAD_HEALTH_SCALE = {
|
|
name: 'workloadHealthScale',
|
|
labelKey: 'tableHeaders.health',
|
|
formatter: 'WorkloadHealthScale',
|
|
getValue: () => undefined,
|
|
width: 150,
|
|
skipSelect: true,
|
|
delayLoading: true,
|
|
// This column is expensive to compute, so don't make it searchable
|
|
search: false,
|
|
liveUpdates: true,
|
|
};
|
|
|
|
export const FLEET_SUMMARY = {
|
|
name: 'summary',
|
|
labelKey: 'tableHeaders.resources',
|
|
value: 'status.resourceCounts',
|
|
sort: false,
|
|
search: false,
|
|
formatter: 'FleetSummaryGraph',
|
|
align: 'center',
|
|
width: 100,
|
|
};
|
|
|
|
export const FLEET_REPO_CLUSTER_SUMMARY = {
|
|
name: 'clusterSummary',
|
|
labelKey: 'tableHeaders.clusterResources',
|
|
value: 'status.resourceCounts',
|
|
sort: false,
|
|
search: false,
|
|
formatter: 'FleetClusterSummaryGraph',
|
|
align: 'center',
|
|
width: 100,
|
|
};
|
|
|
|
export const FLEET_REPO_PER_CLUSTER_STATE = {
|
|
name: 'perClusterState',
|
|
labelKey: 'tableHeaders.repoPerClusterState',
|
|
tooltip: 'tableHeaders.repoPerClusterStateTooltip',
|
|
sort: ['stateSort', 'nameSort'],
|
|
width: 100,
|
|
default: 'unknown',
|
|
formatter: 'BadgeStateFormatter',
|
|
formatterOpts: { arbitrary: true }
|
|
|
|
};
|
|
|
|
export const APP_SUMMARY = {
|
|
name: 'summary',
|
|
labelKey: 'tableHeaders.resources',
|
|
value: 'deployedResources.length',
|
|
sort: false,
|
|
search: false,
|
|
formatter: 'AppSummaryGraph',
|
|
align: 'center',
|
|
width: 100,
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_CONSTRAINT_LINK = {
|
|
name: 'Constraint',
|
|
labelKey: 'tableHeaders.constraint',
|
|
value: 'constraintLink',
|
|
sort: `constraintLink.text`,
|
|
formatter: 'Link',
|
|
formatterOpts: { options: { internal: true } },
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_RESOURCE_LINK = {
|
|
name: 'Name',
|
|
labelKey: 'tableHeaders.name',
|
|
value: 'resourceLink',
|
|
sort: `resourceLink.text`,
|
|
search: `resourceLink.text`,
|
|
formatter: 'Link',
|
|
formatterOpts: { options: { internal: true } },
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_TYPE = {
|
|
name: 'Type',
|
|
labelKey: 'tableHeaders.type',
|
|
value: `kind`,
|
|
sort: `kind`
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_NAMESPACE = {
|
|
name: 'Namespace',
|
|
labelKey: 'tableHeaders.namespace',
|
|
value: `namespace`,
|
|
sort: `namespace`,
|
|
search: `namespace`,
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_MESSAGE = {
|
|
name: 'Message',
|
|
labelKey: 'tableHeaders.message',
|
|
value: `message`,
|
|
sort: `message`
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_TEMPLATE_LINK = {
|
|
name: 'TemplateLink',
|
|
labelKey: 'tableHeaders.template',
|
|
value: `templateLink`,
|
|
sort: `templateLink.text`,
|
|
formatter: 'Link',
|
|
formatterOpts: { options: { internal: true } },
|
|
};
|
|
|
|
export const CONSTRAINT_VIOLATION_COUNT = {
|
|
name: 'Count',
|
|
labelKey: 'tableHeaders.count',
|
|
value: `count`,
|
|
sort: `count`,
|
|
formatter: 'QualityText',
|
|
formatterOpts: {
|
|
qualityFn(value) {
|
|
if (value <= 10) {
|
|
return 'success';
|
|
}
|
|
|
|
if (value <= 20) {
|
|
return 'warning';
|
|
}
|
|
|
|
return 'error';
|
|
}
|
|
}
|
|
};
|
|
|
|
export const RECEIVER_PROVIDERS = {
|
|
name: 'receiver-providers',
|
|
label: 'Configured Providers',
|
|
value: 'receiverTypes',
|
|
sort: 'receiverTypes',
|
|
formatter: 'List',
|
|
};
|
|
|
|
export const CONFIGURED_RECEIVER = {
|
|
name: 'receiver',
|
|
label: 'Configured Receiver',
|
|
value: 'receiverLink',
|
|
sort: 'receiverLink.text',
|
|
formatter: 'Link',
|
|
formatterOpts: { options: { internal: true } },
|
|
};
|
|
|
|
export const GROUP_NAME = {
|
|
name: 'group-name',
|
|
labelKey: 'tableHeaders.groupName',
|
|
value: 'id',
|
|
sort: ['name'],
|
|
search: ['name'],
|
|
formatter: 'Principal',
|
|
width: 350
|
|
};
|
|
|
|
export const GROUP_ROLE_NAME = {
|
|
name: 'group-role-names',
|
|
labelKey: 'tableHeaders.groupRoleNames',
|
|
value: 'id',
|
|
formatter: 'PrincipalGroupBindings',
|
|
};
|
|
|
|
export const HPA_REFERENCE = {
|
|
name: 'reference',
|
|
labelKey: 'tableHeaders.hpaReference',
|
|
value: 'spec.scaleTargetRef.name',
|
|
sort: 'spec.scaleTargetRef.name',
|
|
};
|
|
|
|
export const MIN_REPLICA = {
|
|
name: 'minimum-replica',
|
|
labelKey: 'tableHeaders.minReplicas',
|
|
value: 'spec.minReplicas',
|
|
sort: 'spec.minReplicas',
|
|
};
|
|
|
|
export const MAX_REPLICA = {
|
|
name: 'maximum-replica',
|
|
labelKey: 'tableHeaders.maxReplicas',
|
|
value: 'spec.maxReplicas',
|
|
sort: 'spec.maxReplicas',
|
|
};
|
|
|
|
export const CURRENT_REPLICA = {
|
|
name: 'current-replica',
|
|
labelKey: 'tableHeaders.currentReplicas',
|
|
value: 'status.currentReplicas',
|
|
sort: 'status.currentReplicas',
|
|
};
|
|
|
|
export const EXPIRY_STATE = {
|
|
...STATE,
|
|
value: '$',
|
|
formatter: 'LiveExpiryBadgeState',
|
|
};
|
|
|
|
export const ACCESS_KEY = {
|
|
name: 'id',
|
|
labelKey: 'tableHeaders.accessKey',
|
|
align: 'left',
|
|
sort: ['name'],
|
|
width: 200,
|
|
};
|
|
|
|
export const SCOPE = {
|
|
name: 'scope',
|
|
value: 'clusterName',
|
|
labelKey: 'tableHeaders.scope',
|
|
dashIfEmpty: true,
|
|
align: 'left',
|
|
sort: ['scope'],
|
|
width: 100,
|
|
};
|
|
|
|
export const SCOPE_NORMAN = {
|
|
...SCOPE,
|
|
value: 'clusterId',
|
|
sort: ['clusterId'],
|
|
};
|
|
|
|
export const EXPIRES = {
|
|
name: 'expires',
|
|
value: 'expiresAt',
|
|
labelKey: 'tableHeaders.expires',
|
|
align: 'left',
|
|
sort: ['expiresAt'],
|
|
width: 200,
|
|
formatter: 'LiveExpiryDate'
|
|
};
|
|
|
|
export const RESTART = {
|
|
name: 'restart',
|
|
labelKey: 'tableHeaders.restart',
|
|
value: 'restartRequired',
|
|
sort: ['restartRequired', 'nameSort'],
|
|
formatter: 'Checked',
|
|
width: 75,
|
|
align: 'center'
|
|
};
|
|
|
|
export const ROLE = {
|
|
name: 'role',
|
|
value: 'roleDisplay',
|
|
labelKey: 'tableHeaders.role',
|
|
};
|
|
|
|
export const FEATURE_DESCRIPTION = {
|
|
name: 'description',
|
|
labelKey: 'tableHeaders.description',
|
|
value: 'status.description',
|
|
align: 'left',
|
|
sort: ['status.description'],
|
|
formatter: 'Translate',
|
|
formatterOpts: { prefix: 'featureFlags.description' },
|
|
};
|
|
|
|
export const STATE_NORMAN = {
|
|
name: 'state',
|
|
labelKey: 'tableHeaders.state',
|
|
sort: ['stateSort', 'nameSort'],
|
|
value: 'stateDisplay',
|
|
width: 100,
|
|
default: 'unknown',
|
|
formatter: 'BadgeStateFormatter',
|
|
};
|
|
|
|
export const KUBE_NODE_OS = {
|
|
name: 'operating-system',
|
|
labelKey: 'tableHeaders.operatingSystem',
|
|
value: 'status.nodeInfo.operatingSystem',
|
|
sort: ['status.nodeInfo.operatingSystem'],
|
|
formatter: 'Capitalize'
|
|
};
|
|
|
|
export const MACHINE_NODE_OS = {
|
|
name: 'operating-system',
|
|
labelKey: 'tableHeaders.operatingSystem',
|
|
value: 'operatingSystem',
|
|
sort: ['operatingSystem'],
|
|
formatter: 'Capitalize',
|
|
dashIfEmpty: true,
|
|
};
|
|
|
|
export const MANAGEMENT_NODE_OS = {
|
|
name: 'operating-system',
|
|
labelKey: 'tableHeaders.operatingSystem',
|
|
value: 'status.internalNodeStatus.nodeInfo.operatingSystem',
|
|
sort: ['status.internalNodeStatus.nodeInfo.operatingSystem'],
|
|
formatter: 'Capitalize',
|
|
dashIfEmpty: true,
|
|
};
|
|
|
|
// FLEET
|
|
|
|
export const FLEET_BUNDLE_LAST_UPDATED = {
|
|
name: 'lastUpdated',
|
|
labelKey: 'tableHeaders.lastUpdated',
|
|
value: 'lastUpdateTime',
|
|
formatter: 'LiveDate',
|
|
formatterOpts: { addSuffix: true },
|
|
sort: ['lastUpdateTime']
|
|
};
|
|
|
|
export const FLEET_BUNDLE_TYPE = {
|
|
name: 'bundleType',
|
|
labelKey: 'tableHeaders.fleetBundleType',
|
|
value: 'bundleType',
|
|
sort: ['bundleType'],
|
|
width: 100,
|
|
};
|
|
|
|
export const FLEET_REPO_CLUSTERS_READY = {
|
|
name: 'clustersReady',
|
|
labelKey: 'tableHeaders.clustersReady',
|
|
value: 'status.readyClusters',
|
|
sort: 'status.readyClusters',
|
|
search: false,
|
|
};
|
|
|
|
export const FLEET_REPO_TARGET = {
|
|
name: 'target',
|
|
labelKey: 'tableHeaders.target',
|
|
value: 'targetInfo.modeDisplay',
|
|
sort: ['targetInfo.modeDisplay', 'targetInfo.cluster', 'targetInfo.clusterGroup'],
|
|
|
|
};
|
|
|
|
export const FLEET_REPO = {
|
|
name: 'repo',
|
|
labelKey: 'tableHeaders.repo',
|
|
value: 'repoDisplay',
|
|
sort: 'repoDisplay',
|
|
search: ['spec.repo', 'status.commit'],
|
|
};
|
|
|
|
export const UI_PLUGIN_CATALOG = [
|
|
{
|
|
name: 'state',
|
|
labelKey: 'tableHeaders.state',
|
|
sort: ['stateSort', 'nameSort'],
|
|
value: 'state',
|
|
width: 100,
|
|
default: 'unknown',
|
|
formatter: 'BadgeStateFormatter',
|
|
formatterOpts: { arbitrary: true }
|
|
},
|
|
{
|
|
name: 'name',
|
|
labelKey: 'tableHeaders.name',
|
|
value: 'name',
|
|
sort: ['nameSort'],
|
|
formatter: 'LinkDetail'
|
|
},
|
|
{
|
|
name: 'image',
|
|
sort: ['image'],
|
|
labelKey: 'plugins.manageCatalog.headers.image.label',
|
|
value: 'image'
|
|
},
|
|
{
|
|
name: 'repository',
|
|
sort: ['repository'],
|
|
labelKey: 'plugins.manageCatalog.headers.repository.label',
|
|
value: 'repo.metadata.name'
|
|
}
|
|
];
|