Michael Schurter
f8884d8b52
client/metadata: fix crasher caused by AllowStale = false ( #16549 )
...
Fixes #16517
Given a 3 Server cluster with at least 1 Client connected to Follower 1:
If a NodeMeta.{Apply,Read} for the Client request is received by
Follower 1 with `AllowStale = false` the Follower will forward the
request to the Leader.
The Leader, not being connected to the target Client, will forward the
RPC to Follower 1.
Follower 1, seeing AllowStale=false, will forward the request to the
Leader.
The Leader, not being connected to... well hoppefully you get the
picture: an infinite loop occurs.
2023-03-20 16:32:32 -07:00
Derek Strickland
61c3a5c6b3
Add OpenAPI instructions to RPC Endpoint Checklist ( #11654 )
2021-12-09 09:25:44 -05:00
Chris Baker
cb540ed691
added tests that the API doesn't leak Node.SecretID
...
added more documentation on JSON encoding to the contributing guide
2021-03-23 18:09:20 +00:00
Tim Gross
724f82e32d
docs: add metrics and API docs to RPC contributors checklist
2021-01-04 15:41:12 -05:00
Lang Martin
a0a6766740
CSI: Scheduler knows about CSI constraints and availability ( #6995 )
...
* structs: piggyback csi volumes on host volumes for job specs
* state_store: CSIVolumeByID always includes plugins, matches usecase
* scheduler/feasible: csi volume checker
* scheduler/stack: add csi volumes
* contributing: update rpc checklist
* scheduler: add volumes to State interface
* scheduler/feasible: introduce new checker collection tgAvailable
* scheduler/stack: taskGroupCSIVolumes checker is transient
* state_store CSIVolumeDenormalizePlugins comment clarity
* structs: remote TODO comment in TaskGroup Validate
* scheduler/feasible: CSIVolumeChecker hasPlugins improve comment
* scheduler/feasible_test: set t.Parallel
* Update nomad/state/state_store.go
Co-Authored-By: Danielle <dani@hashicorp.com>
* Update scheduler/feasible.go
Co-Authored-By: Danielle <dani@hashicorp.com>
* structs: lift ControllerRequired to each volume
* state_store: store plug.ControllerRequired, use it for volume health
* feasible: csi match fast path remove stale host volume copied logic
* scheduler/feasible: improve comments
Co-authored-by: Danielle <dani@builds.terrible.systems>
2020-03-23 13:58:29 -04:00
Lang Martin
88316208a0
csi: server-side plugin state tracking and api ( #6966 )
...
* structs: CSIPlugin indexes jobs acting as plugins and node updates
* schema: csi_plugins table for CSIPlugin
* nomad: csi_endpoint use vol.Denormalize, plugin requests
* nomad: csi_volume_endpoint: rename to csi_endpoint
* agent: add CSI plugin endpoints
* state_store_test: use generated ids to avoid t.Parallel conflicts
* contributing: add note about registering new RPC structs
* command: agent http register plugin lists
* api: CSI plugin queries, ControllerHealthy -> ControllersHealthy
* state_store: copy on write for volumes and plugins
* structs: copy on write for volumes and plugins
* state_store: CSIVolumeByID returns an unhealthy volume, denormalize
* nomad: csi_endpoint use CSIVolumeDenormalizePlugins
* structs: remove struct errors for missing objects
* nomad: csi_endpoint return nil for missing objects, not errors
* api: return meta from Register to avoid EOF error
* state_store: CSIVolumeDenormalize keep allocs in their own maps
* state_store: CSIVolumeDeregister error on missing volume
* state_store: CSIVolumeRegister set indexes
* nomad: csi_endpoint use CSIVolumeDenormalizePlugins tests
2020-03-23 13:58:29 -04:00
Lang Martin
2eb288426c
docs: update checklist-rpc-endpoint
2020-03-23 13:58:29 -04:00
Lang Martin
d75f77b8b5
Update checklist-rpc-endpoint.md
...
Add an ACL bullet point
2020-02-14 13:10:28 -05:00
Lang Martin
b9f90701ea
checklist NodeDeregisterBatchRequestType must go at the end
2019-07-10 13:56:20 -04:00
Lang Martin
909f3b0534
new file: contributing/checklist-rpc-endpoint.md
2019-07-10 13:56:20 -04:00