def _create_job(self, task_type, task_idx, add_service, command=None, args=None, env_vars=None, resources=None, node_selector=None, restart_policy='Never'): job_name = self.pod_manager.get_job_name(task_type=task_type, task_idx=task_idx) sidecar_args = get_sidecar_args(pod_id=job_name) labels = self.pod_manager.get_labels(task_type=task_type, task_idx=task_idx) volumes, volume_mounts = get_pod_volumes( persistence_outputs=self.persistence_config.outputs, persistence_data=self.persistence_config.data) refs_volumes, refs_volume_mounts = get_pod_refs_outputs_volumes( outputs_refs=self.outputs_refs_jobs, persistence_outputs=self.persistence_config.outputs) volumes += refs_volumes volume_mounts += refs_volume_mounts refs_volumes, refs_volume_mounts = get_pod_refs_outputs_volumes( outputs_refs=self.outputs_refs_experiments, persistence_outputs=self.persistence_config.outputs) volumes += refs_volumes volume_mounts += refs_volume_mounts pod = self.pod_manager.get_pod( task_type=task_type, task_idx=task_idx, volume_mounts=volume_mounts, volumes=volumes, labels=labels, env_vars=env_vars, command=command, args=args, sidecar_args=sidecar_args, persistence_outputs=self.persistence_config.outputs, persistence_data=self.persistence_config.data, outputs_refs_jobs=self.outputs_refs_jobs, outputs_refs_experiments=self.outputs_refs_experiments, resources=resources, node_selector=node_selector, restart_policy=restart_policy) pod_resp, _ = self.create_or_update_pod(name=job_name, data=pod) results = {'pod': pod_resp.to_dict()} if add_service: service = services.get_service(namespace=self.namespace, name=job_name, labels=labels, ports=self.pod_manager.ports, target_ports=self.pod_manager.ports) service_resp, _ = self.create_or_update_service(name=job_name, data=service) results['service'] = service_resp.to_dict() return results
def get_sidecar_container(self): """Pod sidecar container for job logs.""" return get_sidecar_container( job_name=self.k8s_job_name, job_container_name=self.job_container_name, sidecar_container_name=self.sidecar_container_name, sidecar_docker_image=self.sidecar_docker_image, namespace=self.namespace, app_label=self.app_label, sidecar_config=self.sidecar_config, sidecar_args=get_sidecar_args(pod_id=self.k8s_job_name))
def get_sidecar_container(self): """Pod sidecar container for job logs.""" return get_sidecar_container( job_name=self.job_name, job_container_name=self.job_container_name, sidecar_container_name=self.sidecar_container_name, sidecar_docker_image=self.sidecar_docker_image, namespace=self.namespace, app_label=self.app_label, sidecar_config=self.sidecar_config, sidecar_args=get_sidecar_args(pod_id=self.pod_name))
def get_sidecar_container(self, volume_mounts): """Pod sidecar container for task logs.""" return get_sidecar_container( job_container_name=self.job_container_name, sidecar_container_name=self.sidecar_container_name, sidecar_docker_image=self.sidecar_docker_image, sidecar_docker_image_pull_policy=self.sidecar_docker_image_pull_policy, namespace=self.namespace, sidecar_config=self.sidecar_config, sidecar_args=get_sidecar_args(container_id=self.job_container_name, app_label=self.app_label), internal_health_check_url=self.health_check_url, volume_mounts=volume_mounts)
def get_sidecar_container(self, resource_name): """Pod sidecar container for task logs.""" return get_sidecar_container( resource_name=resource_name, job_container_name=self.job_container_name, sidecar_container_name=self.sidecar_container_name, sidecar_docker_image=self.sidecar_docker_image, sidecar_docker_image_pull_policy=self.sidecar_docker_image_pull_policy, namespace=self.namespace, sidecar_config=self.sidecar_config, sidecar_args=get_sidecar_args(pod_id=resource_name, container_id=self.job_container_name, app_label=self.app_label), internal_health_check_url=self.health_check_url)
def _create_job(self, task_type, task_idx, add_service, command=None, args=None, env_vars=None, resources=None, node_selector=None, restart_policy='Never'): job_name = self.pod_manager.get_job_name(task_type=task_type, task_idx=task_idx) sidecar_args = get_sidecar_args(pod_id=job_name) labels = self.pod_manager.get_labels(task_type=task_type, task_idx=task_idx) volumes, volume_mounts = get_pod_volumes() pod = self.pod_manager.get_pod(task_type=task_type, task_idx=task_idx, volume_mounts=volume_mounts, volumes=volumes, env_vars=env_vars, command=command, args=args, sidecar_args=sidecar_args, resources=resources, node_selector=node_selector, restart_policy=restart_policy) pod_resp, _ = self.create_or_update_pod(name=job_name, data=pod) service = services.get_service(namespace=self.namespace, name=job_name, labels=labels, ports=self.pod_manager.ports, target_ports=self.pod_manager.ports) results = {'pod': pod_resp.to_dict()} if add_service: service_resp, _ = self.create_or_update_service(name=job_name, data=service) results['service'] = service_resp.to_dict() return results
def _create_job(self, task_type, task_idx, add_service, command=None, args=None, env_vars=None, resources=None, node_selector=None, affinity=None, tolerations=None, restart_policy='Never'): ephemeral_token = RedisEphemeralTokens.generate_header_token( scope=self.token_scope) job_name = self.pod_manager.get_job_name(task_type=task_type, task_idx=task_idx) sidecar_args = get_sidecar_args(pod_id=job_name) labels = self.pod_manager.get_labels(task_type=task_type, task_idx=task_idx) # Set and validate volumes volumes, volume_mounts = get_pod_volumes( persistence_outputs=self.persistence_config.outputs, persistence_data=self.persistence_config.data) refs_volumes, refs_volume_mounts = get_pod_refs_outputs_volumes( outputs_refs=self.outputs_refs_jobs, persistence_outputs=self.persistence_config.outputs) volumes += refs_volumes volume_mounts += refs_volume_mounts refs_volumes, refs_volume_mounts = get_pod_refs_outputs_volumes( outputs_refs=self.outputs_refs_experiments, persistence_outputs=self.persistence_config.outputs) volumes += refs_volumes volume_mounts += refs_volume_mounts shm_volumes, shm_volume_mounts = get_shm_volumes() volumes += shm_volumes volume_mounts += shm_volume_mounts # Validate secret and configmap refs secret_refs = validate_secret_refs(self.spec.secret_refs) configmap_refs = validate_configmap_refs(self.spec.configmap_refs) pod = self.pod_manager.get_pod( task_type=task_type, task_idx=task_idx, volume_mounts=volume_mounts, volumes=volumes, labels=labels, env_vars=env_vars, command=command, args=args, sidecar_args=sidecar_args, persistence_outputs=self.persistence_config.outputs, persistence_data=self.persistence_config.data, outputs_refs_jobs=self.outputs_refs_jobs, outputs_refs_experiments=self.outputs_refs_experiments, secret_refs=secret_refs, configmap_refs=configmap_refs, resources=resources, ephemeral_token=ephemeral_token, node_selector=node_selector, affinity=affinity, tolerations=tolerations, restart_policy=restart_policy) pod_resp, _ = self.create_or_update_pod(name=job_name, data=pod) results = {'pod': pod_resp.to_dict()} if add_service: service = services.get_service(namespace=self.namespace, name=job_name, labels=labels, ports=self.pod_manager.ports, target_ports=self.pod_manager.ports) service_resp, _ = self.create_or_update_service(name=job_name, data=service) results['service'] = service_resp.to_dict() return results