Move test demo apps out of Bazel to ease Go version deprecation and support testing offsetgen instrumentation
Summary: Move test demo apps out of Bazel to ease Go version deprecation and support testing offsetgen instrumentation
This change is intended to help in two areas. The first is to decouple stirling's go version test matrix from Pixie's Go build. Our test suite currently builds all its go binaries with bazel, which means Pixie's go dependencies must accommodate all go versions used in our tests. This slows down upgrading our dependencies and go version.
The second is that in order to facilitate more memory efficient Go uprobes. I've implemented an opentelemetry-go-instrumentation offsetgen based version in #2207, #2212, https://github.com/pixie-io/opentelemetry-go-instrumentation/pull/1. This instrumentation works by computing Go struct and function argument offsets ahead of time (avoiding expensive DWARF parsing at runtime) and applying the correct offset based on a binary's buildinfo. Unfortunately rules_go does not yet support populating the buildinfo section like the standard Go toolchain. We can eventually switch to this once it's implemented (https://github.com/bazel-contrib/rules_go/issues/3090), but until then these images can serve an additional purpose.
Relevant Issues: N/A
Type of change: /kind feature
Test Plan: Verified the following:
- [x] Verified both images build for all the Go versions specified
- [x] Integrated images built from this branch into
http2_trace_bpf_testandgo_tls_trace_bpf_test. These work for the existing DWARF based uprobes and the offsetgen based ones