Files
nomad/client/state/db_noop.go
Tim Gross 928a82a184 WID manager: save and restore signed WIs from client state DB (#18661)
When clients are restarted and the identity hook runs when we restore
allocations, the running allocations are likely to have already-signed Workload
Identities that are unexpired. Save these to the client's local state DB so that
we can avoid a thundering herd of RPCs during client restart. When we restore,
we'll check if there's at least one expired signed WI before making any initial
signing request.

Included:
* Renames `getIdentities` to `getInitialIdentities` to make the workflow more clear.
* Renames the existing `widmgr_test.go` file of integration tests, which is in its
  own package to avoid circular imports to `widmgr_int_test.go`
2023-10-09 09:16:23 -04:00

151 lines
3.9 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package state
import (
arstate "github.com/hashicorp/nomad/client/allocrunner/state"
"github.com/hashicorp/nomad/client/allocrunner/taskrunner/state"
dmstate "github.com/hashicorp/nomad/client/devicemanager/state"
"github.com/hashicorp/nomad/client/dynamicplugins"
driverstate "github.com/hashicorp/nomad/client/pluginmanager/drivermanager/state"
"github.com/hashicorp/nomad/client/serviceregistration/checks"
cstructs "github.com/hashicorp/nomad/client/structs"
"github.com/hashicorp/nomad/nomad/structs"
)
// NoopDB implements a StateDB that does not persist any data.
type NoopDB struct{}
func (n NoopDB) Name() string {
return "noopdb"
}
func (n NoopDB) Upgrade() error {
return nil
}
func (n NoopDB) GetAllAllocations() ([]*structs.Allocation, map[string]error, error) {
return nil, nil, nil
}
func (n NoopDB) PutAllocation(alloc *structs.Allocation, opts ...WriteOption) error {
return nil
}
func (n NoopDB) GetDeploymentStatus(allocID string) (*structs.AllocDeploymentStatus, error) {
return nil, nil
}
func (n NoopDB) PutDeploymentStatus(allocID string, ds *structs.AllocDeploymentStatus) error {
return nil
}
func (n NoopDB) GetNetworkStatus(allocID string) (*structs.AllocNetworkStatus, error) {
return nil, nil
}
func (n NoopDB) PutNetworkStatus(allocID string, ds *structs.AllocNetworkStatus, opts ...WriteOption) error {
return nil
}
func (n NoopDB) PutAcknowledgedState(allocID string, state *arstate.State, opts ...WriteOption) error {
return nil
}
func (n NoopDB) GetAcknowledgedState(allocID string) (*arstate.State, error) { return nil, nil }
func (n NoopDB) PutAllocVolumes(allocID string, state *arstate.AllocVolumes, opts ...WriteOption) error {
return nil
}
func (n NoopDB) GetAllocVolumes(allocID string) (*arstate.AllocVolumes, error) { return nil, nil }
func (n NoopDB) PutAllocIdentities(_ string, _ []*structs.SignedWorkloadIdentity, _ ...WriteOption) error {
return nil
}
func (n NoopDB) GetAllocIdentities(_ string) ([]*structs.SignedWorkloadIdentity, error) {
return nil, nil
}
func (n NoopDB) GetTaskRunnerState(allocID string, taskName string) (*state.LocalState, *structs.TaskState, error) {
return nil, nil, nil
}
func (n NoopDB) PutTaskRunnerLocalState(allocID string, taskName string, val *state.LocalState) error {
return nil
}
func (n NoopDB) PutTaskState(allocID string, taskName string, state *structs.TaskState) error {
return nil
}
func (n NoopDB) DeleteTaskBucket(allocID, taskName string) error {
return nil
}
func (n NoopDB) DeleteAllocationBucket(allocID string, opts ...WriteOption) error {
return nil
}
func (n NoopDB) PutDevicePluginState(ps *dmstate.PluginState) error {
return nil
}
func (n NoopDB) GetDevicePluginState() (*dmstate.PluginState, error) {
return nil, nil
}
func (n NoopDB) PutDriverPluginState(ps *driverstate.PluginState) error {
return nil
}
func (n NoopDB) GetDriverPluginState() (*driverstate.PluginState, error) {
return nil, nil
}
func (n NoopDB) PutDynamicPluginRegistryState(ps *dynamicplugins.RegistryState) error {
return nil
}
func (n NoopDB) GetDynamicPluginRegistryState() (*dynamicplugins.RegistryState, error) {
return nil, nil
}
func (n NoopDB) PutCheckResult(allocID string, qr *structs.CheckQueryResult) error {
return nil
}
func (n NoopDB) GetCheckResults() (checks.ClientResults, error) {
return nil, nil
}
func (n NoopDB) DeleteCheckResults(allocID string, checkIDs []structs.CheckID) error {
return nil
}
func (n NoopDB) PurgeCheckResults(allocID string) error {
return nil
}
func (n NoopDB) PutNodeMeta(map[string]*string) error {
return nil
}
func (n NoopDB) GetNodeMeta() (map[string]*string, error) {
return nil, nil
}
func (n NoopDB) PutNodeRegistration(reg *cstructs.NodeRegistration) error {
return nil
}
func (n NoopDB) GetNodeRegistration() (*cstructs.NodeRegistration, error) {
return nil, nil
}
func (n NoopDB) Close() error {
return nil
}