# Trainy Skypilot Policy
This is a package that defines the Skypilot policies necessary for running on Trainy clusters. The purpose of the policy is to
- mutate tasks to add the necessary labels/annotations (kueue, networking, etc.) per cloud provider
- set the available k8s clusters to be those that are visible via tailscale in the allowed k8s cluster contexts
For users, they set in `~/.sky/config.yaml`
```bash
admin_policy: trainy.policy.DynamicKubernetesContextsUpdatePolicy
```
and install
```bash
pip install "trainy-skypilot-nightly[kubernetes]"
pip install trainy-policy-nightly
```
[Skypilot Admin Policies](https://skypilot.readthedocs.io/en/latest/cloud-setup/policy.html)
Raw data
{
"_id": null,
"home_page": null,
"name": "trainy-policy-nightly",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": null,
"author": "Andrew Aikawa",
"author_email": "asai@berkeley.edu",
"download_url": "https://files.pythonhosted.org/packages/32/9a/a31b9a8a308c7de3d85ae0420ab8e17d88d6a5d31e483ec7181c550f054d/trainy_policy_nightly-0.1.0.dev20250914103930.tar.gz",
"platform": null,
"description": "# Trainy Skypilot Policy\n\nThis is a package that defines the Skypilot policies necessary for running on Trainy clusters. The purpose of the policy is to \n\n- mutate tasks to add the necessary labels/annotations (kueue, networking, etc.) per cloud provider\n- set the available k8s clusters to be those that are visible via tailscale in the allowed k8s cluster contexts\n\nFor users, they set in `~/.sky/config.yaml`\n\n```bash\nadmin_policy: trainy.policy.DynamicKubernetesContextsUpdatePolicy\n```\n\nand install\n```bash\npip install \"trainy-skypilot-nightly[kubernetes]\"\npip install trainy-policy-nightly\n```\n\n[Skypilot Admin Policies](https://skypilot.readthedocs.io/en/latest/cloud-setup/policy.html)",
"bugtrack_url": null,
"license": null,
"summary": "Trainy Skypilot Policy",
"version": "0.1.0.dev20250914103930",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b82e5483dd13a19234f09dd93c32adefd6a0bc9be48737cf2d2fddd40a3ef9bd",
"md5": "1a7914a5af00df96d33510b6b12dfca1",
"sha256": "3acb45e274c4a824cbe3bd131a2b3262ccbfff261d731e982fdd4418b6cf2f1c"
},
"downloads": -1,
"filename": "trainy_policy_nightly-0.1.0.dev20250914103930-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1a7914a5af00df96d33510b6b12dfca1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 10253,
"upload_time": "2025-09-14T10:39:32",
"upload_time_iso_8601": "2025-09-14T10:39:32.434420Z",
"url": "https://files.pythonhosted.org/packages/b8/2e/5483dd13a19234f09dd93c32adefd6a0bc9be48737cf2d2fddd40a3ef9bd/trainy_policy_nightly-0.1.0.dev20250914103930-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "329aa31b9a8a308c7de3d85ae0420ab8e17d88d6a5d31e483ec7181c550f054d",
"md5": "870839b7407d4a750d86b0cdebc15284",
"sha256": "4f7a73508e6a9cabd8500a6231b6d1bf058bb1ba060e5176a20fb70d578f1e2c"
},
"downloads": -1,
"filename": "trainy_policy_nightly-0.1.0.dev20250914103930.tar.gz",
"has_sig": false,
"md5_digest": "870839b7407d4a750d86b0cdebc15284",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 7190,
"upload_time": "2025-09-14T10:39:33",
"upload_time_iso_8601": "2025-09-14T10:39:33.180822Z",
"url": "https://files.pythonhosted.org/packages/32/9a/a31b9a8a308c7de3d85ae0420ab8e17d88d6a5d31e483ec7181c550f054d/trainy_policy_nightly-0.1.0.dev20250914103930.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-14 10:39:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "trainy-policy-nightly"
}