ContextLab / ContextLab/clustrix

Restore the Azure execution backend: removed from v0.2.0 as never verified end to end

Open
#145 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.