chore: update workload runtime integration

This commit is contained in:
2026-06-02 09:48:58 +00:00
parent 80a063a167
commit cb6cf58229
11 changed files with 45 additions and 67 deletions

View File

@ -19,7 +19,7 @@ ocdp-server PostgreSQL
WorkloadTemplate metadata
WorkloadTemplate source.repositoryUrl/ref/path
user-facing values schema / parameters
environment overlay/profile metadata
environment overlay and policy metadata
access bindings
no WorkloadClaim instance storage
@ -56,6 +56,8 @@ user-created claim lives in Kubernetes, not in PostgreSQL.
```text
apps/
earth2studio-demo/
base/
code-server/
base/
components/
@ -87,10 +89,10 @@ Secrets, ConfigMaps, components, and patches.
## Exposure
Base services are `ClusterIP`. User-facing exposure choices such as
`clusterip`, `nodeport`, and `loadbalancer` belong in the WorkloadTemplate
values schema. `ocdp-server` can translate that value into runtime Service
configuration or a generated patch.
Base services should stay internally reachable. User-facing exposure choices
belong on the WorkloadClaim top-level intent such as `exposure=internal` or
`exposure=external`; the agent/template renderer turns that intent into runtime
Service resources.
Reusable components are still useful implementation building blocks:
@ -99,19 +101,20 @@ Reusable components are still useful implementation building blocks:
- `components/service-loadbalancer`: change the app Service to `LoadBalancer`.
- `components/service-nodeport`: change the app Service to `NodePort`.
When `nodeport` is selected by the user, `ocdp-server` may generate an instance
patch or runtime Service field for an explicit port:
When `exposure=external` is selected by the user, the agent/template renderer
may generate a NodePort Service and leave the concrete nodePort for Kubernetes
to allocate:
```yaml
- op: add
path: /spec/ports/0/nodePort
value: 30080
path: /spec/type
value: NodePort
```
Do not hard-code shared NodePort values in app bases or reusable components.
Environment overlays are different from user choices. They are selected by the
platform from cluster, workspace, or customer profile information and can carry
platform from cluster, workspace, or customer policy information and can carry
things like StorageClass, IngressClass, GPU runtime class, registry prefix,
pull-secret wiring, node selectors, tolerations, and site-specific labels.