{"id":28740923,"url":"https://github.com/aliyuncontainerservice/rolebasedgroup","last_synced_at":"2025-07-07T01:04:37.639Z","repository":{"id":298828497,"uuid":"997123419","full_name":"AliyunContainerService/rolebasedgroup","owner":"AliyunContainerService","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-26T05:43:04.000Z","size":19790,"stargazers_count":8,"open_issues_count":2,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-26T06:33:06.870Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AliyunContainerService.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T02:04:40.000Z","updated_at":"2025-06-26T05:43:08.000Z","dependencies_parsed_at":"2025-06-13T05:48:06.402Z","dependency_job_id":null,"html_url":"https://github.com/AliyunContainerService/rolebasedgroup","commit_stats":null,"previous_names":["aliyuncontainerservice/rolebasedgroup"],"tags_count":0,"template":false,"template_full_name":"kubernetes/kubernetes-template-project","purl":"pkg:github/AliyunContainerService/rolebasedgroup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Frolebasedgroup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Frolebasedgroup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Frolebasedgroup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Frolebasedgroup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AliyunContainerService","download_url":"https://codeload.github.com/AliyunContainerService/rolebasedgroup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliyunContainerService%2Frolebasedgroup/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263996041,"owners_count":23541399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-16T07:09:34.582Z","updated_at":"2025-07-07T01:04:37.600Z","avatar_url":"https://github.com/AliyunContainerService.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The RoleBasedGroup API \n\nRoleBasedGroup: An API for for orchestrating distributed workload services with multi-role collaboration and automated service discovery. It aims to address common deployment patterns of AI/ML inference workloads, especially Prefill/Decode engine disaggregation workloads (e.g. a prefill, decode, scheduler, etc.) where the LLM will be sharded and run across multiple devices on multiple nodes. \n\n## 📖 Overview\n\n### Background\nTraditional Kubernetes statefulset struggle with multi-role coordination in distributed stateful service scenarios. This solution addresses:\n- Startup order dependencies between roles  \n- Complex cross-role service discovery  \n- Fragmented configuration management  \n\n### 🧩 Key Features\n  ✨ **Multi-role Template Spec** - Model distributed stateful workloads as unified K8s workload groups.  \n  🔗 **Role-based Startup Control** - Establish role dependencies and startup sequence for ReplicatedJobs in a RoleBasedGroup.  \n  🔍 **Auto Service Discovery** - Inject topology details via configs and env vars.  \n  ⚡ **Elastic Scaling** - Enable group/role-level scaling operations.  \n  🔄 **Atomic Rollout** - Role-level rollout/update: Upgrade entire Roles sequentially as single units (all pods in the same role updated simultaneously).  \n  🌐 **Topology-aware Placement** - Guarantee co-location of group/role pods within the same topology domain.  \n  🛑 **Atomic Failure Recovery** - Trigger full role recreation if any pod/container fails within the same group/role.  \n  🔧 **Customizable Workload** - Support for multiple workload types (e.g. StatefulSet, Deployment, etc.) for the role.  \n\n## 🏗 Conceptual Diagram\n\n![](doc/rbgs-concept.png)\n\n## 🚀 Quick Start\n\n### Install Controller\n```bash\nhelm install rbgs deploy/helm/rbgs -n rbgs-system --create-namespace\n```\n\n### Minimal Example\n\n```bash\nkubectl apply -f examples/base/rbg.yaml\n```\n\n\n## 📚 API Documentation\n\n### Key Fields\n| Field | Type | Description |\n|-------|------|-------------|\n| `startupPolicy` | string | Startup strategy (Ordered/Parallel) |\n| `dependencies` | []string | Role dependencies list |\n| `workload` | Object | Underlying workload type (default: StatefulSet) |\n\nFull API spec: [API_REFERENCE.md]()\n\n## 🤝 Contributing\nWe welcome contributions through issues and PRs! See [CONTRIBUTING.md](doc/CONTRIBUTING.md)\n\n## Community, discussion, contribution, and support\n\nLearn how to engage with the Kubernetes community on the [community page]().\n\nYou can reach the maintainers of this project at:\n\n- [Slack]()\n- [Mailing List]()\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](doc/code-of-conduct.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliyuncontainerservice%2Frolebasedgroup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faliyuncontainerservice%2Frolebasedgroup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliyuncontainerservice%2Frolebasedgroup/lists"}