Commit fe095fd
e2e-fleet-mc-test creates three k3d clusters, which are six containers
sharing the runner's root filesystem. Every kubelet measures that same
disk, so they all declare DiskPressure within seconds of each other, and
k3s evicts at nodefs.available<5%. Once the nodes carry the disk-pressure
taint, helm upgrade --install --atomic --timeout=10m never gets its pods
and the install fails for the full ten minutes, three attempts in a row.
Runners are not the same on both sides: public CI gets 4 CPUs, 15.6 GiB
of RAM and a 144 GB filesystem, a private repository gets 2 CPUs, 7.75
GiB and 72 GB. On the small runner the filesystem arrives 82-85% full,
and the job spends about 11.5 GiB of what is left: 6.9 GB in
/var/lib/docker, most of it the k3d node volumes that image import fills,
plus 2.4 GB of Go caches. Instrumenting a run showed it finishing with
4.1 GiB available against a 3.58 GiB floor, passing by half a gigabyte,
which is why it passed on one commit and died on the next.
The android SDK, dotnet, ghcup, swift and the CodeQL toolcache come to
25.6 GB that Fleet's e2e never touches. Removing them takes six seconds
and leaves the job finishing at 28.0 GiB instead of 4.1, moving it from
1.15x the eviction floor to 7.8x. Deploy Fleet, which had been timing out
three times at ten minutes, completes in 39 seconds.
Deleting system directories from a script that lives in a repository
deserves care, so it refuses to run anywhere except an ephemeral
GitHub-hosted runner, checking the Actions environment, GitHub's prebuilt
image marker and the runner work directory. A workstation, a container or
a persistent self-hosted machine gets a description of what would have
been removed and nothing else. FLEET_FORCE_DISK_PRUNE=yes overrides that
deliberately, DRY_RUN=1 lists the paths with their sizes, and each path
is separately validated as an absolute, literal, at least three levels
deep directory that is not a symlink and is not a system directory, so
editing the list carelessly later cannot turn it into rm -rf /usr.
Co-authored-by: Patrick Seidensal <9606095+p-se@users.noreply.github.com>
1 parent d079615 commit fe095fd
2 files changed
Lines changed: 111 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
| |||
0 commit comments