Skip to content

build(controller): build and publish the controller image - #48

Open
mattmattox wants to merge 4 commits into
mainfrom
build/b1-controller-image
Open

mattmattox wants to merge 4 commits into
mainfrom
build/b1-controller-image

Conversation

@mattmattox

Copy link
Copy Markdown
Contributor

The chart and deploy/controller/ reference supporttools/node-doctor-controller, but nothing built or published it, so enabling the controller always ended in ImagePullBackOff.

Adds Dockerfile.controller (static Go binary on scratch, non-root, writable /data for SQLite), Makefile image targets, a push:false build in ci.yml, and a docker-controller job in release.yml that publishes, cosign-signs, and is covered by the packaged-chart image guard. github-release and helm-publish depend on it.

The chart's controller tag now follows image.tag instead of appVersion, which carries a v prefix no published image has. deploy/controller/deployment.yaml pins 1.9.0 instead of :latest. The e2e harness builds and loads node-doctor-controller:e2e-test.

The full docker build could not complete locally (daemon cannot reach storage.googleapis.com; the existing Dockerfile fails identically). CI's docker job proves it here; publish is verified on the next tag.

🤖 Generated with Claude Code

mattmattox and others added 4 commits October 7, 2026 09:39
Cast statfs Bsize to int64 so pkg/monitors/system builds on macOS, where
the field is uint32. Make the unit tests portable: short unix socket
paths under the 104-byte limit, squat the wildcard address in the
Prometheus bind-failure test, discover the loopback interface name, and
skip tests that need 127.0.0.0/8 aliases or inotify rename semantics
when the host lacks them.

Remove the unused command-call tracking and testKernelPanicLog from the
logpattern mocks, and revive the memory estimation assertions that were
commented out.

Closes #20

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Delete process docs copied from another project's template
(docs/development/*, docs/deployment.md, .githooks/README.md) and
replace docs/README.md with an index of the docs that exist, grouped
for operators and developers. Repoint the links that targeted the
deleted files and add scripts/check-doc-links.sh to catch broken
relative links.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ftovers

scripts/validate-pipeline-local.sh only had case branches for another
project's components, so it ran zero checks and reported success. It now
runs gofmt, GOOS=linux go vet, golangci-lint (SKIP_LINT=1 to allow it
missing), gosec when installed, go test -short -race, helm lint and
helm-verify-generated, and exits non-zero on any failure.

Makefile: validate-component passes --component=; test-e2e uses
-tags=e2e and checks for kind; COVERAGE_THRESHOLD is 70 and ci.yml
calls make coverage-threshold so there is one source; docker-push and
push-*-image require an explicit VERSION and never tag or push :latest.
Removed the template header, helm-publish stub, deploy-*, bump*,
qa-check, devils-advocate, check-kubeconfig-* and their variables.

Deleted dead template files: init-from-template.sh,
substitute-variables.sh, validate-api.sh, the GPG scripts, .githooks
pre-push and setup.sh, hooks/, .validation.json, .version-rc.

validate-repo-cleanliness.sh no longer rejects the repo's own
Dockerfile.overlay-test.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The chart and deploy manifests referenced supporttools/node-doctor-controller,
but nothing built or published it, so enabling the controller always ended in
ImagePullBackOff. Add Dockerfile.controller (static Go binary on scratch,
non-root, writable /data for SQLite), wire it into the Makefile image targets,
build it in ci.yml, and publish, sign and guard it in release.yml alongside
the other two images.

The chart's controller tag now follows image.tag instead of appVersion, which
carries a v prefix that no published image tag has. deploy/controller pins the
current release instead of :latest, and the e2e harness builds and loads the
controller image kind expects.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant