mirror of https://github.com/rancher/ui.git
1036 lines
27 KiB
JavaScript
1036 lines
27 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 = {
|
|
CATALOG: {
|
|
LIBRARY_KEY: 'library',
|
|
LIBRARY_VALUE: 'https://git.rancher.io/charts',
|
|
SYSTEM_LIBRARY_KEY: 'system-library',
|
|
SYSTEM_LIBRARY_VALUE: 'https://git.rancher.io/system-charts',
|
|
HELM_STABLE_KEY: 'helm',
|
|
HELM_STABLE_VALUE: 'https://kubernetes-charts.storage.googleapis.com/',
|
|
HELM_INCUBATOR_KEY: 'helm-incubator',
|
|
HELM_INCUBATOR_VALUE: 'https://kubernetes-charts-incubator.storage.googleapis.com/',
|
|
HELM_3_LIBRARY_KEY: 'helm3-library',
|
|
HELM_3_LIBRARY_VALUE: 'https://git.rancher.io/helm3-charts',
|
|
HELM_VERSION_2: 'rancher-helm',
|
|
HELM_VERSION_3: 'helm_v3',
|
|
HELM_VERSION_3_SHORT: 'v3',
|
|
ALIBABA_APP_HUB_KEY: 'alibaba-app-hub',
|
|
ALIBABA_APP_HUB_VALUE: 'https://apphub.aliyuncs.com',
|
|
DEFAULT_BRANCH: 'master',
|
|
LIBRARY_BRANCH: 'v2.0-development', // @TODO-2.0 '${RELEASE}',
|
|
COMMUNITY_BRANCH: 'v2.0-development', // @TODO-2.0 '${RELEASE}',
|
|
},
|
|
|
|
COOKIE: {
|
|
TOKEN: 'token',
|
|
CSRF: 'CSRF',
|
|
LANG: 'LANG',
|
|
USERNAME: 'R_USERNAME',
|
|
ACTIVEDIRECTORY_USERNAME: 'ACTIVEDIRECTORY_USERNAME',
|
|
REDIRECTED: 'R_REDIRECTED',
|
|
THEME: 'R_THEME',
|
|
},
|
|
|
|
EXTERNAL_ID: {
|
|
KIND_SEPARATOR: '://',
|
|
GROUP_SEPARATOR: ':',
|
|
BASE_SEPARATOR: '*',
|
|
ID_SEPARATOR: ':',
|
|
KIND_ALL: 'containers',
|
|
KIND_USER,
|
|
KIND_CATALOG,
|
|
KIND_SYSTEM,
|
|
KIND_SYSTEM_CATALOG,
|
|
KIND_LEGACY_KUBERNETES,
|
|
KIND_KUBERNETES,
|
|
KIND_INFRA,
|
|
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: {
|
|
CN_FORUM: 'https://forums.cnrancher.com/',
|
|
FORUM: 'https://forums.rancher.com',
|
|
COMPANY: 'https://rancher.com',
|
|
GITHUB: 'https://github.com/rancher/rancher',
|
|
DOCS: 'https://rancher.com/docs/rancher',
|
|
SLACK: 'https://slack.rancher.io',
|
|
EULA: 'https://rancher.com/eula',
|
|
},
|
|
|
|
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',
|
|
},
|
|
|
|
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',
|
|
CERTIFIED_RANCHER_EXPERIMENTAL: 'experimental',
|
|
|
|
// Host
|
|
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',
|
|
BALANCER_TARGET: 'io.rancher.lb_service.target',
|
|
|
|
DEPLOYMENT_REVISION: 'deployment.kubernetes.io/revision',
|
|
|
|
CREATOR_ID: 'field.cattle.io/creatorId',
|
|
TIMESTAMP: 'cattle.io/timestamp',
|
|
|
|
// EKS Cluster session token
|
|
EKS_SESSION_TOKEN: 'clusterstatus.management.cattle.io/temporary-security-credentials',
|
|
|
|
// node driver special fields
|
|
UI_HINTS: 'io.cattle.nodedriver/ui-field-hints',
|
|
|
|
K3S_NODE_ARGS: 'k3s.io/node-args',
|
|
K3S_NODE_CONFIG_HASH: 'k3s.io/node-config-hash',
|
|
K3S_NODE_ENV: 'k3s.io/node-env',
|
|
NODE_INSTANCE_TYPE: 'node.kubernetes.io/instance-type',
|
|
},
|
|
|
|
LANGUAGE: {
|
|
DEFAULT: 'en-us',
|
|
FORMAT_RELATIVE_TIMEOUT: 1000,
|
|
DOCS: ['en'],
|
|
},
|
|
|
|
WEBSOCKET: { SUBSCRIBE_DISCONNECTED_TIMEOUT: 30000 },
|
|
|
|
PREFS: {
|
|
ACCESS_WARNING: 'access-warning',
|
|
BODY_BACKGROUND: 'body-background',
|
|
CLUSTER_DEFAULT: 'default-cluster-id',
|
|
CONTAINER_VIEW: 'container-view',
|
|
COLLAPSED_CATALOGS: 'collapsed-catalogs',
|
|
FEEDBACK: 'feedback',
|
|
HOST_VIEW: 'host-view',
|
|
I_HATE_SPINNERS: 'ihatespinners',
|
|
LANGUAGE: 'language',
|
|
LAST_IMAGE_PULL_POLICY: 'last-image-pull-policy',
|
|
TARGET_OS: 'target-os',
|
|
LAST_NAMESPACE: 'last-namespace',
|
|
LAST_SCALE_MODE: 'last-scale-mode',
|
|
PERIOD: 'period',
|
|
PROJECT_DEFAULT: 'default-project-id',
|
|
PUSH_TO_REPO: 'push-to-repo',
|
|
RECENT_CLUSTERS: 'recent-clusters',
|
|
SORT_STACKS_BY: 'sort-stacks-by',
|
|
TABLE_COUNT: 'table-count',
|
|
THEME: 'theme',
|
|
WRAP_LINES: 'wrap-lines',
|
|
LANDING: 'landing',
|
|
SEEN_WHATS_NEW: 'seen-whats-new',
|
|
CLOSED_BANNER: 'closed-banner',
|
|
},
|
|
|
|
PROJECT: {
|
|
TYPE_RANCHER: 'local',
|
|
TYPE_ACTIVE_DIRECTORY_USER: 'activedirectory_user',
|
|
TYPE_ACTIVE_DIRECTORY_GROUP: 'activedirectory_group',
|
|
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_KEYCLOAK_USER: 'keycloak_user',
|
|
TYPE_KEYCLOAK_GROUP: 'keycloak_group',
|
|
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',
|
|
TYPE_PING_USER: 'ping_user',
|
|
TYPE_PING_GROUP: 'ping_group',
|
|
TYPE_ADFS_USER: 'adfs_user',
|
|
TYPE_ADFS_GROUP: 'adfs_group',
|
|
TYPE_OKTA_USER: 'okta_user',
|
|
TYPE_OKTA_GROUP: 'okta_group',
|
|
TYPE_FREEIPA_USER: 'freeipa_user',
|
|
TYPE_FREEIPA_GROUP: 'freeipa_group',
|
|
TYPE_GOOGLE_USER: 'googleoauth_user',
|
|
TYPE_GOOGLE_GROUP: 'googleoauth_group',
|
|
TYPE_GOOGLE_ORG: 'googleoauth_org',
|
|
|
|
PERSON: 'person',
|
|
TEAM: 'team',
|
|
ORG: 'org',
|
|
|
|
ROLE_MEMBER: 'member',
|
|
ROLE_OWNER: 'owner',
|
|
|
|
SUPPORTS_NETWORK_POLICY: [
|
|
'ipsec',
|
|
'vxlan',
|
|
]
|
|
},
|
|
|
|
SCHED_TOLERATION_OPERATOR: [
|
|
{
|
|
value: 'Equal',
|
|
label: 'Equals'
|
|
},
|
|
{
|
|
value: 'Exists',
|
|
label: 'Exists'
|
|
}
|
|
],
|
|
|
|
SCHED_TOLERATION_EFFECT: [
|
|
{
|
|
value: 'NoSchedule',
|
|
label: 'NoSchedule'
|
|
},
|
|
{
|
|
value: 'NoExecute',
|
|
label: 'NoExecute'
|
|
},
|
|
{
|
|
value: 'PreferNoSchedule',
|
|
label: 'PreferNoSchedule'
|
|
},
|
|
],
|
|
|
|
VOLUME_NODE_SELECTOR_OPERATOR: [
|
|
{
|
|
value: 'Exists',
|
|
label: 'formScheduling.nodeSelector.operator.exists',
|
|
},
|
|
{
|
|
value: 'DoesNotExist',
|
|
label: 'formScheduling.nodeSelector.operator.notExists',
|
|
},
|
|
{
|
|
value: 'In',
|
|
label: 'formScheduling.nodeSelector.operator.in',
|
|
},
|
|
{
|
|
value: 'NotIn',
|
|
label: 'formScheduling.nodeSelector.operator.notIn',
|
|
},
|
|
],
|
|
|
|
SCHED_NODE_SELECTOR_OPERATOR: [
|
|
{
|
|
value: '=',
|
|
label: 'formScheduling.nodeSelector.operator.eq',
|
|
},
|
|
{
|
|
value: '!=',
|
|
label: 'formScheduling.nodeSelector.operator.ne',
|
|
},
|
|
{
|
|
value: 'Exists',
|
|
label: 'formScheduling.nodeSelector.operator.exists',
|
|
},
|
|
{
|
|
value: 'DoesNotExist',
|
|
label: 'formScheduling.nodeSelector.operator.notExists',
|
|
},
|
|
{
|
|
value: 'In',
|
|
label: 'formScheduling.nodeSelector.operator.in',
|
|
},
|
|
{
|
|
value: 'NotIn',
|
|
label: 'formScheduling.nodeSelector.operator.notIn',
|
|
},
|
|
{
|
|
value: '<',
|
|
label: 'formScheduling.nodeSelector.operator.lt',
|
|
},
|
|
{
|
|
value: '>',
|
|
label: 'formScheduling.nodeSelector.operator.gt',
|
|
},
|
|
],
|
|
|
|
PROJECT_TEMPLATE: { DEFAULT: 'cattle', },
|
|
|
|
RULE_VERBS: [
|
|
'create',
|
|
'delete',
|
|
// 'deletecollection',
|
|
'get',
|
|
'list',
|
|
'patch',
|
|
'update',
|
|
'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',
|
|
'*',
|
|
],
|
|
|
|
BASIC_ROLE_TEMPLATE_ROLES: [
|
|
'cluster-owner',
|
|
'cluster-member',
|
|
'project-owner',
|
|
'project-member'
|
|
],
|
|
|
|
ROLE_RULES: [
|
|
'Apps',
|
|
'AuthConfigs',
|
|
'Catalogs',
|
|
'ClusterAlerts',
|
|
'ClusterComposeConfigs',
|
|
'ClusterEvents',
|
|
'ClusterLoggings',
|
|
'ClusterPipelines',
|
|
'ClusterRegistrationTokens',
|
|
'ClusterRoleTemplateBindings',
|
|
'CertificateSigningRequests',
|
|
'ClusterRoleBindings',
|
|
'ClusterRoles',
|
|
'Clusters',
|
|
'ComponentStatuses',
|
|
'ConfigMaps',
|
|
'ControllerRevisions',
|
|
'CronJobs',
|
|
'DaemonSets',
|
|
'Deployments',
|
|
'Endpoints',
|
|
'Events',
|
|
'GlobalComposeConfigs',
|
|
'GlobalRoleBindings',
|
|
'GlobalRoles',
|
|
'GroupMembers',
|
|
'Groups',
|
|
'HorizontalPodAutoscalers',
|
|
'Ingresses',
|
|
'Jobs',
|
|
'LimitRanges',
|
|
'ListenConfigs',
|
|
'Namespaces',
|
|
'NetworkPolicies',
|
|
'NodeDrivers',
|
|
'NodePools',
|
|
'NodeTemplates',
|
|
'Nodes',
|
|
'Notifiers',
|
|
'PersistentVolumeClaims',
|
|
'PersistentVolumes',
|
|
'PodDisruptionBudgets',
|
|
'PodPreset',
|
|
'PodSecurityPolicies',
|
|
'PodTemplates',
|
|
'Pods',
|
|
'PipelineExecutionLogs',
|
|
'PipelineExecutions',
|
|
'Pipelines',
|
|
'PodSecurityPolicyTemplateProjectBindings',
|
|
'PodSecurityPolicyTemplates',
|
|
'Preferences',
|
|
'Principals',
|
|
'ProjectAlerts',
|
|
'ProjectLoggings',
|
|
'ProjectNetworkPolicies',
|
|
'ProjectRoleTemplateBindings',
|
|
'Projects',
|
|
'ReplicaSets',
|
|
'ReplicationControllers',
|
|
'ResourceQuotas',
|
|
'RoleBindings',
|
|
'Roles',
|
|
'RoleTemplates',
|
|
'Secrets',
|
|
'ServiceAccounts',
|
|
'Services',
|
|
'StatefulSets',
|
|
'StorageClasses',
|
|
'Settings',
|
|
'SourceCodeCredentials',
|
|
'SourceCodeRepositories',
|
|
'TemplateVersions',
|
|
'Templates',
|
|
'Tokens',
|
|
'Users',
|
|
],
|
|
|
|
// Ephemeral but same but across all browser tabs
|
|
SESSION: {
|
|
// @TODO-2.0 remove most of these
|
|
BACK_TO: 'backTo',
|
|
CONTAINER_ROUTE: 'containerSubRoute',
|
|
ISTIO_ROUTE: 'istioSubRoute',
|
|
PROJECT_ROUTE: 'projectRoute',
|
|
CLUSTER_ROUTE: 'clusterRoute',
|
|
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',
|
|
|
|
DESCRIPTION: 'UI Session',
|
|
TTL: 16 * 60 * 60 * 1000,
|
|
},
|
|
|
|
SETTING: {
|
|
IMAGE_RANCHER: 'server-image',
|
|
VERSION_RANCHER: 'server-version',
|
|
VERSION_COMPOSE: 'compose-version',
|
|
VERSION_CLI: 'cli-version',
|
|
VERSION_MACHINE: 'machine-version',
|
|
VERSION_HELM: 'helm-version',
|
|
VERSIONS_K8S: 'k8s-version-to-images',
|
|
VERSION_RKE_K8S_DEFAULT: 'k8s-version',
|
|
VERSION_K8S_SUPPORTED_RANGE: 'ui-k8s-supported-versions-range',
|
|
VERSION_SYSTEM_K8S_DEFAULT_RANGE: 'ui-k8s-default-version-range',
|
|
|
|
CLI_URL: {
|
|
DARWIN: 'cli-url-darwin',
|
|
WINDOWS: 'cli-url-windows',
|
|
LINUX: 'cli-url-linux',
|
|
},
|
|
|
|
API_HOST: 'api-host',
|
|
CA_CERTS: 'cacerts',
|
|
|
|
HIDE_LOCAL_CLUSTER: 'hide-local-cluster',
|
|
// CLUSTER_DEFAULTS: 'cluster-defaults',
|
|
AUTH_TOKEN_MAX_TTL_MINUTES: 'auth-token-max-ttl-minutes',
|
|
ENGINE_URL: 'engine-install-url',
|
|
ENGINE_ISO_URL: 'engine-iso-url',
|
|
FIRST_LOGIN: 'first-login',
|
|
INGRESS_IP_DOMAIN: 'ingress-ip-domain',
|
|
PL: 'ui-pl',
|
|
PL_RANCHER_VALUE: 'rancher',
|
|
UI_BANNERS: 'ui-banners',
|
|
UI_ISSUES: 'ui-issues',
|
|
SUPPORTED_DOCKER: 'engine-supported-range',
|
|
NEWEST_DOCKER: 'engine-newest-version',
|
|
SERVER_URL: 'server-url',
|
|
RKE_METADATA_CONFIG: 'rke-metadata-config',
|
|
TELEMETRY: 'telemetry-opt',
|
|
EULA_AGREED: 'eula-agreed',
|
|
AUTH_USER_INFO_MAX_AGE_SECONDS: 'auth-user-info-max-age-seconds',
|
|
AUTH_USER_SESSION_TTL_MINUTES: 'auth-user-session-ttl-minutes',
|
|
AUTH_USER_INFO_RESYNC_CRON: 'auth-user-info-resync-cron',
|
|
AUTH_LOCAL_VALIDATE_DESC: 'auth-password-requirements-description',
|
|
FEEDBACK_FORM: 'ui-feedback-form',
|
|
CLUSTER_TEMPLATE_ENFORCEMENT: 'cluster-template-enforcement',
|
|
UI_DEFAULT_LANDING: 'ui-default-landing',
|
|
},
|
|
|
|
TABLES: { DEFAULT_COUNT: 50 },
|
|
|
|
THEME: {
|
|
AUTO_UPDATE_TIMER: 30 * 60 * 1000,
|
|
START_HOUR: 7,
|
|
END_HOUR: 18,
|
|
DEFAULT: 'ui-light',
|
|
},
|
|
|
|
USER: {
|
|
TYPE_NORMAL: 'user',
|
|
TYPE_ADMIN: 'admin',
|
|
BASIC_BEARER: 'x-api-bearer',
|
|
},
|
|
|
|
WHATS_NEW_VERSION: '2.5.0',
|
|
};
|
|
|
|
C.SETTING.ALLOWED = {
|
|
[C.SETTING.CA_CERTS]: { kind: 'multiline' },
|
|
// [C.SETTING.CLUSTER_DEFAULTS]: { kind: 'json' },
|
|
[C.SETTING.ENGINE_URL]: {},
|
|
[C.SETTING.ENGINE_ISO_URL]: {},
|
|
[C.SETTING.PL]: {},
|
|
[C.SETTING.UI_ISSUES]: {},
|
|
[C.SETTING.INGRESS_IP_DOMAIN]: {},
|
|
[C.SETTING.AUTH_USER_INFO_MAX_AGE_SECONDS]: {},
|
|
[C.SETTING.AUTH_USER_SESSION_TTL_MINUTES]: {},
|
|
[C.SETTING.AUTH_TOKEN_MAX_TTL_MINUTES]: {},
|
|
[C.SETTING.AUTH_USER_INFO_RESYNC_CRON]: {},
|
|
[C.SETTING.SERVER_URL]: { kind: 'url' },
|
|
[C.SETTING.RKE_METADATA_CONFIG]: { kind: 'json' },
|
|
[C.SETTING.UI_BANNERS]: { kind: 'json' },
|
|
'system-default-registry': {},
|
|
'ui-index': {},
|
|
'ui-dashboard-index': {},
|
|
'ui-offline-preferred': {},
|
|
[C.SETTING.CLUSTER_TEMPLATE_ENFORCEMENT]: { kind: 'boolean' },
|
|
|
|
[C.SETTING.UI_DEFAULT_LANDING]: {
|
|
kind: 'enum-map',
|
|
options: {
|
|
ember: 'Cluster Manager',
|
|
vue: 'Cluster Explorer'
|
|
},
|
|
},
|
|
[C.SETTING.TELEMETRY]: {
|
|
kind: 'enum',
|
|
options: ['prompt', 'in', 'out']
|
|
},
|
|
};
|
|
|
|
C.LABELS_TO_IGNORE = [
|
|
C.LABEL.HASH,
|
|
];
|
|
|
|
C.LABEL_ISTIO_RULE = 'io.rancher.istio';
|
|
|
|
// Excluded explicitly in form-labels-annotations so the label can be edited on a node resource
|
|
C.LABEL_CATTLE_CLUSTER_AGENT = 'cattle.io/cluster-agent';
|
|
|
|
C.READONLY_TAINT_PREFIX = [
|
|
'node-role.kubernetes.io/',
|
|
'node.kubernetes.io/',
|
|
'node.cloudprovider.kubernetes.io/'
|
|
];
|
|
|
|
C.LABEL_PREFIX_TO_IGNORE = [
|
|
'io.cattle.lifecycle.',
|
|
'beta.kubernetes.io/',
|
|
'failure-domain.beta.kubernetes.io/',
|
|
'node-role.kubernetes.io/',
|
|
'kubernetes.io/',
|
|
'cattle.io/',
|
|
'authz.management.cattle.io',
|
|
'rke.cattle.io',
|
|
'field.cattle.io',
|
|
'workload.user.cattle.io/',
|
|
'k3s.io',
|
|
'node.kubernetes.io',
|
|
];
|
|
|
|
C.ANNOTATIONS_TO_IGNORE_CONTAINS = [
|
|
'coreos.com/',
|
|
'cattle.io/',
|
|
'k3s.io',
|
|
]
|
|
|
|
C.ANNOTATIONS_TO_IGNORE_PREFIX = [
|
|
'kubernetes.io/',
|
|
'beta.kubernetes.io/',
|
|
'node.alpha.kubernetes.io/',
|
|
'volumes.kubernetes.io/',
|
|
'k3s.io',
|
|
]
|
|
|
|
C.GRAY_OUT_ETCD_STATUS_PROVIDERS = [
|
|
'k3s'
|
|
];
|
|
|
|
C.GRAY_OUT_SCHEDULER_STATUS_PROVIDERS = [
|
|
'azureaks',
|
|
'tencenttke',
|
|
'linodelke'
|
|
];
|
|
|
|
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.DOCKER_VERSION,
|
|
C.LABEL.KERNEL_VERSION,
|
|
C.LABEL.KVM,
|
|
];
|
|
|
|
C.ACTIVEISH_STATES = [
|
|
'running',
|
|
'active',
|
|
'healthy',
|
|
'initializing',
|
|
'locked',
|
|
'reinitializing',
|
|
'degraded',
|
|
'unhealthy',
|
|
'upgrading',
|
|
'updating',
|
|
'upgraded',
|
|
'draining',
|
|
'drained',
|
|
'cordoned'
|
|
];
|
|
|
|
C.READY_STATES = [
|
|
'healthy',
|
|
];
|
|
|
|
C.REMOVEDISH_STATES = [
|
|
'removed',
|
|
// 'removing',
|
|
'purging',
|
|
'purged'
|
|
];
|
|
|
|
C.DISCONNECTED_STATES = [
|
|
'disconnected',
|
|
'reconnecting',
|
|
'unavailable',
|
|
];
|
|
|
|
C.INITIALIZING_STATES = [
|
|
'initializing',
|
|
'reinitializing'
|
|
];
|
|
|
|
// This is populated by each app/components/schema/*
|
|
C.SUPPORTED_SCHEMA_INPUTS = [
|
|
'boolean',
|
|
'certificate',
|
|
'date',
|
|
'enum',
|
|
'float',
|
|
'host',
|
|
'hostname',
|
|
'int',
|
|
'multiline',
|
|
'istiohost',
|
|
'password',
|
|
'pvc',
|
|
'service',
|
|
'storageclass',
|
|
'string',
|
|
'masked',
|
|
'secret',
|
|
'base64',
|
|
];
|
|
|
|
C.RESOURCE_QUOTAS = [
|
|
'limitsCpu',
|
|
'requestsCpu',
|
|
'limitsMemory',
|
|
'requestsMemory',
|
|
'requestsStorage',
|
|
'servicesLoadBalancers',
|
|
'servicesNodePorts',
|
|
'pods',
|
|
'services',
|
|
'configMaps',
|
|
'persistentVolumeClaims',
|
|
'replicationControllers',
|
|
'secrets',
|
|
];
|
|
|
|
C.AZURE_AD = {
|
|
STANDARD: {
|
|
KEY: 'standard',
|
|
ENDPOINT: 'https://login.microsoftonline.com/',
|
|
GRAPH_ENDPOINT: 'https://graph.windows.net/'
|
|
},
|
|
CHINA: {
|
|
KEY: 'china',
|
|
ENDPOINT: 'https://login.chinacloudapi.cn/',
|
|
GRAPH_ENDPOINT: 'https://graph.chinacloudapi.cn/'
|
|
},
|
|
CUSTOM: { KEY: 'custom' }
|
|
};
|
|
|
|
C.AZURE_DEFAULTS = [
|
|
'aadClientCertPassword',
|
|
'aadClientCertPath',
|
|
'aadClientId',
|
|
'aadClientSecret',
|
|
'cloud',
|
|
'cloudProviderBackoff',
|
|
'cloudProviderBackoffDuration',
|
|
'cloudProviderBackoffExponent',
|
|
'cloudProviderBackoffJitter',
|
|
'cloudProviderBackoffRetries',
|
|
'cloudProviderRateLimit',
|
|
'cloudProviderRateLimitBucket',
|
|
'cloudProviderRateLimitQPS',
|
|
'loadBalancerSku',
|
|
'location',
|
|
'maximumLoadBalancerRuleCount',
|
|
'primaryAvailabilitySetName',
|
|
'primaryScaleSetName',
|
|
'resourceGroup',
|
|
'routeTableName',
|
|
'securityGroupName',
|
|
'subnetName',
|
|
'subscriptionId',
|
|
'tenantId',
|
|
'useInstanceMetadata',
|
|
'useManagedIdentityExtension',
|
|
'vmType',
|
|
'vnetName',
|
|
'vnetResourceGroup',
|
|
];
|
|
|
|
C.VOLUME_TYPES = {
|
|
BIND_MOUNT: 'bindMount',
|
|
TMPFS: 'tmpfs',
|
|
SECRET: 'secret',
|
|
CERTIFICATE: 'certificate',
|
|
CONFIG_MAP: 'configmap',
|
|
CUSTOM_LOG_PATH: 'customLogPath'
|
|
}
|
|
|
|
C.NOTIFIER_TABLE_LABEL = {
|
|
SLACK: 'Default Channel',
|
|
PAGERDUTY: 'Service Key',
|
|
SMTP: 'Default Recipient Address',
|
|
WEBHOOK: 'URL',
|
|
DEFAULT: 'Notifier',
|
|
WECHAT: 'Default Recipient',
|
|
}
|
|
|
|
C.CONDITION = {
|
|
SUCCESS: 'Success',
|
|
CHANGED: 'Changed',
|
|
FAILED: 'Failed',
|
|
}
|
|
|
|
C.ALERTING_COMPARISON = {
|
|
EQUAL: 'equal',
|
|
NOT_EQUAL: 'not-equal',
|
|
GREATER_THAN: 'greater-than',
|
|
LESS_THAN: 'less-than',
|
|
GREATER_OR_EQUAL: 'greater-or-equal',
|
|
LESS_OR_EQUAL: 'less-or-equal',
|
|
HAS_VALUE: 'has-value',
|
|
}
|
|
|
|
C.ALERT_DURATION = [{
|
|
label: '1 second',
|
|
value: '1s',
|
|
}, {
|
|
label: '10 seconds',
|
|
value: '10s',
|
|
}, {
|
|
label: '30 seconds',
|
|
value: '30s',
|
|
}, {
|
|
label: '1 minute',
|
|
value: '1m',
|
|
}, {
|
|
label: '2 minutes',
|
|
value: '2m',
|
|
}, {
|
|
label: '3 minutes',
|
|
value: '3m',
|
|
}, {
|
|
label: '4 minutes',
|
|
value: '4m',
|
|
}, {
|
|
label: '5 minutes',
|
|
value: '5m',
|
|
}, {
|
|
label: '10 minutes',
|
|
value: '10m',
|
|
}, {
|
|
label: '15 minutes',
|
|
value: '15m',
|
|
}, {
|
|
label: '20 minutes',
|
|
value: '20m',
|
|
}, {
|
|
label: '30 minutes',
|
|
value: '30m',
|
|
}, {
|
|
label: '1 hour',
|
|
value: '1h',
|
|
}, {
|
|
label: '2 hours',
|
|
value: '2h',
|
|
}, {
|
|
label: '3 hours',
|
|
value: '3h',
|
|
}, {
|
|
label: '6 hours',
|
|
value: '6h',
|
|
}, {
|
|
label: '7 hours',
|
|
value: '7h',
|
|
}, {
|
|
label: '12 hours',
|
|
value: '12h',
|
|
}, {
|
|
label: '13 hours',
|
|
value: '13h',
|
|
}, {
|
|
label: '24 hours',
|
|
value: '1d',
|
|
}]
|
|
|
|
C.LOGGING_TPYE_TO_CONFIG = {
|
|
elasticsearch: 'elasticsearch',
|
|
splunk_hec: 'splunk',
|
|
remote_syslog: 'syslog',
|
|
kafka_buffered: 'kafka',
|
|
forward: 'fluentForwarder',
|
|
}
|
|
|
|
C.POSTGRESQL_SSL_MODE = [
|
|
'disable',
|
|
'allow',
|
|
'prefer',
|
|
'require',
|
|
'verify-ca',
|
|
'verify-full',
|
|
]
|
|
|
|
C.NETWORK_CONFIG_DEFAULTS = {
|
|
BACKEND_PORT: '4789',
|
|
BACKEND_VNI: '4096',
|
|
CALICO: 'calico',
|
|
CANAL: 'canal',
|
|
DEFAULT_BACKEND_TYPE: 'vxlan',
|
|
FLANNEL: 'flannel',
|
|
VXLAN: 'vxlan',
|
|
WEAVE: 'weave',
|
|
}
|
|
|
|
C.CLUSTER_TEMPLATE_ROLES = {
|
|
OWNER: 'owner',
|
|
READ_ONLY: 'read-only',
|
|
}
|
|
|
|
C.NETWORK_QUESTIONS = {
|
|
PLUGIN: 'rancherKubernetesEngineConfig.network.plugin',
|
|
WEAVE_NETWORK_PROVIDER: 'rancherKubernetesEngineConfig.network.weaveNetworkProvider',
|
|
WEAVE_PASSWORD: 'rancherKubernetesEngineConfig.network.weaveNetworkProvider.password',
|
|
}
|
|
|
|
// these fields are filtered when launching a cluster with a template because they have UI components
|
|
C.CLUSTER_TEMPLATE_IGNORED_OVERRIDES = [
|
|
'defaultPodSecurityPolicyTemplateId',
|
|
'dockerRootDir',
|
|
'enableNetworkPolicy',
|
|
'windowsPreferedCluster',
|
|
'localClusterAuthEndpoint.caCerts',
|
|
'localClusterAuthEndpoint.enabled',
|
|
'localClusterAuthEndpoint.fqdn',
|
|
'rancherKubernetesEngineConfig.ignoreDockerVersion',
|
|
'rancherKubernetesEngineConfig.ingress.provider',
|
|
'rancherKubernetesEngineConfig.kubernetesVersion',
|
|
'rancherKubernetesEngineConfig.monitoring.provider',
|
|
'rancherKubernetesEngineConfig.network.options',
|
|
'rancherKubernetesEngineConfig.network.options.flannel_backend_port',
|
|
'rancherKubernetesEngineConfig.network.options.flannel_backend_type',
|
|
'rancherKubernetesEngineConfig.network.options.flannel_backend_vni',
|
|
'rancherKubernetesEngineConfig.network.plugin',
|
|
'rancherKubernetesEngineConfig.network.weaveNetworkProvider',
|
|
'rancherKubernetesEngineConfig.privateRegistries[0].url',
|
|
'rancherKubernetesEngineConfig.privateRegistries[0].user',
|
|
'rancherKubernetesEngineConfig.privateRegistries[0].password',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.enabled',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.intervalHours',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.retention',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.accessKey',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.bucketName',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.endpoint',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.region',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.secretKey',
|
|
'rancherKubernetesEngineConfig.services.etcd.backupConfig.s3BackupConfig.folder',
|
|
'rancherKubernetesEngineConfig.services.kubeApi.podSecurityPolicy',
|
|
'rancherKubernetesEngineConfig.services.kubeApi.serviceNodePortRange',
|
|
]
|
|
|
|
C.CAN_SHELL_STATES = [
|
|
'running',
|
|
'notready'
|
|
]
|
|
|
|
C.SYSTEM_CHART_APPS = [
|
|
'cluster-monitoring',
|
|
'project-monitoring',
|
|
'cluster-alerting',
|
|
'rancher-logging',
|
|
'cluster-istio',
|
|
'monitoring-operator',
|
|
]
|
|
|
|
C.RESOURCE_TYPES = {
|
|
NAMESPACE: 'namespace',
|
|
PROJECT: 'project',
|
|
CLUSTER: 'cluster'
|
|
};
|
|
|
|
C.FEATURES = {
|
|
UNSUPPORTED_STORAGE_DRIVERS: 'unsupported-storage-drivers',
|
|
ISTIO_VIRTUAL_SERVICE_UI: 'istio-virtual-service-ui',
|
|
DASHBOARD: 'dashboard',
|
|
LEGACY: 'legacy'
|
|
}
|
|
|
|
C.NODES = { MASTER_NODE: 'node-role.kubernetes.io/master' };
|
|
|
|
C.STORAGE = {
|
|
LONGHORN_PROVISIONER_KEY: 'driver.longhorn.io',
|
|
LONGHORN_CATALOG_TEMPLATE_ID: 'cattle-global-data:library-longhorn',
|
|
LONGHORN_CATALOG_ITEM_DEFAULT_NAME: 'longhorn-system',
|
|
};
|
|
|
|
C.LOGGING_FILE_TO_FORM = {
|
|
ELASTICSEARCH: {
|
|
hosts: 'endpoint',
|
|
user: 'authUsername',
|
|
password: 'authPassword',
|
|
logstash_prefix: 'indexPrefix',
|
|
logstash_dateformat: 'dateFormat',
|
|
},
|
|
SPLUNK: {
|
|
host: '',
|
|
port: '',
|
|
token: 'token',
|
|
sourcetype: 'source',
|
|
default_index: 'index',
|
|
},
|
|
KAFKA: {
|
|
zookeeper: 'zookeeperEndpoint',
|
|
default_topic: 'topic',
|
|
brokers: 'brokers',
|
|
},
|
|
SYSLOG: {
|
|
host: '',
|
|
port: '',
|
|
protocol: 'protocol',
|
|
program: 'program',
|
|
token: 'token',
|
|
severity: 'severity',
|
|
},
|
|
FLUENTD: {
|
|
host: '',
|
|
port: '',
|
|
shared_key: 'sharedKey',
|
|
username: 'username',
|
|
password: 'password',
|
|
weight: 'weight',
|
|
standby: 'standby',
|
|
name: 'hostname',
|
|
}
|
|
}
|
|
export default C;
|