The most relevant changes for this version are:
- pkg: Enable to capture data for only host processes. by @eiffel-fl in #1741
- container-utils: Use the containerd API by @burak-ok in #1233
- Containerized gadgets (aka BYOB) by @mauriciovasquezbernal in #1743
- charts: Add helm charts for Inspektor Gadget by @mqasimsarfraz in #1707
Other changes are:
General Improvements
- runcfanotify: replace pidfd_open/kill by reading /host/proc by @alban in #1662
- Open network namespaces from /host/proc (preparation for hostPID=false) by @alban in #1710
- trace network: use same code pattern as other networking gadgets by @alban in #1630
- Read bpf iterators from host pid ns by @alban in #1708
- pkg: Log verifier error at debug level for gadget with result by @eiffel-fl in #1718
- Modify
IPVerFromAF()helper to take uint16 as argument rather than uint32. by @eiffel-fl in #1727 - Add support for flags and mode for trace open by @eiffel-fl in #1668
- cmd: move verbose flag to top level by @flyth in #1738
- Add IPv6 support to
profile tcprttby @eiffel-fl in #1717 - networking gadgets: instantiate ebpf prog once per netns by @alban in #1430
- Dockerfiles: Ensure we use 'bullseye' for golang builder image by @mqasimsarfraz in #1750
- parser: Sort events after combining for top/snapshot gadgets by @mqasimsarfraz in #1753
- pkg/gadgets: add helpers to copy from/to param maps by @flyth in #1740
- Remove hostPID: add "fanotify+ebpf" hook as alternative to "fanotify" by @alban in #1709
- kubectl-gadget/top: Ensure timeout=interval prints event before exiting by @mqasimsarfraz in #1726
- container-hook: don't search fanotify_fops in kallsyms by @alban in #1765
- container-hook: increase buffer for cmdline parsing by @alban in #1767
- runcfanotify/container-hook: Ignore events from 'passwd' in pidfile directory by @mqasimsarfraz in #1742
- Dockerfiles: Update alpine image and change CO-RE image to debian:bullseye-slim by @mqasimsarfraz in #1737
- Add IP as param type by @eiffel-fl in #1766
- RFC: Add experimental feature by @mauriciovasquezbernal in #1728
- deploy: Add 'seLinuxOptions' for gadget container by @mqasimsarfraz in #1773
- trace/tcp: Use KubeIPResolver by @burak-ok in #1626
- cmd/deploy: Add supported hooks to command help by @mauriciovasquezbernal in #1777
- container-utils: Add TestNewContainerRuntimeClient by @mqasimsarfraz in #1778
- container-collection: Keep net ns inode id reference by @mauriciovasquezbernal in #1779
- pkg/gadgets/top/ebpf: introduce cpu usage by @middaywords in #1758
- socketenricher: add support for older kernels by @alban in #1759
- container-hook: replace iterator by alternative mechanism by @alban in #1789
- pkg/operators: Enable tracing hosts events for attacher gadgets. by @eiffel-fl in #1786
- pkg/container-collection: replace container iteration with lookup maps for hot paths by @flyth in #1616
Bug Fixes
- bpf-iter-ns: fix bpf pin path by @alban in #1719
- bpf-iter-ns: fix bpf pin path again by @alban in #1721
- trace/exec: Fix reading task->loginuid in kernels without CONFIG_AUDIT by @mauriciovasquezbernal in #1770
- podinformer: Fix removing non-running containers by @mauriciovasquezbernal in #1780
- entrypoint: Do not fail if os-release info is not available. by @mauriciovasquezbernal in #1788
- Fix make kubectl-gadget-container by @alban in #1796
Documentation Improvements
- docs: Remove post release task for minikube. by @eiffel-fl in #1731
- docs: Update installation instructions for ig by @mqasimsarfraz in #1754
- docs: Update installation instructions for kubectl-gadget by @mqasimsarfraz in #1761
Testing and Continue Integration
- dependabot: Run the scans at 05:00 CET/CEST. by @eiffel-fl in #1713
- gha: Run AKS and ARO integration tests for
citest/branches too. by @mauriciovasquezbernal in #1723 - integration tests: ARO: update openshift label by @alban in #1732
- integration: Don't use regexp on advise network tests by @mauriciovasquezbernal in #1715
- integration: Increase wait duration in TestPrometheus by @mqasimsarfraz in #1781
- ig-manager: Remove --root-test flag for unit tests by @mauriciovasquezbernal in #1785
- integration/ig: Remove an expected event for TestTraceExecHost. by @eiffel-fl in #1792
- ci: Publish ig container images. by @eiffel-fl in #1787
- integration: Skip RunTraceOpen on arm64. by @eiffel-fl in #1803
- ci: Replace Mariner name by AzureLinux. by @eiffel-fl in #1799
- Refactor
profile tcprttunit test by @eiffel-fl in #1755
Statistics
This release brings 10648 new lines and removes 3215 which are distributed among 275 files.
The new important features we added are responsible of the big increase in terms of lines, for example the containerized gadget feature brings itself around 2500 new lines.
Inspektor Gadget is built on top of the following languages:
| Language | files | blank | comment | code |
|---|---|---|---|---|
| C/C++ Header | 42 | 33227 | 372 | 250101 |
| Go | 509 | 12569 | 12609 | 92389 |
| Markdown | 89 | 1871 | 0 | 6874 |
| SVG | 8 | 1 | 2 | 5177 |
| C | 37 | 1014 | 648 | 4230 |
| YAML | 64 | 115 | 347 | 3080 |
| Protocol Buffers | 2 | 181 | 786 | 733 |
| make | 15 | 143 | 62 | 586 |
| Bourne Shell | 24 | 122 | 202 | 381 |
| Dockerfile | 12 | 72 | 66 | 213 |
| JSON | 4 | 0 | 0 | 105 |
| Perl | 1 | 18 | 13 | 54 |
| Bourne Again Shell | 1 | 4 | 3 | 16 |
| -------- | -------- | -------- | -------- | -------- |
| SUM: | 808 | 49337 | 15110 | 363939 |
New Contributors
- @middaywords made their first contribution in #1758
Full Changelog: v0.17.0...v0.18.0