ui/lib/shared/addon/utils/constants.js

488 lines
12 KiB
JavaScript

const KIND_USER = 'user'; const KIND_CATALOG = 'catalog';
const KIND_SYSTEM = 'system';
const KIND_SYSTEM_CATALOG = 'system-catalog';
const KIND_LEGACY_KUBERNETES = 'kubernetes';
const KIND_KUBERNETES = 'k8s';
const KIND_INFRA = 'infra';
const KIND_NOT_ORCHESTRATION = 'cattle';
var C = {
AUTH_TYPES: {
AdminAuth: 'None',
BasicAuth: 'API Key',
HeaderAuth: 'HeaderAuth',
RegistrationToken: 'Host Registration',
TokenAccount: 'TokenAccount',
TokenAuth: 'UI Session'
},
CAPABILITY: {
NETWORK_POLICIES: 'network-policy-manager',
SECRETS: 'secrets',
},
CATALOG: {
LIBRARY_KEY: 'library',
LIBRARY_VALUE: 'https://git.rancher.io/rancher-catalog.git',
COMMUNITY_KEY: 'community',
COMMUNITY_VALUE: 'https://git.rancher.io/community-catalog.git',
DEFAULT_BRANCH: 'master',
LIBRARY_BRANCH: 'v2.0-development', // @TODO-2.0 '${RELEASE}',
COMMUNITY_BRANCH: 'v2.0-development', // @TODO-2.0 '${RELEASE}',
},
COOKIE: {
TOKEN: 'token',
PL: 'PL',
PL_RANCHER_VALUE: 'rancher',
CSRF: 'CSRF',
LANG: 'LANG',
PROJECT: 'projectId',
CLUSTER: 'clusterId',
},
EXTERNAL_ID: {
KIND_SEPARATOR: '://',
GROUP_SEPARATOR: ':',
BASE_SEPARATOR: '*',
ID_SEPARATOR: ':',
KIND_ALL: 'containers', KIND_USER: KIND_USER,
KIND_CATALOG: KIND_CATALOG,
KIND_SYSTEM: KIND_SYSTEM,
KIND_SYSTEM_CATALOG: KIND_SYSTEM_CATALOG,
KIND_LEGACY_KUBERNETES: KIND_LEGACY_KUBERNETES,
KIND_KUBERNETES: KIND_KUBERNETES,
KIND_INFRA: KIND_INFRA,
KIND_NOT_ORCHESTRATION: KIND_NOT_ORCHESTRATION,
KIND_ORCHESTRATION: [
KIND_KUBERNETES,
],
UPGRADEABLE: [
KIND_CATALOG,
KIND_SYSTEM_CATALOG
],
SYSTEM_KINDS: [
KIND_SYSTEM,
KIND_SYSTEM_CATALOG,
],
SHOW_AS_SYSTEM: [
KIND_SYSTEM,
KIND_INFRA,
KIND_NOT_ORCHESTRATION,
],
SYSTEM_CATEGORIES: [
'Rancher services'
],
CATALOG_DEFAULT_GROUP: 'library',
},
EXT_REFERENCES: {
FORUM: 'https://forums.rancher.com',
COMPANY: 'http://rancher.com',
GITHUB: 'https://github.com/rancher/rancher',
DOCS: 'http://docs.rancher.com/rancher',
SLACK: 'https://slack.rancher.io',
},
GITHUB: {
DEFAULT_HOSTNAME: 'github.com',
AUTH_PATH: '/login/oauth/authorize',
PROXY_URL: '/github/',
SCOPE: 'read:org',
},
HEADER: {
ACCOUNT_ID: 'X-Api-Account-Id',
ACTIONS: 'X-Api-Action-Links',
ACTIONS_VALUE: 'actionLinks',
CSRF: 'X-Api-Csrf',
NO_CHALLENGE: 'X-Api-No-Challenge',
NO_CHALLENGE_VALUE: 'true',
PROJECT_ID: 'X-Api-Project-Id',
RANCHER_VERSION: 'X-Rancher-Version',
},
K8S: {
BASE: 'api',
BASE_VERSION: 'api/v1',
},
KEY: {
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
ESCAPE: 27,
CR: 13,
LF: 10,
TAB: 9,
SPACE: 32,
PAGE_UP: 33,
PAGE_DOWN: 34,
HOME: 35,
END: 36,
},
LABEL: {
SYSTEM_PREFIX: 'io.rancher.',
// Container
DNS: 'io.rancher.container.dns',
HOSTNAME_OVERRIDE: 'io.rancher.container.hostname_override',
HOSTNAME_OVERRIDE_VALUE: 'container_name',
PULL_IMAGE: 'io.rancher.container.pull_image',
PULL_IMAGE_VALUE: 'always',
REQUESTED_IP: 'io.rancher.container.requested_ip',
SERVICE_NAME: 'io.rancher.stack_service.name',
START_ONCE: 'io.rancher.container.start_once',
STACK_NAME: 'io.rancher.stack.name',
STACK_UUID: 'io.rancher.stack.uuid',
SYSTEM_TYPE: 'io.rancher.container.system',
PER_HOST_SUBNET: 'io.rancher.network.per_host_subnet.subnet',
// Catalog
CERTIFIED: 'io.rancher.certified',
CERTIFIED_PARTNER: 'partner',
CERTIFIED_RANCHER: 'rancher',
ORCHESTRATION_SUPPORTED: 'io.rancher.orchestration.supported',
// Host
AGENT_IMAGE: 'io.rancher.host.agent_image',
DOCKER_VERSION: 'io.rancher.host.docker_version',
KERNEL_VERSION: 'io.rancher.host.linux_kernel_version',
KVM: 'io.rancher.host.kvm',
SCHED_IPS: 'io.rancher.scheduler.ips',
REQUIRE_ANY: 'io.rancher.scheduler.require_any',
// Kubernetes
K8S_DASHBOARD: 'io.rancher.k8s.kubernetes-dashboard',
K8S_KUBECTL: 'io.rancher.k8s.kubectld',
K8S_TOKEN: 'io.rancher.k8s.token',
K8S_POD_NAME: 'io.kubernetes.pod.name',
K8S_POD_NAMESPACE: 'io.kubernetes.pod.namespace',
// Scheduling
AFFINITY_PREFIX: 'io.rancher.scheduler.affinity:',
SCHED_CONTAINER: 'io.rancher.scheduler.affinity:container',
SCHED_CONTAINER_LABEL: 'io.rancher.scheduler.affinity:container_label',
SCHED_GLOBAL: 'io.rancher.scheduler.global',
SCHED_HOST_LABEL: 'io.rancher.scheduler.affinity:host_label',
// Service
DEPLOYMENT_UNIT: 'io.rancher.service.deployment.unit',
HASH: 'io.rancher.service.hash',
LAUNCH_CONFIG: 'io.rancher.service.launch.config',
LAUNCH_CONFIG_PRIMARY: 'io.rancher.service.primary.launch.config',
SIDEKICK: 'io.rancher.sidekicks',
BALANCER_TARGET: 'io.rancher.lb_service.target'
},
LANGUAGE: {
DEFAULT: 'en-us',
FORMAT_RELATIVE_TIMEOUT: 1000,
DOCS: ['en'],
},
WEBSOCKET: {
SUBSCRIBE_DISCONNECTED_TIMEOUT: 30000
},
MODE: {
OSS: 'oss', // Regular community UI
CAAS: 'caas', // Container cloud UI
},
PREFS: {
ACCESS_WARNING : 'accessWarning',
BODY_BACKGROUND : 'bodyBackground',
EXPANDED_STACKS : 'expandedStacks',
FEEDBACK : 'feedback',
HOST_VIEW : 'hostView',
CONTAINER_VIEW : 'containerView',
I_HATE_SPINNERS : 'ihatespinners',
LANGUAGE : 'language',
PROJECT_DEFAULT : 'defaultProjectId',
CLUSTER_DEFAULT : 'defaultClusterId',
LAST_SCALE_MODE : 'lastScaleMode',
LAST_NAMESPACE : 'lastNamespace',
SHOW_SYSTEM : 'showSystem',
SORT_STACKS_BY : 'sortStacksBy',
TABLE_COUNT : 'tableCount',
THEME : 'theme',
},
PROJECT: {
TYPE_RANCHER: 'rancher_id',
TYPE_AZURE_USER: 'azuread_user',
TYPE_AZURE_GROUP: 'azuread_group',
TYPE_GITHUB_USER: 'github_user',
TYPE_GITHUB_TEAM: 'github_team',
TYPE_GITHUB_ORG: 'github_org',
TYPE_LDAP_USER: 'ldap_user',
TYPE_LDAP_GROUP: 'ldap_group',
TYPE_OPENLDAP_USER: 'openldap_user',
TYPE_OPENLDAP_GROUP: 'openldap_group',
TYPE_SHIBBOLETH_USER: 'shibboleth_user',
TYPE_SHIBBOLETH_GROUP: 'shibboleth_group',
PERSON: 'person',
TEAM: 'team',
ORG: 'org',
ROLE_MEMBER: 'member',
ROLE_OWNER: 'owner',
SUPPORTS_NETWORK_POLICY: [
'ipsec',
'vxlan',
]
},
PROJECT_TEMPLATE: {
DEFAULT: 'cattle',
},
RULE_VERBS: [
'create',
'read',
'update',
'delete',
'watch',
],
BASIC_POD_SECURITY_POLICIES: [
'allowPrivilegeEscalation',
'defaultAllowPrivilegeEscalation',
'hostIPC',
'hostNetwork',
'hostPID',
'privileged',
'readOnlyRootFilesystem'
],
VOLUME_POLICIES: [
'azureFile',
'azureDisk',
'flocker',
'flexVolume',
'hostPath',
'emptyDir',
'gcePersistentDisk',
'awsElasticBlockStore',
'gitRepo',
'secret',
'nfs',
'iscsi',
'glusterfs',
'persistentVolumeClaim',
'rbd',
'cinder',
'cephFS',
'downwardAPI',
'fc',
'configMap',
'vsphereVolume',
'quobyte',
'photonPersistentDisk',
'projected',
'portworxVolume',
'scaleIO',
'storageos',
'*',
],
ROLE_RULES: [
'CertificateSigningRequests',
'ClusterRoleBindings',
'ClusterRoles',
'Clusters',
'ComponentStatuses',
'ConfigMaps',
'ControllerRevisions',
'CronJobs',
'DaemonSets',
'Deployments',
'Endpoints',
'Events',
'HorizontalPodAutoscalers',
'Ingresses',
'Jobs',
'LimitRanges',
'Namespaces',
'NetworkPolicies',
'Nodes',
'PersistentVolumeClaims',
'PersistentVolumes',
'PodDisruptionBudgets',
'PodPreset',
'PodSecurityPolicies',
'PodTemplates',
'Pods',
'ReplicaSets',
'ReplicationControllers',
'ResourceQuotas',
'RoleBindings',
'Roles',
'Secrets',
'ServiceAccounts',
'Services',
'StatefulSets',
'StorageClasses',
],
// Ephemeral but same but across all browser tabs
SESSION: {
ACCOUNT_ID : 'accountId',
BACK_TO : 'backTo',
CONTAINER_ROUTE: 'containerSubRoute',
GITHUB_CACHE : 'githubCache',
GITHUB_ORGS : 'orgs',
GITHUB_TEAMS : 'teams',
IDENTITY : 'userIdentity',
IDENTITY_TYPE : 'userType',
LANGUAGE : 'language',
LOGIN_LANGUAGE : 'loginLanguage',
USER_ID : 'user',
USER_TYPE : 'userType',
},
SETTING: {
// Dots in key names do not mix well with Ember, so we use $ in their place.
DOT_CHAR: '$',
IMAGE_RANCHER: 'rancher$server$image',
VERSION_RANCHER: 'rancher$server$version',
VERSION_COMPOSE: 'rancher$compose$version',
VERSION_CLI: 'rancher$cli$version',
VERSION_CATTLE: 'cattle$version',
VERSION_MACHINE: 'docker$machine$version',
VERSION_GMS: 'go$machine$service$version',
CLI_URL: {
DARWIN: 'rancher$cli$darwin$url',
WINDOWS: 'rancher$cli$windows$url',
LINUX: 'rancher$cli$linux$url',
},
COMPOSE_URL: {
DARWIN: 'rancher$compose$darwin$url',
WINDOWS: 'rancher$compose$windows$url',
LINUX: 'rancher$compose$linux$url',
},
API_HOST: 'api$host',
CATALOG_URL: 'catalog$url',
ENGINE_URL: 'engine$install$url',
SUPPORTED_DOCKER: 'supported$docker$range',
NEWEST_DOCKER: 'newest$docker$version',
TELEMETRY: 'telemetry$opt',
AUTH_LOCAL_VALIDATE_DESC: 'api$auth$local$validate$description',
BALANCER_IMAGE: 'lb$instance$image',
FEEDBACK_FORM: 'ui$feedback$form',
SHOW_SYSTEM: 'ui$show$system',
SHOW_CUSTOM_HOST: 'ui$show$custom$host',
CLUSTER_TEMPLATE: 'default$cluster$template',
},
TABLES: {
DEFAULT_COUNT: 50
},
THEME: {
AUTO_UPDATE_TIMER : 1800000,
START_HOUR : 7,
END_HOUR : 18,
DEFAULT : 'ui-light',
},
USER: {
TYPE_NORMAL: 'user',
TYPE_ADMIN: 'admin',
BASIC_BEARER: 'x-api-bearer',
},
};
C.TOKEN_TO_SESSION_KEYS = [
C.SESSION.ACCOUNT_ID,
C.SESSION.USER_ID,
C.SESSION.USER_TYPE,
C.SESSION.GITHUB_TEAMS,
C.SESSION.GITHUB_ORGS,
C.SESSION.IDENTITY,
C.SESSION.IDENTITY_TYPE
];
C.LABELS_TO_IGNORE = [
C.LABEL.HASH,
];
C.LABEL_PREFIX_TO_IGNORE = [
'io.cattle.lifecycle.',
'beta.kubernetes.io/',
'node-role.kubernetes.io/',
'kubernetes.io/'
];
C.SYSTEM_LABELS_WITH_CONTROL = [
C.LABEL.SCHED_GLOBAL,
C.LABEL.HOSTNAME_OVERRIDE,
C.LABEL.DNS,
C.LABEL.START_ONCE,
C.LABEL.REQUESTED_IP,
C.LABEL.PULL_IMAGE,
C.LABEL.REQUIRE_ANY,
C.LABEL.SCHED_IPS,
C.LABEL.AGENT_IMAGE,
C.LABEL.DOCKER_VERSION,
C.LABEL.KERNEL_VERSION,
C.LABEL.KVM,
];
C.ACTIVEISH_STATES = [
'running',
'active',
'healthy',
'initializing',
'reinitializing',
'degraded',
'unhealthy',
'upgrading',
'upgraded',
];
C.READY_STATES = [
'healthy',
];
C.REMOVEDISH_STATES = [
'removed',
'purging',
'purged'
];
C.DISCONNECTED_STATES = [
'disconnected',
'reconnecting',
];
C.INITIALIZING_STATES = [
'initializing',
'reinitializing'
];
// This is populated by each app/components/schema/*
C.SUPPORTED_SCHEMA_INPUTS= [
'boolean',
'certificate',
'date',
'enum',
'float',
'host',
'int',
'multiline',
'password',
'service',
'string',
'masked',
'secret',
'base64',
];
export default C;