Documentation ¶
Index ¶
- func NewIdentitiesClient(logger hclog.Logger, tokenDeriver TokenDeriverFunc) *identitiesClient
- type ConsulServiceAPI
- type MockConsulOp
- type MockConsulServiceClient
- func (m *MockConsulServiceClient) AllocRegistrations(allocID string) (*consul.AllocRegistration, error)
- func (m *MockConsulServiceClient) GetOps() []MockConsulOp
- func (m *MockConsulServiceClient) RegisterWorkload(svcs *consul.WorkloadServices) error
- func (m *MockConsulServiceClient) RemoveWorkload(svcs *consul.WorkloadServices)
- func (m *MockConsulServiceClient) UpdateTTL(checkID, output, status string) error
- func (m *MockConsulServiceClient) UpdateWorkload(old, newSvcs *consul.WorkloadServices) error
- type MockServiceIdentitiesClient
- func (mtc *MockServiceIdentitiesClient) DeriveSITokens(alloc *structs.Allocation, tasks []string) (map[string]string, error)
- func (mtc *MockServiceIdentitiesClient) DeriveTokenErrors() map[string]map[string]error
- func (mtc *MockServiceIdentitiesClient) SetDeriveTokenError(allocID string, tasks []string, err error)
- type ServiceIdentityAPI
- type TokenDeriverFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewIdentitiesClient ¶ added in v0.10.4
func NewIdentitiesClient(logger hclog.Logger, tokenDeriver TokenDeriverFunc) *identitiesClient
Types ¶
type ConsulServiceAPI ¶ added in v0.9.0
type ConsulServiceAPI interface { // RegisterWorkload with Consul. Adds all service entries and checks to Consul. RegisterWorkload(*consul.WorkloadServices) error // RemoveWorkload from Consul. Removes all service entries and checks. RemoveWorkload(*consul.WorkloadServices) // UpdateWorkload in Consul. Does not alter the service if only checks have // changed. UpdateWorkload(old, newTask *consul.WorkloadServices) error // AllocRegistrations returns the registrations for the given allocation. AllocRegistrations(allocID string) (*consul.AllocRegistration, error) // UpdateTTL is used to update the TTL of a check. UpdateTTL(id, output, status string) error }
ConsulServiceAPI is the interface the Nomad Client uses to register and remove services and checks from Consul.
ACL requirements - service:write
type MockConsulOp ¶ added in v0.9.0
type MockConsulOp struct { Op string // add, remove, or update AllocID string Name string // task or group name OccurredAt time.Time }
MockConsulOp represents the register/deregister operations.
func NewMockConsulOp ¶ added in v0.9.0
func NewMockConsulOp(op, allocID, name string) MockConsulOp
type MockConsulServiceClient ¶ added in v0.9.0
type MockConsulServiceClient struct { // AllocRegistrationsFn allows injecting return values for the // AllocRegistrations function. AllocRegistrationsFn func(allocID string) (*consul.AllocRegistration, error) // contains filtered or unexported fields }
MockConsulServiceClient implements the ConsulServiceAPI interface to record and log task registration/deregistration.
func NewMockConsulServiceClient ¶ added in v0.9.0
func NewMockConsulServiceClient(t testing.T, logger log.Logger) *MockConsulServiceClient
func (*MockConsulServiceClient) AllocRegistrations ¶ added in v0.9.0
func (m *MockConsulServiceClient) AllocRegistrations(allocID string) (*consul.AllocRegistration, error)
func (*MockConsulServiceClient) GetOps ¶ added in v0.9.0
func (m *MockConsulServiceClient) GetOps() []MockConsulOp
func (*MockConsulServiceClient) RegisterWorkload ¶ added in v0.10.4
func (m *MockConsulServiceClient) RegisterWorkload(svcs *consul.WorkloadServices) error
func (*MockConsulServiceClient) RemoveWorkload ¶ added in v0.10.4
func (m *MockConsulServiceClient) RemoveWorkload(svcs *consul.WorkloadServices)
func (*MockConsulServiceClient) UpdateTTL ¶ added in v0.10.4
func (m *MockConsulServiceClient) UpdateTTL(checkID, output, status string) error
func (*MockConsulServiceClient) UpdateWorkload ¶ added in v0.10.4
func (m *MockConsulServiceClient) UpdateWorkload(old, newSvcs *consul.WorkloadServices) error
type MockServiceIdentitiesClient ¶ added in v0.10.4
type MockServiceIdentitiesClient struct { // DeriveTokenFn allows the caller to control the DeriveToken function. If // not set an error is returned if found in DeriveTokenErrors and otherwise // a token is generated and returned DeriveTokenFn TokenDeriverFunc // contains filtered or unexported fields }
MockServiceIdentitiesClient is used for testing the client for managing consul service identity tokens.
func NewMockServiceIdentitiesClient ¶ added in v0.10.4
func NewMockServiceIdentitiesClient() *MockServiceIdentitiesClient
NewMockServiceIdentitiesClient returns a MockServiceIdentitiesClient for testing.
func (*MockServiceIdentitiesClient) DeriveSITokens ¶ added in v0.10.4
func (mtc *MockServiceIdentitiesClient) DeriveSITokens(alloc *structs.Allocation, tasks []string) (map[string]string, error)
func (*MockServiceIdentitiesClient) DeriveTokenErrors ¶ added in v0.10.4
func (mtc *MockServiceIdentitiesClient) DeriveTokenErrors() map[string]map[string]error
func (*MockServiceIdentitiesClient) SetDeriveTokenError ¶ added in v0.10.4
func (mtc *MockServiceIdentitiesClient) SetDeriveTokenError(allocID string, tasks []string, err error)
type ServiceIdentityAPI ¶ added in v0.10.4
type ServiceIdentityAPI interface { // DeriveSITokens contacts the nomad server and requests consul service // identity tokens be generated for tasks in the allocation. DeriveSITokens(alloc *structs.Allocation, tasks []string) (map[string]string, error) }
ServiceIdentityAPI is the interface the Nomad Client uses to request Consul Service Identity tokens through Nomad Server.
ACL requirements - acl:write (used by Server only)
type TokenDeriverFunc ¶ added in v0.10.4
TokenDeriverFunc takes an allocation and a set of tasks and derives a service identity token for each. Requests go through nomad server.