ContextLab / ContextLab/clustrix
Restore the Azure execution backend: removed from v0.2.0 as never verified end to end
- Dominant language
- Python
- Stars
- 10
- Forks
- 4
- Avg merge
- 6h 27m
- Merged PRs (30d)
- 9
Description
The Azure execution backend (`cluster_type="azure"`) is implemented and removed from v0.2.0 as unverified. No Azure job has been shown to run end to end.
## What exists, and where
Introduced in `f7fa047` (2025-06-28). At `299109f`:
| Code | Lines |
|-|-|
| `clustrix/cloud_providers/azure.py` | 876 |
| `clustrix/cost_providers/azure.py` | 408 |
| `clustrix/pricing_clients/azure_pricing.py` | 381 |
| `clustrix/kubernetes/azure_provisioner.py` | 726 (see the Kubernetes issue) |
Shared with the other three providers: `clustrix/executor_cloud.py`, `clustrix/cloud_providers/base.py`, `clustrix/pricing_clients/base.py`, and the `azure_*`/`cloud_*` configuration fields. Tutorial: `docs/source/notebooks/azure_cloud_tutorial.ipynb`.
## Defects that apply here too
The unsigned-cloud-result hole and the placeholder-hostname behaviour described in the AWS issue were in the shared `executor_cloud.py` path, so they affected Azure identically. Both were fixed in the v0.2.0 sweep and neither fix has been run against real Azure.
## Why it is being removed rather than fixed
Not because the code is known to be wrong. Because it has **never been run against the real thing**, and shipping it in the cluster-type dropdown states otherwise. A user who selects it gets a code path no one has ever seen succeed.
v0.2.0 keeps exactly the four backends that have been demonstrated end to end -- `local`, `ssh`, `slurm`, `huggingface` -- and the documentation now says the rest are planned for a future release rather than currently supported.
## Restoring it
Nothing is lost: every line cited above stays reachable in git history at the commits named. Reinstating it means reverting the removal commit and then doing the part that was never done -- running it against real hardware and recording the evidence in this issue.
## Definition of done
- [ ] Backend restored from history
- [ ] A real job submitted, executed and its result returned, with the transcript pasted into this issue
- [ ] Failure paths exercised (job rejected, job killed, node lost)
- [ ] Re-added to `SUPPORTED_CLUSTER_TYPES`, the widget dropdown and the CLI
- [ ] Documentation moved from "planned" to "supported"
Contributor guide
Research direction
Restore the Azure backend from the removal commit, using clustrix/cloud_providers/azure.py, clustrix/cost_providers/azure.py, clustrix/pricing_clients/azure_pricing.py, and the Azure tutorial as entry points. Submit a real Azure job and exercise rejection, kill, and node-loss paths. Done means the transcript is recorded here, the backend is re-added to the supported lists and interfaces, and documentation says it is supported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, kubernetes, python
- Domain
- cloud, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100