Migrating from v1¶
HOG v1 is a fork of KrakenD-CE. HOG v2 is a clean-room rewrite on Go 1.26 and the standard library — a native application gateway that is no longer a fork of KrakenD. Because v2 shares no configuration format or extension model with v1, migration is a re-platforming, not an in-place upgrade.
No automatic migration
There is no tool that converts a v1 krakend.json into v2 YAML. Rebuild your
configuration against the v2 configuration reference.
What changed¶
| Area | HOG v1 (KrakenD fork) | HOG v2 (native Go) |
|---|---|---|
| Core | Lura / KrakenD, gin | net/http + the Go 1.26 standard library |
| Configuration | KrakenD-style JSON | Kubernetes-style YAML resources (kind/metadata/spec) with ${ENV} |
| Endpoints | endpoints + backend blocks |
Route resources with a handler (static, reverse-proxy, api) |
| Grouping | per-endpoint config | RouteGroup with label selectors |
| Auth | KrakenD auth plugins | Built-in BFF: OIDC login, encrypted cookie session, bearer tokens |
| Authorization | JWT/scope validators | kind: Policy — built-in group/claim rules + embedded OPA/Rego |
| Observability | KrakenD telemetry stack | Opt-in OpenTelemetry (OTLP) + trace-correlated access log |
| Extensions | Runtime .so plugins |
Compile-time Go plugins (hog-build) or framework import |
| Distribution | KrakenD binary/image | hog-build + the hog-runtime/hog-static image family |
How to migrate¶
- Model your endpoints as routes. Each v1 endpoint becomes a
Route. Static content maps to astatichandler; a single backend maps toreverse-proxy; an endpoint that merges several backends maps toapi. See the configuration reference and API aggregation example. - Move authentication into the BFF. Replace JWT-validator middleware with the built-in OIDC login and cookie session. See configure authentication.
- Rewrite authorization as policies. Replace scope/role checks with
kind: Policyresources (built-inrequireor Rego) referenced from routes and route groups. See configure authorization. - Re-enable observability. Configure OpenTelemetry export in the
Gatewaytelemetry block. See configure observability. - Port custom plugins. Rewrite any v1
.soplugin as a compile-time Go module that self-registers, and compose it in withhog-build. See writing plugins and building a custom binary. - Repackage. Base your image on
hog-runtime(orhog-staticfor a SPA), or compose a custom binary with thehog-builder→hog-runtimetwo-stage build.
v1 deprecation¶
- v1 is deprecated as of the v2.0.0 release. It receives no new features and is not maintained.
- v1 has been removed from the repository tree; its source remains available in git
history before the
v2.0.0release if you need it during migration. - Plan your migration to v2. New deployments should start on v2.