Skip to content

Release v0.13.1rc1

Latest

Choose a tag to compare

@Michaelvll Michaelvll released this 24 Jul 23:32
0de34af

SkyPilot v0.13.1rc1

Get it now with:

uv pip install "skypilot>=0.13.1rc1"

What's Changed

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

New Contributors

Full Changelog: v0.13.0rc1...v0.13.1rc1