class GITHUB(object): VERIFICATION_SCHEDULE = 0 CLIENT_ID = config.get_string('POLYAXON_AUTH_GITHUB_CLIENT_ID', is_optional=True, is_secret=True) CLIENT_SECRET = config.get_string('POLYAXON_AUTH_GITHUB_CLIENT_SECRET', is_optional=True, is_secret=True) ENABLED = config.get_boolean('POLYAXON_AUTH_GITHUB', is_optional=True, default=False)
from polyaxon.utils import ROOT_DIR, config DEBUG = config.get_boolean('POLYAXON_DEBUG') ALLOWED_HOSTS = ['*'] SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True WSGI_APPLICATION = 'polyaxon.wsgi.application' TIME_ZONE = config.get_string('POLYAXON_TIME_ZONE', is_optional=True) or 'Europe/Berlin' LANGUAGE_CODE = 'en' LANGUAGES = (('en', u'English'), ) USE_I18N = True USE_L10N = True USE_TZ = True INTERNAL_IPS = ('127.0.0.1', ) APPEND_SLASH = True ROOT_URLCONF = 'polyaxon.urls' # user management LOGIN_URL = '/users/login/' LOGIN_REDIRECT_URL = '/' ACCOUNT_ACTIVATION_DAYS = 7 INVITATION_TIMEOUT_DAYS = 30 SESSION_COOKIE_AGE = 24 * 60 * 60 # 24 hours
from polyaxon.utils import config PUBLIC_PLUGIN_JOBS = config.get_boolean('POLYAXON_PUBLIC_PLUGIN_JOBS', is_optional=True) # Roles ROLE_LABELS_WORKER = config.get_string('POLYAXON_ROLE_LABELS_WORKER') ROLE_LABELS_DASHBOARD = config.get_string('POLYAXON_ROLE_LABELS_DASHBOARD') ROLE_LABELS_LOG = config.get_string('POLYAXON_ROLE_LABELS_LOG') ROLE_LABELS_API = config.get_string('POLYAXON_ROLE_LABELS_API') K8S_SERVICE_ACCOUNT_NAME = config.get_string( 'POLYAXON_K8S_SERVICE_ACCOUNT_NAME') K8S_RBAC_ENABLED = config.get_boolean('POLYAXON_K8S_RBAC_ENABLED') K8S_INGRESS_ENABLED = config.get_boolean('POLYAXON_K8S_INGRESS_ENABLED') K8S_INGRESS_ANNOTATIONS = config.get_string('POLYAXON_K8S_INGRESS_ANNOTATIONS', is_optional=True) K8S_GPU_RESOURCE_KEY = config.get_string('POLYAXON_K8S_GPU_RESOURCE_KEY') TENSORBOARD_PORT_RANGE = [5700, 6700] NOTEBOOK_PORT_RANGE = [6700, 7700] # Types TYPE_LABELS_CORE = config.get_string('POLYAXON_TYPE_LABELS_CORE') TYPE_LABELS_EXPERIMENT = config.get_string('POLYAXON_TYPE_LABELS_EXPERIMENT') # Plugin jobs app APP_LABELS_TENSORBOARD = config.get_string('POLYAXON_APP_LABELS_TENSORBOARD') APP_LABELS_NOTEBOOK = config.get_string('POLYAXON_APP_LABELS_NOTEBOOK') # Selectors NODE_SELECTORS_EXPERIMENTS = config.get_string( 'POLYAXON_NODE_SELECTORS_EXPERIMENTS', is_optional=True)
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function from polyaxon.utils import config # Roles ROLE_LABELS_WORKER = config.get_string('POLYAXON_ROLE_LABELS_WORKER') ROLE_LABELS_DASHBOARD = config.get_string('POLYAXON_ROLE_LABELS_DASHBOARD') ROLE_LABELS_LOG = config.get_string('POLYAXON_ROLE_LABELS_LOG') ROLE_LABELS_API = config.get_string('POLYAXON_ROLE_LABELS_API') K8S_SERVICE_ACCOUNT_NAME = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_NAME') K8S_RBAC_ENABLED = config.get_boolean('POLYAXON_K8S_RBAC_ENABLED') K8S_INGRESS_ENABLED = config.get_boolean('POLYAXON_K8S_INGRESS_ENABLED') K8S_INGRESS_ANNOTATIONS = config.get_string('POLYAXON_K8S_INGRESS_ANNOTATIONS', is_optional=True) TENSORBOARD_PORT_RANGE = [5500, 6500] # Types TYPE_LABELS_CORE = config.get_string('POLYAXON_TYPE_LABELS_CORE') TYPE_LABELS_EXPERIMENT = config.get_string('POLYAXON_TYPE_LABELS_EXPERIMENT') # Selectors NODE_SELECTORS_EXPERIMENTS = config.get_string('POLYAXON_NODE_SELECTORS_EXPERIMENTS', is_optional=True) JOB_CONTAINER_NAME = config.get_string('POLYAXON_JOB_CONTAINER_NAME') JOB_SIDECAR_CONTAINER_NAME = config.get_string('POLYAXON_JOB_SIDECAR_CONTAINER_NAME') JOB_DOCKER_NAME = config.get_string('POLYAXON_JOB_DOCKER_NAME', is_optional=True) or 'polyaxon/polyaxon-lib' JOB_SIDECAR_DOCKER_IMAGE = config.get_string('POLYAXON_JOB_SIDECAR_DOCKER_IMAGE', is_optional=True) or 'polyaxon/polyaxon-sidecar' JOB_SIDECAR_LOG_SLEEP_INTERVAL = config.get_int('POLYAXON_JOB_SIDECAR_LOG_SLEEP_INTERVAL',
RABBITMQ_PASSWORD = config.get_string('POLYAXON_RABBITMQ_PASSWORD', is_secret=True, is_optional=True) if RABBITMQ_USER and RABBITMQ_PASSWORD: CELERY_BROKER_URL = 'amqp://{user}:{password}@{url}'.format( user=RABBITMQ_USER, password=RABBITMQ_PASSWORD, url=AMQP_URL) CELERY_BROKER_URL = 'amqp://{url}'.format(url=AMQP_URL) INTERNAL_EXCHANGE = config.get_string('POLYAXON_INTERNAL_EXCHANGE') # CELERY_RESULT_BACKEND = config.get_string('POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL') CELERYD_PREFETCH_MULTIPLIER = config.get_int( 'POLYAXON_CELERYD_PREFETCH_MULTIPLIER') CELERY_TASK_ALWAYS_EAGER = config.get_boolean('POLYAXON_CELERY_ALWAYS_EAGER') if CELERY_TASK_ALWAYS_EAGER: BROKER_TRANSPORT = 'memory' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' CELERY_IGNORE_RESULT = True CELERY_HARD_TIME_LIMIT_DELAY = config.get_int( 'POLYAXON_CELERY_HARD_TIME_LIMIT_DELAY', is_optional=True, default=180) class Intervals(object): """All intervals are in seconds""" OPERATIONS_DEFAULT_RETRY_DELAY = config.get_int(
from datetime import timedelta from kombu import Exchange, Queue from polyaxon.utils import config CELERY_TRACK_STARTED = True CELERY_BROKER_URL = config.get_string('POLYAXON_AMQP_URL') INTERNAL_EXCHANGE = config.get_string('POLYAXON_INTERNAL_EXCHANGE') # CELERY_RESULT_BACKEND = config.get_string('POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL') CELERYD_PREFETCH_MULTIPLIER = config.get_int( 'POLYAXON_CELERYD_PREFETCH_MULTIPLIER') CELERY_TASK_ALWAYS_EAGER = config.get_boolean('POLYAXON_CELERY_ALWAYS_EAGER') if CELERY_TASK_ALWAYS_EAGER: BROKER_TRANSPORT = 'memory' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' CELERY_IGNORE_RESULT = True CELERY_HARD_TIME_LIMIT_DELAY = config.get_int( 'POLYAXON_CELERY_HARD_TIME_LIMIT_DELAY', is_optional=True) or 180 class Intervals(object): """All intervals are in seconds""" OPERATIONS_DEFAULT_RETRY_DELAY = config.get_int(
# -*- coding: utf-8 -*- import json import django_auth_ldap.config as django_auth_ldap_config import ldap from polyaxon.utils import config DEFAULT_EMAIL_DOMAIN = 'local_polyaxon.com' AUTH_LDAP_ENABLED = config.get_boolean('POLYAXON_AUTH_LDAP', is_optional=True) AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', ] if AUTH_LDAP_ENABLED: AUTHENTICATION_BACKENDS = ['django_auth_ldap.backend.LDAPBackend' ] + AUTHENTICATION_BACKENDS AUTH_LDAP_SERVER_URI = config.get_string('POLYAXON_AUTH_LDAP_SERVER_URI') # set ldap global options ldap_global_options = config.get_string( 'POLYAXON_AUTH_LDAP_GLOBAL_OPTIONS', is_optional=True) if ldap_global_options: ldap_global_options = json.loads(ldap_global_options) for option_name in ldap_global_options: option = getattr(ldap, option_name) ldap.set_option(option, ldap_global_options[option_name])
'POLYAXON_RABBITMQ_PASSWORD', is_secret=True, is_optional=True) if RABBITMQ_USER and RABBITMQ_PASSWORD: CELERY_BROKER_URL = 'amqp://{user}:{password}@{url}'.format( user=RABBITMQ_USER, password=RABBITMQ_PASSWORD, url=AMQP_URL ) CELERY_BROKER_URL = 'amqp://{url}'.format(url=AMQP_URL) INTERNAL_EXCHANGE = config.get_string('POLYAXON_INTERNAL_EXCHANGE') # CELERY_RESULT_BACKEND = config.get_string('POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL') CELERYD_PREFETCH_MULTIPLIER = config.get_int('POLYAXON_CELERYD_PREFETCH_MULTIPLIER') CELERY_TASK_ALWAYS_EAGER = config.get_boolean('POLYAXON_CELERY_ALWAYS_EAGER') if CELERY_TASK_ALWAYS_EAGER: BROKER_TRANSPORT = 'memory' CELERY_ACCEPT_CONTENT = ['application/json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' CELERY_IGNORE_RESULT = True CELERY_HARD_TIME_LIMIT_DELAY = config.get_int('POLYAXON_CELERY_HARD_TIME_LIMIT_DELAY', is_optional=True, default=180) class Intervals(object): """All intervals are in seconds"""
'polyaxon', 'libs.apps.LibsConfig', 'users.apps.UsersConfig', 'versions.apps.VersionsConfig', 'clusters.apps.ClustersConfig', 'projects.apps.ProjectsConfig', 'repos.apps.ReposConfig', 'jobs.apps.JobsConfig', 'experiment_groups.apps.ExperimentGroupsConfig', 'experiments.apps.ExperimentsConfig', 'pipelines.apps.PipelinesConfig', 'events.apps.EventsConfig', ) DEPLOY_RUNNER = config.get_boolean('POLYAXON_DEPLOY_RUNNER', is_optional=True, default=True) if DEPLOY_RUNNER: PROJECT_APPS += ( 'plugins.apps.PluginsConfig', 'runner.apps.RunnerConfig', 'runner.nodes.apps.NodesConfig', ) THIRD_PARTY_APPS = ( 'raven.contrib.django.raven_compat', 'rest_framework', 'rest_framework.authtoken', 'corsheaders', )
from polyaxon.utils import ROOT_DIR, config if config.is_monolith_service or config.is_api_service: LIST_TEMPLATE_CONTEXT_PROCESSORS = [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'polyaxon.context_processors.versions', 'polyaxon.context_processors.cluster', 'api.context_processors.sso_enabled', ] JS_DEBUG = config.get_boolean('POLYAXON_JS_DEBUG') if JS_DEBUG: def js_debug_processor(request): return {'js_debug': True} LIST_TEMPLATE_CONTEXT_PROCESSORS += ('polyaxon.settings.js_debug_processor',) TEMPLATES_DEBUG = (config.get_boolean('DJANGO_TEMPLATE_DEBUG', is_optional=True) or config.is_debug_mode) TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ ROOT_DIR.child('polyaxon').child('polyaxon').child('templates'), ],
from corsheaders.defaults import default_headers from polyaxon.utils import ROOT_DIR, config DEBUG = config.get_boolean('POLYAXON_DEBUG') ALLOWED_HOSTS = ['*'] # session settings CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True SSL_ENABLED = config.get_boolean('POLYAXON_SSL_ENABLED', is_optional=True, default=False) CORS_ORIGIN_WHITELIST = config.get_string('POLYAXON_CORS_ORIGIN_WHITELIST', is_optional=True) if CORS_ORIGIN_WHITELIST: CORS_ORIGIN_WHITELIST = [i.strip() for i in CORS_ORIGIN_WHITELIST.split(',')] else: CORS_ORIGIN_WHITELIST = [] CORS_ALLOW_HEADERS = default_headers + ( 'x-polyaxon-cli-version', 'x-polyaxon-client-version', ) if SSL_ENABLED: SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') WSGI_APPLICATION = 'polyaxon.wsgi.application' TIME_ZONE = config.get_string('POLYAXON_TIME_ZONE', is_optional=True) or 'Europe/Berlin'
from corsheaders.defaults import default_headers from polyaxon.utils import config # session settings CORS_ORIGIN_ALLOW_ALL = True CORS_ALLOW_CREDENTIALS = True SSL_ENABLED = config.get_boolean('POLYAXON_SSL_ENABLED', is_optional=True, default=False) CORS_ORIGIN_WHITELIST = config.get_string('POLYAXON_CORS_ORIGIN_WHITELIST', is_optional=True) if CORS_ORIGIN_WHITELIST: CORS_ORIGIN_WHITELIST = [i.strip() for i in CORS_ORIGIN_WHITELIST.split(',')] else: CORS_ORIGIN_WHITELIST = [] HEADERS_CLI_VERSION = 'X_POLYAXON_CLI_VERSION' HEADERS_CLIENT_VERSION = 'X_POLYAXON_CLIENT-VERSION' HEADERS_INTERNAL = 'X_POLYAXON_INTERNAL' CORS_ALLOW_HEADERS = default_headers + ( HEADERS_CLI_VERSION, HEADERS_CLIENT_VERSION, HEADERS_INTERNAL, ) PROTOCOL = 'http' if SSL_ENABLED: SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
from polyaxon.utils import config PUBLIC_PLUGIN_JOBS = config.get_boolean('POLYAXON_PUBLIC_PLUGIN_JOBS', is_optional=True) # Roles ROLE_LABELS_WORKER = config.get_string('POLYAXON_ROLE_LABELS_WORKER') ROLE_LABELS_DASHBOARD = config.get_string('POLYAXON_ROLE_LABELS_DASHBOARD') ROLE_LABELS_LOG = config.get_string('POLYAXON_ROLE_LABELS_LOG') ROLE_LABELS_API = config.get_string('POLYAXON_ROLE_LABELS_API') K8S_SERVICE_ACCOUNT_NAME = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_NAME') K8S_RBAC_ENABLED = config.get_boolean('POLYAXON_K8S_RBAC_ENABLED') K8S_PROVISIONER_ENABLED = config.get_boolean('POLYAXON_K8S_PROVISIONER_ENABLED') K8S_INGRESS_ENABLED = config.get_boolean('POLYAXON_K8S_INGRESS_ENABLED') K8S_INGRESS_ANNOTATIONS = config.get_string('POLYAXON_K8S_INGRESS_ANNOTATIONS', is_optional=True) TENSORBOARD_PORT_RANGE = [5700, 6700] NOTEBOOK_PORT_RANGE = [6700, 7700] # Types TYPE_LABELS_CORE = config.get_string('POLYAXON_TYPE_LABELS_CORE') TYPE_LABELS_EXPERIMENT = config.get_string('POLYAXON_TYPE_LABELS_EXPERIMENT') # Labels APP_LABELS_TENSORBOARD = config.get_string('POLYAXON_APP_LABELS_TENSORBOARD') APP_LABELS_NOTEBOOK = config.get_string('POLYAXON_APP_LABELS_NOTEBOOK') APP_LABELS_DOCKERIZER = config.get_string('POLYAXON_APP_LABELS_DOCKERIZER') APP_LABELS_EXPERIMENT = config.get_string('POLYAXON_APP_LABELS_EXPERIMENT') APP_LABELS_JOB = config.get_string('POLYAXON_APP_LABELS_JOB') # Selectors NODE_SELECTORS_EXPERIMENTS = config.get_string( 'POLYAXON_NODE_SELECTORS_EXPERIMENTS', is_optional=True) NODE_SELECTORS_CORE = config.get_string(
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function import sys from polyaxon.utils import config from .apps import INSTALLED_APPS, MIDDLEWARE_CLASSES if config.get_boolean('POLYAXON_DEBUG', is_optional=True): def show_toolbar(request): # debug toolbar makes import take VERY long (because of SQL traces) and can break tests if request.path.endswith('upload') or 'test' in sys.argv: return False return True DEBUG_TOOLBAR_CONFIG = { 'SHOW_TOOLBAR_CALLBACK': show_toolbar, 'INTERCEPT_REDIRECTS': False, 'HIDE_DJANGO_SQL': False, 'ENABLE_STACKTRACES': True, } DEBUG_TOOLBAR_PANELS = ( 'debug_toolbar.panels.timer.TimerDebugPanel', 'debug_toolbar.panels.headers.HeaderDebugPanel', 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', 'debug_toolbar.panels.template.TemplateDebugPanel', 'debug_toolbar.panels.sql.SQLDebugPanel', )
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function from polyaxon.utils import config # Roles ROLE_LABELS_WORKER = config.get_string('POLYAXON_ROLE_LABELS_WORKER') ROLE_LABELS_DASHBOARD = config.get_string('POLYAXON_ROLE_LABELS_DASHBOARD') ROLE_LABELS_LOG = config.get_string('POLYAXON_ROLE_LABELS_LOG') ROLE_LABELS_API = config.get_string('POLYAXON_ROLE_LABELS_API') K8S_SERVICE_ACCOUNT_NAME = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_NAME') K8S_RBAC_ENABLED = config.get_boolean('POLYAXON_K8S_RBAC_ENABLED') K8S_INGRESS_ENABLED = config.get_boolean('POLYAXON_K8S_INGRESS_ENABLED') USE_PUBLIC_JOBS = config.get_boolean('POLYAXON_USE_INGRESS_FOR_JOBS', is_optional=True) K8S_INGRESS_ANNOTATIONS = config.get_string( 'POLYAXON_K8S_INGRESS_ANNOTATIONS', is_optional=True) TENSORBOARD_PORT_RANGE = [5700, 6700] NOTEBOOK_PORT_RANGE = [6700, 7700] # Types TYPE_LABELS_CORE = config.get_string('POLYAXON_TYPE_LABELS_CORE') TYPE_LABELS_EXPERIMENT = config.get_string('POLYAXON_TYPE_LABELS_EXPERIMENT') # Selectors NODE_SELECTORS_EXPERIMENTS = config.get_string( 'POLYAXON_NODE_SELECTORS_EXPERIMENTS', is_optional=True) JOB_CONTAINER_NAME = config.get_string('POLYAXON_JOB_CONTAINER_NAME') JOB_SIDECAR_CONTAINER_NAME = config.get_string('POLYAXON_JOB_SIDECAR_CONTAINER_NAME') JOB_DOCKER_NAME = config.get_string( 'POLYAXON_JOB_DOCKER_NAME', is_optional=True) or 'polyaxon/polyaxon-lib'
from polyaxon.utils import config CLI_MIN_VERSION = config.get_string('POLYAXON_CLI_MIN_VERSION', is_optional=True, default='0.0.0') CLI_LATEST_VERSION = config.get_string('POLYAXON_CLI_LATEST_VERSION', is_optional=True, default='0.0.0') PLATFORM_MIN_VERSION = config.get_string('POLYAXON_PLATFORM_MIN_VERSION', is_optional=True, default='0.0.0') PLATFORM_LATEST_VERSION = config.get_string('POLYAXON_PLATFORM_LATEST_VERSION', is_optional=True, default='0.0.0') LIB_MIN_VERSION = config.get_string('POLYAXON_LIB_MIN_VERSION', is_optional=True, default='0.0.0') LIB_LATEST_VERSION = config.get_string('POLYAXON_LIB_LATEST_VERSION', is_optional=True, default='0.0.0') CHART_VERSION = config.get_string('POLYAXON_CHART_VERSION', is_optional=True, default='0.0.0') CHART_IS_UPGRADE = config.get_boolean('POLYAXON_CHART_IS_UPGRADE')