Understand the Task
Create a platform-service-template repository with a CLI generator, mirroring the existing service-provider-template.
Problem
Contributors wanting to build Platform Services must start from scratch or copy existing platform services manually. The service-provider-template provides:
- CLI generator for scaffolding
- Standard project structure
- E2E testing setup
- Best practices baked in
Platform Services need the same.
Proposed Implementation
1. Repository Setup
- Fork/adapt structure from
service-provider-template
- Adjust for Platform Service patterns
2. CLI Generator (cmd/template)
- Generate scaffolding for a new Platform Service
- Flags similar to service-provider-template:
-module: Go module path
-kind: Config CRD kind name (e.g., GatewayServiceConfig)
-group: API group prefix
-v: Generate with sample code
3. Generated Structure
├── api/
│ └── v1alpha1/
│ └── <kind>_types.go # Custom config CRD
├── internal/
│ └── controller/
│ └── reconciler.go # Main reconciler
├── cmd/
│ └── main.go
├── Dockerfile
├── Taskfile.yaml
└── README.md
4. Key Differences from Service Provider Template
- No
ServiceProviderAPI — Platform Services use PlatformService resource directly
- Custom config CRD pattern (like
GatewayServiceConfig)
- Platform cluster focused (not MCP cluster)
- Different RBAC patterns
5. Testing Setup
- Integration with
openmcp-testing
- Local development workflow
Acceptance Criteria
Parent Epic
Part of #514 (Enable Platform Service contributions)
References
Understand the Task
Create a
platform-service-templaterepository with a CLI generator, mirroring the existingservice-provider-template.Problem
Contributors wanting to build Platform Services must start from scratch or copy existing platform services manually. The
service-provider-templateprovides:Platform Services need the same.
Proposed Implementation
1. Repository Setup
service-provider-template2. CLI Generator (
cmd/template)-module: Go module path-kind: Config CRD kind name (e.g.,GatewayServiceConfig)-group: API group prefix-v: Generate with sample code3. Generated Structure
4. Key Differences from Service Provider Template
ServiceProviderAPI— Platform Services usePlatformServiceresource directlyGatewayServiceConfig)5. Testing Setup
openmcp-testingAcceptance Criteria
openmcp-project/platform-service-templatego run ./cmd/template -h)Parent Epic
Part of #514 (Enable Platform Service contributions)
References
service-provider-template: https://github.com/openmcp-project/service-provider-templateplatform-service-gatewayas reference: https://github.com/openmcp-project/platform-service-gateway