dagster-k8s 0.23.4__tar.gz → 0.23.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dagster-k8s-0.23.4/dagster_k8s.egg-info → dagster-k8s-0.23.6}/PKG-INFO +1 -1
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/client.py +12 -2
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/executor.py +4 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/launcher.py +3 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/pipes.py +2 -5
- dagster-k8s-0.23.6/dagster_k8s/version.py +1 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6/dagster_k8s.egg-info}/PKG-INFO +1 -1
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s.egg-info/requires.txt +1 -1
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/setup.py +1 -1
- dagster-k8s-0.23.4/dagster_k8s/version.py +0 -1
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/LICENSE +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/MANIFEST.in +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/README.md +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/__init__.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/container_context.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/job.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/models.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/ops/__init__.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/ops/k8s_job_op.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/py.typed +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/test.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s/utils.py +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s.egg-info/SOURCES.txt +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s.egg-info/dependency_links.txt +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s.egg-info/not-zip-safe +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/dagster_k8s.egg-info/top_level.txt +0 -0
- {dagster-k8s-0.23.4 → dagster-k8s-0.23.6}/setup.cfg +0 -0
|
@@ -386,6 +386,9 @@ class DagsterKubernetesClient:
|
|
|
386
386
|
wait_time_between_attempts=wait_time_between_attempts,
|
|
387
387
|
)
|
|
388
388
|
|
|
389
|
+
if not status:
|
|
390
|
+
raise DagsterK8sError(f"job {job_name} could not be found")
|
|
391
|
+
|
|
389
392
|
# status.succeeded represents the number of pods which reached phase Succeeded.
|
|
390
393
|
if status.succeeded == num_pods_to_wait_for:
|
|
391
394
|
break
|
|
@@ -419,9 +422,16 @@ class DagsterKubernetesClient:
|
|
|
419
422
|
job_name: str,
|
|
420
423
|
namespace: str,
|
|
421
424
|
wait_time_between_attempts=DEFAULT_WAIT_BETWEEN_ATTEMPTS,
|
|
422
|
-
) -> V1JobStatus:
|
|
425
|
+
) -> Optional[V1JobStatus]:
|
|
423
426
|
def _get_job_status():
|
|
424
|
-
|
|
427
|
+
try:
|
|
428
|
+
job = self.batch_api.read_namespaced_job_status(job_name, namespace=namespace)
|
|
429
|
+
except kubernetes.client.rest.ApiException as e:
|
|
430
|
+
if e.reason == "Not Found":
|
|
431
|
+
return None
|
|
432
|
+
else:
|
|
433
|
+
raise
|
|
434
|
+
|
|
425
435
|
return job.status
|
|
426
436
|
|
|
427
437
|
return k8s_api_retry(_get_job_status, max_retries=3, timeout=wait_time_between_attempts)
|
|
@@ -317,6 +317,10 @@ class K8sStepHandler(StepHandler):
|
|
|
317
317
|
namespace=container_context.namespace,
|
|
318
318
|
job_name=job_name,
|
|
319
319
|
)
|
|
320
|
+
if not status:
|
|
321
|
+
return CheckStepHealthResult.unhealthy(
|
|
322
|
+
reason=f"Kubernetes job {job_name} for step {step_key} could not be found."
|
|
323
|
+
)
|
|
320
324
|
if status.failed:
|
|
321
325
|
return CheckStepHealthResult.unhealthy(
|
|
322
326
|
reason=f"Discovered failed Kubernetes job {job_name} for step {step_key}.",
|
|
@@ -429,6 +429,9 @@ class K8sRunLauncher(RunLauncher, ConfigurableClass):
|
|
|
429
429
|
WorkerStatus.UNKNOWN, str(serializable_error_info_from_exc_info(sys.exc_info()))
|
|
430
430
|
)
|
|
431
431
|
|
|
432
|
+
if not status:
|
|
433
|
+
return CheckRunHealthResult(WorkerStatus.UNKNOWN, f"Job {job_name} could not be found")
|
|
434
|
+
|
|
432
435
|
inactive_job_with_finished_pods = bool(
|
|
433
436
|
(not status.active) and (status.failed or status.succeeded)
|
|
434
437
|
)
|
|
@@ -11,7 +11,7 @@ from dagster import (
|
|
|
11
11
|
_check as check,
|
|
12
12
|
)
|
|
13
13
|
from dagster._annotations import experimental
|
|
14
|
-
from dagster._core.definitions.resource_annotation import
|
|
14
|
+
from dagster._core.definitions.resource_annotation import TreatAsResourceParam
|
|
15
15
|
from dagster._core.errors import DagsterInvariantViolationError
|
|
16
16
|
from dagster._core.pipes.client import (
|
|
17
17
|
PipesClient,
|
|
@@ -93,7 +93,7 @@ class PipesK8sPodLogsMessageReader(PipesMessageReader):
|
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
@experimental
|
|
96
|
-
class
|
|
96
|
+
class PipesK8sClient(PipesClient, TreatAsResourceParam):
|
|
97
97
|
"""A pipes client for launching kubernetes pods.
|
|
98
98
|
|
|
99
99
|
By default context is injected via environment variables and messages are parsed out of
|
|
@@ -423,6 +423,3 @@ def build_pod_body(
|
|
|
423
423
|
"spec": spec,
|
|
424
424
|
},
|
|
425
425
|
)
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
PipesK8sClient = ResourceParam[_PipesK8sClient]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.23.6"
|
|
@@ -35,7 +35,7 @@ setup(
|
|
|
35
35
|
packages=find_packages(exclude=["dagster_k8s_tests*"]),
|
|
36
36
|
python_requires=">=3.8,<3.13",
|
|
37
37
|
install_requires=[
|
|
38
|
-
"dagster==1.7.
|
|
38
|
+
"dagster==1.7.6",
|
|
39
39
|
"kubernetes",
|
|
40
40
|
# exclude a google-auth release that added an overly restrictive urllib3 pin that confuses dependency resolvers
|
|
41
41
|
"google-auth!=2.23.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.23.4"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|