Add the provider Checker contract and the kubernetes and GCP checks

Checker is an optional interface next to Provider: Check returns one
verdict per target and never fails as a whole. The kubernetes provider
lists at most one managed Pod cluster-wide (the verb and scope GC relies
on); the GCP provider fetches a single page of at most one managed
instance through a new Probe seam method, since the SDK treats
MaxResults as a page size and the existing AggregatedList drains every
page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-11 20:08:21 +00:00
co-authored by Claude Opus 5
parent 1c773c24ad
commit 1962365f44
9 changed files with 511 additions and 5 deletions
+5 -1
View File
@@ -36,6 +36,8 @@ const defaultImage = "ubuntu/squid:6.6-24.04_edge"
type Provider struct {
client client.Client
image string
// apiHost is the API server URL, shown by Check; empty in tests.
apiHost string
}
// New builds a kubernetes Provider from its config block. Satisfies
@@ -64,7 +66,9 @@ func NewWithTransportWrapper(_ context.Context, cfg provider.ProviderConfig, wra
if err != nil {
return nil, fmt.Errorf("kubernetes provider %q: building client: %w", cfg.Name, err)
}
return newWithClient(c, cfg), nil
p := newWithClient(c, cfg)
p.apiHost = restCfg.Host
return p, nil
}
// newWithClient builds a Provider around an already-constructed client,