role: worker was in the schema and init wizard, but deploy still failed with role worker is not supported yet. Queue consumers could not ship as first-class components.
Shipped in #75. Workers are long-running Deployments or StatefulSets. No ClusterIP Service, no Ingress. Reject port, expose, health.ready, and HTTP liveness. Optional health.alive.exec only. CPU/memory HPA stays. shutdownTimeout maps to terminationGracePeriodSeconds (default 60s).
Prometheus: services get a ServiceMonitor; workers get a PodMonitor and must set metrics.port. Platform profile owns monitorLabels. In-place role changes are rejected.
components:
orders-consumer:
image: ghcr.io/acme/shop:${TAG}
role: worker
command: ["/app/worker"]
metrics:
port: 9090
Finite work is tasks: (#17), not role: job. Queue-depth HPA is KEDA (#25).
Related: #16, #17, #25, #35, #79.
role: workerwas in the schema and init wizard, but deploy still failed withrole worker is not supported yet. Queue consumers could not ship as first-class components.Shipped in #75. Workers are long-running Deployments or StatefulSets. No ClusterIP Service, no Ingress. Reject
port,expose,health.ready, and HTTP liveness. Optionalhealth.alive.execonly. CPU/memory HPA stays.shutdownTimeoutmaps toterminationGracePeriodSeconds(default 60s).Prometheus: services get a ServiceMonitor; workers get a PodMonitor and must set
metrics.port. Platform profile ownsmonitorLabels. In-place role changes are rejected.Finite work is
tasks:(#17), notrole: job. Queue-depth HPA is KEDA (#25).Related: #16, #17, #25, #35, #79.