コード例 #1
0
 def _get_container_pod_env_vars(self, persistence_outputs,
                                 persistence_data, outputs_refs_jobs,
                                 outputs_refs_experiments, ephemeral_token):
     logs_path = self._get_logs_path()
     outputs_path = self._get_outputs_path(
         persistence_outputs=persistence_outputs)
     env_vars = get_job_env_vars(
         namespace=self.namespace,
         persistence_outputs=persistence_outputs,
         outputs_path=outputs_path,
         persistence_data=persistence_data,
         log_level=self.log_level,
         logs_path=logs_path,
         outputs_refs_jobs=outputs_refs_jobs,
         outputs_refs_experiments=outputs_refs_experiments,
         ephemeral_token=ephemeral_token,
     )
     return env_vars + [
         get_env_var(name=constants.CONFIG_MAP_CLUSTER_KEY_NAME,
                     value=json.dumps(self.cluster_def)),
         get_env_var(name=constants.CONFIG_MAP_PARAMS_KEY_NAME,
                     value=self.params),
         get_env_var(name=constants.CONFIG_MAP_EXPERIMENT_INFO_KEY_NAME,
                     value=json.dumps(self.experiment_labels)),
     ]
コード例 #2
0
 def test_env_vars(self):
     # String value
     env_var = get_env_var(name='foo', value='bar')
     assert env_var.name == 'foo'
     assert env_var.value == 'bar'
     # Int value
     env_var = get_env_var(name='foo', value=1)
     assert env_var.name == 'foo'
     assert env_var.value == '1'
     # Dict value
     env_var = get_env_var(name='foo', value={'moo': 'bar'})
     assert env_var.name == 'foo'
     assert env_var.value == '{"moo": "bar"}'
コード例 #3
0
ファイル: pytorch.py プロジェクト: yutiansut/polyaxon
 def get_env_vars(self, task_type, task_idx):
     if task_type == TaskType.MASTER:
         rank = 0
         master_addr = 'localhost'
     else:
         rank = task_idx + 1
         master_addr = self.resource_manager.get_resource_name(task_type=TaskType.MASTER,
                                                               task_idx=0)
     env_vars = [
         get_env_var(name='MASTER_ADDR', value=master_addr),
         get_env_var(name='MASTER_PORT', value=self.ports[0]),
         get_env_var(name='WORLD_SIZE', value=self.get_n_pods(TaskType.WORKER) + 1),
         get_env_var(name='RANK', value=rank)
     ]
     return env_vars
コード例 #4
0
def get_sidecar_container(job_container_name,
                          sidecar_container_name,
                          sidecar_docker_image,
                          sidecar_docker_image_pull_policy,
                          namespace,
                          sidecar_config,
                          sidecar_args,
                          internal_health_check_url,
                          internal_reconcile_url,
                          volume_mounts,
                          env_vars=None):
    """Return a pod sidecar container."""
    env_vars = to_list(env_vars) if env_vars else []
    env_vars += get_sidecar_env_vars(
        namespace=namespace,
        job_container_name=job_container_name,
        internal_health_check_url=internal_health_check_url,
        internal_reconcile_url=internal_reconcile_url)
    for k, v in sidecar_config.items():
        env_vars.append(get_env_var(name=k, value=v))
    return client.V1Container(
        name=sidecar_container_name,
        image=sidecar_docker_image,
        image_pull_policy=sidecar_docker_image_pull_policy,
        command=get_sidecar_command(),
        env=env_vars,
        volume_mounts=volume_mounts,
        resources=get_sidecar_resources(),
        args=sidecar_args)
コード例 #5
0
def get_sidecar_env_vars(namespace, job_container_name,
                         internal_health_check_url, internal_reconcile_url):
    env_vars = get_internal_env_vars(
        namespace=namespace,
        service_internal_header=InternalServices.SIDECAR,
        authentication_type=AuthenticationTypes.INTERNAL_TOKEN,
        include_internal_token=True)

    return env_vars + [
        get_env_var(name='POLYAXON_CONTAINER_ID', value=job_container_name),
        get_env_var(name='POLYAXON_INTERNAL_HEALTH_CHECK_URL',
                    value=internal_health_check_url),
        get_env_var(name='POLYAXON_INTERNAL_RECONCILE_URL',
                    value=internal_reconcile_url),
        get_from_field_ref(name='POLYAXON_POD_ID', field_path='metadata.name'),
    ]
コード例 #6
0
 def _get_container_pod_env_vars(self, persistence_outputs,
                                 persistence_data, outputs_refs_jobs,
                                 outputs_refs_experiments, ephemeral_token):
     return [
         get_env_var(name=constants.CONFIG_MAP_JOB_INFO_KEY_NAME,
                     value=json.dumps(self.labels)),
     ]
コード例 #7
0
ファイル: tensorflow.py プロジェクト: yutiansut/polyaxon
 def get_env_vars(self, task_type, task_idx):
     tf_config = {
         'cluster': self.get_cluster(),
         'task': {'type': task_type, 'index': task_idx},
         'model_dir': stores.get_experiment_outputs_path(
             persistence=self.persistence_config.outputs,
             experiment_name=self.experiment_name,
             cloning_strategy=self.cloning_strategy),
         'environment': 'cloud'
     }
     return get_env_var(name='TF_CONFIG', value=tf_config)
コード例 #8
0
 def get_init_container(self, init_command, init_args, env_vars,
                        context_mounts, persistence_outputs,
                        persistence_data):
     """Pod init container for setting outputs path."""
     env_vars = to_list(env_vars, check_none=True)
     env_vars += [
         get_env_var(name=constants.CONFIG_MAP_JOB_INFO_KEY_NAME,
                     value=json.dumps(self.labels)),
     ]
     return client.V1Container(
         name=self.init_container_name,
         image=self.init_docker_image,
         image_pull_policy=self.init_docker_image_pull_policy,
         command=init_command,
         env=env_vars,
         args=init_args,
         resources=get_init_resources(),
         volume_mounts=context_mounts)
コード例 #9
0
    def get_env_vars(self, task_type, task_idx):
        role = TaskType.SCHEDULER if task_type == TaskType.MASTER else task_type
        env_vars = [
            get_env_var(name='DMLC_NUM_WORKER',
                        value=self.get_n_pods(TaskType.WORKER)),
            get_env_var(name='DMLC_NUM_SERVER',
                        value=self.get_n_pods(TaskType.SERVER)),
            get_env_var(name='DMLC_PS_ROOT_URI',
                        value=self.resource_manager.get_resource_name(
                            task_type=TaskType.MASTER, task_idx=0)),
            get_env_var(name='DMLC_PS_ROOT_PORT', value=self.ports[0]),
            get_env_var(name='DMLC_ROLE', value=role)
        ]
        if task_type == TaskType.SERVER:
            env_vars.append(get_env_var(name='DMLC_SERVER_ID', value=task_idx))
        elif task_type == TaskType.WORKER:
            env_vars.append(get_env_var(name='DMLC_SERVER_ID', value=0))
            env_vars.append(get_env_var(name='DMLC_WORKER_ID', value=task_idx))

        return env_vars
コード例 #10
0
ファイル: manager.py プロジェクト: yutiansut/polyaxon
 def _get_container_pod_env_vars(self, persistence_outputs,
                                 persistence_data, outputs_refs_jobs,
                                 outputs_refs_experiments, ephemeral_token):
     logs_path = self._get_logs_path()
     outputs_path = self._get_outputs_path(
         persistence_outputs=persistence_outputs)
     env_vars = get_job_env_vars(
         namespace=self.namespace,
         persistence_outputs=persistence_outputs,
         outputs_path=outputs_path,
         persistence_data=persistence_data,
         log_level=self.log_level,
         logs_path=logs_path,
         outputs_refs_jobs=outputs_refs_jobs,
         outputs_refs_experiments=outputs_refs_experiments,
         ephemeral_token=ephemeral_token,
     )
     return env_vars + [
         get_env_var(name=constants.CONFIG_MAP_NOTEBOOK_INFO_KEY_NAME,
                     value=json.dumps(self.labels)),
     ]