Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
71e2c33
feat(disk-failure): cgroupv2 filter and relative-path disruption
aymericDD Jun 12, 2026
ad7664e
fix(disk-failure): diagnostics and cgroup fixes
aymericDD Jun 12, 2026
7299ad6
chore(deps): remove unused libbpfgo/helpers from vendor
aymericDD Jun 12, 2026
59beab7
chore(license): remove libbpfgo/helpers from LICENSE-3rdparty
aymericDD Jun 12, 2026
b8d5a79
debug
aymericDD Jun 15, 2026
61f05b9
debug
aymericDD Jun 15, 2026
0265e00
fix(disk-failure): arch-specific openat hook strategy
aymericDD Jun 15, 2026
50b7aba
debug(disk-failure): remove path filter to isolate override
aymericDD Jun 16, 2026
01e7ad1
refactor(disk-failure): remove arch-specific hook strategy
aymericDD Jun 16, 2026
b6bfa7a
fix(disk-failure): switch to fmod_ret for openat override
aymericDD Jun 16, 2026
daa9a91
fix(disk-failure): restore path filter with fmod_ret arg reading
aymericDD Jun 16, 2026
d2d1643
fix(disk-failure): use PT_REGS_PARM1_CORE for fmod_ret ctx access
aymericDD Jun 16, 2026
a23693c
fix(disk-failure): handle openat with explicit dirfd in path filter
aymericDD Jun 16, 2026
a1502cd
debug(disk-failure): add BPF trace output for path filter diagnosis
aymericDD Jun 17, 2026
7f55c5e
debug(disk-failure): replace tracefs traces with BPF map counters
aymericDD Jun 17, 2026
d151eeb
debug(disk-failure): add rel_ino_match and rel_null_fd counters
aymericDD Jun 17, 2026
380aa88
fix(disk-failure): fallback to PID filter when cgroup check fails
aymericDD Jun 17, 2026
cddbf8b
fix(disk-failure): walk process tree for container filtering
aymericDD Jun 17, 2026
e3011fc
fix(disk-failure): use netns inode to catch kubectl exec processes
aymericDD Jun 17, 2026
fec2bcb
fix(disk-failure): restore bpf_probe_read for path string access
aymericDD Jun 17, 2026
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
1 change: 0 additions & 1 deletion LICENSE-3rdparty.csv
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,6 @@ github.com/Microsoft/hcsshim,github.com/Microsoft/hcsshim/internal/winapi,MIT
github.com/Microsoft/hcsshim,github.com/Microsoft/hcsshim/osversion,MIT
github.com/Microsoft/hcsshim,github.com/Microsoft/hcsshim/pkg/ociwclayer,MIT
github.com/aquasecurity/libbpfgo,github.com/aquasecurity/libbpfgo,Apache-2.0
github.com/aquasecurity/libbpfgo/helpers,github.com/aquasecurity/libbpfgo/helpers,Apache-2.0
github.com/avast/retry-go,github.com/avast/retry-go,MIT
github.com/beorn7/perks,github.com/beorn7/perks/quantile,MIT
github.com/cenkalti/backoff,github.com/cenkalti/backoff,MIT
Expand Down
2 changes: 1 addition & 1 deletion bin/injector/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ FROM gcr.io/distroless/python3-debian13:latest
ARG TARGETARCH

# binaries used by the chaos-injector, ran as commmands
COPY --from=binaries /usr/bin/uname /usr/bin/df /usr/bin/ls /usr/bin/test /usr/bin/
COPY --from=binaries /usr/bin/uname /usr/bin/bash /usr/bin/ls /usr/bin/cat /usr/bin/df /usr/bin/ls /usr/bin/test /usr/bin/
COPY --from=binaries /usr/sbin/iptables /usr/sbin/
COPY --from=binaries /usr/sbin/tc /sbin/tc
COPY --from=binaries /usr/bin/bpftool-${TARGETARCH} /usr/bin/bpftool
Expand Down
13 changes: 13 additions & 0 deletions builderstest/chaospod.go
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,10 @@ func (b *ChaosPodBuilder) WithChaosSpec(targetNodeName string, terminationGraceP
MountPath: "/boot",
ReadOnly: true,
},
{
Name: "tracefs",
MountPath: "/mnt/tracefs",
},
},
},
},
Expand Down Expand Up @@ -359,6 +363,15 @@ func (b *ChaosPodBuilder) WithChaosSpec(targetNodeName string, terminationGraceP
},
},
},
{
Name: "tracefs",
VolumeSource: v1.VolumeSource{
HostPath: &v1.HostPathVolumeSource{
Path: "/sys/kernel/debug/tracing",
Type: &hostPathDirectory,
},
},
},
},
}
})
Expand Down
13 changes: 13 additions & 0 deletions cgroup/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ type Manager interface {
IsCgroupV2() bool
// RelativePath returns the controller relative path
RelativePath(controller string) string
// CgroupV2Path returns the absolute cgroupv2 unified hierarchy path for the cgroup,
// or empty string on cgroupv1. Used to populate BPF_MAP_TYPE_CGROUP_ARRAY for
// bpf_current_task_under_cgroup() ancestor checking (covers kubectl exec sub-cgroups).
CgroupV2Path() string
}

type instCGroupManager interface {
Expand Down Expand Up @@ -131,3 +135,12 @@ func (m manager) IsCgroupV2() bool {
func (m manager) RelativePath(controller string) string {
return strings.TrimPrefix(m.cgroups.Path(controller), m.mountPath)
}

// CgroupV2Path returns the absolute cgroupv2 unified hierarchy path, or "" on cgroupv1.
func (m manager) CgroupV2Path() string {
if !m.isV2 {
return ""
}

return m.cgroups.Path("")
}
45 changes: 45 additions & 0 deletions cgroup/manager_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 0 additions & 11 deletions ebpf/const-x64.go

This file was deleted.

Loading
Loading