Files
zeekayandHanzo Dev 7d6a4cbb78 disk: a node agent that keeps every node's disks from filling
At 75% it drops caches (unused images, the journal, stale /tmp and build caches); at 80% it labels the node hanzo.ai/disk=pressure so disk-heavy pods stay off; at 85% it purges rotated logs and the forge's push quarantines, then grows the EBS volume by half (6 h cooldown, 4 TiB ceiling) and the filesystem with it; at 90% it cordons the node. Its own module, standard library only, shipped as ghcr.io/hanzoai/disk.

Co-authored-by: Hanzo Dev <[email protected]>
2026-10-02 08:20:46 -07:00

41 lines
1.3 KiB
YAML

# Canonical CI/CD config for hanzoai/k8s — read by the hanzoai/ci reusable workflow
# (.hanzo/workflows/cicd.yml) and by platform.hanzo.ai.
#
# The k8s service is a zip PLUGIN, so it ships as a BINARY a running host installs and
# verifies by digest, not as an image a cluster runs: the composition that serves
# /v1/k8s is hanzoai/cloud's, and it installs this artifact by URL + SHA-256 from the
# index published below.
#
# disk/ is the one image: the node agent that keeps every node's disks from filling,
# run as a DaemonSet (universe infra/aws/k8s/disk.yaml). Its own module, standard
# library only, so the plugin's gates and graph never see it.
binaries:
- name: k8s
main: .
platforms: [linux/amd64, linux/arm64]
images:
- name: disk
context: disk
dockerfile: disk/Dockerfile
repo: ghcr.io/hanzoai/disk
platforms:
- linux/amd64
- linux/arm64
test:
- name: go-test
# `make test`, never a bare `go test`: the target carries `go vet` and the four
# regeneration gates (declaration, OpenAPI, zipdoc, the op/plane bijection), and a
# bare run would skip every one of them while still exiting 0.
run: |
set -e
export GOPRIVATE='github.com/hanzoai/*' GOWORK=off
make test
- name: disk
run: |
set -e
cd disk
GOWORK=off go vet ./...
GOWORK=off go test ./... -count=1