kubeslice / kubeslice/kubeslice-controller

API: Add Hub-and-Spoke topology fields to Slice CRD (Partial Mesh MVP)

Open
#301 1 comment 0 reactions 1 assignee Claimed by @gourishkb View on GitHub
enhancement lfx-mentorship
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.