<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TauGrid</title><link>https://azure.github.io/taugrid/</link><description>Recent content on TauGrid</description><generator>Hugo</generator><language>en</language><atom:link href="https://azure.github.io/taugrid/index.xml" rel="self" type="application/rss+xml"/><item><title>CLI reference</title><link>https://azure.github.io/taugrid/docs/reference/cli/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/cli/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;The Tau CLI has exactly eight public command roots. Every example in this site uses
one of these roots and its current nested subcommand path:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Root&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-cluster"&gt;&lt;code&gt;tau cluster&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Install/uninstall TauGrid and validate an existing cluster&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-workspace"&gt;&lt;code&gt;tau workspace&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Create/adopt workspaces and inspect readiness, quota, and repo scaffolds&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-run"&gt;&lt;code&gt;tau run&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Config-first submit, lifecycle, and retry/resume for one &lt;a href="../glossary/#run"&gt;run&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-logs"&gt;&lt;code&gt;tau logs&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Find a run through configured Tau workspaces and stream its logs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-serve"&gt;&lt;code&gt;tau serve&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Render and manage serving deployments&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#tau-data"&gt;&lt;code&gt;tau data&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Inspect dataset and model registries&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;tau python&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Optionally author decorator-based &lt;code&gt;@tau.train&lt;/code&gt; / &lt;code&gt;@tau.eval&lt;/code&gt; workflows; standard &lt;code&gt;tau.yaml&lt;/code&gt; projects do not need the Python SDK&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;tau version&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Print the installed CLI version&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Run evidence and the observability portal ship in a separate binary,
&lt;code&gt;taugrid-portal&lt;/code&gt;. See &lt;a href="https://azure.github.io/taugrid/docs/reference/cli/#taugrid-portal-experiment"&gt;&lt;code&gt;taugrid-portal experiment&lt;/code&gt;&lt;/a&gt;
below.&lt;/p&gt;</description></item><item><title>Contributing</title><link>https://azure.github.io/taugrid/docs/community/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/community/contributing/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Start with the repository
&lt;a href="https://github.com/Azure/taugrid/blob/main/AGENTS.md"&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/a&gt;
and
&lt;a href="https://github.com/Azure/taugrid/blob/main/cli/SDK_GUIDE.md"&gt;&lt;code&gt;SDK_GUIDE.md&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Core principles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start from the user path and compatibility contract.&lt;/li&gt;
&lt;li&gt;Keep commands thin and capability packages cohesive.&lt;/li&gt;
&lt;li&gt;Reuse existing helpers and dependencies.&lt;/li&gt;
&lt;li&gt;Keep durable local formats inspectable and versioned.&lt;/li&gt;
&lt;li&gt;Preserve expstore as local truth.&lt;/li&gt;
&lt;li&gt;Make retry, checkpoint, and partial-write behavior explicit.&lt;/li&gt;
&lt;li&gt;Add tests at the owning layer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;External contract changes need external evidence. A manifest or telemetry change
needs evidence beyond a utility unit test.&lt;/p&gt;</description></item><item><title>Make a compatible change</title><link>https://azure.github.io/taugrid/docs/community/change/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/community/change/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-17&lt;/span&gt;
&lt;/aside&gt;

&lt;ol&gt;
&lt;li&gt;Start from the user path and compatibility contract.&lt;/li&gt;
&lt;li&gt;Keep Cobra command files focused on wiring, flags, validation, and output.&lt;/li&gt;
&lt;li&gt;Put reusable behavior in the owning &lt;code&gt;internal/*&lt;/code&gt; capability package.&lt;/li&gt;
&lt;li&gt;Preserve inspectable, versioned durable formats.&lt;/li&gt;
&lt;li&gt;Keep expstore authoritative and hosted analytics downstream.&lt;/li&gt;
&lt;li&gt;Test behavior at the layer that owns it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Run focused package tests while iterating. Before TauGrid-internal closeout:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; cli
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go &lt;span class="nb"&gt;test&lt;/span&gt; ./...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Manifest, runtime, telemetry, or Kubernetes lifecycle changes also require the
smallest safe end-to-end path that proves the external contract. Use the
&lt;a href="../kind-smoke-test/"&gt;Kind smoke test&lt;/a&gt; when the changed contract belongs to the
portable Kubernetes path.&lt;/p&gt;</description></item><item><title>Run your first target</title><link>https://azure.github.io/taugrid/docs/developer-guide/first-run/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/first-run/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Prerequisites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Tau CLI is installed.&lt;/li&gt;
&lt;li&gt;The repository contains a
&lt;a href="../../reference/glossary/#workspace-connection"&gt;workspace connection&lt;/a&gt; and a
checked-in &lt;a href="../../reference/glossary/#target"&gt;target&lt;/a&gt;, such as
&lt;code&gt;tau/train.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The platform workspace reports Ready.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;tau run&lt;/code&gt; is the config-first entry point. Its optional positional &lt;code&gt;TARGET&lt;/code&gt;
argument resolves to a checked-in &lt;code&gt;tau/&amp;lt;target&amp;gt;.yaml&lt;/code&gt; file. See the
&lt;a href="../../reference/run-config/"&gt;direct run config reference&lt;/a&gt; for the full
&lt;code&gt;tau.yaml&lt;/code&gt; field set. &lt;code&gt;tau run&lt;/code&gt; automatically discovers the checked-in
workspace connection.&lt;/p&gt;
&lt;p&gt;Validate before submitting a real workload:&lt;/p&gt;</description></item><item><title>TauGrid object model</title><link>https://azure.github.io/taugrid/docs/developer-guide/concepts/object-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/concepts/object-model/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Full definitions for these terms live in the &lt;a href="../../../reference/glossary/"&gt;glossary&lt;/a&gt;. This
page only explains how they relate and who owns what.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Concept&lt;/th&gt;
					&lt;th&gt;Owns&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#repository"&gt;Repository&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Code and history in one Git worktree&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#project"&gt;Project&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;One or more targets and a workspace connection&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#workspace"&gt;Workspace&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Destination policy: cluster, namespace, queue, priority, output root, identity&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#target"&gt;Target&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;One checked-in runnable config&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#run"&gt;Run&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;One execution plus its lifecycle handle&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#workload"&gt;Workload&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Rendered Job or RayJob execution intent&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#service"&gt;Service&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Online RayService or Deployment lifecycle target&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="../../../reference/glossary/#experiment"&gt;Experiment&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;A comparison set over runs, metrics, and artifacts&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The ownership split is deliberate:&lt;/p&gt;</description></item><item><title>What is Ray?</title><link>https://azure.github.io/taugrid/docs/getting-started/core-technologies/ray/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/core-technologies/ray/</guid><description>&lt;p&gt;&lt;a href="https://www.ray.io/"&gt;Ray&lt;/a&gt; is an open-source framework for running Python work
across processes and machines. Teams use it for distributed training,
hyperparameter tuning, data processing, and model serving.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://ray-project.github.io/kuberay/"&gt;KubeRay&lt;/a&gt; brings Ray to Kubernetes. Its
operator manages resources such as &lt;code&gt;RayJob&lt;/code&gt; and &lt;code&gt;RayService&lt;/code&gt;, creates the Ray
head and worker pods, and follows the Ray workload lifecycle.&lt;/p&gt;
&lt;h2 id="how-taugrid-uses-ray"&gt;How TauGrid uses Ray&lt;/h2&gt;
&lt;p&gt;TauGrid turns a repository target into either a Kubernetes &lt;code&gt;Job&lt;/code&gt; or a KubeRay
&lt;code&gt;RayJob&lt;/code&gt;. A Ray workload follows this path:&lt;/p&gt;</description></item><item><title>What is TauGrid?</title><link>https://azure.github.io/taugrid/docs/getting-started/what-is-tau/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/what-is-tau/</guid><description>&lt;p&gt;TauGrid is an open, self-hosted AI compute platform for running AI workloads
on Kubernetes. It brings the experience teams expect from a managed AI
platform (simple submission, elastic distributed compute, shared GPU capacity,
experiment visibility, and operational controls) to clusters they operate in
their own cloud or datacenter.&lt;/p&gt;
&lt;p&gt;Researchers work from a repository and the Tau CLI. Platform teams provide
governed workspaces, queues, compute profiles, storage, identity, and
observability. TauGrid connects those two experiences across training,
fine-tuning, batch inference, and serving.&lt;/p&gt;</description></item><item><title>Architecture</title><link>https://azure.github.io/taugrid/docs/getting-started/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/architecture/</guid><description>&lt;p&gt;TauGrid is a CLI, renderer, and local observer. Kueue, KubeRay, and the
Kubernetes scheduler continue to own quota admission, Ray orchestration, and
pod scheduling.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Layer&lt;/th&gt;
					&lt;th&gt;Responsibility&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Research repository&lt;/td&gt;
					&lt;td&gt;Entrypoint, image, dependencies, resource intent, data, and outputs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;TauGrid&lt;/td&gt;
					&lt;td&gt;Resolve, validate, render, submit, observe, and preserve workflow evidence&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Workspace/platform&lt;/td&gt;
					&lt;td&gt;Cluster access, namespace, queue, priority, output root, identity, and shared policy&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Kueue&lt;/td&gt;
					&lt;td&gt;Quota reservation, admission, priority, and preemption&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Kubernetes/KubeRay&lt;/td&gt;
					&lt;td&gt;Pod scheduling and Job/Ray lifecycle&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Project process&lt;/td&gt;
					&lt;td&gt;Training, evaluation, inference, and model-specific behavior&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="code-boundaries"&gt;Code boundaries&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cli/cmd&lt;/code&gt;: thin Cobra command wiring for the &lt;code&gt;tau&lt;/code&gt; binary.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cli/internal&lt;/code&gt;: reusable capability packages behind &lt;code&gt;tau&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;core&lt;/code&gt;: the shared library module both binaries link.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;portal&lt;/code&gt;: a separate module and binary, &lt;code&gt;taugrid-portal&lt;/code&gt;, that hosts
experiment tracking (Stellar) and the observability portal.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sdk/python&lt;/code&gt;: optional Python authoring APIs that delegate execution
to the Go CLI.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;controllers/tau-core&lt;/code&gt;: the separately deployed controller. One manager runs
three reconcilers &amp;ndash; &lt;code&gt;TauCluster&lt;/code&gt;, &lt;code&gt;TauWorkspace&lt;/code&gt;, and &lt;code&gt;TauQuotaRequest&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;a href="https://github.com/Azure/taugrid/wiki/Tau-Architecture-Contributing-and-Roadmap"&gt;visual architecture guide&lt;/a&gt;
maps the main packages and extension points.&lt;/p&gt;</description></item><item><title>Run the Kind smoke test</title><link>https://azure.github.io/taugrid/docs/community/kind-smoke-test/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/community/kind-smoke-test/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-17&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Use this contributor smoke test for changes to manifest rendering, submission,
Kueue admission, KubeRay lifecycle handling, or the portable Kubernetes path.
Kind supplies a disposable local Kubernetes API and Nodes for portable-path
validation, distinct from an AKS or provider-integration acceptance test.&lt;/p&gt;
&lt;p&gt;From the repository root, local dry-run verifies the checked-in fixture and
rendering contracts entirely offline, with no cluster required:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;make -C cli build
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cli/bin/tau run validate --config examples/kind-smoke/tau.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cli/bin/tau run --config examples/kind-smoke/tau.yaml --dry-run&lt;span class="o"&gt;=&lt;/span&gt;client
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The full smoke test requires Kind, &lt;code&gt;kubectl&lt;/code&gt;, Helm, and a healthy Docker or
Podman engine with at least 8 GiB of memory. Run:&lt;/p&gt;</description></item><item><title>Live experiment evidence</title><link>https://azure.github.io/taugrid/docs/examples/experiment-evidence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/examples/experiment-evidence/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-25&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This example runs the checked-in
&lt;a href="https://github.com/Azure/taugrid/tree/main/examples/portal-ray-stellar"&gt;&lt;code&gt;examples/portal-ray-stellar&lt;/code&gt;&lt;/a&gt;
RayJob. It publishes immutable loss and accuracy chunks to durable storage
while a metrics-offload sidecar projects the same scalar history to ADX/Kusto.&lt;/p&gt;
&lt;p&gt;The run demonstrates three independent surfaces:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tau run status&lt;/code&gt; and logs for immediate execution.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tau run get&lt;/code&gt; for durable files on the workspace PVC.&lt;/li&gt;
&lt;li&gt;Stellar for experiment comparison and scalar visualization.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Prepare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Ready TauWorkspace named &lt;code&gt;taugrid-default&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A writable &lt;code&gt;blob-training&lt;/code&gt; PVC mounted at &lt;code&gt;/data&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;One schedulable NVIDIA GPU.&lt;/li&gt;
&lt;li&gt;A digest-pinned &lt;code&gt;taugrid-portal&lt;/code&gt; image supplied by the platform team.&lt;/li&gt;
&lt;li&gt;Portal and the optional metrics ingestion path configured for the workspace.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The sidecar runs &lt;code&gt;taugrid-portal experiment offload metrics&lt;/code&gt;, so use the Portal
image rather than the Tau CLI image.&lt;/p&gt;</description></item><item><title>Releasing TauGrid</title><link>https://azure.github.io/taugrid/docs/community/releasing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/community/releasing/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid release preparation updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SDK version.&lt;/li&gt;
&lt;li&gt;Installation documentation.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cli/releases/vX.Y.Z.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The reviewed source commit on &lt;code&gt;main&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Maintainers then create an annotated SemVer tag and manually dispatch the release
workflow. The workflow builds twice, compares outputs, verifies checksums,
publishes immutable assets, and proves clean bootstrap.&lt;/p&gt;
&lt;p&gt;Never overwrite an existing release or asset. Do not update downstream minimum
versions until post-publication Ubuntu and macOS verification succeeds.&lt;/p&gt;
&lt;p&gt;Follow the exact
&lt;a href="https://github.com/Azure/taugrid/blob/main/cli/RELEASING.md"&gt;&lt;code&gt;RELEASING.md&lt;/code&gt;&lt;/a&gt;
checklist.&lt;/p&gt;</description></item><item><title>Run and workload lifecycle</title><link>https://azure.github.io/taugrid/docs/developer-guide/concepts/lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/concepts/lifecycle/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;A TauGrid run crosses independent control planes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; TauGrid finds the project, workspace, and target.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rendering:&lt;/strong&gt; TauGrid validates intent and builds a Job or RayJob.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Admission:&lt;/strong&gt; Kueue reserves quota and admits the workload.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scheduling:&lt;/strong&gt; Kubernetes places pods on matching nodes and devices.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Runtime:&lt;/strong&gt; Ray or the Job controller starts the application.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progress:&lt;/strong&gt; The model or data process advances and writes evidence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Completion:&lt;/strong&gt; Results, checkpoints, metrics, and terminal state remain inspectable.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These states are not equivalent:&lt;/p&gt;</description></item><item><title>Run config reference</title><link>https://azure.github.io/taugrid/docs/reference/run-config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/run-config/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This page documents the &lt;strong&gt;direct run config&lt;/strong&gt;: the normal, hand-written
&lt;code&gt;tau.yaml&lt;/code&gt; that &lt;code&gt;tau run --config&lt;/code&gt; reads to submit a workload. See
&lt;a href="../glossary/#run-config-vs-manifest"&gt;direct run config vs. managed workflow manifest&lt;/a&gt;
for how this differs from the SDK-generated, &lt;code&gt;schema_version: 1&lt;/code&gt; manifest that
&lt;code&gt;tau.train&lt;/code&gt;/&lt;code&gt;tau.serve&lt;/code&gt; render. Both can use a &lt;code&gt;tau.yaml&lt;/code&gt; filename; inspect
the schema, not the filename. Use the managed workflow shape only when TauGrid
needs to own workflow semantics such as staged train/eval lineage.&lt;/p&gt;</description></item><item><title>Share research with a teammate</title><link>https://azure.github.io/taugrid/docs/developer-guide/share-research/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/share-research/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-24&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Researchers working from different machines can use the same cluster and
workspace to view and compare the same runs, logs, and charts.&lt;/p&gt;
&lt;h2 id="access-model-used-in-this-guide"&gt;Access model used in this guide&lt;/h2&gt;
&lt;p&gt;This guide describes the current interim admin-access workflow. The cluster
owner gives each researcher their own cluster-admin kubeconfig. Each researcher
keeps those credentials on their own machine and uses a separate port-forward
to the shared Portal Service.&lt;/p&gt;</description></item><item><title>What is Kueue?</title><link>https://azure.github.io/taugrid/docs/getting-started/core-technologies/kueue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/core-technologies/kueue/</guid><description>&lt;p&gt;&lt;a href="https://kueue.sigs.k8s.io/"&gt;Kueue&lt;/a&gt; is a Kubernetes-native queue and admission
system for batch and AI workloads. It decides when a workload may consume
shared quota. After admission, the Kubernetes scheduler decides which nodes run
the pods.&lt;/p&gt;
&lt;h2 id="the-main-kueue-objects"&gt;The main Kueue objects&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;LocalQueue&lt;/code&gt; is the queue a workspace submits to.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;ClusterQueue&lt;/code&gt; combines quota across one or more LocalQueues.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;ResourceFlavor&lt;/code&gt; describes a class of capacity, such as CPU nodes or a
particular GPU class.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;Workload&lt;/code&gt; records the resources a Job or RayJob requests and its admission
state.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TauGrid resolves the workspace LocalQueue and adds it to the rendered workload.
Kueue then evaluates quota, priority, queue order, and resource flavors.&lt;/p&gt;</description></item><item><title>Workspaces</title><link>https://azure.github.io/taugrid/docs/developer-guide/concepts/workspaces/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/concepts/workspaces/</guid><description>&lt;p&gt;A workspace connects repository intent to one cluster namespace, LocalQueue,
workload ServiceAccount, and authorization contract.&lt;/p&gt;
&lt;h2 id="single-active-workspace"&gt;Single active workspace&lt;/h2&gt;
&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-12&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid v0 activates one workspace per cluster. The CLI resolves that workspace
from the checked-in connection descriptor or the cluster&amp;rsquo;s primary-workspace
marker, so researchers can omit the workspace name for normal runs.&lt;/p&gt;
&lt;p&gt;The active workspace must be &lt;code&gt;Ready&lt;/code&gt; before TauGrid submits a workload. Readiness
confirms the namespace, queue, workload identity configuration, and
authorization contract described in the
&lt;a href="../../../reference/workspace/"&gt;TauWorkspace reference&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Cluster install values</title><link>https://azure.github.io/taugrid/docs/reference/cluster-install-values/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/cluster-install-values/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-18&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This page documents the Helm values accepted by &lt;code&gt;tau cluster install&lt;/code&gt;. The distribution chart bundles Kueue, KubeRay, the Tau core controller, GPU monitoring, the &lt;code&gt;taugrid-core&lt;/code&gt; services chart, and a portable baseline queue into a single versioned release. Portal is enabled by default for the operator quickstart; Stellar, lifecycle recorder, and image prewarm remain disabled until the platform opts in.&lt;/p&gt;
&lt;p&gt;Print this reference from your terminal:&lt;/p&gt;</description></item><item><title>Configuration resolution</title><link>https://azure.github.io/taugrid/docs/developer-guide/concepts/config-resolution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/concepts/config-resolution/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;The normal researcher contract is a checked-in direct run config:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;train&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;rayjob&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;entrypoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;train.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;compute&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;workers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;gpus_per_worker&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;storage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;data_pvc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;training-data&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TauGrid combines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Explicit &lt;a href="../../../reference/glossary/#project"&gt;project&lt;/a&gt; and &lt;a href="../../../reference/glossary/#target"&gt;target&lt;/a&gt; selection.&lt;/li&gt;
&lt;li&gt;&lt;a href="../../../reference/glossary/#repository"&gt;Repository&lt;/a&gt; or monorepo discovery.&lt;/li&gt;
&lt;li&gt;The project&amp;rsquo;s &lt;a href="../../../reference/glossary/#workspace-connection"&gt;workspace connection descriptor&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Platform-owned &lt;a href="../../../reference/glossary/#workspace"&gt;workspace&lt;/a&gt; defaults.&lt;/li&gt;
&lt;li&gt;Checked-in &lt;a href="../../../reference/glossary/#workload"&gt;workload&lt;/a&gt; intent.&lt;/li&gt;
&lt;li&gt;Temporary explicit operator overrides.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ambiguity is an error. Dry-run output must keep default sources visible.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run validate --config tau/train.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run train --dry-run&lt;span class="o"&gt;=&lt;/span&gt;client
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run explain-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See &lt;a href="../../../reference/glossary/#run-config-vs-manifest"&gt;direct run config vs. managed workflow manifest&lt;/a&gt;
for how Python SDK-generated manifests relate to this default format.&lt;/p&gt;</description></item><item><title>Serve a trained model</title><link>https://azure.github.io/taugrid/docs/developer-guide/serve-model/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/serve-model/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;&lt;code&gt;tau serve&lt;/code&gt; turns a project-owned image and optional durable checkpoint into a
&lt;a href="../../reference/glossary/#service"&gt;service&lt;/a&gt;. Choose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--kind=rayservice&lt;/code&gt; (default) for a Ray Serve application; KubeRay must be
installed and the image must expose the specified Python import path.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--kind=deployment&lt;/code&gt; for a plain Kubernetes Deployment such as a raw vLLM,
TGI, Triton, or custom HTTP server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You need a platform-provided serving profile, a pinned image, the target
namespace/context, and a checkpoint visible from the serving PVC when the
endpoint loads model state.&lt;/p&gt;</description></item><item><title>Site and wiki parity</title><link>https://azure.github.io/taugrid/docs/community/wiki-parity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/community/wiki-parity/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;The TauGrid documentation site and GitHub Wiki are both maintained as complete
surfaces. They are edited separately, so semantic parity is a human ownership
responsibility rather than an automated synchronization claim.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;site/data/wiki-parity.toml&lt;/code&gt; records:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The maintained site page and wiki counterpart.&lt;/li&gt;
&lt;li&gt;The owning team.&lt;/li&gt;
&lt;li&gt;Current maturity.&lt;/li&gt;
&lt;li&gt;Last joint review date.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The documentation pipeline validates that mapped site pages exist and metadata
is current whenever the site changes. Its consolidated Azure DevOps pipeline
also runs the same parity and review-age checks on the Monday parity-only
schedule.&lt;/p&gt;</description></item><item><title>TauWorkspace reference</title><link>https://azure.github.io/taugrid/docs/reference/workspace/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/workspace/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;&lt;code&gt;TauWorkspace&lt;/code&gt; is a platform-authored Kubernetes resource in the TauGrid system namespace (&lt;code&gt;tau-system&lt;/code&gt; by default). A custom &lt;code&gt;tau cluster install --namespace &amp;lt;name&amp;gt;&lt;/code&gt; moves the controller and these objects together; administrative workspace commands use &lt;code&gt;--system-namespace &amp;lt;name&amp;gt;&lt;/code&gt;, and repository descriptors persist the value as &lt;code&gt;cluster.systemNamespace&lt;/code&gt;. It reconciles or verifies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Target namespace and namespaced RBAC.&lt;/li&gt;
&lt;li&gt;Kueue LocalQueue accessibility.&lt;/li&gt;
&lt;li&gt;Workload identity ServiceAccount configuration.&lt;/li&gt;
&lt;li&gt;Readiness and drift conditions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Platform teams provision Azure resources and cluster-scoped quota policy,
projects own their own code, and platform teams verify the durable storage
PVC separately.&lt;/p&gt;</description></item><item><title>What is adx-mon?</title><link>https://azure.github.io/taugrid/docs/getting-started/core-technologies/adx-mon/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/core-technologies/adx-mon/</guid><description>&lt;p&gt;&lt;a href="https://github.com/Azure/adx-mon"&gt;adx-mon&lt;/a&gt; is Azure Data Explorer Monitor, an
observability pipeline for Kubernetes clusters. It collects metrics, logs, and
GPU telemetry, batches the data, and sends it to Azure Data Explorer
(ADX/Kusto).&lt;/p&gt;
&lt;p&gt;Its main components collect node and cluster signals, ingest batches into ADX,
manage ADX schema commands, and evaluate configured alerts. Platform teams
choose the signals, databases, retention, identities, and access rules.&lt;/p&gt;
&lt;h2 id="how-taugrid-uses-adx-mon"&gt;How TauGrid uses adx-mon&lt;/h2&gt;
&lt;p&gt;adx-mon is an optional platform integration. A TauGrid environment can use it
to:&lt;/p&gt;</description></item><item><title>Release contract</title><link>https://azure.github.io/taugrid/docs/reference/releases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/releases/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-17&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid uses canonical annotated SemVer tags (&lt;code&gt;vX.Y.Z&lt;/code&gt;) and a manually authorized
GitHub Actions workflow. Publishing a release requires a manually authorized
workflow run beyond the tag push itself.&lt;/p&gt;
&lt;p&gt;The workflow:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verifies the annotated tag and reviewed &lt;code&gt;main&lt;/code&gt; commit.&lt;/li&gt;
&lt;li&gt;Requires checked-in release notes.&lt;/li&gt;
&lt;li&gt;Runs Go and Python release gates.&lt;/li&gt;
&lt;li&gt;Compares two independent binary builds.&lt;/li&gt;
&lt;li&gt;Builds the Python SDK wheel twice and requires byte-for-byte identical
output.&lt;/li&gt;
&lt;li&gt;Publishes raw binaries, the SDK wheel, &lt;code&gt;install.sh&lt;/code&gt;, &lt;code&gt;LICENSE&lt;/code&gt;, and
&lt;code&gt;SHA256SUMS&lt;/code&gt; as new assets, leaving any existing ones untouched.&lt;/li&gt;
&lt;li&gt;Verifies every uploaded digest.&lt;/li&gt;
&lt;li&gt;Proves CLI and SDK installation on clean Ubuntu and macOS runners.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Python SDK keeps its own package version, but its source-aligned
&lt;code&gt;tau-*.whl&lt;/code&gt; is published in the same GitHub Release as the CLI.&lt;/p&gt;</description></item><item><title>What is Stellar?</title><link>https://azure.github.io/taugrid/docs/getting-started/core-technologies/stellar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/getting-started/core-technologies/stellar/</guid><description>&lt;p&gt;Stellar is TauGrid&amp;rsquo;s experiment tracking and comparison experience. It ships in
the &lt;code&gt;taugrid-portal&lt;/code&gt; binary and presents run details, scalar metric history, and
side-by-side comparisons in a browser or terminal.&lt;/p&gt;
&lt;h2 id="what-stellar-helps-answer"&gt;What Stellar helps answer&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Which code and settings produced this run?&lt;/li&gt;
&lt;li&gt;How did loss, accuracy, throughput, or another metric change over time?&lt;/li&gt;
&lt;li&gt;Which run performed best?&lt;/li&gt;
&lt;li&gt;Where are the model, checkpoint, and other output files?&lt;/li&gt;
&lt;li&gt;Did the run finish, retry, or resume?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="where-the-data-comes-from"&gt;Where the data comes from&lt;/h2&gt;
&lt;p&gt;TauGrid saves complete metric files and a small experiment index close to the
run. Stellar can read that saved evidence directly. A platform can also provide
an ADX/Kusto view for searching and comparing runs across workspaces.&lt;/p&gt;</description></item><item><title>Experiment evidence and artifacts</title><link>https://azure.github.io/taugrid/docs/developer-guide/concepts/evidence/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/developer-guide/concepts/evidence/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-25&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Every run should save enough information for you to answer four questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What code and settings produced this result?&lt;/li&gt;
&lt;li&gt;Did the model improve during the run?&lt;/li&gt;
&lt;li&gt;Where are the checkpoint and output files?&lt;/li&gt;
&lt;li&gt;Can I compare, reproduce, or resume this run later?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-taugrid-saves"&gt;What TauGrid saves&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Saved data&lt;/th&gt;
					&lt;th&gt;Examples&lt;/th&gt;
					&lt;th&gt;Where it is saved&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Run details&lt;/td&gt;
					&lt;td&gt;Project, run ID, config, and input references&lt;/td&gt;
					&lt;td&gt;TauGrid experiment index&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Metrics over time&lt;/td&gt;
					&lt;td&gt;Loss, accuracy, throughput, and GPU use&lt;/td&gt;
					&lt;td&gt;Metric files&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Metric summary&lt;/td&gt;
					&lt;td&gt;First and latest step, minimum, maximum, and point count&lt;/td&gt;
					&lt;td&gt;TauGrid experiment index&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Output files&lt;/td&gt;
					&lt;td&gt;Checkpoints, models, images, tables, profiles, and reports&lt;/td&gt;
					&lt;td&gt;The directory set by &lt;code&gt;storage.output&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Run history&lt;/td&gt;
					&lt;td&gt;Attempts, retries, resumes, and final status&lt;/td&gt;
					&lt;td&gt;TauGrid experiment index and Kubernetes workload&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The output files stay on the storage chosen by the platform team. TauGrid keeps
an index so you can find and compare them.&lt;/p&gt;</description></item><item><title>TauGrid visual curriculum</title><link>https://azure.github.io/taugrid/docs/overview/visual-curriculum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/overview/visual-curriculum/</guid><description>&lt;p&gt;Each diagram answers one reader question and preserves an editable source, SVG, and PNG. Solid elements represent GA capabilities. Orange dashed elements represent Alpha or Beta capabilities. Purple dashed elements represent Planned work.&lt;/p&gt;
&lt;h2 id="understand-and-evaluate"&gt;Understand and evaluate&lt;/h2&gt;
&lt;div class="tau-visual-grid"&gt;
&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Open-Source-One-Picture.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Open-Source-One-Picture.svg"
 alt="TauGrid in one picture"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;TauGrid in one picture&lt;/strong&gt;
 &lt;span&gt;What is TauGrid, and what is it not?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Open-Source-One-Picture.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Open-Source-One-Picture.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Open-Source-One-Picture.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Why.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Why.svg"
 alt="Why TauGrid"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Why TauGrid&lt;/strong&gt;
 &lt;span&gt;What repeated friction does TauGrid remove?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Why.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Why.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Why.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Choosing-Front-Door.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Choosing-Front-Door.svg"
 alt="Choosing the right front door"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Choosing the right front door&lt;/strong&gt;
 &lt;span&gt;When should I use TauGrid versus adjacent approaches?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Choosing-Front-Door.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Choosing-Front-Door.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Choosing-Front-Door.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Personas.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Personas.svg"
 alt="TauGrid personas"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;TauGrid personas&lt;/strong&gt;
 &lt;span&gt;Who uses TauGrid?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Personas.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Personas.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Personas.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Capability-Map.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Capability-Map.svg"
 alt="Capability map"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Capability map&lt;/strong&gt;
 &lt;span&gt;What can TauGrid do today?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Capability-Map.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Capability-Map.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Capability-Map.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;
&lt;h2 id="adopt-and-configure"&gt;Adopt and configure&lt;/h2&gt;
&lt;div class="tau-visual-grid"&gt;
&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Adoption-Paths.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Adoption-Paths.svg"
 alt="Adoption paths"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Adoption paths&lt;/strong&gt;
 &lt;span&gt;How can I try or deploy TauGrid?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Adoption-Paths.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Adoption-Paths.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Adoption-Paths.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Getting-Started-Flow.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Getting-Started-Flow.svg"
 alt="TauGrid quickstart flow"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;TauGrid quickstart flow&lt;/strong&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Getting-Started-Flow.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Getting-Started-Flow.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Getting-Started-Flow.svg"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Identity-Security-Trust-Chain.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Identity-Security-Trust-Chain.svg"
 alt="Identity and security trust chains"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Identity and security trust chains&lt;/strong&gt;
 &lt;span&gt;Who is the researcher and what may the workload access?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Identity-Security-Trust-Chain.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Identity-Security-Trust-Chain.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Identity-Security-Trust-Chain.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Onboarding-Workspace-Design.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Onboarding-Workspace-Design.svg"
 alt="TauWorkspace reconciliation"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;TauWorkspace reconciliation&lt;/strong&gt;
 &lt;span&gt;What does TauWorkspace reconcile?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Onboarding-Workspace-Design.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Onboarding-Workspace-Design.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Researcher-Onboarding-Workspace-Design.drawio"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Azure-Resource-Blueprint.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Azure-Resource-Blueprint.svg"
 alt="Azure resource blueprint"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Azure resource blueprint&lt;/strong&gt;
 &lt;span&gt;Which Azure resources support a TauGrid-enabled cluster?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Azure-Resource-Blueprint.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Azure-Resource-Blueprint.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Azure-Resource-Blueprint.drawio"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;
&lt;h2 id="use-taugrid-day-to-day"&gt;Use TauGrid day to day&lt;/h2&gt;
&lt;div class="tau-visual-grid"&gt;
&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Cluster-Interaction.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Cluster-Interaction.svg"
 alt="Researcher interaction journey"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Researcher interaction journey&lt;/strong&gt;
 &lt;span&gt;How does a researcher submit, observe, retrieve, and iterate?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Cluster-Interaction.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Researcher-Cluster-Interaction.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Researcher-Cluster-Interaction.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Workload-Chooser.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Workload-Chooser.svg"
 alt="Workload chooser"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Workload chooser&lt;/strong&gt;
 &lt;span&gt;Which TauGrid path should I use?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Workload-Chooser.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Workload-Chooser.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Workload-Chooser.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Repository-Config-Resolution.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Repository-Config-Resolution.svg"
 alt="Repository and config resolution"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Repository and config resolution&lt;/strong&gt;
 &lt;span&gt;How does repository intent become workload intent?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Repository-Config-Resolution.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Repository-Config-Resolution.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Repository-Config-Resolution.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Data-Artifact-Lifecycle.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Data-Artifact-Lifecycle.svg"
 alt="Data and artifact lifecycle"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Data and artifact lifecycle&lt;/strong&gt;
 &lt;span&gt;Where do inputs and outputs live?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Data-Artifact-Lifecycle.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Data-Artifact-Lifecycle.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Data-Artifact-Lifecycle.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Experiment-Evidence-Flow.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Experiment-Evidence-Flow.svg"
 alt="Experiment evidence flow"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Experiment evidence flow&lt;/strong&gt;
 &lt;span&gt;How does Stellar remain local first?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Experiment-Evidence-Flow.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Experiment-Evidence-Flow.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Experiment-Evidence-Flow.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Failure-Recovery.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Failure-Recovery.svg"
 alt="Failure recovery"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Failure recovery&lt;/strong&gt;
 &lt;span&gt;What happens when a run is preempted or fails?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Failure-Recovery.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Failure-Recovery.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Failure-Recovery.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Training-to-Serving.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Training-to-Serving.svg"
 alt="Training-to-serving direction"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Training-to-serving direction&lt;/strong&gt;
 &lt;span&gt;How could a successful experiment become an endpoint?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Training-to-Serving.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Training-to-Serving.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Training-to-Serving.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;
&lt;h2 id="operate-taugrid"&gt;Operate TauGrid&lt;/h2&gt;
&lt;div class="tau-visual-grid"&gt;
&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Queue-GPU-Placement.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Queue-GPU-Placement.svg"
 alt="Queue and GPU placement"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Queue and GPU placement&lt;/strong&gt;
 &lt;span&gt;Why is my run waiting, and where will it execute?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Queue-GPU-Placement.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Queue-GPU-Placement.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Queue-GPU-Placement.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Troubleshooting-Layers.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Troubleshooting-Layers.svg"
 alt="Troubleshooting layers"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Troubleshooting layers&lt;/strong&gt;
 &lt;span&gt;Where is a stuck run blocked?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Troubleshooting-Layers.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Troubleshooting-Layers.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Troubleshooting-Layers.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Observability-Evidence-Flow.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Observability-Evidence-Flow.svg"
 alt="Observability and evidence"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Observability and evidence&lt;/strong&gt;
 &lt;span&gt;Which signals prove platform and workload health?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Observability-Evidence-Flow.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Observability-Evidence-Flow.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Observability-Evidence-Flow.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Multi-Cluster-Execution.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Multi-Cluster-Execution.svg"
 alt="Experimental multi-cluster execution"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Experimental multi-cluster execution&lt;/strong&gt;
 &lt;span&gt;How can TauGrid route work across clusters?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Multi-Cluster-Execution.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Multi-Cluster-Execution.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Multi-Cluster-Execution.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;
&lt;h2 id="extend-and-contribute"&gt;Extend and contribute&lt;/h2&gt;
&lt;div class="tau-visual-grid"&gt;
&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Code-Architecture.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Code-Architecture.svg"
 alt="Code architecture and extension points"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Code architecture and extension points&lt;/strong&gt;
 &lt;span&gt;Where should a contributor make a change?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Code-Architecture.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Code-Architecture.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Code-Architecture.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;figure class="tau-visual"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Contribution-Release-Path.svg"&gt;
 &lt;img
 src="https://azure.github.io/taugrid/images/tau/Tau-Contribution-Release-Path.svg"
 alt="Contribution-to-release path"
 loading="lazy"
 &gt;
 &lt;/a&gt;
 &lt;figcaption&gt;
 &lt;strong&gt;Contribution-to-release path&lt;/strong&gt;
 &lt;span&gt;How is a contribution validated and shipped?&lt;/span&gt;
 &lt;span class="tau-visual__links"&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Contribution-Release-Path.svg"&gt;SVG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/images/tau/Tau-Contribution-Release-Path.png"&gt;PNG&lt;/a&gt;
 &lt;a href="https://azure.github.io/taugrid/sources/tau/Tau-Contribution-Release-Path.excalidraw"&gt;Editable source&lt;/a&gt;
 &lt;/span&gt;
 &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;/div&gt;</description></item><item><title>Glossary</title><link>https://azure.github.io/taugrid/docs/reference/glossary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/reference/glossary/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This page is the canonical source for TauGrid terminology. Other concept and
reference pages link to a definition here instead of redefining it. Where a
term below conflicts with older prose elsewhere, this definition wins.&lt;/p&gt;
&lt;h2 id="tau"&gt;TauGrid&lt;/h2&gt;
&lt;p&gt;The CLI (and its companion Python SDK) that resolves a project&amp;rsquo;s checked-in
workload contract, applies platform-owned policy, renders a Kubernetes &lt;code&gt;Job&lt;/code&gt;
or KubeRay &lt;code&gt;RayJob&lt;/code&gt;, submits it, and gives the researcher one lifecycle
surface for status, logs, results, retry, and resume. TauGrid resolves, renders,
and observes workload lifecycle; Kueue and Kubernetes own scheduling and
orchestration, and platform teams provision cloud infrastructure. See
&lt;a href="../../getting-started/what-is-tau/"&gt;What is TauGrid&lt;/a&gt; and
&lt;a href="../../getting-started/architecture/"&gt;Architecture&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Getting started on Kubernetes</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/kubernetes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/kubernetes/</guid><description>&lt;p&gt;TauGrid is a Kubernetes-native workflow layer for AI workloads. It installs on
a Kubernetes cluster your platform provisions and operates. This is the
canonical, provider-neutral installation path.&lt;/p&gt;
&lt;p&gt;This page takes a platform operator from an empty workstation to a validated
TauGrid workspace and a completed smoke workload. The portable path works on
Kubernetes 1.30 or newer. Provider-specific identity, networking, storage, GPU
drivers, and cluster lifecycle remain owned by your platform.&lt;/p&gt;</description></item><item><title>Enable a workspace</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-workspace/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-workspace/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-25&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Before researchers can submit workloads, the platform team prepares the
cluster and creates a TauWorkspace. TauGrid then keeps the workspace namespace,
queue access, and Kubernetes permissions in the expected state.&lt;/p&gt;
&lt;h2 id="prepare-the-workspace"&gt;Prepare the workspace&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="../kubernetes/#2-prepare-a-kubernetes-cluster"&gt;Prepare the Kubernetes cluster&lt;/a&gt;.
Set up the network, node pools, identity, container registry, storage, GPU
support, and CSI drivers required by your workloads.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="../kubernetes/#3-install-taugrid"&gt;Install TauGrid&lt;/a&gt;, then verify the
installation:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau cluster validate installation --context &amp;lt;context&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A successful validation exits with code &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Troubleshoot a run</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshoot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshoot/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Start with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run status &amp;lt;run-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;tau run status&lt;/code&gt; is the canonical lifecycle view for any run &amp;ndash; read its
phases top to bottom and stop at the first one that is not &lt;code&gt;done&lt;/code&gt;. Then work
through the layers below, in order, until you reach that phase:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Repository/connection resolution and cluster access &amp;ndash;
&lt;code&gt;tau workspace connection&lt;/code&gt; (&lt;code&gt;--offline&lt;/code&gt; for local configuration only).&lt;/li&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#tauworkspace"&gt;TauWorkspace&lt;/a&gt; readiness and
handoff validity &amp;ndash; &lt;code&gt;tau workspace status &amp;lt;name&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Client-side config validation and rendering &amp;ndash;
&lt;code&gt;tau run validate --config tau/train.yaml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#queue"&gt;Queue&lt;/a&gt; admission and quota &amp;ndash; the Kueue
admission phase in &lt;code&gt;tau run status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Kubernetes scheduling, DRA, image pull, init, and readiness &amp;ndash; the
remaining phases in &lt;code&gt;tau run status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;GPU/node/topology health &amp;ndash; &lt;code&gt;tau cluster validate nodes&lt;/code&gt; /
&lt;code&gt;tau cluster validate topology&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ray/Job runtime progress and durable evidence &amp;ndash; &lt;code&gt;tau logs &amp;lt;run-name&amp;gt;&lt;/code&gt;
and &lt;code&gt;taugrid-portal experiment status &amp;lt;name&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Recovery handoff &amp;ndash; &lt;a href="../recovery/"&gt;Retry and resume&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Confirm the queue admitted the workload (layer 4) before moving to GPU or
node debugging (layer 6). Treat a &lt;code&gt;Running&lt;/code&gt; pod phase (layer 5) as evidence
of container start alone &amp;ndash; confirm separately that the model or data
process is making progress (layer 7).&lt;/p&gt;</description></item><item><title>CPU queueing with Kueue and Ray</title><link>https://azure.github.io/taugrid/docs/examples/cpu-queueing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/examples/cpu-queueing/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Use this example when you want to understand the scheduling layer beneath TauGrid
using only the CPU capacity you already have. It submits raw RayJobs to Kueue and makes
admission, pending work, and team borrowing visible.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;platform mechanics example&lt;/strong&gt; that demonstrates Kueue/Ray scheduling directly, distinct from the TauGrid researcher workflow.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;a disposable or explicitly approved Kubernetes context;&lt;/li&gt;
&lt;li&gt;Kueue and KubeRay installed;&lt;/li&gt;
&lt;li&gt;kubectl access that can create namespaces, queues, and RayJobs; and&lt;/li&gt;
&lt;li&gt;enough CPU capacity for two small Ray workloads.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="run-the-single-queue-demonstration"&gt;Run the single-queue demonstration&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/Azure/taugrid-examples.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; taugrid-examples/aks-blog/kueue-ray-cpu
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./demo.sh single
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The script applies the single-queue resources and enqueues two raw RayJobs. In a
second terminal, watch admission:&lt;/p&gt;</description></item><item><title>Run GPU Ray Tune HPO on AKS</title><link>https://azure.github.io/taugrid/docs/examples/gpu-ray-tune/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/examples/gpu-ray-tune/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-17&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This guide runs the GPU HPO workflow for
&lt;a href="https://github.com/Azure/taugrid/tree/main/examples/ray-tune-smoke"&gt;&lt;code&gt;examples/ray-tune-smoke&lt;/code&gt;&lt;/a&gt;.
It was verified on one &lt;code&gt;Standard_NV12ads_A10_v5&lt;/code&gt; node. A100 SKUs are also
usable when the selected subscription and region have both sufficient quota
and real-time allocation capacity.&lt;/p&gt;
&lt;p&gt;The workflow creates billable Azure resources. Use a dedicated resource group.
Record its owner, collect the required evidence, and delete the resources when
the workflow is complete.&lt;/p&gt;
&lt;h2 id="ownership-and-completion-gates"&gt;Ownership and completion gates&lt;/h2&gt;
&lt;p&gt;Complete these phases in order:&lt;/p&gt;</description></item><item><title>Hand off a workspace</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/handoff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/handoff/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-18&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Complete this checklist after the &lt;a href="https://azure.github.io/taugrid/docs/reference/workspace/#workspace-readiness-and-recovery"&gt;TauWorkspace readiness gate&lt;/a&gt; reports &lt;code&gt;Ready&lt;/code&gt;. A handoff is reproducible only when every step below succeeds from a clean checkout, not from a platform owner&amp;rsquo;s already-primed shell.&lt;/p&gt;
&lt;h2 id="the-non-secret-connection-descriptor"&gt;The non-secret connection descriptor&lt;/h2&gt;
&lt;p&gt;The only artifact a researcher needs is &lt;code&gt;tau/workspace.connection.yaml&lt;/code&gt;, a non-secret &lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#workspace-connection"&gt;workspace connection descriptor&lt;/a&gt;:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Field&lt;/th&gt;
					&lt;th&gt;Contains&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;schema&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Fixed value &lt;code&gt;tau.workspace.connection.v1&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;workspace&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;The &lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#tauworkspace"&gt;TauWorkspace&lt;/a&gt; name.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;cluster.contextName&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;The Kubernetes context name Tau selects.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;cluster.systemNamespace&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;The TauGrid system namespace; defaults to &lt;code&gt;tau-system&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;access.method&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;kubeconfig&lt;/code&gt; for an existing context or &lt;code&gt;aks&lt;/code&gt; for automatic AKS credential acquisition.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;access.aks.resourceID&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required only for &lt;code&gt;access.method: aks&lt;/code&gt;; the AKS cluster&amp;rsquo;s ARM resource ID.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;access.aks.tenantID&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required only for &lt;code&gt;access.method: aks&lt;/code&gt;; the Microsoft Entra tenant ID.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;authorization.mode&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cluster-wide&lt;/code&gt; or &lt;code&gt;workspace-rbac&lt;/code&gt;.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;authorization.requiredRole&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required only in &lt;code&gt;workspace-rbac&lt;/code&gt; mode; forbidden in &lt;code&gt;cluster-wide&lt;/code&gt; mode.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;requirements.minTauVersion&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;The minimum compatible &lt;code&gt;tau&lt;/code&gt; CLI version.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;network.privateCluster&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Whether the Kubernetes API server requires private network access.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;network.instructions&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Required only when &lt;code&gt;privateCluster: true&lt;/code&gt; (for example, VPN steps).&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;It must never contain a credential, kubeconfig, client secret, or cloud access
token.&lt;/strong&gt; With &lt;code&gt;access.method: kubeconfig&lt;/code&gt;, &lt;code&gt;tau&lt;/code&gt; loads the normal kubeconfig
rules (including &lt;code&gt;KUBECONFIG&lt;/code&gt;) and copies only the named context, cluster, and
user into an isolated mode-&lt;code&gt;0600&lt;/code&gt; kubeconfig outside the repository. With
&lt;code&gt;access.method: aks&lt;/code&gt;, it obtains normal AKS cluster-user credentials through the
caller&amp;rsquo;s Azure identity and isolates those instead.&lt;/p&gt;</description></item><item><title>Getting started on AKS</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/aks-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/aks-setup/</guid><description>&lt;p&gt;AKS is one supported way to reach the Kubernetes cluster that the
&lt;a href="../kubernetes/"&gt;Getting started on Kubernetes guide&lt;/a&gt; installs onto. This page
compares the three ways to get there and links each one to its source runbook.
Use it after deciding you want AKS specifically; if you already have a
Kubernetes cluster of any kind, go straight back to
&lt;a href="../kubernetes/#2-prepare-a-kubernetes-cluster"&gt;step 2 of Getting started on Kubernetes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An Azure subscription and the &lt;code&gt;az&lt;/code&gt; CLI, logged in, with permission to create
resource groups and AKS clusters (or an existing cluster you can already
reach with &lt;code&gt;kubectl&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tau&lt;/code&gt;, &lt;code&gt;kubectl&lt;/code&gt;, and &lt;code&gt;helm&lt;/code&gt; on &lt;code&gt;PATH&lt;/code&gt;; see
&lt;a href="../kubernetes/#1-install-the-tau-cli"&gt;Install the Tau CLI&lt;/a&gt;. &lt;code&gt;tau cluster install&lt;/code&gt; shells out to &lt;code&gt;helm&lt;/code&gt; internally.&lt;/li&gt;
&lt;li&gt;For the Terraform path: Terraform 1.9+ and Azure credentials usable by the
AzureRM provider.&lt;/li&gt;
&lt;li&gt;For the GPU Terraform path: regional quota for the target GPU VM SKU.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="choose-a-path"&gt;Choose a path&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Path&lt;/th&gt;
					&lt;th&gt;Use it when&lt;/th&gt;
					&lt;th&gt;Creates billable resources&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/platform-admin-guide/aks-setup/#1-guided-cpu-quickstart-recommended-for-evaluation"&gt;Guided CPU quickstart&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;You want a guided, disposable, end-to-end evaluation with scripted cleanup, using only CPU quota&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/platform-admin-guide/aks-setup/#2-reproducible-gpu-capable-terraform"&gt;GPU Terraform root&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;You want reviewable, reproducible AKS infrastructure with GPU node pools that your platform team can adapt and own long-term&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;a href="https://azure.github.io/taugrid/docs/platform-admin-guide/aks-setup/#3-an-existing-aks-cluster"&gt;Existing AKS cluster&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;Your platform team already runs an AKS cluster that meets the prerequisites&lt;/td&gt;
					&lt;td&gt;Only if you scale it&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="1-guided-cpu-quickstart-recommended-for-evaluation"&gt;1. Guided CPU quickstart (recommended for evaluation)&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/Azure/taugrid/tree/main/examples/aks-cpu-quickstart"&gt;&lt;code&gt;examples/aks-cpu-quickstart&lt;/code&gt;&lt;/a&gt;
sequences resource-group creation, a CPU-only AKS cluster, &lt;code&gt;tau cluster install&lt;/code&gt;, workspace creation, and a real PyTorch smoke workload, then tears
everything down again. It is the fastest way to see TauGrid work end to end
using only CPU quota.&lt;/p&gt;</description></item><item><title>Troubleshooting by lifecycle layer</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/troubleshooting/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;This is the canonical diagnose-first path for a stuck or failed
&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#run"&gt;run&lt;/a&gt;. Work through the layers in order and
stop at the first incomplete layer. Each layer names its own
&lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#tau"&gt;TauGrid&lt;/a&gt; command first; use raw &lt;code&gt;kubectl&lt;/code&gt; only
for the deep, operator-only inspection each layer calls out, never as a
substitute for the TauGrid command.&lt;/p&gt;
&lt;p&gt;Start every investigation the same way:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tau run status &amp;lt;run-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;tau run status&lt;/code&gt; is the single canonical lifecycle view. It walks the same
ordered phase tree for every run &amp;ndash; Submitted, Kueue admission, (for a RayJob)
RayCluster, pod scheduling, DRA allocation, image pull, init containers,
container start, readiness, and (for a RayJob) RayJob status &amp;ndash; and each phase
reports pending, active, done, warning, or skipped. Read it top to bottom and
treat the first phase that is not &lt;code&gt;done&lt;/code&gt; as the layer to investigate,
addressing it before any later phase. Add &lt;code&gt;--watch&lt;/code&gt; to follow it live.&lt;/p&gt;</description></item><item><title>Provision a GPU-enabled TauGrid AKS environment</title><link>https://azure.github.io/taugrid/docs/examples/full-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/examples/full-cluster/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-26&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Use the repository&amp;rsquo;s &lt;a href="https://github.com/Azure/taugrid/tree/main/terraform/aks"&gt;&lt;code&gt;terraform/aks&lt;/code&gt;&lt;/a&gt;
root to create a GPU-enabled AKS environment. It provisions a system pool and
a GPU pool, enables OIDC and Azure Workload Identity, and invokes the supported
&lt;code&gt;tau cluster install&lt;/code&gt; command.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;tau cluster install&lt;/code&gt; installs the versioned TauGrid
distribution that owns Kueue, KubeRay, the Tau controller, GPU monitoring, the
baseline Kueue queue, and Portal; skip installing those components
separately with Helm.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;an Azure subscription that passes the
&lt;a href="../../platform-admin-guide/aks-setup/#prerequisites"&gt;AKS cluster prerequisites&lt;/a&gt;, has GPU quota for the
selected region and SKU, and an approved Terraform identity;&lt;/li&gt;
&lt;li&gt;Azure CLI, Terraform 1.9 or later, kubectl, Helm, and local Python
dependencies;&lt;/li&gt;
&lt;li&gt;Azure credentials accepted by the AzureRM Terraform provider and permission
to provision AKS, networking, storage, and identities; and&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tau&lt;/code&gt; and PowerShell 7 on PATH. Linux and macOS users can configure the
Terraform command interpreter to use Bash.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The default deployment creates one &lt;code&gt;Standard_NC24ads_A100_v4&lt;/code&gt; node. This node
has one A100 80 GB GPU and is billable. Before applying, verify that the target
region has capacity for the corresponding VM family. Change
&lt;code&gt;gpu_vm_size&lt;/code&gt;, &lt;code&gt;gpu_count_per_node&lt;/code&gt;, and &lt;code&gt;gpu_monitoring_sku_name&lt;/code&gt; together
when selecting another GPU SKU.&lt;/p&gt;</description></item><item><title>Identity and security boundaries</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/identity/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/identity/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid platforms answer two different questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Who may submit and inspect Kubernetes workloads?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Which cloud resources may the workload pod access?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Human authentication leads to Kubernetes authorization in the target namespace
and queue. Workload identity starts from a pod ServiceAccount and reaches only
the external resources required by that workload.&lt;/p&gt;
&lt;p&gt;TauWorkspace reconciles Kubernetes ServiceAccounts and reports readiness.
Platform teams provision the Azure managed identity, federated credential,
Key Vault, storage account, and cloud RBAC assignment that those
ServiceAccounts federate with.&lt;/p&gt;</description></item><item><title>Retry and resume</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/recovery/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/recovery/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid has two recovery paths for a failed &lt;a href="https://azure.github.io/taugrid/docs/reference/glossary/#run"&gt;run&lt;/a&gt;:
automatic retry, driven entirely by the &lt;code&gt;resilience.*&lt;/code&gt; fields in your
&lt;a href="https://azure.github.io/taugrid/docs/reference/run-config/"&gt;run config&lt;/a&gt;, and manual &lt;code&gt;tau run resume&lt;/code&gt;. TauGrid
performs retry as automatic behavior of &lt;code&gt;tau run&lt;/code&gt; when
&lt;code&gt;resilience.max_retries &amp;gt; 0&lt;/code&gt;; there is no separate &lt;code&gt;tau run retry&lt;/code&gt; subcommand
to invoke.&lt;/p&gt;
&lt;h2 id="automatic-retry-resilience"&gt;Automatic retry (&lt;code&gt;resilience.*&lt;/code&gt;)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;resilience&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;max_retries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default 0 (disabled)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;retry_on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Preempted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Evicted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default; OOMKilled is opt-in&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;backoff_initial&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;30s &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;backoff_max&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;5m &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;checkpoint_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;/data/checkpoints/finetunes/&amp;lt;name&amp;gt; &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# default, derived from run name&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When &lt;code&gt;max_retries &amp;gt; 0&lt;/code&gt; and you did not pass &lt;code&gt;--dry-run&lt;/code&gt;, &lt;code&gt;tau run&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Prepare ADX/Kusto for TauGrid</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/prepare-adx-kusto/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/prepare-adx-kusto/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-17&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;ADX/Kusto is an optional platform data service. Platform teams provision its
cluster, databases, Entra identities, federation, and database roles.
Prepare those platform resources once; Portal, lifecycle recorder, and adx-mon are
separate consumers. Their released charts manage the TauGrid/adx-mon schema
objects that they own.&lt;/p&gt;
&lt;h2 id="provision-the-service"&gt;Provision the service&lt;/h2&gt;
&lt;p&gt;Choose an approved region, SKU, capacity, network path, retention policy, and
cost owner. This CLI shape illustrates the required flags; choose SKU,
capacity, and other values to match your own environment:&lt;/p&gt;</description></item><item><title>Queue, quota, topology, and GPU placement</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/policy-and-placement/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/policy-and-placement/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-07-16&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid resolves the selected ready &lt;code&gt;TauCluster&lt;/code&gt; workload profile; upstream systems
enforce the rendered queue, priority, resource, and placement contract. The
controller&amp;rsquo;s resolved profile status is authoritative and stale status fails
closed. See &lt;a href="../workload-profiles/"&gt;workload profile migration&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Stage&lt;/th&gt;
					&lt;th&gt;Owner&lt;/th&gt;
					&lt;th&gt;Decision&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Target resolution&lt;/td&gt;
					&lt;td&gt;TauGrid&lt;/td&gt;
					&lt;td&gt;Requested workers, GPUs, placement, priority, and workspace defaults&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Queue admission&lt;/td&gt;
					&lt;td&gt;Kueue&lt;/td&gt;
					&lt;td&gt;Whether shared quota may be consumed&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Pod scheduling&lt;/td&gt;
					&lt;td&gt;Kubernetes&lt;/td&gt;
					&lt;td&gt;Which nodes satisfy resources, selectors, taints, and topology&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Device allocation&lt;/td&gt;
					&lt;td&gt;Device plugin or DRA&lt;/td&gt;
					&lt;td&gt;Which concrete GPUs are assigned&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Node scaling&lt;/td&gt;
					&lt;td&gt;Cluster infrastructure&lt;/td&gt;
					&lt;td&gt;Whether matching node capacity can appear&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;LocalQueues are tenant-facing entry points. ClusterQueues own quota and fairness.
ResourceFlavors describe resource pools. Priority and preemption remain
cluster-owned policy.&lt;/p&gt;</description></item><item><title>Enable lifecycle recorder</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-lifecycle-recorder/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-lifecycle-recorder/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-26&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;The lifecycle recorder is an optional, standalone ADX/Kusto producer; Portal
is one optional consumer of its output. It runs one metadata-only &lt;code&gt;tau run history record&lt;/code&gt; Deployment and
records observations of Jobs, RayJobs, and Kueue Workloads in one workload
namespace. Portal can optionally read the resulting rows as durable Ray
history, but the recorder is useful independently of Portal.&lt;/p&gt;
&lt;h2 id="prepare-the-namespace-adx-mon-and-identity"&gt;Prepare the namespace, adx-mon, and identity&lt;/h2&gt;
&lt;p&gt;Before enabling the recorder:&lt;/p&gt;</description></item><item><title>Observability and evidence</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/observability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/observability/</guid><description>&lt;aside class="tau-maturity tau-maturity--ga" aria-label="Feature stage: GA"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;GA&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-25&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Use each evidence plane for its intended scope:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Plane&lt;/th&gt;
					&lt;th&gt;Use&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;TauGrid status and logs&lt;/td&gt;
					&lt;td&gt;Immediate lifecycle of one submitted run&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Kubernetes events and pod state&lt;/td&gt;
					&lt;td&gt;Admission, scheduling, startup, and termination&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ray and GPU metrics&lt;/td&gt;
					&lt;td&gt;Runtime and hardware behavior&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Expstore and durable artifacts&lt;/td&gt;
					&lt;td&gt;Authoritative experiment, checkpoint, and recovery state&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;adx-mon and ADX/Kusto&lt;/td&gt;
					&lt;td&gt;Optional hosted scalar and fleet analysis&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Dashboards and alerts&lt;/td&gt;
					&lt;td&gt;Consumer views over telemetry&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A workload reaching Scheduled or Running status does not prove the model is
making useful progress. Treat each as a separate claim and verify
independently. Preserve raw logs, profiles, and artifacts when a diagnosis
depends on them.&lt;/p&gt;</description></item><item><title>Configure Portal</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-portal/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/enable-portal/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-13&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;Portal is the unified, read-only browser entry point. &lt;code&gt;tau cluster install&lt;/code&gt; enables its operator-facing Kubernetes path by default in the system release namespace (&lt;code&gt;tau-system&lt;/code&gt; unless &lt;code&gt;--namespace&lt;/code&gt; selects another namespace); it ships as part of the one TauGrid umbrella release rather than a separate &lt;code&gt;taugrid-core&lt;/code&gt; Helm release.&lt;/p&gt;
&lt;h2 id="understand-the-default-boundary"&gt;Understand the default boundary&lt;/h2&gt;
&lt;p&gt;The default distribution creates &lt;code&gt;deployment/tau-portal&lt;/code&gt;, &lt;code&gt;service/tau-portal&lt;/code&gt;, a dedicated ServiceAccount, and cluster-wide read-only Kubernetes RBAC. Portal remains ClusterIP-only and relies on network-level access control rather than application-level login, so &lt;code&gt;kubectl port-forward&lt;/code&gt; is an operator diagnostic rather than a researcher endpoint.&lt;/p&gt;</description></item><item><title>Workload profile migration</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/workload-profiles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/workload-profiles/</guid><description>&lt;p&gt;Workload profiles are platform-owned declarations on the singleton
&lt;code&gt;TauCluster/cluster&lt;/code&gt;. They replace the removed file-based &lt;code&gt;TopologyPolicy&lt;/code&gt;
catalog. The controller resolves referenced queues and scheduling objects into
status; TauGrid reads only that status as the single source of truth, rather than
falling back to a compiled catalog or a local policy file.&lt;/p&gt;
&lt;h2 id="migrate-the-catalog"&gt;Migrate the catalog&lt;/h2&gt;
&lt;p&gt;Translate each supported workload shape into &lt;code&gt;spec.workloadProfiles&lt;/code&gt;. Keep live
quota, capacity, ResourceFlavor selectors, and topology object names out of the
declaration: those identities are observations in status.&lt;/p&gt;</description></item><item><title>Multi-cluster execution</title><link>https://azure.github.io/taugrid/docs/platform-admin-guide/multicluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://azure.github.io/taugrid/docs/platform-admin-guide/multicluster/</guid><description>&lt;aside class="tau-maturity tau-maturity--alpha" aria-label="Feature stage: Alpha"&gt;
 &lt;span class="tau-maturity__prefix"&gt;Feature state:&lt;/span&gt;
 &lt;strong class="tau-maturity__status"&gt;Alpha&lt;/strong&gt;
 &lt;span class="tau-maturity__reviewed"&gt;Reviewed 2026-08-20&lt;/span&gt;
&lt;/aside&gt;

&lt;p&gt;TauGrid supports deterministic dispatch from a manager to preconfigured
MultiKueue workers in the environment below. The capability remains &lt;strong&gt;Alpha&lt;/strong&gt;
because its released environment and operational evidence are still narrow.
It supports deterministic dispatch to a preconfigured, matched-version worker
set rather than arbitrary worker discovery or unrestricted cross-cloud
routing.&lt;/p&gt;
&lt;h2 id="supported-manager-environment"&gt;Supported manager environment&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Supported contract&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;TauGrid&lt;/td&gt;
					&lt;td&gt;Chart and images &lt;code&gt;0.3.x&lt;/code&gt; from the same release&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Kubernetes&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;1.30&lt;/code&gt; or newer, matching the TauGrid chart constraint&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Kueue&lt;/td&gt;
					&lt;td&gt;TauGrid-pinned AKS chart and controller &lt;code&gt;0.18.2&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;KubeRay&lt;/td&gt;
					&lt;td&gt;TauGrid-pinned operator &lt;code&gt;1.6.2&lt;/code&gt; for RayJob dispatch&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Platform&lt;/td&gt;
					&lt;td&gt;AKS manager and workers with operator-managed identities, networking, storage, GPU drivers, and compatible CRDs&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Use the same Kubernetes, Kueue, KubeRay, and workload CRD minor versions on the
manager and every worker. Other combinations are outside the supported
contract.&lt;/p&gt;</description></item></channel></rss>