dashboard/config/table-headers.js

565 lines
12 KiB
JavaScript

// 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',
width: 100,
default: 'unknown',
formatter: 'BadgeStateFormatter',
};
export const DOWNLOAD = {
name: 'download',
labelKey: 'tableHeaders.download',
value: 'download',
canBeVariable: true,
align: 'right',
};
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',
sort: ['nameSort'],
formatter: 'LinkDetail',
canBeVariable: true,
};
export const SIMPLE_NAME = {
name: 'name',
labelKey: 'tableHeaders.simpleName',
value: 'name',
sort: ['name'],
width: 200
};
export const EFFECT = {
name: 'effect',
labelKey: 'tableHeaders.effect',
value: 'effect',
sort: ['effect'],
};
export const FLOW = {
name: 'flow',
labelKey: 'tableHeaders.flow',
value: 'flow',
sort: ['flow.name'],
formatter: 'Link',
formatterOpts: { options: 'internal' },
};
export const CLUSTER_FLOW = {
...FLOW,
labelKey: 'tableHeaders.clusterFlow',
formatterOpts: { options: 'internal' },
};
export const OUTPUT = {
name: 'localOutputRefs',
labelKey: 'tableHeaders.output',
value: 'outputs',
sort: 'outputs.text',
formatter: 'ListLink',
formatterOpts: { options: 'internal' },
};
export const CONFIGURED_PROVIDERS = {
name: 'configuredProviders',
labelKey: 'tableHeaders.configuredProviders',
value: 'providers',
sort: 'providers',
formatter: 'List'
};
export const CLUSTER_OUTPUT = {
...OUTPUT,
name: 'globalOutputRefs',
value: 'clusterOutputs',
labelKey: 'tableHeaders.clusterOutput',
};
export const NAME_UNLINKED = {
name: 'name',
labelKey: 'tableHeaders.nameUnlinked',
value: 'nameDisplay',
sort: ['nameSort'],
canBeVariable: true,
};
export const NAMESPACE = {
name: 'namespace',
labelKey: 'tableHeaders.namespace',
value: 'metadata.namespace',
sort: 'namespace',
};
export const NODE = {
name: 'node',
labelKey: 'tableHeaders.node',
value: 'spec.nodeName',
sort: 'spec.nodeName',
formatter: 'LinkNode'
};
export const NODE_NAME = {
name: 'nodeName',
labelKey: 'tableHeaders.nodeName',
sort: 'name',
value: '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'
};
export const CPU = {
name: 'cpu',
labelKey: 'tableHeaders.cpu',
sort: 'cpu',
search: false,
value: 'cpuUsagePercentage',
formatter: 'PercentageBar',
width: 120,
};
export const RAM = {
name: 'ram',
labelKey: 'tableHeaders.ram',
sort: 'ram',
search: false,
value: 'ramUsagePercentage',
formatter: 'PercentageBar',
width: 120,
};
export const PODS = {
name: 'pods',
labelKey: 'tableHeaders.pods',
sort: 'pods',
value: 'podUsage',
formatter: 'PercentageBar'
};
export const AGE = {
name: 'age',
labelKey: 'tableHeaders.age',
value: 'metadata.creationTimestamp',
sort: 'metadata.creationTimestamp:desc',
search: false,
formatter: 'LiveDate',
width: 75,
align: 'right'
};
export const CREATION_DATE = {
name: 'date',
labelKey: 'tableHeaders.date',
value: 'metadata.creationTimestamp',
sort: ['date'],
formatter: 'Date'
};
export const IMAGE = {
name: 'image',
labelKey: 'tableHeaders.image',
value: 'image',
sort: ['image', 'nameSort'],
};
export const RIO_IMAGE = {
name: 'image',
labelKey: 'tableHeaders.rioImage',
value: 'imageDisplay',
sort: ['imageDisplay', 'nameSort'],
};
export const POD_IMAGES = {
name: 'pod_images',
labelKey: 'tableHeaders.podImages',
value: 'imageNames',
sort: 'imageNames',
search: 'imageNames',
formatter: 'PodImages'
};
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 WEIGHT = {
name: 'weight',
labelKey: 'tableHeaders.weight',
value: 'status.computedWeight',
sort: 'status.computedWeight',
formatter: 'Weight',
width: 60,
align: 'center',
};
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 TARGET_KIND = {
name: 'target-kind',
labelKey: 'tableHeaders.targetKind',
value: 'kindDisplay',
width: 100,
};
export const TARGET = {
name: 'target',
labelKey: 'tableHeaders.target',
value: 'targetDisplay',
};
export const MATCHES = {
name: 'matches',
labelKey: 'tableHeaders.matches',
value: 'spec.routes',
formatter: 'RouterMatch'
};
export const DESTINATION = {
name: 'destination',
labelKey: 'tableHeaders.destination',
value: 'spec.routes',
formatter: 'RouterDestination'
};
export const USERNAME = {
name: 'username',
labelKey: 'tableHeaders.username',
value: 'username'
};
export const USER_DISPLAY_NAME = {
name: 'display name',
labelKey: 'tableHeaders.userDisplayName',
value: 'name'
};
export const USER_ID = {
name: 'user-id',
labelKey: 'tableHeaders.userId',
value: 'id'
};
export const USER_STATUS = {
name: 'user-state',
labelKey: 'tableHeaders.userStatus',
value: 'stateDisplay',
formatter: 'BadgeStateFormatter'
};
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',
sort: ['typeDisplay'],
width: 100,
};
export const STATUS = {
name: 'status',
labelKey: 'tableHeaders.status',
value: 'status',
sort: ['status'],
width: 175
};
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 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_HEADERS = [
{
name: 'create',
labelKey: 'tableHeaders.rbac.create',
value: 'create',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'delete',
labelKey: 'tableHeaders.rbac.delete',
value: 'delete',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'get',
labelKey: 'tableHeaders.rbac.get',
value: 'get',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'list',
labelKey: 'tableHeaders.rbac.list',
value: 'list',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'patch',
labelKey: 'tableHeaders.rbac.patch',
value: 'patch',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'update',
labelKey: 'tableHeaders.rbac.update',
value: 'update',
align: 'center',
formatter: 'IconIsDefault',
},
{
name: 'watch',
labelKey: 'tableHeaders.rbac.watch',
value: 'watch',
align: 'center',
formatter: 'IconIsDefault',
}
];
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_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',
width: 100,
};
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'
};
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: '' };
export const FLEET_SUMMARY = {
name: 'summary',
labelKey: 'tableHeaders.resources',
value: 'status.resourceCounts',
sort: false,
search: false,
formatter: 'FleetSummaryGraph',
align: 'center',
width: 100,
};