You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+46-1Lines changed: 46 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
107
107
-`workload_generations: true` — Deployment/StatefulSet observed vs desired generation drift
108
108
-**`collectors.remote_write_receiver` config section**: Added to all config files (`tfo-agent.yaml`, `tfo-agent.default.yaml`, `tfo-agent-one-for-all.yaml`), default: `enabled: false`, `port: 9091`
109
109
-**Apache License 2.0 headers**: Full license boilerplate + package documentation added to all 187 `.go` files across all packages; property-based test files previously missing headers now covered
110
+
-**K8s NetworkPolicy Collector** (`internal/collector/kubernetes/network_policies.go`): Full NetworkPolicy resource collection with ingress/egress rule detail
111
+
- Gathers all NetworkPolicy resources across namespaces; respects `shouldCollectNamespace` filter
112
+
- Extracts policy types (Ingress/Egress), pod selectors, ingress/egress rule counts
113
+
- Parses ingress rules: ports (protocol, port), peers (podSelector, namespaceSelector, IPBlock with CIDR and except ranges)
114
+
- Parses egress rules: same structure as ingress — ports + to-peers with full IPBlock support
115
+
- Emits `k8s.networkpolicy.count` gauge metric per namespace with cluster label
116
+
- New data types: `NetworkPolicyState`, `NetworkPolicyRule`, `NetworkPolicyPort`, `NetworkPolicyPeer`, `NetworkPolicyIPBlock`
117
+
- Added to `ClusterState.NetworkPolicies` for sync to TFO Platform
118
+
- Configurable via `collectors.kubernetes.network_policies: true`
119
+
-**Network Flow Exporter** (`internal/exporter/network_flows.go`): New exporter that batches and sends pod-to-pod network flow events to the TFO Platform
120
+
-`NetworkFlowRecord` struct aligned with Cilium Hubble flow model: source/target namespace, pod, IP, port, labels, protocol, direction, verdict, bytes/packets, retransmits, RTT, HTTP status code, DNS query, external flag
121
+
-`NetworkFlowExporter` with thread-safe buffer, periodic flush loop (default: 10s), configurable max batch size (default: 500)
122
+
- POSTs `NetworkFlowBatch` to `/api/v2/monitoring/network-map/k8s/flows` with API key authentication headers
123
+
- Graceful shutdown with final flush of remaining buffered flows
124
+
-**Ingress Collector Separated** (`internal/collector/kubernetes/ingresses.go`): Extracted Ingress collection into its own file for clarity
125
+
- Previously inlined; now a standalone `collectIngresses()` function returning `([]Metric, []IngressState, error)`
126
+
- Collects alongside Services since they share networking context
127
+
-**Services Collector Enhanced** (`internal/collector/kubernetes/services.go`): Expanded to return full `EndpointState` objects alongside `ServiceState`
128
+
-`collectServices()` signature changed from `→ (metrics, []ServiceState, error)` to `→ (metrics, []ServiceState, []EndpointState, error)`
129
+
- Pre-fetched endpoints now produce full `EndpointSubset` with ready/not-ready addresses, node names, target refs, and ports
130
+
- Services now include `ServicePort` detail (name, protocol, port, target_port, node_port), external IPs from both spec and LoadBalancer status
-`ingresses_test.go` — Ingress collection with rules, TLS, LoadBalancer IPs
146
+
-`services_test.go` — Service + Endpoint collection with describe-level fields
147
+
-**Container Build Script** (`run-container.sh`): New unified container build/run script (221 lines) replacing the previous `run-build-container.sh`
110
148
111
149
### Fixed
112
150
@@ -124,6 +162,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
124
162
-**Helm chart path**: Renamed `deploy/helm/tfo-agent/` → `deploy/helm/telemetryflow-agent/` for naming consistency with other TelemetryFlow Helm charts
125
163
-**Platform monolith configs** (`config/tfo-agent/`): All three deployment configs (`tfo-agent.yaml`, `tfo-agent.k8s.yaml`, `tfo-agent.container.yaml`) updated with KSM gap fields and `remote_write_receiver` section
0 commit comments