Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions docs/rfcs/0013-distro-first-pivot.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ The bundled Helm chart ships these mappings as a default OTTL pipeline. Operator
| Release | Operator-visible breaks | Internal changes |
|---|---|---|
| **v0.1.0** | self-tel metric rename `tracecore.*` → `otelcol_*`; release-artifact provenance shape change (documented once) | OCB skeleton; upstream `componentstatus` adoption; release pipeline → goreleaser stack; image build → `ko`; `clockreceiver` → `telemetrygeneratorreceiver` |
| **v0.2.0** | ALL recipe-side receiver swaps. ONE migration guide. Helm values keys map old→new for one minor release with `NOTES.txt` deprecation warning. | Delete `components/receivers/{kernelevents,k8sevents,dcgm,kueue,clockreceiver}`; ship recipes for `filelog+container`, `journald+filelog+OTTL`, `k8sobjects+transform`, `prometheusreceiver` (dcgm-exporter + Kueue); receivers-only Go module split |
| **v0.2.0** | ALL recipe-side receiver swaps. ONE migration guide. Helm values keys map old→new for one minor release with `NOTES.txt` deprecation warning. | Delete `components/receivers/{kernelevents,k8sevents,dcgm,kueue,clockreceiver,containerstdout}`; ship recipes for `filelog+container`, `journald+filelog+OTTL`, `k8sobjects+transform`, `prometheusreceiver` (dcgm-exporter + Kueue); receivers-only Go module split |
| **v0.3.0** | Python profiling: `tracecore_pyspy` PyPI helper deleted; operator deploys `parca-agent` DaemonSet via separate chart; security posture changes (CAP_SYS_PTRACE → CAP_SYS_ADMIN/BPF — review window) | Delete `components/receivers/pyspy/`, `python/tracecore_pyspy/`, `tools/pyspy-lint/`, `.github/workflows/{pyspy-integration,python-publish}.yml`. Kineto re-evaluated when OTel Profiles GA. |

Pre-v0.1.0 receivers with zero pilot deployments → clean delete in v0.1.0. Receivers with ≥1 pilot deployment (check D6 NPS Discussion list before cutting v0.1.0) → one-version deprecation warn → delete in next minor. Pre-v0.1.0 there is no compat owed by SemVer; this policy is operator-courtesy, not contract.
Expand Down Expand Up @@ -156,6 +156,7 @@ In-tree receivers deleted at v0.2.0 (or v0.1.0 if no pilots):
| Path | Replacement | Cuts |
|---|---|---|
| `components/receivers/clockreceiver/` | `telemetrygeneratorreceiver` | v0.1.0 |
| `components/receivers/containerstdout/` | `filelogreceiver` + container stanza + `file_storage` extension | v0.2.0 (pending pilot audit per Open Question #1) |
| `components/receivers/dcgm/` | `dcgm-exporter` + `prometheusreceiver` (recipe) | v0.1.0 (cgo stub never shipped real path) |
| `components/receivers/k8sevents/` | `k8sobjectsreceiver` + OTTL transform | v0.2.0 |
| `components/receivers/kernelevents/` | `journaldreceiver` + `filelogreceiver` + OTTL transform | v0.2.0 |
Expand Down Expand Up @@ -217,7 +218,7 @@ Customers pin `tracecore-recipes` like a library. Their `values.yaml` does not g

## Open questions

1. **Pilot operator count.** Before cutting v0.1.0, audit D6 NPS Discussion + integration matrix users to determine whether any operator has deployed `M9 kernelevents`, `M10 k8sevents`, or `M13 pyspy Phase 2` in production. If zero: clean delete in v0.1.0. If ≥1: one-version deprecation warn (still under SemVer pre-1.0 policy, but operator-courtesy).
1. **Pilot operator count.** Before cutting v0.1.0, audit D6 NPS Discussion + integration matrix users to determine whether any operator has deployed `M9 kernelevents`, `M10 k8sevents`, `M13 pyspy Phase 2`, or `M15 containerstdout` in production. If zero: clean delete in v0.1.0. If ≥1: one-version deprecation warn (still under SemVer pre-1.0 policy, but operator-courtesy).
2. **NCCL FlightRecorder receiver homing.** The custom `ncclfrreceiver` belongs in `tracecore-components` (this is settled), but the upstream-contribution question — should we propose an OTel-contrib `ncclfrreceiver` instead — needs evaluation. NVIDIA has not picked this up; CNCF/OTel SIG may have appetite. Tracked as a v0.2 follow-up.
3. **Recipe-vs-binary versioning skew tolerance.** A recipe can pin a wider binary range than the binary supports. Need a values-validation gate in the chart that asserts `tracecore.minVersion` is satisfied. Tracked as a v0.1 follow-up.
4. **OCB build reproducibility.** Tracecore-specific: validate that OCB-generated `main.go` is byte-identical across CI runs given fixed `builder-config.yaml`. If not, file upstream issue and propose fix. Tracked as a v0.1 verification step.
Expand All @@ -242,7 +243,7 @@ v0.2.0 sequencing:

1. **PR-I**: Receivers-only Go module `tracecoreai/tracecore-components` extracted. Migrate `ncclfr` + pattern detectors + custom OTTL processors. OCB manifest pulls via `gomod:`.
2. **PR-J**: Ship recipes: `filelogreceiver + container stanza + file_storage`, `journaldreceiver + filelogreceiver + OTTL transform`, `k8sobjectsreceiver + transform`, `prometheusreceiver` (Kueue + dcgm-exporter). Helm chart values old→new compat map with `NOTES.txt` deprecation warning.
3. **PR-K**: Delete `components/receivers/{kernelevents,k8sevents,kineto}`. Delete `.github/workflows/kernelevents-integration.yml`. Delete `.github/ISSUE_TEMPLATE/component-bug-kernelevents.yml`.
3. **PR-K**: Delete `components/receivers/{kernelevents,k8sevents,kineto,containerstdout}`. Delete `.github/workflows/kernelevents-integration.yml`. Delete `.github/ISSUE_TEMPLATE/component-bug-kernelevents.yml`. M19 cross-signal join test moves to `processor/rankjoinprocessor/` integration suite against filelogreceiver + k8sobjectsreceiver inputs.
4. **PR-L**: Migration guide in `docs/migration/v0.1-to-v0.2.md` covering every operator-visible change.

v0.3.0 sequencing:
Expand Down