Beispiel #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'))
Beispiel #2
0
class RoutingKeys(object):
    LOGS_SIDECARS_EXPERIMENTS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_EXPERIMENTS')
    LOGS_SIDECARS_JOBS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_JOBS')
    LOGS_SIDECARS_BUILDS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_BUILDS')
Beispiel #3
0
def get_allowed_hosts():
    allowed_hosts = config.get_string('POLYAXON_ALLOWED_HOSTS',
                                      is_optional=True,
                                      is_list=True,
                                      default=['*'])
    allowed_hosts.append('.polyaxon.com')
    k8s_api_host = config.get_string('POLYAXON_K8S_API_HOST', is_optional=True)
    if k8s_api_host:
        allowed_hosts.append(k8s_api_host)

    return allowed_hosts
Beispiel #4
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)
Beispiel #5
0
class RoutingKeys(object):
    LOGS_SIDECARS_EXPERIMENTS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_EXPERIMENTS',
        is_optional=True,
        default='logs.sidecars.experiments')
    LOGS_SIDECARS_JOBS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_JOBS',
        is_optional=True,
        default='logs.sidecars.jobs')
    LOGS_SIDECARS_BUILDS = config.get_string(
        'POLYAXON_ROUTING_KEYS_LOGS_SIDECARS_BUILDS',
        is_optional=True,
        default='logs.sidecars.builds')
Beispiel #6
0
def get_external_registries():
    registries = []
    for key in config.params_startswith(PRIVATE_REGISTRIES_PREFIX):
        registry_spec = config.get_string(key, is_secret=True)
        registry_spec = config.parse_uri_spec(registry_spec)
        if registry_spec:
            registries.append(registry_spec)

    return registries
Beispiel #7
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'))
    EPHEMERAL_TOKENS = redis.ConnectionPool.from_url(
        config.get_string('POLYAXON_REDIS_EPHEMERAL_TOKENS_URL'))
    TTL = redis.ConnectionPool.from_url(
        config.get_string('POLYAXON_REDIS_TTL_URL'))
    HEARTBEAT = redis.ConnectionPool.from_url(
        config.get_string('POLYAXON_HEARTBEAT_URL'))
    GROUP_CHECKS = redis.ConnectionPool.from_url(
        config.get_string('POLYAXON_GROUP_CHECKS_URL'))
Beispiel #8
0
def get_external_registries():
    registries = []
    for key in config.params_startswith(PRIVATE_REGISTRIES_PREFIX):

        try:
            registry_dict = config.get_dict(key, is_secret=True)
            registry_spec = UriSpec(**registry_dict)
        except RheaError:
            registry_spec = config.get_string(key, is_secret=True)
            try:
                # We might get this value from a chart with `toJson` applied.
                registry_spec = json.loads(registry_spec)
            except json.decoder.JSONDecodeError:
                pass

            registry_spec = config.parse_uri_spec(registry_spec)

        if registry_spec:
            registries.append(registry_spec)

    return registries
Beispiel #9
0
from polyaxon.config_manager import config

OAUTH_GITHUB_VERIFICATION_SCHEDULE = config.get_int(
    'POLYAXON_AUTH_GITHUB_VERIFICATION_SCHEDULE', is_optional=True, default=0)
OAUTH_GITHUB_CLIENT_ID = config.get_string('POLYAXON_AUTH_GITHUB_CLIENT_ID',
                                           is_optional=True,
                                           is_secret=True)
OAUTH_GITHUB_CLIENT_SECRET = config.get_string(
    'POLYAXON_AUTH_GITHUB_CLIENT_SECRET', is_optional=True, is_secret=True)
OAUTH_GITHUB_ENABLED = config.get_boolean('POLYAXON_AUTH_GITHUB',
                                          is_optional=True,
                                          default=False)

OAUTH_BITBUCKET_VERIFICATION_SCHEDULE = config.get_int(
    'POLYAXON_AUTH_BITBUCKET_VERIFICATION_SCHEDULE',
    is_optional=True,
    default=0)
OAUTH_BITBUCKET_CLIENT_ID = config.get_string(
    'POLYAXON_AUTH_BITBUCKET_CLIENT_ID', is_optional=True, is_secret=True)
OAUTH_BITBUCKET_CLIENT_SECRET = config.get_string(
    'POLYAXON_AUTH_BITBUCKET_CLIENT_SECRET', is_optional=True, is_secret=True)
OAUTH_BITBUCKET_ENABLED = config.get_boolean('POLYAXON_AUTH_BITBUCKET',
                                             is_optional=True,
                                             default=False)

OAUTH_GITLAB_VERIFICATION_SCHEDULE = config.get_int(
    'POLYAXON_AUTH_GITLAB_VERIFICATION_SCHEDULE', is_optional=True, default=0)
OAUTH_GITLAB_URL = config.get_string('POLYAXON_AUTH_GITLAB_URL',
                                     is_optional=True,
                                     is_secret=True)
OAUTH_GITLAB_CLIENT_ID = config.get_string('POLYAXON_AUTH_GITLAB_CLIENT_ID',
Beispiel #10
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')
class CeleryQueues(object):
    """Celery Queues.

    N.B. make sure that the queue name is not < 128.
    """
    REPOS = config.get_string('POLYAXON_QUEUES_REPOS')

    SCHEDULER_HEALTH = config.get_string('POLYAXON_QUEUES_SCHEDULER_HEALTH')
    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_STORES = config.get_string('POLYAXON_QUEUES_SCHEDULER_STORES')
    SCHEDULER_BUILD_JOBS = config.get_string(
        'POLYAXON_QUEUES_SCHEDULER_BUILD_JOBS')
    SCHEDULER_JOBS = config.get_string('POLYAXON_QUEUES_SCHEDULER_JOBS')

    PIPELINES_HEALTH = config.get_string('POLYAXON_QUEUES_PIPELINES_HEALTH')
    PIPELINES = config.get_string('POLYAXON_QUEUES_PIPELINES')

    CRONS_HEALTH = config.get_string('POLYAXON_QUEUES_CRONS_HEALTH')
    CRONS_HEARTBEAT = config.get_string('POLYAXON_QUEUES_CRONS_HEARTBEAT')
    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')
    CRONS_CLEAN = config.get_string('POLYAXON_QUEUES_CRONS_CLEAN')

    HP_HEALTH = config.get_string('POLYAXON_QUEUES_HP_HEALTH')
    HP = config.get_string('POLYAXON_QUEUES_HP')

    EVENTS_HEALTH = config.get_string('POLYAXON_QUEUES_EVENTS_HEALTH')
    EVENTS_NOTIFY = config.get_string('POLYAXON_QUEUES_EVENTS_NOTIFY')
    EVENTS_LOG = config.get_string('POLYAXON_QUEUES_EVENTS_LOG')
    EVENTS_TRACK = config.get_string('POLYAXON_QUEUES_EVENTS_TRACK')

    K8S_EVENTS_HEALTH = config.get_string('POLYAXON_QUEUES_K8S_EVENTS_HEALTH')
    K8S_EVENTS_NAMESPACE = config.get_string(
        'POLYAXON_QUEUES_K8S_EVENTS_NAMESPACE')
    K8S_EVENTS_RESOURCES = config.get_string(
        'POLYAXON_QUEUES_K8S_EVENTS_RESOURCES')
    K8S_EVENTS_JOB_STATUSES = config.get_string(
        'POLYAXON_QUEUES_K8S_EVENTS_JOB_STATUSES')

    LOGS_HEALTH = config.get_string('POLYAXON_QUEUES_LOGS_HEALTH')
    LOGS_SIDECARS = config.get_string('POLYAXON_QUEUES_LOGS_SIDECARS')
    LOGS_HANDLERS = config.get_string('POLYAXON_QUEUES_LOGS_HANDLERS')
    STREAM_LOGS_SIDECARS = config.get_string(
        'POLYAXON_QUEUES_STREAM_LOGS_SIDECARS')
Beispiel #12
0
from polyaxon.config_manager import config

PUBLIC_PLUGIN_JOBS = config.get_boolean('POLYAXON_PUBLIC_PLUGIN_JOBS', is_optional=True)

# k8s
K8S_SERVICE_ACCOUNT_NAME = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_NAME')
K8S_SERVICE_ACCOUNT_EXPERIMENTS = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_EXPERIMENTS',
                                                    is_optional=True)
K8S_SERVICE_ACCOUNT_JOBS = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_JOBS',
                                             is_optional=True)
K8S_SERVICE_ACCOUNT_BUILDS = config.get_string('POLYAXON_K8S_SERVICE_ACCOUNT_BUILDS',
                                               is_optional=True)
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)

# Builds
BUILD_ALWAYS_PULL_LATEST = config.get_boolean('POLYAXON_BUILD_ALWAYS_PULL_LATEST',
                                              is_optional=True,
                                              default=False)

# Refs
REFS_SECRETS = config.get_string('POLYAXON_REFS_SECRETS',
                                 is_optional=True,
                                 is_list=True,
                                 default=())
REFS_CONFIG_MAPS = config.get_string('POLYAXON_REFS_CONFIG_MAPS',
                                     is_optional=True,
                                     is_list=True,
                                     default=())
Beispiel #13
0
from polyaxon.config_manager import config

ADMIN_BACKEND = config.get_string('POLYAXON_ADMIN_BACKEND', is_optional=True)
admin_name = config.get_string('POLYAXON_ADMIN_NAME', is_optional=True)
admin_mail = config.get_string('POLYAXON_ADMIN_MAIL', is_optional=True)

if admin_mail and admin_mail:
    ADMINS = ((admin_name, admin_mail), )
    MANAGERS = ADMINS
Beispiel #14
0
from polyaxon.config_manager 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_INTERNAL_PORT = config.get_int(
    'POLYAXON_K8S_API_INTERNAL_PORT', is_optional=True, default=80)
POLYAXON_K8S_STREAM_INTERNAL_PORT = config.get_int(
    'POLYAXON_K8S_STREAM_INTERNAL_PORT', is_optional=True, default=1337)
POLYAXON_K8S_API_HTTP_PORT = config.get_int('POLYAXON_K8S_API_HTTP_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')
POLYAXON_K8S_DB_SECRET_NAME = config.get_string('POLYAXON_K8S_DB_SECRET_NAME')
POLYAXON_K8S_REGISTRY_SECRET_NAME = config.get_string(
    'POLYAXON_K8S_REGISTRY_SECRET_NAME', 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:
    import urllib3

    from kubernetes import client
Beispiel #15
0
from polyaxon.config_manager import config

REPOS_ACCESS_TOKEN_KEY = 'POLYAXON_REPOS_ACCESS_TOKEN'
REPOS_ACCESS_TOKEN = config.get_string(REPOS_ACCESS_TOKEN_KEY,
                                       is_optional=True,
                                       is_secret=True)
Beispiel #16
0
import json

from rhea import RheaError
from rhea.manager import UriSpec

from polyaxon.config_manager 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)
PRIVATE_REGISTRIES_PREFIX = 'POLYAXON_PRIVATE_REGISTRY_'


def get_external_registries():
    registries = []
    for key in config.params_startswith(PRIVATE_REGISTRIES_PREFIX):

        try:
            registry_dict = config.get_dict(key, is_secret=True)
            registry_spec = UriSpec(**registry_dict)
        except RheaError:
            registry_spec = config.get_string(key, is_secret=True)
            try:
                # We might get this value from a chart with `toJson` applied.
                registry_spec = json.loads(registry_spec)
Beispiel #17
0
from corsheaders.defaults import default_headers

from polyaxon.config_manager 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'
Beispiel #18
0
from polyaxon.config_manager 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')
K8S_TPU_RESOURCE_KEY = config.get_string('POLYAXON_K8S_TPU_RESOURCE_KEY',
                                         is_optional=True,
                                         default='cloud-tpus.google.com/v2')
CONF_BACKEND = config.get_string('POLYAXON_CONF_BACKEND', is_optional=True)
CLUSTER_ID = config.cluster_id
REPOS_ARCHIVE_ROOT = '/tmp/archived_repos'
OUTPUTS_ARCHIVE_ROOT = '/tmp/archived_outputs'
OUTPUTS_DOWNLOAD_ROOT = '/tmp/download_outputs'
LOGS_DOWNLOAD_ROOT = '/tmp/download_logs'
LOGS_ARCHIVE_ROOT = '/tmp/archived_logs'
FILE_UPLOAD_PERMISSIONS = 0o644
ADMIN_VIEW_ENABLED = config.get_boolean('POLYAXON_ADMIN_VIEW_ENABLED',
                                        is_optional=True,
                                        default=False)
# Global Async Countdown
GLOBAL_COUNTDOWN = config.get_int('POLYAXON_GLOBAL_COUNTDOWN',
                                  is_optional=True,
                                  default=1)
# Heartbeat timeout (status -> failed as zombie)
TTL_HEARTBEAT = config.get_int('POLYAXON_TTL_HEARTBEAT',
                               is_optional=True,
                               default=60 * 30)
# Token time in days
Beispiel #19
0
from polyaxon.config_manager import config

DEFAULT_APPS = (
    'polyaxon',
    'encryptor.apps.EncryptorConfig',
    'db.apps.DBConfig',
    'conf.apps.ConfConfig',
    'features.apps.FeaturesConfig',
)

EXTRA_APPS = config.get_string('POLYAXON_EXTRA_APPS', is_list=True, is_optional=True)
EXTRA_APPS = tuple(EXTRA_APPS) if EXTRA_APPS else ()

THIRD_PARTY_APPS = (
    'rest_framework',
    'corsheaders',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'raven.contrib.django.raven_compat',
)

INSTALLED_APPS += THIRD_PARTY_APPS + DEFAULT_APPS + EXTRA_APPS
Beispiel #20
0
from polyaxon.config_manager import config

API_HOST = config.get_string('POLYAXON_API_HOST', is_optional=True)
Beispiel #21
0
from polyaxon.config_manager 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_RUNNER = config.get_string('POLYAXON_TYPE_LABELS_RUNNER')

# Labels
APP_LABELS_TENSORBOARD = config.get_string('POLYAXON_APP_LABELS_TENSORBOARD',
                                           is_optional=True,
                                           default='polyaxon-tensorboard')
APP_LABELS_NOTEBOOK = config.get_string('POLYAXON_APP_LABELS_NOTEBOOK',
                                        is_optional=True,
                                        default='polyaxon-notebook')
Beispiel #22
0
from polyaxon.config_manager import config

# Labels
APP_LABELS_TENSORBOARD = config.get_string('POLYAXON_APP_LABELS_TENSORBOARD',
                                           is_optional=True,
                                           default='polyaxon-tensorboard')
APP_LABELS_NOTEBOOK = config.get_string('POLYAXON_APP_LABELS_NOTEBOOK',
                                        is_optional=True,
                                        default='polyaxon-notebook')
APP_LABELS_DOCKERIZER = config.get_string('POLYAXON_APP_LABELS_DOCKERIZER',
                                          is_optional=True,
                                          default='polyaxon-dockerizer')
APP_LABELS_EXPERIMENT = config.get_string('POLYAXON_APP_LABELS_EXPERIMENT',
                                          is_optional=True,
                                          default='polyaxon-experiment')
APP_LABELS_JOB = config.get_string('POLYAXON_APP_LABELS_JOB',
                                   is_optional=True,
                                   default='polyaxon-job')
Beispiel #23
0
from polyaxon.config_manager import config

ALLOW_USER_PROJECTS = config.get_boolean('POLYAXON_ALLOW_USER_PROJECTS',
                                         is_optional=True,
                                         default=True)
OWNER_TYPES = config.get_string('POLYAXON_OWNER_TYPES',
                                is_optional=True,
                                is_list=True,
                                default=['user'])
ROLES = config.get_dict('POLYAXON_ROLES',
                        is_optional=True,
                        is_list=True,
                        default=[])
DEFAULT_ROLE = config.get_string('POLYAXON_DEFAULT_ROLE',
                                 is_optional=True,
                                 default='dummy')
SCOPE_ROLES = config.get_dict_of_dicts('POLYAXON_SCOPE_ROLES',
                                       is_optional=True,
                                       default={})
Beispiel #24
0
def get_http_api_url() -> Optional[str]:
    return config.get_string(API_HTTP_URL, is_optional=True)
from datetime import timedelta

from kombu import Exchange, Queue

from polyaxon.config_manager 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)
BROKER_POOL_LIMIT = None

if RABBITMQ_USER and RABBITMQ_PASSWORD:
    CELERY_BROKER_URL = 'amqp://{user}:{password}@{url}'.format(
        user=RABBITMQ_USER, password=RABBITMQ_PASSWORD, url=AMQP_URL)

# todo: fix me at some point
CELERY_BROKER_URL = 'amqp://{url}'.format(url=AMQP_URL)

INTERNAL_EXCHANGE = config.get_string('POLYAXON_INTERNAL_EXCHANGE',
                                      is_optional=True,
                                      default='internal')

CELERY_RESULT_BACKEND = config.get_string(
    'POLYAXON_REDIS_CELERY_RESULT_BACKEND_URL')
CELERYD_PREFETCH_MULTIPLIER = config.get_int(
    'POLYAXON_CELERYD_PREFETCH_MULTIPLIER')
Beispiel #26
0
def get_ws_api_url() -> Optional[str]:
    return config.get_string(API_WS_HOST, is_optional=True)
Beispiel #27
0
from datetime import timedelta

from kombu import Exchange, Queue

from polyaxon.config_manager 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'
Beispiel #28
0
from polyaxon.config_manager 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')
CLUSTER_ID = config.cluster_id
REPOS_ARCHIVE_ROOT = '/tmp/archived_repos'
OUTPUTS_ARCHIVE_ROOT = '/tmp/archived_outputs'
OUTPUTS_DOWNLOAD_ROOT = '/tmp/download_outputs'
LOGS_ARCHIVE_ROOT = '/tmp/archived_logs'
FILE_UPLOAD_PERMISSIONS = 0o644
ADMIN_VIEW_ENABLED = config.get_boolean('POLYAXON_ADMIN_VIEW_ENABLED',
                                        is_optional=True,
                                        default=False)
# Heartbeat timeout (status -> failed as zombie)
HEARTBEAT_TIMEOUT = config.get_int('POLYAXON_HEARTBEAT_TIMEOUT',
                                   is_optional=True,
                                   default=60 * 30)
# Token time in days
TOKEN_TTL = config.get_int('POLYAXON_TOKEN_TTL',
                           is_optional=True,
                           default=30)
# Ephemeral token ttl
EPHEMERAL_TOKEN_TTL = config.get_int('POLYAXON_EPHEMERAL_TOKEN_TTL',
                                     is_optional=True,
                                     default=60 * 60 * 3)

# Group checks interval
Beispiel #29
0
class RoutingKeys(object):
    LOGS_SIDECARS = config.get_string('POLYAXON_ROUTING_KEYS_LOGS_SIDECARS')
Beispiel #30
0
import json

from polyaxon.config_manager import config

INTEGRATIONS_SLACK_WEBHOOKS = config.get_string(
    'POLYAXON_INTEGRATIONS_SLACK_WEBHOOKS', is_optional=True, is_local=True)

if INTEGRATIONS_SLACK_WEBHOOKS:
    # Parse the web hooks
    INTEGRATIONS_SLACK_WEBHOOKS = json.loads(INTEGRATIONS_SLACK_WEBHOOKS)
    if not isinstance(INTEGRATIONS_SLACK_WEBHOOKS, list):
        INTEGRATIONS_SLACK_WEBHOOKS = None