class RedisPools(object): JOB_CONTAINERS = redis.ConnectionPool.from_url( config.get_string('POLYAXON_REDIS_JOB_CONTAINERS_URL')) TO_STREAM = redis.ConnectionPool.from_url( config.get_string('POLYAXON_REDIS_TO_STREAM_URL')) SESSIONS = redis.ConnectionPool.from_url( config.get_string('POLYAXON_REDIS_SESSIONS_URL'))
class CeleryQueues(object): """Celery Queues. N.B. make sure that the queue name is not < 128. """ API_EXPERIMENTS = config.get_string('POLYAXON_QUEUES_API_EXPERIMENTS', is_optional=True, default='api.experiments') API_EXPERIMENTS_SYNC = config.get_string( 'POLYAXON_QUEUES_API_EXPERIMENTS_SYNC', is_optional=True, default='api.sync_experiments') API_CLUSTERS = config.get_string('POLYAXON_QUEUES_API_CLUSTERS', is_optional=True, default='api.clusters') API_PIPELINES = config.get_string('POLYAXON_QUEUES_API_PIPELINES', is_optional=True, default='api.pipelines') EVENTS_NAMESPACE = config.get_string('POLYAXON_QUEUES_EVENTS_NAMESPACE', is_optional=True, default='events.namespace') EVENTS_RESOURCES = config.get_string('POLYAXON_QUEUES_EVENTS_RESOURCES', is_optional=True, default='events.resources') EVENTS_JOB_STATUSES = config.get_string( 'POLYAXON_QUEUES_EVENTS_JOB_STATUSES', is_optional=True, default='events.statuses') LOGS_SIDECARS = config.get_string('POLYAXON_QUEUES_LOGS_SIDECARS', is_optional=True, default='logs.sidecars') STREAM_LOGS_SIDECARS = config.get_string( 'POLYAXON_QUEUES_STREAM_LOGS_SIDECARS', is_optional=True, default='stream.logs.sidecars')
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)
class CeleryQueues(object): API_EXPERIMENTS = config.get_string( 'POLYAXON_QUEUES_API_EXPERIMENTS', is_optional=True) or 'api.experiments' API_EXPERIMENTS_SYNC = config.get_string( 'POLYAXON_QUEUES_API_EXPERIMENTS_SYNC', is_optional=True) or 'api.sync_experiments' API_CLUSTERS = config.get_string( 'POLYAXON_QUEUES_API_CLUSTERS', is_optional=True) or 'api.clusters' EVENTS_NAMESPACE = config.get_string( 'POLYAXON_QUEUES_EVENTS_NAMESPACE', is_optional=True) or 'events.namespace' EVENTS_RESOURCES = config.get_string( 'POLYAXON_QUEUES_EVENTS_RESOURCES', is_optional=True) or 'events.resources' EVENTS_JOB_STATUSES = config.get_string( 'POLYAXON_QUEUES_EVENTS_JOB_STATUSES', is_optional=True) or 'events.statuses' LOGS_SIDECARS = config.get_string( 'POLYAXON_QUEUES_LOGS_SIDECARS', is_optional=True) or 'logs.sidecars' STREAM_LOGS_SIDECARS = config.get_string( 'POLYAXON_QUEUES_STREAM_LOGS_SIDECARS', is_optional=True) or 'stream.logs.sidecars'
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(
from datetime import timedelta from kombu import Exchange, Queue from polyaxon.utils import config CELERY_TRACK_STARTED = True AMQP_URL = config.get_string('POLYAXON_AMQP_URL') RABBITMQ_USER = config.get_string('POLYAXON_RABBITMQ_USER', is_optional=True) 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'
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]) # set ldap connection options AUTH_LDAP_CONNECTION_OPTIONS = {} ldap_conn_options = config.get_string( 'POLYAXON_AUTH_LDAP_CONNECTION_OPTIONS', is_optional=True) if ldap_conn_options:
], 'propagate': True, 'level': 'INFO', }, 'polyaxon.dockerizer': { 'handlers': [ 'console', ], 'propagate': True, 'level': 'INFO', }, 'django.request': { 'level': 'DEBUG', 'propagate': True, 'handlers': [ 'console', ], }, }, } RAVEN_CONFIG = {} if not (config.is_testing_env or config.is_local_env): RAVEN_CONFIG['dsn'] = config.platform_dns RAVEN_CONFIG[ 'transport'] = "raven.transport.threaded_requests.ThreadedRequestsHTTPTransport" RAVEN_CONFIG['release'] = config.get_string('POLYAXON_CHART_VERSION', is_optional=True, default='0.0.0') RAVEN_CONFIG['environment'] = config.env
from polyaxon.utils import config REGISTRY_USER = config.get_string('POLYAXON_REGISTRY_USER', is_optional=True) REGISTRY_PASSWORD = config.get_string('POLYAXON_REGISTRY_PASSWORD', is_optional=True) REGISTRY_HOST_NAME = config.get_string('POLYAXON_REGISTRY_HOST', is_optional=True) REGISTRY_PORT = config.get_string('POLYAXON_REGISTRY_PORT', is_optional=True)
from polyaxon.utils import config SECRET_KEY = config.get_string('POLYAXON_SECRET_KEY', is_secret=True) INTERNAL_SECRET_TOKEN = config.get_string('POLYAXON_INTERNAL_SECRET_TOKEN', is_secret=True)
import urllib3 from kubernetes import client from polyaxon.utils import config POLYAXON_K8S_APP_NAME = config.get_string('POLYAXON_K8S_APP_NAME') POLYAXON_K8S_API_HOST = config.get_string('POLYAXON_K8S_API_HOST') POLYAXON_K8S_API_PORT = config.get_int('POLYAXON_K8S_API_PORT') POLYAXON_K8S_APP_CONFIG_NAME = config.get_string('POLYAXON_K8S_APP_CONFIG_NAME') POLYAXON_K8S_APP_SECRET_NAME = config.get_string('POLYAXON_K8S_APP_SECRET_NAME') POLYAXON_K8S_RABBITMQ_SECRET_NAME = config.get_string('POLYAXON_K8S_RABBITMQ_SECRET_NAME') CLUSTER_ID = config.get_string('POLYAXON_CLUSTER_ID', is_optional=True) K8S_AUTHORISATION = config.get_string('POLYAXON_K8S_AUTHORISATION', is_optional=True, is_secret=True) K8S_HOST = config.get_string('POLYAXON_K8S_HOST', is_optional=True) SSL_CA_CERT = config.get_string('POLYAXON_K8S_SSL_CA_CERT', is_optional=True) K8S_CONFIG = None if K8S_AUTHORISATION and K8S_HOST: K8S_CONFIG = client.Configuration() K8S_CONFIG.api_key['authorization'] = K8S_AUTHORISATION K8S_CONFIG.api_key_prefix['authorization'] = 'Bearer' K8S_CONFIG.host = K8S_HOST if SSL_CA_CERT: K8S_CONFIG.verify_ssl = True K8S_CONFIG.ssl_ca_cert = SSL_CA_CERT else:
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')
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 polyaxon.utils import config SECRET_KEY = config.get_string('POLYAXON_SECRET_KEY', is_secret=True) INTERNAL_SECRET_TOKEN = config.get_string('POLYAXON_INTERNAL_SECRET_TOKEN', is_secret=True)
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(
from polyaxon.utils import config DEBUG = config.is_debug_mode POLYAXON_SERVICE = config.service POLYAXON_ENVIRONMENT = config.env K8S_NAMESPACE = config.namespace K8S_NODE_NAME = config.node_name K8S_GPU_RESOURCE_KEY = config.get_string('POLYAXON_K8S_GPU_RESOURCE_KEY') REPOS_ARCHIVE_ROOT = '/tmp/archived_repos' ALLOWED_HOSTS = ['*'] 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/' LOGOUT_REDIRECT_URL = LOGIN_URL
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function import urllib3 from kubernetes import client from polyaxon.utils import config K8S_NAMESPACE = config.get_string('POLYAXON_K8S_NAMESPACE') K8S_NODE_NAME = config.get_string('POLYAXON_K8S_NODE_NAME') POLYAXON_K8S_APP_NAME = config.get_string('POLYAXON_K8S_APP_NAME') POLYAXON_K8S_API_HOST = config.get_string('POLYAXON_K8S_API_HOST') POLYAXON_K8S_API_PORT = config.get_int('POLYAXON_K8S_API_PORT') POLYAXON_K8S_APP_CONFIG_NAME = config.get_string( 'POLYAXON_K8S_APP_CONFIG_NAME') POLYAXON_K8S_APP_SECRET_NAME = config.get_string( 'POLYAXON_K8S_APP_SECRET_NAME') CLUSTER_ID = config.get_string('POLYAXON_CLUSTER_ID', is_optional=True) K8S_AUTHORISATION = config.get_string('POLYAXON_K8S_AUTHORISATION', is_optional=True, is_secret=True) K8S_HOST = config.get_string('POLYAXON_K8S_HOST', is_optional=True) SSL_CA_CERT = config.get_string('POLYAXON_K8S_SSL_CA_CERT', is_optional=True) K8S_CONFIG = None if K8S_AUTHORISATION and K8S_HOST: K8S_CONFIG = client.Configuration() K8S_CONFIG.api_key['authorization'] = K8S_AUTHORISATION K8S_CONFIG.api_key_prefix['authorization'] = 'Bearer' K8S_CONFIG.host = K8S_HOST
'handlers': ['console', ], 'propagate': True, 'level': 'INFO', }, 'polyaxon.monitors': { 'handlers': ['console', ], 'propagate': True, 'level': 'INFO', }, 'polyaxon.dockerizer': { 'handlers': ['console', ], 'propagate': True, 'level': 'INFO', }, 'django.request': { 'level': 'DEBUG', 'propagate': True, 'handlers': ['console', ], }, }, } RAVEN_CONFIG = {} if not (config.is_testing_env or config.is_local_env): RAVEN_CONFIG['dsn'] = config.platform_dns RAVEN_CONFIG['transport'] = "raven.transport.threaded_requests.ThreadedRequestsHTTPTransport" RAVEN_CONFIG['release'] = config.get_string('POLYAXON_CHART_VERSION', is_optional=True, default='0.0.0') RAVEN_CONFIG['environment'] = config.env
from polyaxon.utils import config admin_name = config.get_string('POLYAXON_ADMIN_NAME') admin_mail = config.get_string('POLYAXON_ADMIN_MAIL') ADMINS = ((admin_name, admin_mail), ) MANAGERS = ADMINS
from polyaxon.utils import config REGISTRY_USER = config.get_string('POLYAXON_REGISTRY_USER', is_optional=True) REGISTRY_PASSWORD = config.get_string('POLYAXON_REGISTRY_PASSWORD', is_optional=True) REGISTRY_HOST_NAME = config.get_string('POLYAXON_REGISTRY_HOST', is_optional=True) REGISTRY_PORT = config.get_string('POLYAXON_REGISTRY_PORT', is_optional=True) REGISTRY_NODE_PORT = config.get_string('POLYAXON_REGISTRY_NODE_PORT', is_optional=True) REGISTRY_HOST = '{}:{}'.format('127.0.0.1', REGISTRY_NODE_PORT)
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function import json from polyaxon.utils import ROOT_DIR, config MEDIA_ROOT = config.get_string('POLYAXON_MEDIA_ROOT') MEDIA_URL = config.get_string('POLYAXON_MEDIA_URL') STATIC_ROOT = config.get_string('POLYAXON_STATIC_ROOT') STATIC_URL = config.get_string('POLYAXON_STATIC_URL') UPLOAD_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_UPLOAD') DATA_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_DATA') LOGS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_LOGS') OUTPUTS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_OUTPUTS') REPOS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_REPOS') UPLOAD_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_UPLOAD') DATA_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_DATA') LOGS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_LOGS') OUTPUTS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_OUTPUTS') REPOS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_REPOS') # TODO: integrate subpaths UPLOAD_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_UPLOAD', is_optional=True) DATA_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_DATA', is_optional=True) LOGS_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_LOGS', is_optional=True) OUTPUTS_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_OUTPUTS',
from polyaxon.utils import config admin_name = config.get_string('POLYAXON_ADMIN_NAME') admin_mail = config.get_string('POLYAXON_ADMIN_MAIL') ADMINS = ( (admin_name, admin_mail), ) MANAGERS = ADMINS
from datetime import timedelta from kombu import Exchange, Queue from polyaxon.utils import config CELERY_TRACK_STARTED = True AMQP_URL = config.get_string('POLYAXON_AMQP_URL') RABBITMQ_USER = config.get_string( 'POLYAXON_RABBITMQ_USER', is_optional=True) 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'
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 SESSION_COOKIE_HTTPONLY = True DEFAULT_DB_ENGINE = 'django.db.backends.postgresql_psycopg2' DATABASES = { 'default': { 'ENGINE': config.get_string('POLYAXON_DB_ENGINE', is_optional=True) or DEFAULT_DB_ENGINE, 'NAME': config.get_string('POLYAXON_DB_NAME'), 'USER': config.get_string('POLYAXON_DB_USER'), 'PASSWORD': config.get_string('POLYAXON_DB_PASSWORD', is_secret=True), 'HOST': config.get_string('POLYAXON_DB_HOST'), 'PORT': config.get_string('POLYAXON_DB_PORT'), 'ATOMIC_REQUESTS': True } } LIST_TEMPLATE_CONTEXT_PROCESSORS = [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media',
import json import os from polyaxon.utils import config # dirs DIRS_DOCKER = config.get_string('POLYAXON_DIRS_DOCKER') DIRS_NVIDIA = config.get_string('POLYAXON_DIRS_NVIDIA') MOUNT_PATHS_NVIDIA = config.get_string('POLYAXON_MOUNT_PATHS_NVIDIA', is_optional=True) LD_LIBRARY_PATH = config.get_string('LD_LIBRARY_PATH', is_optional=True) DIRS_NVIDIA = json.loads(DIRS_NVIDIA) if DIRS_NVIDIA else {} MOUNT_PATHS_NVIDIA = json.loads(MOUNT_PATHS_NVIDIA) if MOUNT_PATHS_NVIDIA else {} if not all(list(DIRS_NVIDIA.keys())): DIRS_NVIDIA = {} if not all(list(MOUNT_PATHS_NVIDIA.keys())): MOUNT_PATHS_NVIDIA = {} if MOUNT_PATHS_NVIDIA: if 'bin' in MOUNT_PATHS_NVIDIA: # Update PATH with the nvidia bin os.environ['PATH'] = '{}:{}'.format(os.getenv('PATH', ''), MOUNT_PATHS_NVIDIA['bin'])
import json import os from polyaxon.utils import config # dirs DIRS_DOCKER = config.get_string('POLYAXON_DIRS_DOCKER') DIRS_NVIDIA = config.get_string('POLYAXON_DIRS_NVIDIA') MOUNT_PATHS_DOCKER = config.get_string('POLYAXON_MOUNT_PATHS_DOCKER') MOUNT_PATHS_NVIDIA = config.get_string('POLYAXON_MOUNT_PATHS_NVIDIA', is_optional=True) LD_LIBRARY_PATH = config.get_string('LD_LIBRARY_PATH', is_optional=True) DIRS_NVIDIA = json.loads(DIRS_NVIDIA) if DIRS_NVIDIA else {} MOUNT_PATHS_NVIDIA = json.loads(MOUNT_PATHS_NVIDIA) if MOUNT_PATHS_NVIDIA else {} if not all(list(DIRS_NVIDIA.keys())): DIRS_NVIDIA = {} if not all(list(MOUNT_PATHS_NVIDIA.keys())): MOUNT_PATHS_NVIDIA = {} if MOUNT_PATHS_NVIDIA: if 'bin' in MOUNT_PATHS_NVIDIA: # Update PATH with the nvidia bin os.environ['PATH'] = '{}:{}'.format(os.getenv('PATH', ''), MOUNT_PATHS_NVIDIA['bin'])
from polyaxon.utils import config SECRET_KEY = config.get_string('POLYAXON_SECRET_KEY', is_secret=True)
class RoutingKeys(object): LOGS_SIDECARS = config.get_string('POLYAXON_ROUTING_KEYS_LOGS_SIDECARS')
class CeleryQueues(object): """Celery Queues. N.B. make sure that the queue name is not < 128. """ REPOS = config.get_string('POLYAXON_QUEUES_REPOS') SCHEDULER_EXPERIMENTS = config.get_string( 'POLYAXON_QUEUES_SCHEDULER_EXPERIMENTS') SCHEDULER_EXPERIMENT_GROUPS = config.get_string( 'POLYAXON_QUEUES_SCHEDULER_EXPERIMENT_GROUPS') SCHEDULER_PROJECTS = config.get_string( 'POLYAXON_QUEUES_SCHEDULER_PROJECTS') SCHEDULER_BUILD_JOBS = config.get_string( 'POLYAXON_QUEUES_SCHEDULER_BUILD_JOBS') PIPELINES = config.get_string('POLYAXON_QUEUES_PIPELINES') CRONS_EXPERIMENTS = config.get_string('POLYAXON_QUEUES_CRONS_EXPERIMENTS') CRONS_PIPELINES = config.get_string('POLYAXON_QUEUES_CRONS_PIPELINES') CRONS_CLUSTERS = config.get_string('POLYAXON_QUEUES_CRONS_CLUSTERS') HP = config.get_string('POLYAXON_QUEUES_HP') EVENTS_NAMESPACE = config.get_string('POLYAXON_QUEUES_EVENTS_NAMESPACE') EVENTS_RESOURCES = config.get_string('POLYAXON_QUEUES_EVENTS_RESOURCES') EVENTS_JOB_STATUSES = config.get_string( 'POLYAXON_QUEUES_EVENTS_JOB_STATUSES') LOGS_SIDECARS = config.get_string('POLYAXON_QUEUES_LOGS_SIDECARS') STREAM_LOGS_SIDECARS = config.get_string( 'POLYAXON_QUEUES_STREAM_LOGS_SIDECARS')
# -*- 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',
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')
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
def get_service_api_url(): return config.get_string(API_KEY_NAME, is_optional=True)
from polyaxon.utils import config TRACKER_BACKEND_NOOP = 'noop' TRACKER_BACKEND_PUBLISHER = 'publisher' TRACKER_BACKEND = config.get_string( 'POLYAXON_TRACKER_BACKEND', is_optional=True, default=TRACKER_BACKEND_NOOP, options=(TRACKER_BACKEND_NOOP, TRACKER_BACKEND_PUBLISHER))
from polyaxon.utils import config TRACKER_BACKEND_NOOP = 'noop' TRACKER_BACKEND_PUBLISHER = 'publisher' TRACKER_BACKEND = config.get_string('POLYAXON_TRACKER_BACKEND', is_optional=True, default=TRACKER_BACKEND_NOOP, options=(TRACKER_BACKEND_NOOP, TRACKER_BACKEND_PUBLISHER))
from polyaxon.utils import config email_from = config.get_string('POLYAXON_EMAIL_FROM') email_host = config.get_string('POLYAXON_EMAIL_HOST') email_port = config.get_int('POLYAXON_EMAIL_PORT') email_host_user = config.get_string('POLYAXON_EMAIL_HOST_USER', is_optional=True) email_host_password = config.get_string('POLYAXON_EMAIL_HOST_PASSWORD', is_optional=True, is_secret=True) EMAIL_BACKEND = config.get_string( 'POLYAXON_EMAIL_BACKEND', is_optional=True, default='django.core.mail.backends.console.EmailBackend')
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)
import json from polyaxon.utils import config UPLOAD_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_UPLOAD') DATA_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_DATA') LOGS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_LOGS') OUTPUTS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_OUTPUTS') REPOS_ROOT = config.get_string('POLYAXON_MOUNT_PATHS_REPOS') UPLOAD_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_UPLOAD') DATA_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_DATA') LOGS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_LOGS') OUTPUTS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_OUTPUTS') REPOS_CLAIM_NAME = config.get_string('POLYAXON_CLAIM_NAMES_REPOS') # TODO: integrate subpaths UPLOAD_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_UPLOAD', is_optional=True) DATA_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_DATA', is_optional=True) LOGS_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_LOGS', is_optional=True) OUTPUTS_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_OUTPUTS', is_optional=True) REPOS_SUB_PATHS = config.get_string('POLYAXON_SUB_PATHS_REPOS', is_optional=True) # Extra persistence volumes EXTRA_PERSISTENCES = config.get_string('POLYAXON_EXTRA_PERSISTENCES', is_optional=True) if EXTRA_PERSISTENCES: EXTRA_PERSISTENCES = json.loads(EXTRA_PERSISTENCES)
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function import json import os from polyaxon.utils import config # dirs DIRS_DOCKER = config.get_string('POLYAXON_DIRS_DOCKER') DIRS_NVIDIA = config.get_string('POLYAXON_DIRS_NVIDIA') MOUNT_PATHS_NVIDIA = config.get_string('POLYAXON_MOUNT_PATHS_NVIDIA') LD_LIBRARY_PATH = config.get_string('LD_LIBRARY_PATH') DIRS_NVIDIA = json.loads(DIRS_NVIDIA) if DIRS_NVIDIA else {} MOUNT_PATHS_NVIDIA = json.loads( MOUNT_PATHS_NVIDIA) if MOUNT_PATHS_NVIDIA else {} if not all(list(DIRS_NVIDIA.keys())): DIRS_NVIDIA = {} if not all(list(MOUNT_PATHS_NVIDIA.keys())): MOUNT_PATHS_NVIDIA = {} if MOUNT_PATHS_NVIDIA: if 'bin' in MOUNT_PATHS_NVIDIA: # Update PATH with the nvidia bin os.environ['PATH'] = '{}:{}'.format(os.getenv('PATH', ''), MOUNT_PATHS_NVIDIA['bin'])
from polyaxon.utils import config CLI_MIN_VERSION = config.get_string('POLYAXON_CLI_MIN_VERSION', is_optional=True) or '0.0.0' CLI_LATEST_VERSION = config.get_string('POLYAXON_CLI_LATEST_VERSION', is_optional=True) or '0.0.0' PLATFORM_MIN_VERSION = config.get_string('POLYAXON_PLATFORM_MIN_VERSION', is_optional=True) or '0.0.0' PLATFORM_LATEST_VERSION = config.get_string('POLYAXON_PLATFORM_LATEST_VERSION', is_optional=True) or '0.0.0' LIB_MIN_VERSION = config.get_string('POLYAXON_LIB_MIN_VERSION', is_optional=True) or '0.0.0' LIB_LATEST_VERSION = config.get_string('POLYAXON_LIB_LATEST_VERSION', is_optional=True) or '0.0.0' CHART_VERSION = config.get_string('POLYAXON_CHART_VERSION', is_optional=True) or '0.0.0'
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function from polyaxon.utils import config email_from = config.get_string('POLYAXON_EMAIL_FROM') email_host = config.get_string('POLYAXON_EMAIL_HOST') email_port = config.get_int('POLYAXON_EMAIL_PORT') email_host_user = config.get_string('POLYAXON_EMAIL_HOST_USER', is_optional=True) email_host_password = config.get_string('POLYAXON_EMAIL_HOST_PASSWORD', is_optional=True, is_secret=True) EMAIL_BACKEND = config.get_string('POLYAXON_EMAIL_BACKEND', is_optional=True) if EMAIL_BACKEND is None: EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
from polyaxon.utils import config email_from = config.get_string('POLYAXON_EMAIL_FROM') email_host = config.get_string('POLYAXON_EMAIL_HOST') email_port = config.get_int('POLYAXON_EMAIL_PORT') email_host_user = config.get_string('POLYAXON_EMAIL_HOST_USER', is_optional=True) email_host_password = config.get_string('POLYAXON_EMAIL_HOST_PASSWORD', is_optional=True, is_secret=True) EMAIL_BACKEND = config.get_string('POLYAXON_EMAIL_BACKEND', is_optional=True, default='django.core.mail.backends.console.EmailBackend')