# 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/d4/be/ffff165622063fd770d2346adde1eb6f3fc18181297dfd276666ca91bf24/trainy_policy_nightly-0.1.0.dev20250717105028.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.dev20250717105028",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2051dfa87d47f6f7f94ce82a01d70cd29365b923b4982dfc8a73d6f3416e3653",
"md5": "d19a2019edfacf475e9a09f048676938",
"sha256": "3b71eb7942a1a118f7858add1f17e23f0a354baa10b88184c4e210d0b2ff30f5"
},
"downloads": -1,
"filename": "trainy_policy_nightly-0.1.0.dev20250717105028-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d19a2019edfacf475e9a09f048676938",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 10258,
"upload_time": "2025-07-17T10:50:29",
"upload_time_iso_8601": "2025-07-17T10:50:29.900228Z",
"url": "https://files.pythonhosted.org/packages/20/51/dfa87d47f6f7f94ce82a01d70cd29365b923b4982dfc8a73d6f3416e3653/trainy_policy_nightly-0.1.0.dev20250717105028-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d4beffff165622063fd770d2346adde1eb6f3fc18181297dfd276666ca91bf24",
"md5": "5944178ac26b847b184d0efe8cf51bf5",
"sha256": "81ab338505a1a12a7358d4ff06b12970b5877dee18587cfe7f7e44258c2bdae4"
},
"downloads": -1,
"filename": "trainy_policy_nightly-0.1.0.dev20250717105028.tar.gz",
"has_sig": false,
"md5_digest": "5944178ac26b847b184d0efe8cf51bf5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 7169,
"upload_time": "2025-07-17T10:50:31",
"upload_time_iso_8601": "2025-07-17T10:50:31.088364Z",
"url": "https://files.pythonhosted.org/packages/d4/be/ffff165622063fd770d2346adde1eb6f3fc18181297dfd276666ca91bf24/trainy_policy_nightly-0.1.0.dev20250717105028.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-17 10:50:31",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "trainy-policy-nightly"
}