The content API of Krateo PlatformOps: it resolves RESTAction and frontend Widget
custom resources into the JSON the Krateo portal renders, served over GET /call.
A content bridge, not a BFF: snowplow holds no product state — it composes portal
content on demand from Kubernetes CRs (declarative REST-call chains, widget
definitions), enforces the caller's own RBAC, and serves any client that presents a
Krateo JWT. One monorepo, one version line: the app (go/snowplow/) and its Helm
charts (helm/) ship together from a single tag.
Full picture: docs/index.md.
Normally installed by the Krateo installer, which pins the chart. Standalone:
# CRDs first (RESTAction + the authn ServiceAccount CRD the app chart hard-requires):
helm install snowplow-crds oci://ghcr.io/krateo-platformops/charts/snowplow-crds --version 1.9.0
helm install authn-crds oci://ghcr.io/krateo-platformops/charts/authn-crds
helm install snowplow oci://ghcr.io/krateo-platformops/charts/snowplow \
--version 1.9.0 --namespace krateo-systemDetails, dependencies and the Kind quickstart: docs/usage.md.
See docs/configuration.md. Most used:
| Setting | Default | Effect |
|---|---|---|
env.CACHE_ENABLED |
"true" |
The single cache master gate; false = transparent direct-apiserver fallback (same data, slower). |
env.GOMEMLIMIT |
7GiB |
Go GC back-pressure ceiling — must stay strictly below resources.limits.memory (8Gi) or Linux OOM-kills instead. |
service.type / service.port |
LoadBalancer / 8081 |
One port serves content, probes and debug surfaces. |
- examples/cluster-namespaces — a
RESTActionlisting cluster namespaces via the Kubernetes API, JQ-filtered to names. - examples/external-api — chained GET→POST against an external
service through an
EndpointSecret.
- docs/index.md — the map (bundle + the code-adjacent deep corpus)
- docs/overview.md — what it does and how it works
- docs/usage.md — how to install / consume it
- docs/configuration.md — the whole config surface
- docs/api.md — the
RESTActionCRD + the HTTP surface - docs/examples.md — examples index
- docs/release.md — how a release ships
- docs/log.md — curated history
Internals (code-traced): go/snowplow/ARCHITECTURE.md and the deep dives it links.
cd go/snowplow && go test ./... (keep KUBECONFIG unset — see
CONTRIBUTING); local cluster workflow via
go/snowplow/scripts/. Tag X.Y.Z (no v) ships image + charts — release runbook:
docs/release.md.