v0.13.1rc1

miraymen/pix2surfv0.13.1rc1Jul 24, 2026by Michaelvll

AI Summary

A comprehensive SkyPilot update focusing on Kubernetes stability, Azure provisioning fixes, dashboard enhancements, and improved debug dump capabilities.

Key Highlights

  • Surface remediation hints on abnormal cluster events
  • Fix NIC provisioning broken by azure-mgmt-network 31.0.0
  • Add recovery count to managed job detail page
  • Support storage.existingClaim for pre-provisioned PVCs
  • Fast-fail unreachable kube contexts in debug-dump

New Features

  • Kubernetes remediation hints
  • Azure NIC provisioning fix
  • Dashboard recovery count
  • Support for pre-provisioned PVCs
  • Stream managed job logs on demand

Full Release Notes

## SkyPilot v0.13.1rc1

Get it now with:

```bash
uv pip install "skypilot>=0.13.1rc1"
```

---

## What's Changed
* [Kubernetes] Surface remediation hint on abnormal->INIT cluster events by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10060
* [Azure] Fix NIC provisioning broken by azure-mgmt-network 31.0.0 by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10062
* [Dashboard] Truncate long managed job names in the jobs table by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10011
* [Dashboard] Add recovery count to managed job detail page by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10004
* [k8s] Guard against None pod.status.conditions in termination-reason lookup by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10065
* [Debug Dump] Resolve k8s coordinates from cluster YAML so INIT clusters still get their k8s/Kueue state dumped by @ishankaul1 in https://github.com/skypilot-org/skypilot/pull/10068
* [Test] Fix flaky test_helm_deploy_okta: tolerate current_url=None during dashboard redirect by @zpoint in https://github.com/skypilot-org/skypilot/pull/10073
* fix(runpod): correct and refresh region -> data center mapping by @ciprianf in https://github.com/skypilot-org/skypilot/pull/10072
* [Dashboard] Infra page: await sky check before reading enabled clouds on manual refresh by @cg505 in https://github.com/skypilot-org/skypilot/pull/9879
* [Client] Fix async get() not unwrapping the 'detail'-nested 500 payload by @cg505 in https://github.com/skypilot-org/skypilot/pull/10026
* Remove the API stream link from async request submission output by @claude[bot] in https://github.com/skypilot-org/skypilot/pull/10081
* [Jobs] Start consolidation-mode controllers only from the leader daemon by @cg505 in https://github.com/skypilot-org/skypilot/pull/10080
* [Test] chaos_proxy: jitter the kill interval to avoid phase-locked races by @cg505 in https://github.com/skypilot-org/skypilot/pull/10024
* [Jobs] Stream managed job logs on demand when a logging agent is configured by @aylei in https://github.com/skypilot-org/skypilot/pull/10069
* [k8s] Support storage.existingClaim to attach a pre-provisioned PVC by @aylei in https://github.com/skypilot-org/skypilot/pull/10085
* Add a pre-write validator hook for API server config saves by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10059
* [Dashboard] Render fenced code blocks in error messages by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10088
* [Core] Extract external links from job logs server-side by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/9934
* [API] Grant private-workspace access to users added to allowed_users pre-login by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10079
* [API] Collect debug-dump request logs via LogProvider by @cg505 in https://github.com/skypilot-org/skypilot/pull/9852
* [Jobs] Give the controller process a single class identity by @cg505 in https://github.com/skypilot-org/skypilot/pull/10083
* [Dashboard] Add owner + activity toggles to Clusters page by @hentt30 in https://github.com/skypilot-org/skypilot/pull/9884
* [Dashboard] Default Clusters to My Clusters, add scope hint, unify toggle styling by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10089
* [Dashboard] Support admin-configured URL template external links by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10090
* [Dashboard] Hint when a K8s context's nodes are filtered by allowed_nodes by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10092
* Update the config doc and default value for rbac.restrict_config_to_admins by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10042
* [Kubernetes] Co-locate multi-node EFA jobs in one AZ by @trevanth24 in https://github.com/skypilot-org/skypilot/pull/10054
* [AWS] Skip unreachable me-south-1 region in catalog fetcher by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10095
* [k8s] storage.existingClaim activates the persistent-storage layout by @aylei in https://github.com/skypilot-org/skypilot/pull/10086
* [Test] Replace retired p3.2xlarge with g4dn.xlarge in tests by @aylei in https://github.com/skypilot-org/skypilot/pull/10098
* [Core] debug-dump: fast-fail unreachable kube contexts, parallelize per-cluster collection by @ishankaul1 in https://github.com/skypilot-org/skypilot/pull/10041
* [Jobs] Tolerate end-time fetch and log download failures in the controller by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10091
* [k8s] Avoid per-API-call urllib3 setLevel() to prevent logging fork deadlock on Python < 3.13 by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10104
* [Kubernetes] Derive EFA count on scale-from-zero AWS clusters by @trevanth24 in https://github.com/skypilot-org/skypilot/pull/10053
* [Kubernetes] Cap provisioning thread pools at the number of work items by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10111
* [Test] Replace retired p3/V100 AWS resources in examples by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10107
* helm: make the persisted clients directory subPath configurable by @aylei in https://github.com/skypilot-org/skypilot/pull/10101
* [Test] Move zero-quota-failover test off retired AWS p3/V100 by @zpoint in https://github.com/skypilot-org/skypilot/pull/10113
* [Helm] Add apiService.host to control API server bind interface by @nicosuter in https://github.com/skypilot-org/skypilot/pull/10050
* [Test] Mark test_debug_dump_unreachable_context_fast_fail no_remote_server by @zpoint in https://github.com/skypilot-org/skypilot/pull/10116
* [Users] Allow specifying a role when creating a service account token by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10115
* [Test] Mark test_debug_dump_unreachable_context_fast_fail no_dependency by @zpoint in https://github.com/skypilot-org/skypilot/pull/10118
* [Docs] Update Sandboxes page with new features and current SDK syntax by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10109
* [Jobs] Release the jobs-scheduler launch slot while the launch request is parked by @cg505 in https://github.com/skypilot-org/skypilot/pull/10013
* [Jobs] Emergency recovery: retry unexpected controller errors (reuse RECOVERING + recovery_source) by @cg505 in https://github.com/skypilot-org/skypilot/pull/9868
* [Azure] Support booting from private Shared Image Gallery images by @ahluwalij in https://github.com/skypilot-org/skypilot/pull/9843
* [k8s] Use `disk_size` instead of `ephemeral_storage` field by @kyuds in https://github.com/skypilot-org/skypilot/pull/9273
* [Core] Fix ray job submit failure in Ray cluster template by deconflicting dashboard agent port by @romilbhardwaj in https://github.com/skypilot-org/skypilot/pull/9856
* [k8s] Resolve urllib3 logger once at decoration time, not per API call by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10108
* Cap provisioning thread pools at the number of work items(2) by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10112
* [Metrics] Auto-detect local kubeconfig context to fix /gpu-metrics self-federation by @hentt30 in https://github.com/skypilot-org/skypilot/pull/10058
* [Test] Skip test_batch_diffusion on Azure (no L4 GPU in catalog) by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10064
* [k8s] sky local up: add --num-nodes for multi-node local clusters by @zpoint in https://github.com/skypilot-org/skypilot/pull/10138
* [API] Add config post-save hook carrying old/new config and user by @ishankaul1 in https://github.com/skypilot-org/skypilot/pull/10133
* [Buildkite] Add concurrency_group marker for global per-test serialization by @zpoint in https://github.com/skypilot-org/skypilot/pull/10150
* [Core] Add SKYPILOT_DISABLE_LOCAL_API_SERVER to block local API server autostart by @Michaelvll in https://github.com/skypilot-org/skypilot/pull/10093
* [k8s] Request gzip-compressed API server responses by @aylei in https://github.com/skypilot-org/skypilot/pull/10153
* [Jobs] Clear SKYPILOT_DISABLE_LOCAL_API_SERVER when starting the controller's local API server by @zpoint in https://github.com/skypilot-org/skypilot/pull/10154
* [Kubernetes] Check ephemeral storage in check_instance_fits by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10131
* Stash the yaml into the db during launch by @SeungjinYang in https://github.com/skypilot-org/skypilot/pull/10159
* [Metrics] Take local-context detection off the scrape path by @rohansonecha in https://github.com/skypilot-org/skypilot/pull/10175
* [Docs] Update SkyPilot logo and homepage architecture image by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10179
* [Kubernetes] - Support AWS Neuron (Trainium/Inferentia) accelerators by @trevanth24 in https://github.com/skypilot-org/skypilot/pull/10169
* [Test] Fix flaky test_pool_scale_down_with_job_count_priority by @zpoint in https://github.com/skypilot-org/skypilot/pull/10182
* [GCP] Add RTX PRO 6000 Blackwell (G4) support by @pauldonzier in https://github.com/skypilot-org/skypilot/pull/9634
* [API] Close SSH proxy websocket gracefully on cluster validation failure by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10183
* [Docs] Restyle Ask AI docs widget and add dark mode support by @stephenkevn in https://github.com/skypilot-org/skypilot/pull/10180
* [Docs] Update links, styling, and page organization by @romilbhardwaj in https://github.com/skypilot-org/skypilot/pull/10187
* [Docs] Remove demo card from docs homepage and README by @claude[bot] in https://github.com/skypilot-org/skypilot/pull/10189
* [AWS] Skip default-SG pre-creation for user-specified security groups by @rohansonecha in https://github.com/skypilot-org/skypilot/pull/10178
* [Dashboard] Use quicker count for the clusters empty-state CTA by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10149
* [Dashboard] Update logo and favicon to new branding by @hopechong in https://github.com/skypilot-org/skypilot/pull/10181
* [Docs] Add Hugging Face Hub storage guide  by @alex000kim in https://github.com/skypilot-org/skypilot/pull/10117
* [Dashboard] Render dynamically-registered columns on the Users table by @MadhavJivrajani in https://github.com/skypilot-org/skypilot/pull/10160
* [Test] Verify volume is actually mounted in test_volume_env_mount_kubernetes by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10190
* [CI] Tag the commit of each published nightly by @zpoint in https://github.com/skypilot-org/skypilot/pull/10192
* [Dashboard] Defer cluster fetch to background preload on the jobs page by @MadhavJivrajani in https://github.com/skypilot-org/skypilot/pull/10193
* [Nebius] Implement personalized pricing by @Jobarion in https://github.com/skypilot-org/skypilot/pull/9107
* [Dashboard] Add scope field to dashboard.external_links entries by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10194
* [Jobs] Reduce jobs queue payload for field-filtered requests by @MadhavJivrajani in https://github.com/skypilot-org/skypilot/pull/10176
* [Core] Price region-free cost estimates with the joint regional minimum by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10199
* [Docs] Update Together AI in docs by @romilbhardwaj in https://github.com/skypilot-org/skypilot/pull/10198
* [Core] Surface concise health-probe failures in unhealthy-cluster events by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10201
* [Dashboard] Show PENDING job reason in status tooltip by @lloyd-brown in https://github.com/skypilot-org/skypilot/pull/10202
* [LLM] slime on Job Groups: agentic coding-agent RL with a scalable inference fleet by @ishankaul1 in https://github.com/skypilot-org/skypilot/pull/10200
* [Volumes] Use SHORT queue for volume apply/delete to avoid LONG-pool starvation by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10195
* [Jobs] Add Prometheus gauges for managed-job recovery observability by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10186
* [API] Offload service-account auth DB lookups off the event loop by @kevinmingtarja in https://github.com/skypilot-org/skypilot/pull/10185
* [Test] Poll for async volume/PVC deletion in test_volumes_on_kubernetes by @zpoint in https://github.com/skypilot-org/skypilot/pull/10206
* [Kubernetes] OCI network_tier=best: GB200/GB300 NCCL profiles by @DanielZhangQD in https://github.com/skypilot-org/skypilot/pull/10204
* Release 0.13.1rc1 by @Michaelvll in https://github.com/skypilot-org/skypilot/pull/10219

## New Contributors
* @nicosuter made their first contribution in https://github.com/skypilot-org/skypilot/pull/10050
* @ahluwalij made their first contribution in https://github.com/skypilot-org/skypilot/pull/9843
* @MadhavJivrajani made their first contribution in https://github.com/skypilot-org/skypilot/pull/10160

**Full Changelog**: https://github.com/skypilot-org/skypilot/compare/v0.13.0rc1...v0.13.1rc1