48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# mini-platform-control-plane
|
|
|
|
Learning project for building a small Go control plane for local environments
|
|
and workloads.
|
|
|
|
The project is intentionally local-first. It starts with in-memory components
|
|
and fake providers, then adds gRPC, Temporal, MongoDB, Helm rendering,
|
|
Kubernetes integration, and observability in incremental milestones.
|
|
|
|
## Learning Goals
|
|
|
|
- Idiomatic package design.
|
|
- Small interfaces.
|
|
- `context.Context` cancellation.
|
|
- Wrapped errors with `errors.Is` and `errors.As`.
|
|
- Table-driven tests.
|
|
- Concurrency safety.
|
|
- Idempotent operations.
|
|
- gRPC and protobuf APIs.
|
|
- Temporal workflows and activities.
|
|
- Clean separation between API, domain, storage, provider, orchestration, and
|
|
infrastructure adapters.
|
|
|
|
## Local Commands
|
|
|
|
```bash
|
|
make test
|
|
make fmt
|
|
make tidy
|
|
```
|
|
|
|
## Initial Scope
|
|
|
|
Milestone 1 defines the domain model:
|
|
|
|
- `Environment`
|
|
- `Workload`
|
|
- `Operation`
|
|
- typed validation errors
|
|
- basic status transitions
|
|
|
|
No private packages or internal infrastructure are required.
|
|
|
|
See:
|
|
|
|
- [Architecture](docs/architecture.md)
|
|
- [Milestones](docs/milestones.md)
|