feat: loki single binary deployment#2807
Conversation
|
@greptile review |
Greptile SummaryThis PR replaces Loki's deprecated SimpleScalable (write/read/backend) deployment with a Monolithic singleBinary deployment, consolidating three StatefulSets into one. All tests, uptime recording rules, and port-forward targets are updated accordingly.
Confidence Score: 3/5Core logging functionality is migrated correctly, but the upgrade-test config is broken and documentation is out of date. The upgrade-test config overrides a variable (LOKI_BACKEND_REPLICAS) that no longer maps to any deployed component, so upgrade CI will run without the guard that previously prevented a single-replica Loki pod from being left in a broken state mid-restart. The same fragility that required the old override almost certainly applies to the new singleBinary StatefulSet. All documentation files (HA guide, overview, prerequisites, dev guide, C4 diagrams) still describe the deprecated three-tier topology, which will mislead operators trying to configure production deployments. bundles/k3d-standard/uds-upgrade-test-config.yaml needs the LOKI_BACKEND_REPLICAS override replaced with an equivalent LOKI_SINGLEBINARY_REPLICAS guard; src/loki/values/values.yaml has cleanup left to do; docs/ files broadly need updating to reflect Monolithic mode. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant V as Vector (DaemonSet)
participant GW as loki-gateway (nginx)
participant SB as loki (singleBinary StatefulSet)
participant S3 as Object Storage (S3)
Note over V,SB: Log ingestion
V->>GW: POST /loki/api/v1/push
GW->>SB: forward push
SB->>S3: flush chunks
Note over GW,SB: Log query
GW->>SB: GET /loki/api/v1/query_range
SB->>S3: read chunks
SB-->>GW: results
GW-->>V: response
Note over SB: All roles in one pod (distributor, ingester, querier, compactor, ruler...)
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant V as Vector (DaemonSet)
participant GW as loki-gateway (nginx)
participant SB as loki (singleBinary StatefulSet)
participant S3 as Object Storage (S3)
Note over V,SB: Log ingestion
V->>GW: POST /loki/api/v1/push
GW->>SB: forward push
SB->>S3: flush chunks
Note over GW,SB: Log query
GW->>SB: GET /loki/api/v1/query_range
SB->>S3: read chunks
SB-->>GW: results
GW-->>V: response
Note over SB: All roles in one pod (distributor, ingester, querier, compactor, ruler...)
|
Description
Tests integration of Loki singleBinary/monolith with core to replace the deprecated simple scalable deployment that is currently in place.
Related Issue
Relates to CORE-640
Type of change
Steps to Validate
Checklist before merging