Starship
Starship copied to clipboard
[RFC] New consistent file naming for module directory
What's the motivation? Is it related to a problem? Please describe the background and rationale.
Currently an eBPF+WASM module's files do not have consistent naming inside the module's directory.
For example, ddos_event
's directory looks as below:
This creates confusion for readers, and likely causes actual engineering toils in the near future when we want to provide more client-side tooling for Starship users.
Describe the solution you'd like The new naming schema:
- eBPF source file:
<module-name>.<eBPF framework>.<source code file type>
; forddos_event
, the module name isddos_event
, the eBPF framework isbcc
, the source code is written inc
, so the name should beddos_event.bcc.c
. - eBPF binary file:
<module-name>.bpf
ddos_event.wasm
. - WASM source file:
<module-name>.wasm.<source code file type>
- WASM binary file:
<module-name>.wasm
; as the frontend languages used for compiling WASM binary files are all standard high-level languages like c/c++/go/rust, there is no need to have theframework
component;ddos_event
's wasm file is named - Manifest:
<module-name>.json
Describe alternatives you've considered
- BCC's eBPF source file named with
.bcc
suffix, that is not as intuitive as using.bcc.c
. - Manifest can be in
yaml
format
Additional context, for example, Kubernetes versions, Kernel versions etc. This change potentially helps implementing a new module distribution mechanism in https://github.com/tricorder-observability/Starship/issues/68; as a consistent file naming schema allows easier automation in building distributed packages.
An example is in https://github.com/tricorder-observability/Starship/tree/main/modules/sample_json
The Web UI and CLI would need to be updated to take advantage of this new naming scheme.
@feuyeux @owl-ltt @zhoujie16 WDYT?