diff --git a/docs/plans-executions/2026-09-11-1526-provider-health-checks.md b/docs/plans-executions/2026-09-11-1526-provider-health-checks.md index dc4adf2..550e397 100644 --- a/docs/plans-executions/2026-09-11-1526-provider-health-checks.md +++ b/docs/plans-executions/2026-09-11-1526-provider-health-checks.md @@ -266,3 +266,49 @@ Worth noting: - `CLAUDE.md`'s "What this is" and "Commands" sections were left stale on purpose. Rewriting them is outside this plan, so the new gotcha flags them instead of leaving them silently wrong. + +## Step 7 — Validate, record, push, open the PR + +The full suite runs codegen, `go fmt` and `go vet`, then `go test -race` on every +package, with both envtest suites included: + +```bash +make test +# every package ok; internal/providerhealth 92.5 %, internal/provider/kvm 92.0 % coverage +``` + +`go fmt` rewrote nothing, and `git status` showed only the Step 6 docs. + +`make lint` could not run, for a reason unrelated to this branch. The Makefile rebuilt +the custom golangci-lint, which reports "built with go1.27.0", and its bundled +staticcheck (honnef.co/go/tools v0.7.0) panics on the standard library before it +reaches any repo package: + +```bash +make lint +# buildir: package "poll" (isInitialPkg: false, needAnalyzeSource: true): unexpected expr: *ast.KeyValueExpr +# make: *** [Makefile:107: lint] Error 3 +``` + +The local toolchain is go1.27.0 while `go.mod` says 1.26.0; the otel-tracing plan's +log shows `make lint` running normally before the toolchain moved. Retrying with +`GOTOOLCHAIN=go1.26.0` would have meant downloading a toolchain, and the user declined +that. `go vet` is clean in all three configurations: plain inside `make test`, plus +`-tags=integration` and `-tags=e2e`. + +The kind e2e suite creates and deletes its own `egress-proxies-operator-test-e2e` +cluster. I checked `KIND_CLUSTER` first, because the two clusters already on the +machine (`kind`, `proxy-operator-demo`) must not be torn down by `cleanup-test-e2e`: + +```bash +make test-e2e > /e2e.log 2>&1 +# Ran 3 of 5 Specs in 86.210 seconds +# SUCCESS! -- 3 Passed | 0 Failed | 0 Pending | 2 Skipped +``` + +In the deployed manager, the `kubernetes` ProviderHealth reported `Ready=True` about a +second after the pod was up (20:30:05.6 → 20:30:06.7). The metrics scrape that followed +contained `proxy_operator_provider_target_up{provider="kubernetes",target="apiserver"} 1`. +That exercises the generated RBAC, the API-reader path and the `main.go` gauge wiring +end to end. The two skipped specs are the Tempo-gated tracing specs; `TEMPO_URL` was not +set.