Add OpenAPI instructions to RPC Endpoint Checklist (#11654)

This commit is contained in:
Derek Strickland
2021-12-09 09:25:44 -05:00
committed by GitHub
parent bb1fc6ec5f
commit ff2f413295

View File

@@ -1,4 +1,4 @@
# New RPC Endpoint Checklist
# New/Updated RPC Endpoint Checklist
Prefer adding a new message to changing any existing RPC messages.
@@ -21,13 +21,22 @@ Prefer adding a new message to changing any existing RPC messages.
* Register new RPC struct in `nomad/server.go`
* Check ACLs to enforce security
* Wrapper for the HTTP request in `command/agent/foo_endpoint.go`
* [ ] Wrapper for the HTTP request in `command/agent/foo_endpoint.go`
* Backwards compatibility requires a new endpoint, an upgraded
client or server may be forwarding this request to an old server,
without support for the new RPC
* RPCs triggered by an internal process may not need support
* Check ACLs as an optimization
* [ ] Endpoint added/updated in the [`nomad-openapi`](https://github.com/hashicorp/nomad-openapi) repository.
* New endpoints will need to be configured in that repository's `generator` package.
* Updated endpoints may require the `generator` configuration to change, especially if parameters or headers change.
* If the accepted or returned `struct` schema changes, the Nomad version references in `generator/go.mod` will need
to be updated. Once the version is updated, regenerate the spec and all all clients so that the new schema is
reflected in the spec and thus the generated models.
* If `QueryOptions`, `QueryMeta`, `WriteOptions`, or `WriteMeta` change, the `v1` framework will need to updated to
support the change.
* [ ] `nomad/core_sched.go` sends many RPCs
* `ServersMeetMinimumVersion` asserts that the server cluster is
upgraded, so use this to guard sending the new RPC, else send the old RPC