ui/app/utils/constants.js

424 lines
10 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_SWARM = 'swarm';
const KIND_MESOS = 'mesos';
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: '${RELEASE}',
},
COOKIE: {
TOKEN: 'token',
PL: 'PL',
PL_RANCHER_VALUE: 'rancher',
CSRF: 'CSRF',
LANG: 'LANG',
},
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_SWARM: KIND_SWARM,
KIND_MESOS: KIND_MESOS,
KIND_INFRA: KIND_INFRA,
KIND_NOT_ORCHESTRATION: KIND_NOT_ORCHESTRATION,
KIND_ORCHESTRATION: [
KIND_KUBERNETES,
KIND_SWARM,
KIND_MESOS,
],
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',
// 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_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'],
},
// CSS map to driver icons
MACHINE_DRIVER_IMAGES: {
AMAZONEC2: 'amazonec2',
AZURE: 'azure',
DIGITALOCEAN: 'digitalocean',
EXOSCALE: 'exoscale',
GENERIC: 'generic',
OPENSTACK: 'openstack',
PACKET: 'packet',
RACKSPACE: 'rackspace',
UBIQUITY: 'ubiquity',
VMWAREVSPHERE: 'vmwarevsphere',
OTHER: 'other',
CUSTOM: 'custom',
ALIYUNECS: 'aliyunecs',
},
MESOS: {
HEALTH: 'health',
FRAMEWORKS: 'frameworks',
MASTER_SERVICE: 'mesos-master',
MASTER_PORT: 5050,
},
MODE: {
OSS: 'oss', // Regular community UI
CAAS: 'caas', // Container cloud UI
},
PREFS: {
ACCESS_WARNING : 'accessWarning',
BODY_BACKGROUND : 'bodyBackground',
PROJECT_DEFAULT : 'defaultProjectId',
EXPANDED_STACKS : 'expandedStacks',
SORT_STACKS_BY : 'sortStacksBy',
HOST_VIEW : 'hostView',
THEME : 'theme',
TABLE_COUNT : 'tableCount',
LANGUAGE : 'language',
I_HATE_SPINNERS : 'ihatespinners',
FEEDBACK : 'feedback',
SHOW_SYSTEM : 'showSystem',
HOST_FAVORITES : 'hostFavorites',
},
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',
},
// 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',
PROJECT : 'projectId',
USER_ID : 'user',
USER_TYPE : 'userType',
},
SETTING: {
// Dots in key names do not mix well with Ember, so 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',
SWARM_PORT: 'swarm$tls$port',
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',
PROJECT_VERSION: 'account$version',
FEEDBACK_FORM: 'ui$feedback$form',
SHOW_SYSTEM: 'ui$show$system',
SHOW_CUSTOM_HOST: 'ui$show$custom$host',
},
TABLES: {
DEFAULT_COUNT: 50
},
// Ephemeral and unique for each browser tab
TABSESSION: {
PROJECT: 'projectId',
NAMESPACE: 'namespaceId',
},
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.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',
'updating-active',
'updating-running',
'healthy',
'initializing',
'reinitializing',
'degraded',
'unhealthy',
'started-once',
'upgrading',
'upgraded',
];
C.READY_STATES = [
'healthy',
'started-once',
];
C.REMOVEDISH_STATES = [
'removed',
'purging',
'purged'
];
C.INITIALIZING_STATES = [
'initializing',
'reinitializing'
];
C.VM_CAPABLE_STORAGE_DRIVERS = [
'convoy-gluster',
'convoy-longhorn',
'longhorn',
];
// 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',
];
export default C;