kubeslice / kubeslice/kubeslice-controller
API: Add Hub-and-Spoke topology fields to Slice CRD (Partial Mesh MVP)
- Dominant language
- Go
- Stars
- 73
- Forks
- 48
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 8
Description
## Summary
Extend Slice configuration to express a minimal Partial Mesh topology: **Hub-and-Spoke**.
## Requirements
Add fields to Slice config (exact location TBD after design freeze):
- `topology.mode: HubAndSpoke`
- `topology.hubs: []string` (required, 1–2 entries)
- `topology.spokes: []string` (optional; default = all other member clusters)
## Validation rules
- hubs must be present in slice member clusters
- spokes must be present in slice member clusters (if provided)
- hubs and spokes must not overlap
- max hubs = 2 (MVP constraint)
- empty spokes means "all non-hub members"
## Backward compatibility
- Default behavior unchanged when topology is not specified (existing behavior continues)
## Deliverables
- Updated CRD schema (OpenAPI) + validations
- Example YAML in docs or samples
## Acceptance Criteria
- Can apply Slice with hub-and-spoke topology successfully
- Invalid topology config is rejected with clear error/event (where applicable)
- Existing Slice configs remain valid and unaffected
## Tasks
- [ ] Implement CRD/spec changes
- [ ] Add validation (schema and/or admission where appropriate)
- [ ] Add example YAML
- [ ] Add/update docs (minimal)
Contributor guide
Assessment
This issue has not been assessed yet.