Repository navigation
Move public APIs under api/<api-name>/v1. - #2996
Conversation
29a21f3 to
06a36c3
Compare
api/<api-name>/v1.
Tim Hockin (thockin)
left a comment
There was a problem hiding this comment.
"api/infra" feels wrong to me. In my mind there's a distinct difference between layers, and the "kubernetes layer plugin" is not the same as the others. I know it's a bit vague. Sort of: the core of substrate calls out to credential providers and to objectstores, but the kubernetes "infra" calls into substrate. I know it needs to be in a place we can support it and others can get at it, so I am not blocking it, but it feels like we need a bit more distance between the pieces.
What if "infra" was a top-level thing, suggesting that there could be other infra besides k8s?
/api/ateapi/v1/...
/infra/k8s/ate/v1/...
Then the CRD types would be ate.WorkerPool or atek8s.WorkerPool or kates.WorkerPool :)
I also suspect that we will want to decouple the proto files from language-specific generated code, but not enough to argue harder for it.
06a36c3 to
619d83f
Compare
|
I moved the CRDs to |
4199177 to
6a504cc
Compare
|
Needs rebase |
6a504cc to
afbe772
Compare
afbe772 to
e76208d
Compare
All public APIs now live in one tree, with a version in every package, so a future version can sit next to v1. * Proto packages are substrate.<api-name>.v1, so gRPC method names change, for example to /substrate.ateapi.v1.Control/GetActor. * Go packages for the protos are named after the API, for example package ateapi. * CRDs move from ate.dev/v1alpha1 to ate.dev/v1. They live in api/infra/k8s/ate/v1. AI use: AI-assisted, I reviewed and tested it (test automation).
e76208d to
07989fa
Compare
…before the step changes anything (#132) On a v1.0.0-rc.1 cluster the optional Filestore step failed at "Apply Kustomize overlay": upstream's overlay writes its CSIDriverConfig against ate.dev/v1alpha1, and agent-substrate/substrate#2996 moved the CRDs to ate.dev/v1, which is all the cluster serves. By then deploy.sh had granted roles/file.editor and bound Workload Identity, the step had turned off the managed Filestore addon, and the apply had created the namespace, Deployment and DaemonSet (node pods crash-looping) without the config. The wizard's [s] moved on and both summaries said "filestore skipped". The script now clones the overlay first and reads the apiVersion from its csi_driver_config.yaml, compares it with the served versions of csidriverconfigs.ate.dev, and fails there — naming both versions, saying nothing was changed, and pointing at kubernetes-sigs/gcp-filestore-csi- driver#1416 — before any gcloud call. A cluster without the CRD fails the same way. The clone stays at HEAD rather than a pin: no revision of the overlay serves v1 yet, so a pin would only fix the failure in place, while HEAD picks up the upstream fix when it lands and the check keeps the step honest until then. The checklist rows follow the new order, and the addon row lights on "nothing to disable" instead of staying unlit on a cluster without the managed driver. A run that fails and is skipped from the failure is recorded (FilestoreCSIFailed) and reported as "failed" by the completion panel and the exit summary, which points at the namespace a partial apply leaves behind; a later run that succeeds clears it. The README row says what the step checks and that it stops on this pin. Tests run the check as written against a fake kubectl (v1alpha1 against v1 fails with the full message, v1 passes, both served passes, no CRD fails), assert the script's ordering with no gcloud ahead of the check, cover the checklist order and the failed-check stop, and drive the Filestore screen through a failure, the skip, and a successful rerun. Fixes #114 Co-authored-by: Aditya Shantanu <[email protected]>
All public APIs now live in one tree, with a version in every package,
so a future version can sit next to v1.
substrate.<api-name>.v1, so gRPC method names change, for example to/substrate.ateapi.v1.Control/GetActor.package ateapi.ate.dev/v1alpha1toate.dev/v1. They live inapi/infra/k8s/ate/v1.AI use: AI-assisted, I reviewed and tested it (test automation).
Fixes #2753