Example #1
0
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'))
Example #2
0
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')
Example #3
0
 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)
Example #4
0
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'
Example #5
0
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(
Example #6
0
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'
Example #7
0
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:
Example #8
0
            ],
            '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
Example #9
0
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)
Example #10
0
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)
Example #11
0
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:
Example #12
0
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')
Example #13
0
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'
Example #14
0
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)
Example #15
0
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')
Example #16
0
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(
Example #17
0
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
Example #18
0
# -*- 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
Example #19
0
            '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
Example #20
0
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
Example #21
0
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)
Example #22
0
# -*- 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',
Example #23
0
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
Example #24
0
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'
Example #25
0
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',
Example #26
0
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'])
Example #27
0
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'])
Example #28
0
from polyaxon.utils import config

SECRET_KEY = config.get_string('POLYAXON_SECRET_KEY', is_secret=True)
Example #29
0
class RoutingKeys(object):
    LOGS_SIDECARS = config.get_string('POLYAXON_ROUTING_KEYS_LOGS_SIDECARS')
Example #30
0
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')
Example #31
0
# -*- 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',
Example #32
0
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')
Example #33
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
Example #34
0
def get_service_api_url():
    return config.get_string(API_KEY_NAME, is_optional=True)
Example #35
0
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))
Example #36
0
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))
Example #37
0
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')
Example #38
0
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)
Example #39
0
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)
Example #40
0
# -*- 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'])
Example #41
0
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'
Example #42
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'
Example #43
0
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')