konduktor-nightly 0.1.0.dev20250815104918__tar.gz → 0.1.0.dev20250816104612__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.

Potentially problematic release.


This version of konduktor-nightly might be problematic. Click here for more details.

Files changed (103) hide show
  1. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/PKG-INFO +1 -1
  2. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/__init__.py +2 -2
  3. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/jobset.py +2 -3
  4. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/templates/pod.yaml.j2 +19 -4
  5. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/pyproject.toml +1 -1
  6. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/LICENSE +0 -0
  7. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/README.md +0 -0
  8. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/adaptors/__init__.py +0 -0
  9. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/adaptors/aws.py +0 -0
  10. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/adaptors/common.py +0 -0
  11. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/adaptors/gcp.py +0 -0
  12. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/authentication.py +0 -0
  13. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/__init__.py +0 -0
  14. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/backend.py +0 -0
  15. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/constants.py +0 -0
  16. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/deployment.py +0 -0
  17. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/deployment_utils.py +0 -0
  18. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/jobset_utils.py +0 -0
  19. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/backends/pod_utils.py +0 -0
  20. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/check.py +0 -0
  21. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/cli.py +0 -0
  22. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/config.py +0 -0
  23. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/constants.py +0 -0
  24. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/controller/__init__.py +0 -0
  25. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/controller/constants.py +0 -0
  26. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/controller/launch.py +0 -0
  27. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/controller/node.py +0 -0
  28. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/controller/parse.py +0 -0
  29. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/README.md +0 -0
  30. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/backend/main.py +0 -0
  31. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/backend/sockets.py +0 -0
  32. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/.eslintrc.json +0 -0
  33. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/.gitignore +0 -0
  34. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/api/jobs/route.js +0 -0
  35. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/api/namespaces/route.js +0 -0
  36. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/Grafana.jsx +0 -0
  37. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/JobsData.jsx +0 -0
  38. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/LogsData.jsx +0 -0
  39. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/NavMenu.jsx +0 -0
  40. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/NavTabs.jsx +0 -0
  41. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/NavTabs2.jsx +0 -0
  42. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/SelectBtn.jsx +0 -0
  43. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/lib/utils.js +0 -0
  44. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/ui/chip-select.jsx +0 -0
  45. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/ui/input.jsx +0 -0
  46. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/ui/navigation-menu.jsx +0 -0
  47. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/components/ui/select.jsx +0 -0
  48. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/favicon.ico +0 -0
  49. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/globals.css +0 -0
  50. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/jobs/page.js +0 -0
  51. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/layout.js +0 -0
  52. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/logs/page.js +0 -0
  53. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/app/page.js +0 -0
  54. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/jsconfig.json +0 -0
  55. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/next.config.mjs +0 -0
  56. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/package-lock.json +0 -0
  57. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/package.json +0 -0
  58. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/postcss.config.mjs +0 -0
  59. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/server.js +0 -0
  60. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/dashboard/frontend/tailwind.config.js +0 -0
  61. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/__init__.py +0 -0
  62. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/aws/__init__.py +0 -0
  63. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/aws/s3.py +0 -0
  64. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/constants.py +0 -0
  65. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/data_utils.py +0 -0
  66. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/gcp/__init__.py +0 -0
  67. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/gcp/constants.py +0 -0
  68. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/gcp/gcs.py +0 -0
  69. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/gcp/utils.py +0 -0
  70. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/registry.py +0 -0
  71. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/storage.py +0 -0
  72. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/data/storage_utils.py +0 -0
  73. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/execution.py +0 -0
  74. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/kube_client.py +0 -0
  75. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/logging.py +0 -0
  76. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/manifests/controller_deployment.yaml +0 -0
  77. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/manifests/dashboard_deployment.yaml +0 -0
  78. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/manifests/dmesg_daemonset.yaml +0 -0
  79. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/manifests/pod_cleanup_controller.yaml +0 -0
  80. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/resource.py +0 -0
  81. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/serving.py +0 -0
  82. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/task.py +0 -0
  83. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/templates/deployment.yaml.j2 +0 -0
  84. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/templates/jobset.yaml.j2 +0 -0
  85. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/usage/__init__.py +0 -0
  86. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/usage/constants.py +0 -0
  87. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/__init__.py +0 -0
  88. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/accelerator_registry.py +0 -0
  89. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/annotations.py +0 -0
  90. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/base64_utils.py +0 -0
  91. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/common_utils.py +0 -0
  92. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/constants.py +0 -0
  93. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/env_options.py +0 -0
  94. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/exceptions.py +0 -0
  95. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/kubernetes_enums.py +0 -0
  96. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/kubernetes_utils.py +0 -0
  97. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/log_utils.py +0 -0
  98. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/loki_utils.py +0 -0
  99. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/rich_utils.py +0 -0
  100. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/schemas.py +0 -0
  101. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/subprocess_utils.py +0 -0
  102. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/ux_utils.py +0 -0
  103. {konduktor_nightly-0.1.0.dev20250815104918 → konduktor_nightly-0.1.0.dev20250816104612}/konduktor/utils/validator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: konduktor-nightly
3
- Version: 0.1.0.dev20250815104918
3
+ Version: 0.1.0.dev20250816104612
4
4
  Summary: GPU Cluster Health Management
5
5
  Author: Andrew Aikawa
6
6
  Author-email: asai@berkeley.edu
@@ -11,7 +11,7 @@ from konduktor.task import Task
11
11
  __all__ = ['launch', 'Resources', 'Task', 'Serving']
12
12
 
13
13
  # Replaced with the current commit when building the wheels.
14
- _KONDUKTOR_COMMIT_SHA = '9e2a8dc9b3415f811b7c8f1e7ed4c8d9e941ec61'
14
+ _KONDUKTOR_COMMIT_SHA = '108d7fe47b1bd5db50d555510714d2e204fb7b6f'
15
15
  os.makedirs(os.path.expanduser('~/.konduktor'), exist_ok=True)
16
16
 
17
17
 
@@ -45,5 +45,5 @@ def _get_git_commit():
45
45
 
46
46
 
47
47
  __commit__ = _get_git_commit()
48
- __version__ = '1.0.0.dev0.1.0.dev20250815104918'
48
+ __version__ = '1.0.0.dev0.1.0.dev20250816104612'
49
49
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
@@ -176,7 +176,7 @@ class JobsetBackend(backend.Backend):
176
176
  context = kubernetes_utils.get_current_kube_config_context_name()
177
177
  namespace = kubernetes_utils.get_kube_config_context_namespace(context)
178
178
  # TODO(asaiacai): need to set env variables in pod
179
- jobset_response = jobset_utils.create_jobset(
179
+ jobset_utils.create_jobset(
180
180
  namespace,
181
181
  task,
182
182
  pod_spec['kubernetes']['pod_config'],
@@ -192,10 +192,9 @@ class JobsetBackend(backend.Backend):
192
192
  ):
193
193
  _wait_for_jobset_start(namespace, task.name)
194
194
  try:
195
- assert jobset_response is not None
196
195
  log_thread = threading.Thread(
197
196
  target=log_utils.tail_logs,
198
- args=(jobset_response,),
197
+ args=(task.name,),
199
198
  daemon=True,
200
199
  )
201
200
  logger.info('streaming logs...')
@@ -7,6 +7,16 @@ kubernetes:
7
7
  {% if accelerator_type %}
8
8
  trainy.ai/accelerator: {{ accelerator_type }}
9
9
  {% endif %}
10
+ {% if konduktor_debug %}
11
+ konduktor.ai/debug: "true"
12
+ {% else %}
13
+ konduktor.ai/debug: "false"
14
+ {% endif %}
15
+ {% if tailscale_secret %}
16
+ konduktor.ai/tailscale: "true"
17
+ {% else %}
18
+ konduktor.ai/tailscale: "false"
19
+ {% endif %}
10
20
  spec:
11
21
  restartPolicy: "Never"
12
22
  # trigger this on GPU request
@@ -312,13 +322,18 @@ kubernetes:
312
322
  if ! command -v tailscale >/dev/null 2>&1; then
313
323
  $(prefix_cmd) curl -fsSL https://tailscale.com/install.sh | DEBIAN_FRONTEND=noninteractive $(prefix_cmd) sh > ~/.konduktor/tmp/tailscale-install.log 2>&1
314
324
  fi
315
- $(prefix_cmd) tailscaled --tun=userspace-networking --state=mem: >/dev/null 2>&1 &
316
- $(prefix_cmd) timeout 5 tailscale up --auth-key=${TS_AUTHKEY} --ssh --hostname=${TS_HOSTNAME}
317
- $(prefix_cmd) sleep 10
325
+ $(prefix_cmd) tailscaled --tun=userspace-networking --state=mem: >~/.konduktor/tmp/tailscaled.log 2>&1 &
326
+ $(prefix_cmd) sleep 2
327
+ $(prefix_cmd) timeout 5 tailscale up --auth-key=${TS_AUTHKEY} --ssh --hostname=${TS_HOSTNAME} || echo "tailscale up failed retrying"
328
+ $(prefix_cmd) sleep 2
318
329
  done
319
330
  $(prefix_cmd) echo "Tailscale is up"
331
+ $(prefix_cmd) tailscale status
320
332
  }
321
333
  InstallTailscale | tee ~/.konduktor/tmp/tailscale-out.log
334
+ {% if konduktor_debug %}
335
+ $(prefix_cmd) cat ~/.konduktor/tmp/tailscale*.log
336
+ {% endif %}
322
337
  {% endif %}
323
338
  end_epoch=$(date +%s);
324
339
 
@@ -416,8 +431,8 @@ kubernetes:
416
431
  secretName: {{ git_ssh }}
417
432
  defaultMode: 384
418
433
  {% endif %}
419
-
420
434
 
435
+
421
436
  # TODO(asaiacai): should we add nodeSelectors here or leave to
422
437
  # kueue resource flavors. leaning towards defining
423
438
  # in kueue and just querying for the kueue resource flavor
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "konduktor-nightly"
3
- version = "0.1.0.dev20250815104918"
3
+ version = "0.1.0.dev20250816104612"
4
4
  description = "GPU Cluster Health Management"
5
5
  packages = [
6
6
  {include = "konduktor"}