Files
harmony/examples/compose_java_react/README.md
Jean-Gabriel Gill-Couture a0c1da4c51
All checks were successful
Run Check Script / check (pull_request) Successful in 3m24s
feat(k8s): K8sDeploymentScore renders a hardened web workload
- builder: port or health_checked_port (+ ClusterIP Service, HTTP probes),
  typed env (EnvValue), pull secret, replicas, recreate, resources, wait
- labels/selector: component, managed-by, part-of (same as the removed
  Application lowering, so its Deployments apply in place)
- restricted pod: non-root, RuntimeDefault seccomp, drop ALL, no SA token
- lamp: runs as its uid 1000 user and gets the Service its Ingress targets;
  its selector changes from app=<name>, so delete an existing lamp
  Deployment once
- examples: frontends on nginx-unprivileged (8080); docs follow the API
2026-10-23 09:43:52 -04:00

15 lines
607 B
Markdown

# Java + React timesheet as a `HarmonyApp`
A thin [`HarmonyApp`](../../harmony_app) that composes existing Scores:
`K8sPostgreSQLScore` and `K8sDeploymentScore` for backend and frontend.
Images come from `app/backend` and `app/frontend`. The `docker-compose.yml`
is the original local shape; Harmony does not import it.
```sh
cargo run --bin compose-deploy -- ship --context local
```
`--context` is required. Backend and frontend each get a Service on 8080
(`BACKEND_URL=http://backend:8080`). Both images run as non-root users, as the
restricted pod security context requires. There is no Ingress yet.