2c26a6d54f
P03 — full-stack example with ingress configured (REQ-094; gate C-20). examples/full-stack/: - web-app.md: kind Service, process runtime, 3 replicas, Unix socket (default R-007), rolling update, constraints (node.role==web), affinity (zone==a weight 80), lifecycle hooks (post_start/pre_stop). - api.md: kind Service, process runtime, 2 replicas, TCP opt-in (service.bind: 127.0.0.1, R-007), canary update with manual promote, constraints (node.role==api, node.cpus>=2), env vars. - worker.md: kind Job, process runtime, one-shot, timeout 300s, env vars, lifecycle hooks (register/drain). - log-shipper.md: kind Service (DaemonSet workaround — parser gap), process runtime, constraints (node.role==logs), env vars. Notes the v0.9 parser gap (schedule: block not wired) in a callout. - postgres.md: kind Service, process runtime, 1 replica, blue-green update, volumes with replication (replicate:peer-b,peer-c via Syncthing), constraints (node.role==db, node.cpus>=4, node.memory>=8192). - rendered/: Traefik dynamic YAML (web-app, api) + systemd units (web-app, api, log-shipper) showing what Orca generates on target nodes. - README.md: end-to-end walkthrough (init -> node join -> capacity set -> ns create -> job run -> list --watch -> inspect rendered -> verify ingress -> drain/rollback). Cross-links to docs/ingress.md. - examples_test.go: Go test that parses + validates all 5 jobspecs against the current parser and schema validators (gate C-20). All 5 jobspecs pass jobspec.ParseFile + schema.ValidatorFor(kind). ---ci--- project: orca phase: 3 milestone: v0.10 status: execute ---/ci---
39 lines
998 B
Markdown
39 lines
998 B
Markdown
---
|
|
kind: Service
|
|
name: log-shipper
|
|
count: 1
|
|
runtime:
|
|
one_of: process
|
|
command: /usr/bin/fluent-bit -c /etc/orca/log-shipper/fluent-bit.conf
|
|
ports:
|
|
- name: metrics
|
|
port: 2024
|
|
restart:
|
|
mode: service
|
|
attempts: 3
|
|
delay: 10s
|
|
update:
|
|
strategy: rolling
|
|
max_parallel: 1
|
|
health:
|
|
check_type: http
|
|
interval: 30s
|
|
timeout: 5s
|
|
unhealthy_threshold: 3
|
|
constraints:
|
|
- node.role == "logs"
|
|
env:
|
|
LOG_LEVEL: warn
|
|
OUTPUT: unix:///run/orca/alloc-log-collector/ingest.sock
|
|
---
|
|
# Log Shipper
|
|
|
|
Log shipper service (fluent-bit) running on a dedicated logs-role node.
|
|
Exposes a metrics port for health checking. Ships logs to a central
|
|
collector via Unix socket.
|
|
|
|
> **Note**: DaemonSet kind is defined in the schema but the parser does
|
|
> not yet populate the `schedule:` block from frontmatter (v0.9 parser
|
|
> gap). This example uses `kind: Service` with `count: 1` and a
|
|
> `node.role == "logs"` constraint to achieve single-node placement
|
|
> until the parser gains `schedule:` support (v0.11). |