Documentation ¶
Index ¶
- Constants
- Variables
- func ConfigEntryEventsFromChanges(tx ReadTxn, changes Changes) ([]stream.Event, error)
- func GatewayServiceKind(tx ReadTxn, name string, entMeta *acl.EnterpriseMeta) (structs.GatewayServiceKind, error)
- func PBToStreamSubscribeRequest(req *pbsubscribe.SubscribeRequest, entMeta acl.EnterpriseMeta) (*stream.SubscribeRequest, error)
- func ServiceHealthEventsFromChanges(tx ReadTxn, changes Changes) ([]stream.Event, error)
- func ServiceListUpdateEventsFromChanges(tx ReadTxn, changes Changes) ([]stream.Event, error)
- type ACLTokenListParameters
- type ACLTokenSetOptions
- type AbortTxn
- type AuthMethodQuery
- type BoolQuery
- type Changes
- type CheckIDIndex
- type ConfigEntryKindQuery
- type ConfigEntryLinkIndex
- type ConfigEntryUsage
- type CoordinateQuery
- type Delay
- type EnterpriseConfigEntryUsage
- type EnterpriseKVUsage
- type EnterpriseNodeUsage
- type EnterprisePeeringUsage
- type EnterpriseServiceUsage
- type EventPayloadCARoots
- type EventPayloadCheckServiceNode
- type EventPayloadConfigEntry
- type EventPayloadServiceListUpdate
- type EventPublisher
- type EventSubjectConfigEntry
- type EventSubjectService
- type FreeVirtualIP
- type Graveyard
- func (g *Graveyard) DumpTxn(tx ReadTxn) (memdb.ResultIterator, error)
- func (g *Graveyard) GetMaxIndexTxn(tx ReadTxn, prefix string, _ *acl.EnterpriseMeta) (uint64, error)
- func (g *Graveyard) InsertTxn(tx WriteTxn, key string, idx uint64, entMeta *acl.EnterpriseMeta) error
- func (g *Graveyard) ReapTxn(tx WriteTxn, idx uint64) error
- func (g *Graveyard) RestoreTxn(tx WriteTxn, stone *Tombstone) error
- type IndexEntry
- type IntentionDecisionOpts
- type KVUsage
- type KeyValueQuery
- type KindServiceName
- type KindServiceNameQuery
- type MultiQuery
- type NodeCheckQuery
- type NodeServiceQuery
- type NodeUsage
- type PeeringUsage
- type PreparedQueryIndex
- type Query
- type ReadDB
- type ReadTxn
- type Restore
- func (s *Restore) ACLAuthMethod(method *structs.ACLAuthMethod) error
- func (s *Restore) ACLBindingRule(rule *structs.ACLBindingRule) error
- func (s *Restore) ACLPolicy(policy *structs.ACLPolicy) error
- func (s *Restore) ACLRole(role *structs.ACLRole) error
- func (s *Restore) ACLToken(token *structs.ACLToken) error
- func (s *Restore) Abort()
- func (s *Restore) Autopilot(config *structs.AutopilotConfig) error
- func (s *Restore) CAConfig(config *structs.CAConfiguration) error
- func (s *Restore) CAProviderState(state *structs.CAConsulProviderState) error
- func (s *Restore) CARoot(r *structs.CARoot) error
- func (s *Restore) Commit() error
- func (s *Restore) ConfigEntry(c structs.ConfigEntry) error
- func (s *Restore) Coordinates(idx uint64, updates structs.Coordinates) error
- func (s *Restore) FederationState(g *structs.FederationState) error
- func (s *Restore) FreeVirtualIP(req FreeVirtualIP) error
- func (s *Restore) IndexRestore(idx *IndexEntry) error
- func (s *Restore) KVS(entry *structs.DirEntry) error
- func (s *Restore) LegacyIntention(ixn *structs.Intention) errordeprecated
- func (r *Restore) Peering(p *pbpeering.Peering) error
- func (r *Restore) PeeringSecrets(p *pbpeering.PeeringSecrets) error
- func (r *Restore) PeeringTrustBundle(ptb *pbpeering.PeeringTrustBundle) error
- func (s *Restore) PreparedQuery(query *structs.PreparedQuery) error
- func (s *Restore) Registration(idx uint64, req *structs.RegisterRequest) error
- func (s *Restore) ServiceVirtualIP(req ServiceVirtualIP) error
- func (s *Restore) Session(sess *structs.Session) error
- func (s *Restore) SystemMetadataEntry(entry *structs.SystemMetadataEntry) error
- func (s *Restore) Tombstone(stone *Tombstone) error
- type SamenessGroupDefaultIndex
- type SamenessGroupMemberIndex
- type ServiceIntentionLegacyIDIndex
- type ServiceIntentionSourceIndex
- type ServiceIntentionSourceSamenessGroupIndex
- type ServiceManualVIPIndex
- type ServiceNameIndex
- type ServiceVirtualIP
- type ServiceWithDecision
- type SimplifiedExportedServices
- type Snapshot
- func (s *Snapshot) ACLAuthMethods() (memdb.ResultIterator, error)
- func (s *Snapshot) ACLBindingRules() (memdb.ResultIterator, error)
- func (s *Snapshot) ACLPolicies() (memdb.ResultIterator, error)
- func (s *Snapshot) ACLRoles() (memdb.ResultIterator, error)
- func (s *Snapshot) ACLTokens() (memdb.ResultIterator, error)
- func (s *Snapshot) Autopilot() (*structs.AutopilotConfig, error)
- func (s *Snapshot) CAConfig() (*structs.CAConfiguration, error)
- func (s *Snapshot) CAProviderState() ([]*structs.CAConsulProviderState, error)
- func (s *Snapshot) CARoots() (structs.CARoots, error)
- func (s *Snapshot) Checks(node string, entMeta *acl.EnterpriseMeta, peerName string) (memdb.ResultIterator, error)
- func (s *Snapshot) Close()
- func (s *Snapshot) ConfigEntries() ([]structs.ConfigEntry, error)
- func (s *Snapshot) Coordinates() (memdb.ResultIterator, error)
- func (s *Snapshot) FederationStates() ([]*structs.FederationState, error)
- func (s *Snapshot) FreeVirtualIPs() (memdb.ResultIterator, error)
- func (s *Snapshot) Indexes() (memdb.ResultIterator, error)
- func (s *Snapshot) KVs() (memdb.ResultIterator, error)
- func (s *Snapshot) LastIndex() uint64
- func (s *Snapshot) LegacyIntentions() (structs.Intentions, error)deprecated
- func (s *Snapshot) Nodes() (memdb.ResultIterator, error)
- func (s *Snapshot) PeeringSecrets() (memdb.ResultIterator, error)
- func (s *Snapshot) PeeringTrustBundles() (memdb.ResultIterator, error)
- func (s *Snapshot) Peerings() (memdb.ResultIterator, error)
- func (s *Snapshot) PreparedQueries() (structs.PreparedQueries, error)
- func (s *Snapshot) ServiceVirtualIPs() (memdb.ResultIterator, error)
- func (s *Snapshot) Services(node string, entMeta *acl.EnterpriseMeta, peerName string) (memdb.ResultIterator, error)
- func (s *Snapshot) Sessions() (memdb.ResultIterator, error)
- func (s *Snapshot) SystemMetadataEntries() ([]*structs.SystemMetadataEntry, error)
- func (s *Snapshot) Tombstones() (memdb.ResultIterator, error)
- type Store
- func (s *Store) ACLAuthMethodBatchDelete(idx uint64, names []string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLAuthMethodBatchSet(idx uint64, methods structs.ACLAuthMethods) error
- func (s *Store) ACLAuthMethodDeleteByName(idx uint64, name string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLAuthMethodGetByName(ws memdb.WatchSet, name string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLAuthMethod, error)
- func (s *Store) ACLAuthMethodList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLAuthMethods, error)
- func (s *Store) ACLAuthMethodSet(idx uint64, method *structs.ACLAuthMethod) error
- func (s *Store) ACLAuthMethodUpsertValidateEnterprise(method *structs.ACLAuthMethod, existing *structs.ACLAuthMethod) error
- func (s *Store) ACLBindingRuleBatchDelete(idx uint64, bindingRuleIDs []string) error
- func (s *Store) ACLBindingRuleBatchSet(idx uint64, rules structs.ACLBindingRules) error
- func (s *Store) ACLBindingRuleDeleteByID(idx uint64, id string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLBindingRuleGetByID(ws memdb.WatchSet, id string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLBindingRule, error)
- func (s *Store) ACLBindingRuleList(ws memdb.WatchSet, methodName string, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLBindingRules, error)
- func (s *Store) ACLBindingRuleSet(idx uint64, rule *structs.ACLBindingRule) error
- func (s *Store) ACLBindingRuleUpsertValidateEnterprise(rule *structs.ACLBindingRule, existing *structs.ACLBindingRule) error
- func (s *Store) ACLBootstrap(idx, resetIndex uint64, token *structs.ACLToken) error
- func (s *Store) ACLPolicyBatchDelete(idx uint64, policyIDs []string) error
- func (s *Store) ACLPolicyBatchGet(ws memdb.WatchSet, ids []string) (uint64, structs.ACLPolicies, error)
- func (s *Store) ACLPolicyBatchSet(idx uint64, policies structs.ACLPolicies) error
- func (s *Store) ACLPolicyDeleteByID(idx uint64, id string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLPolicyDeleteByName(idx uint64, name string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLPolicyGetByID(ws memdb.WatchSet, id string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLPolicy, error)
- func (s *Store) ACLPolicyGetByName(ws memdb.WatchSet, name string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLPolicy, error)
- func (s *Store) ACLPolicyList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLPolicies, error)
- func (s *Store) ACLPolicySet(idx uint64, policy *structs.ACLPolicy) error
- func (s *Store) ACLPolicyUpsertValidateEnterprise(*structs.ACLPolicy, *structs.ACLPolicy) error
- func (s *Store) ACLRoleBatchDelete(idx uint64, roleIDs []string) error
- func (s *Store) ACLRoleBatchGet(ws memdb.WatchSet, ids []string) (uint64, structs.ACLRoles, error)
- func (s *Store) ACLRoleBatchSet(idx uint64, roles structs.ACLRoles, allowMissingPolicyIDs bool) error
- func (s *Store) ACLRoleDeleteByID(idx uint64, id string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLRoleDeleteByName(idx uint64, name string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLRoleGetByID(ws memdb.WatchSet, id string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLRole, error)
- func (s *Store) ACLRoleGetByName(ws memdb.WatchSet, name string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLRole, error)
- func (s *Store) ACLRoleList(ws memdb.WatchSet, policy string, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLRoles, error)
- func (s *Store) ACLRoleSet(idx uint64, role *structs.ACLRole) error
- func (s *Store) ACLRoleUpsertValidateEnterprise(role *structs.ACLRole, existing *structs.ACLRole) error
- func (s *Store) ACLTokenBatchDelete(idx uint64, tokenIDs []string) error
- func (s *Store) ACLTokenBatchGet(ws memdb.WatchSet, accessors []string) (uint64, structs.ACLTokens, error)
- func (s *Store) ACLTokenBatchSet(idx uint64, tokens structs.ACLTokens, opts ACLTokenSetOptions) error
- func (s *Store) ACLTokenDeleteByAccessor(idx uint64, accessor string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) ACLTokenGetByAccessor(ws memdb.WatchSet, accessor string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLToken, error)
- func (s *Store) ACLTokenGetBySecret(ws memdb.WatchSet, secret string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLToken, error)
- func (s *Store) ACLTokenList(ws memdb.WatchSet, local, global bool, policy, role, methodName string, ...) (uint64, structs.ACLTokens, error)deprecated
- func (s *Store) ACLTokenListExpired(local bool, asOf time.Time, max int) (structs.ACLTokens, <-chan struct{}, error)
- func (s *Store) ACLTokenListWithParameters(ws memdb.WatchSet, params ACLTokenListParameters) (uint64, structs.ACLTokens, error)
- func (s *Store) ACLTokenMinExpirationTime(local bool) (time.Time, error)
- func (s *Store) ACLTokenSet(idx uint64, token *structs.ACLToken) error
- func (s *Store) ACLTokenUpsertValidateEnterprise(token *structs.ACLToken, existing *structs.ACLToken) error
- func (s *Store) APIGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) Abandon()
- func (s *Store) AbandonCh() <-chan struct{}
- func (s *Store) AreIntentionsInConfigEntries() (bool, error)
- func (s *Store) AssignManualServiceVIPs(idx uint64, psn structs.PeeredServiceName, ips []string) (bool, []structs.PeeredServiceName, error)
- func (s *Store) AutopilotCASConfig(idx, cidx uint64, config *structs.AutopilotConfig) (bool, error)
- func (s *Store) AutopilotConfig() (uint64, *structs.AutopilotConfig, error)
- func (s *Store) AutopilotSetConfig(idx uint64, config *structs.AutopilotConfig) error
- func (s *Store) BoundAPIGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) CACheckAndSetConfig(idx, cidx uint64, config *structs.CAConfiguration) (bool, error)
- func (s *Store) CAConfig(ws memdb.WatchSet) (uint64, *structs.CAConfiguration, error)
- func (s *Store) CADeleteProviderState(idx uint64, id string) error
- func (s *Store) CAIncrementProviderSerialNumber(idx uint64) (uint64, error)
- func (s *Store) CALeafSetIndex(idx uint64, index uint64) error
- func (s *Store) CAProviderState(id string) (uint64, *structs.CAConsulProviderState, error)
- func (s *Store) CARootActive(ws memdb.WatchSet) (uint64, *structs.CARoot, error)
- func (s *Store) CARootSetCAS(idx, cidx uint64, rs []*structs.CARoot) (bool, error)
- func (s *Store) CARoots(ws memdb.WatchSet) (uint64, structs.CARoots, error)
- func (s *Store) CARootsAndConfig(ws memdb.WatchSet) (uint64, structs.CARoots, *structs.CAConfiguration, error)
- func (s *Store) CARootsSnapshot(_ stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) CASetConfig(idx uint64, config *structs.CAConfiguration) error
- func (s *Store) CASetProviderState(idx uint64, state *structs.CAConsulProviderState) (bool, error)
- func (s *Store) CanBootstrapACLToken() (bool, uint64, error)
- func (s *Store) CatalogDump() (*structs.CatalogContents, error)
- func (s *Store) CheckConnectServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) CheckIngressServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) CheckServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) CheckServiceTagNodes(ws memdb.WatchSet, serviceName string, tags []string, ...) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) ChecksInState(ws memdb.WatchSet, state string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
- func (s *Store) ChecksInStateByNodeMeta(ws memdb.WatchSet, state string, filters map[string]string, ...) (uint64, structs.HealthChecks, error)
- func (s *Store) CombinedCheckServiceNodes(ws memdb.WatchSet, service structs.ServiceName, peerName string) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) ConfigEntries(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, []structs.ConfigEntry, error)
- func (s *Store) ConfigEntriesByKind(ws memdb.WatchSet, kind string, entMeta *acl.EnterpriseMeta) (uint64, []structs.ConfigEntry, error)
- func (s *Store) ConfigEntry(ws memdb.WatchSet, kind, name string, entMeta *acl.EnterpriseMeta) (uint64, structs.ConfigEntry, error)
- func (s *Store) ConfigEntryUsage() (uint64, ConfigEntryUsage, error)
- func (s *Store) ConnectServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.ServiceNodes, error)
- func (s *Store) Coordinate(ws memdb.WatchSet, node string, entMeta *acl.EnterpriseMeta) (uint64, lib.CoordinateSet, error)
- func (s *Store) CoordinateBatchUpdate(idx uint64, updates structs.Coordinates) error
- func (s *Store) Coordinates(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Coordinates, error)
- func (s *Store) DeleteCheck(idx uint64, node string, checkID types.CheckID, entMeta *acl.EnterpriseMeta, ...) error
- func (s *Store) DeleteConfigEntry(idx uint64, kind, name string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) DeleteConfigEntryCAS(idx, cidx uint64, conf structs.ConfigEntry) (bool, error)
- func (s *Store) DeleteNode(idx uint64, nodeName string, entMeta *acl.EnterpriseMeta, peerName string) error
- func (s *Store) DeleteService(idx uint64, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, ...) error
- func (s *Store) DumpGatewayServices(ws memdb.WatchSet) (uint64, structs.GatewayServices, error)
- func (s *Store) EnsureCheck(idx uint64, hc *structs.HealthCheck) error
- func (s *Store) EnsureConfigEntry(idx uint64, conf structs.ConfigEntry) error
- func (s *Store) EnsureConfigEntryCAS(idx, cidx uint64, conf structs.ConfigEntry) (bool, error)
- func (s *Store) EnsureConfigEntryWithStatusCAS(idx, cidx uint64, conf structs.ConfigEntry) (bool, error)
- func (s *Store) EnsureNode(idx uint64, node *structs.Node) error
- func (s *Store) EnsureRegistration(idx uint64, req *structs.RegisterRequest) error
- func (s *Store) EnsureService(idx uint64, node string, svc *structs.NodeService) error
- func (s *Store) ExportedServicesForAllPeersByName(ws memdb.WatchSet, dc string, entMeta acl.EnterpriseMeta) (uint64, map[string]structs.ServiceList, error)
- func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string, dc string) (uint64, *structs.ExportedServiceList, error)
- func (s *Store) FederationStateBatchDelete(idx uint64, datacenters []string) error
- func (s *Store) FederationStateBatchSet(idx uint64, configs structs.FederationStates) error
- func (s *Store) FederationStateDelete(idx uint64, datacenter string) error
- func (s *Store) FederationStateGet(ws memdb.WatchSet, datacenter string) (uint64, *structs.FederationState, error)
- func (s *Store) FederationStateList(ws memdb.WatchSet) (uint64, []*structs.FederationState, error)
- func (s *Store) FederationStateSet(idx uint64, config *structs.FederationState) error
- func (s *Store) GatewayServices(ws memdb.WatchSet, gateway string, entMeta *acl.EnterpriseMeta) (uint64, structs.GatewayServices, error)
- func (s *Store) GetNode(nodeNameOrID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.Node, error)
- func (s *Store) GetNodeID(id types.NodeID, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.Node, error)
- func (s *Store) GetSamenessGroup(ws memdb.WatchSet, name string, ...) (uint64, *structs.SamenessGroupConfigEntry, error)
- func (s *Store) GetSimplifiedExportedServices(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, *SimplifiedExportedServices, error)
- func (s *Store) HTTPRouteSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) IPRateLimiterSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) IngressGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) InlineCertificateSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) IntentionDecision(opts IntentionDecisionOpts) (structs.IntentionDecisionSummary, error)
- func (s *Store) IntentionGet(ws memdb.WatchSet, id string) (uint64, *structs.ServiceIntentionsConfigEntry, *structs.Intention, error)
- func (s *Store) IntentionGetExact(ws memdb.WatchSet, args *structs.IntentionQueryExact) (uint64, *structs.ServiceIntentionsConfigEntry, *structs.Intention, error)
- func (s *Store) IntentionMatch(ws memdb.WatchSet, args *structs.IntentionQueryMatch) (uint64, []structs.Intentions, error)
- func (s *Store) IntentionMatchOne(ws memdb.WatchSet, entry structs.IntentionMatchEntry, ...) (uint64, structs.SimplifiedIntentions, error)
- func (s *Store) IntentionMutation(idx uint64, op structs.IntentionOp, mut *structs.IntentionMutation) error
- func (s *Store) IntentionTopology(ws memdb.WatchSet, target structs.ServiceName, downstreams bool, ...) (uint64, structs.ServiceList, error)
- func (s *Store) Intentions(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, bool, error)
- func (s *Store) JWTProviderSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) KVSDelete(idx uint64, key string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) KVSDeleteCAS(idx, cidx uint64, key string, entMeta *acl.EnterpriseMeta) (bool, error)
- func (s *Store) KVSDeleteTree(idx uint64, prefix string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) KVSGet(ws memdb.WatchSet, key string, entMeta *acl.EnterpriseMeta) (uint64, *structs.DirEntry, error)
- func (s *Store) KVSList(ws memdb.WatchSet, prefix string, entMeta *acl.EnterpriseMeta) (uint64, structs.DirEntries, error)
- func (s *Store) KVSLock(idx uint64, entry *structs.DirEntry) (bool, error)
- func (s *Store) KVSLockDelay(key string, entMeta *acl.EnterpriseMeta) time.Time
- func (s *Store) KVSSet(idx uint64, entry *structs.DirEntry) error
- func (s *Store) KVSSetCAS(idx uint64, entry *structs.DirEntry) (bool, error)
- func (s *Store) KVSUnlock(idx uint64, entry *structs.DirEntry) (bool, error)
- func (s *Store) KVUsage() (uint64, KVUsage, error)
- func (s *Store) LegacyIntentionDelete(idx uint64, id string) errordeprecated
- func (s *Store) LegacyIntentionDeleteAll(idx uint64) error
- func (s *Store) LegacyIntentionSet(idx uint64, ixn *structs.Intention) errordeprecated
- func (s *Store) LegacyIntentions(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, error)
- func (s *Store) MeshConfigSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) NodeCheck(nodeName string, checkID types.CheckID, entMeta *acl.EnterpriseMeta, ...) (uint64, *structs.HealthCheck, error)
- func (s *Store) NodeChecks(ws memdb.WatchSet, nodeName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.HealthChecks, error)
- func (s *Store) NodeDump(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.NodeDump, error)
- func (s *Store) NodeInfo(ws memdb.WatchSet, node string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.NodeDump, error)
- func (s *Store) NodeService(ws memdb.WatchSet, nodeName string, serviceID string, ...) (uint64, *structs.NodeService, error)
- func (s *Store) NodeServiceList(ws memdb.WatchSet, nodeNameOrID string, entMeta *acl.EnterpriseMeta, ...) (uint64, *structs.NodeServiceList, error)
- func (s *Store) NodeServices(ws memdb.WatchSet, nodeNameOrID string, entMeta *acl.EnterpriseMeta, ...) (uint64, *structs.NodeServices, error)
- func (s *Store) NodeSessions(ws memdb.WatchSet, nodeID string, entMeta *acl.EnterpriseMeta) (uint64, structs.Sessions, error)
- func (s *Store) NodeUsage() (uint64, NodeUsage, error)
- func (s *Store) Nodes(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.Nodes, error)
- func (s *Store) NodesByMeta(ws memdb.WatchSet, filters map[string]string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.Nodes, error)
- func (s *Store) PeeringDelete(idx uint64, q Query) error
- func (s *Store) PeeringList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error)
- func (s *Store) PeeringListDeleted(ws memdb.WatchSet) (uint64, []*pbpeering.Peering, error)
- func (s *Store) PeeringRead(ws memdb.WatchSet, q Query) (uint64, *pbpeering.Peering, error)
- func (s *Store) PeeringReadByID(ws memdb.WatchSet, id string) (uint64, *pbpeering.Peering, error)
- func (s *Store) PeeringSecretsDelete(idx uint64, peerID string, dialer bool) error
- func (s *Store) PeeringSecretsRead(ws memdb.WatchSet, peerID string) (*pbpeering.PeeringSecrets, error)
- func (s *Store) PeeringSecretsWrite(idx uint64, req *pbpeering.SecretsWriteRequest) error
- func (s *Store) PeeringTerminateByID(idx uint64, id string) error
- func (s *Store) PeeringTrustBundleDelete(idx uint64, q Query) error
- func (s *Store) PeeringTrustBundleList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error)
- func (s *Store) PeeringTrustBundleRead(ws memdb.WatchSet, q Query) (uint64, *pbpeering.PeeringTrustBundle, error)
- func (s *Store) PeeringTrustBundleWrite(idx uint64, ptb *pbpeering.PeeringTrustBundle) error
- func (s *Store) PeeringUsage() (uint64, PeeringUsage, error)
- func (s *Store) PeeringWrite(idx uint64, req *pbpeering.PeeringWriteRequest) error
- func (s *Store) PeeringsForService(ws memdb.WatchSet, serviceName string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error)
- func (s *Store) PreparedQueryDelete(idx uint64, queryID string) error
- func (s *Store) PreparedQueryGet(ws memdb.WatchSet, queryID string) (uint64, *structs.PreparedQuery, error)
- func (s *Store) PreparedQueryList(ws memdb.WatchSet) (uint64, structs.PreparedQueries, error)
- func (s *Store) PreparedQueryResolve(queryIDOrName string, source structs.QuerySource) (uint64, *structs.PreparedQuery, error)
- func (s *Store) PreparedQuerySet(idx uint64, query *structs.PreparedQuery) error
- func (s *Store) ReadDiscoveryChainConfigEntries(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta) (uint64, *configentry.DiscoveryChainSet, error)
- func (s *Store) ReadResolvedServiceConfigEntries(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, *configentry.ResolvedServiceConfigSet, error)
- func (s *Store) ReapTombstones(idx uint64, index uint64) error
- func (s *Store) Restore() *Restore
- func (s *Store) SamenessGroupSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) ServiceAddressNodes(ws memdb.WatchSet, address string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.ServiceNodes, error)
- func (s *Store) ServiceChecks(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.HealthChecks, error)
- func (s *Store) ServiceChecksByNodeMeta(ws memdb.WatchSet, serviceName string, filters map[string]string, ...) (uint64, structs.HealthChecks, error)
- func (s *Store) ServiceDefaultsSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) ServiceDiscoveryChain(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, *structs.CompiledDiscoveryChain, *configentry.DiscoveryChainSet, error)
- func (s *Store) ServiceDump(ws memdb.WatchSet, kind structs.ServiceKind, useKind bool, ...) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) ServiceGateways(ws memdb.WatchSet, service string, kind structs.ServiceKind, ...) (uint64, structs.CheckServiceNodes, error)
- func (s *Store) ServiceHealthSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (index uint64, err error)
- func (s *Store) ServiceIntentionsSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) ServiceList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceList, error)
- func (s *Store) ServiceListSnapshot(_ stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) ServiceManualVIPs(psn structs.PeeredServiceName) (*ServiceVirtualIP, error)
- func (s *Store) ServiceNamesOfKind(ws memdb.WatchSet, kind structs.ServiceKind) (uint64, []*KindServiceName, error)
- func (s *Store) ServiceNode(nodeID, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, ...) (uint64, *structs.ServiceNode, error)
- func (s *Store) ServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.ServiceNodes, error)
- func (s *Store) ServiceResolverSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) ServiceTagNodes(ws memdb.WatchSet, service string, tags []string, entMeta *acl.EnterpriseMeta, ...) (uint64, structs.ServiceNodes, error)
- func (s *Store) ServiceTopology(ws memdb.WatchSet, dc, service string, kind structs.ServiceKind, ...) (uint64, *structs.ServiceTopology, error)
- func (s *Store) ServiceUsage(ws memdb.WatchSet) (uint64, structs.ServiceUsage, error)
- func (s *Store) ServiceVirtualIPs() (uint64, []ServiceVirtualIP, error)
- func (s *Store) Services(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string, ...) (uint64, structs.ServiceNodes, error)
- func (s *Store) ServicesByNodeMeta(ws memdb.WatchSet, filters map[string]string, entMeta *acl.EnterpriseMeta, ...) (uint64, []*structs.ServiceNode, error)
- func (s *Store) SessionCreate(idx uint64, sess *structs.Session) error
- func (s *Store) SessionDestroy(idx uint64, sessionID string, entMeta *acl.EnterpriseMeta) error
- func (s *Store) SessionGet(ws memdb.WatchSet, sessionID string, entMeta *acl.EnterpriseMeta) (uint64, *structs.Session, error)
- func (s *Store) SessionList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Sessions, error)
- func (s *Store) SessionListAll(ws memdb.WatchSet) (uint64, structs.Sessions, error)
- func (s *Store) Snapshot() *Snapshot
- func (s *Store) SystemMetadataDelete(idx uint64, entry *structs.SystemMetadataEntry) error
- func (s *Store) SystemMetadataGet(ws memdb.WatchSet, key string) (uint64, *structs.SystemMetadataEntry, error)
- func (s *Store) SystemMetadataList(ws memdb.WatchSet) (uint64, []*structs.SystemMetadataEntry, error)
- func (s *Store) SystemMetadataSet(idx uint64, entry *structs.SystemMetadataEntry) error
- func (s *Store) TCPRouteSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
- func (s *Store) TrustBundleListByService(ws memdb.WatchSet, service, dc string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error)
- func (s *Store) TxnRO(ops structs.TxnOps) (structs.TxnResults, structs.TxnErrors)
- func (s *Store) TxnRW(idx uint64, ops structs.TxnOps) (structs.TxnResults, structs.TxnErrors)
- func (s *Store) ValidateProposedPeeringSecretUUID(id string) (bool, error)
- func (s *Store) ValidateRegisterRequest(_ *structs.RegisterRequest) (*acl.EnterpriseMeta, error)
- func (s *Store) VirtualIPForService(psn structs.PeeredServiceName) (string, error)
- func (s *Store) VirtualIPsForAllImportedServices(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []ServiceVirtualIP, error)
- func (s *Store) WalkAllTables(fn func(table string, item interface{}) bool) error
- type TimeQuery
- type Tombstone
- type TombstoneGC
- type UsageEntry
- type WriteTxn
Constants ¶
const ( NoChange uniqueServiceState = 0 Deleted uniqueServiceState = 1 Created uniqueServiceState = 2 )
const EventTopicCARoots stream.StringTopic = "CARoots"
EventTopicCARoots is the streaming topic to which events will be published when the list of active CA Roots changes. Each event payload contains the full list of roots.
Note: topics are ordinarily defined in subscribe.proto, but this one isn't currently available via the Subscribe endpoint.
Variables ¶
var ( EventTopicServiceHealth = pbsubscribe.Topic_ServiceHealth EventTopicServiceHealthConnect = pbsubscribe.Topic_ServiceHealthConnect EventTopicMeshConfig = pbsubscribe.Topic_MeshConfig EventTopicServiceResolver = pbsubscribe.Topic_ServiceResolver EventTopicIngressGateway = pbsubscribe.Topic_IngressGateway EventTopicServiceIntentions = pbsubscribe.Topic_ServiceIntentions EventTopicServiceDefaults = pbsubscribe.Topic_ServiceDefaults EventTopicServiceList = pbsubscribe.Topic_ServiceList EventTopicAPIGateway = pbsubscribe.Topic_APIGateway EventTopicTCPRoute = pbsubscribe.Topic_TCPRoute EventTopicHTTPRoute = pbsubscribe.Topic_HTTPRoute EventTopicInlineCertificate = pbsubscribe.Topic_InlineCertificate EventTopicBoundAPIGateway = pbsubscribe.Topic_BoundAPIGateway EventTopicIPRateLimit = pbsubscribe.Topic_IPRateLimit EventTopicSamenessGroup = pbsubscribe.Topic_SamenessGroup EventTopicJWTProvider = pbsubscribe.Topic_JWTProvider )
var ( // ErrMissingNode is the error returned when trying an operation // which requires a node registration but none exists. ErrMissingNode = errors.New("Missing node registration") // ErrMissingService is the error we return if trying an // operation which requires a service but none exists. ErrMissingService = errors.New("Missing service registration") // ErrMissingSessionID is returned when a session registration // is attempted with an empty session ID. ErrMissingSessionID = errors.New("Missing session ID") // ErrMissingACLTokenSecret is returned when a token set is called on a // token with an empty SecretID. ErrMissingACLTokenSecret = errors.New("Missing ACL Token SecretID") // ErrMissingACLTokenAccessor is returned when a token set is called on a // token with an empty AccessorID. ErrMissingACLTokenAccessor = errors.New("Missing ACL Token AccessorID") // ErrTokenHasNoPrivileges is returned when a token set is called on a // token with no policies, roles, or service identities and the caller // requires at least one to be set. ErrTokenHasNoPrivileges = errors.New("Token has no privileges") // ErrMissingACLPolicyID is returned when a policy set is called on a // policy with an empty ID. ErrMissingACLPolicyID = errors.New("Missing ACL Policy ID") // ErrMissingACLPolicyName is returned when a policy set is called on a // policy with an empty Name. ErrMissingACLPolicyName = errors.New("Missing ACL Policy Name") // ErrMissingACLRoleID is returned when a role set is called on // a role with an empty ID. ErrMissingACLRoleID = errors.New("Missing ACL Role ID") // ErrMissingACLRoleName is returned when a role set is called on // a role with an empty Name. ErrMissingACLRoleName = errors.New("Missing ACL Role Name") // ErrMissingACLBindingRuleID is returned when a binding rule set // is called on a binding rule with an empty ID. ErrMissingACLBindingRuleID = errors.New("Missing ACL Binding Rule ID") // ErrMissingACLBindingRuleAuthMethod is returned when a binding rule set // is called on a binding rule with an empty AuthMethod. ErrMissingACLBindingRuleAuthMethod = errors.New("Missing ACL Binding Rule Auth Method") // ErrMissingACLAuthMethodName is returned when an auth method set is // called on an auth method with an empty Name. ErrMissingACLAuthMethodName = errors.New("Missing ACL Auth Method Name") // ErrMissingACLAuthMethodType is returned when an auth method set is // called on an auth method with an empty Type. ErrMissingACLAuthMethodType = errors.New("Missing ACL Auth Method Type") // ErrMissingQueryID is returned when a Query set is called on // a Query with an empty ID. ErrMissingQueryID = errors.New("Missing Query ID") // ErrMissingCARootID is returned when an CARoot set is called // with an CARoot with an empty ID. ErrMissingCARootID = errors.New("Missing CA Root ID") // ErrMissingIntentionID is returned when an Intention set is called // with an Intention with an empty ID. ErrMissingIntentionID = errors.New("Missing Intention ID") )
var ErrLegacyIntentionsAreDisabled = errors.New("Legacy intention modifications are disabled after the config entry migration.")
var (
ErrNodeNotFound = errors.New("node not found")
)
Functions ¶
func ConfigEntryEventsFromChanges ¶
ConfigEntryEventsFromChanges returns events that will be emitted when config entries change in the state store.
func GatewayServiceKind ¶
func GatewayServiceKind(tx ReadTxn, name string, entMeta *acl.EnterpriseMeta) (structs.GatewayServiceKind, error)
func PBToStreamSubscribeRequest ¶
func PBToStreamSubscribeRequest(req *pbsubscribe.SubscribeRequest, entMeta acl.EnterpriseMeta) (*stream.SubscribeRequest, error)
PBToStreamSubscribeRequest takes a protobuf subscribe request and enterprise metadata to properly generate the matching stream subscribe request.
func ServiceHealthEventsFromChanges ¶
ServiceHealthEventsFromChanges returns all the service and Connect health events that should be emitted given a set of changes to the state store.
Types ¶
type ACLTokenListParameters ¶
type ACLTokenListParameters struct { Local bool Global bool Policy string Role string ServiceName string MethodName string MethodMeta *acl.EnterpriseMeta EnterpriseMeta *acl.EnterpriseMeta }
type ACLTokenSetOptions ¶
type AbortTxn ¶
type AbortTxn interface { ReadTxn Abort() }
AbortTxn is a ReadTxn that can also be aborted to end the transaction.
type AuthMethodQuery ¶
type AuthMethodQuery struct { Value string AuthMethodEntMeta acl.EnterpriseMeta acl.EnterpriseMeta }
func (AuthMethodQuery) NamespaceOrDefault ¶
func (q AuthMethodQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (AuthMethodQuery) PartitionOrDefault ¶
func (q AuthMethodQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type BoolQuery ¶
type BoolQuery struct { Value bool acl.EnterpriseMeta }
BoolQuery is a type used to query a boolean condition that may include an enterprise identifier.
func (BoolQuery) NamespaceOrDefault ¶
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (BoolQuery) PartitionOrDefault ¶
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type Changes ¶
type Changes struct { // Index is the latest index at the time these changes were committed. Index uint64 Changes memdb.Changes }
Changes wraps a memdb.Changes to include the index at which these changes were made.
type CheckIDIndex ¶
type CheckIDIndex struct { }
func (*CheckIDIndex) FromArgs ¶
func (index *CheckIDIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*CheckIDIndex) FromObject ¶
func (index *CheckIDIndex) FromObject(obj interface{}) (bool, []byte, error)
func (*CheckIDIndex) PrefixFromArgs ¶
func (index *CheckIDIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
type ConfigEntryKindQuery ¶
type ConfigEntryKindQuery struct { Kind string acl.EnterpriseMeta }
ConfigEntryKindQuery is used to lookup config entries by their kind.
func (ConfigEntryKindQuery) NamespaceOrDefault ¶
func (q ConfigEntryKindQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (ConfigEntryKindQuery) PartitionOrDefault ¶
func (q ConfigEntryKindQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type ConfigEntryLinkIndex ¶
type ConfigEntryLinkIndex struct { }
func (*ConfigEntryLinkIndex) FromArgs ¶
func (s *ConfigEntryLinkIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ConfigEntryLinkIndex) FromObject ¶
func (s *ConfigEntryLinkIndex) FromObject(obj interface{}) (bool, [][]byte, error)
func (*ConfigEntryLinkIndex) PrefixFromArgs ¶
func (s *ConfigEntryLinkIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
type ConfigEntryUsage ¶
type ConfigEntryUsage struct { ConfigByKind map[string]int EnterpriseConfigEntryUsage }
type CoordinateQuery ¶
func (CoordinateQuery) PartitionOrDefault ¶
func (c CoordinateQuery) PartitionOrDefault() string
type Delay ¶
type Delay struct {
// contains filtered or unexported fields
}
Delay is used to mark certain locks as unacquirable. When a lock is forcefully released (failing health check, destroyed session, etc.), it is subject to the LockDelay imposed by the session. This prevents another session from acquiring the lock for some period of time as a protection against split-brains. This is inspired by the lock-delay in Chubby. Because this relies on wall-time, we cannot assume all peers perceive time as flowing uniformly. This means KVSLock MUST ignore lockDelay, since the lockDelay may have expired on the leader, but not on the follower. Rejecting the lock could result in inconsistencies in the FSMs due to the rate time progresses. Instead, only the opinion of the leader is respected, and the Raft log is never questioned.
func (*Delay) GetExpiration ¶
GetExpiration returns the expiration time of a key lock delay. This must be checked on the leader node, and not in KVSLock due to the variability of clocks.
func (*Delay) SetExpiration ¶
func (d *Delay) SetExpiration(key string, now time.Time, delay time.Duration, entMeta *acl.EnterpriseMeta)
SetExpiration sets the expiration time for the lock delay to the given delay from the given now time.
type EnterpriseConfigEntryUsage ¶
type EnterpriseConfigEntryUsage struct{}
type EnterpriseKVUsage ¶
type EnterpriseKVUsage struct{}
type EnterpriseNodeUsage ¶
type EnterpriseNodeUsage struct{}
type EnterprisePeeringUsage ¶
type EnterprisePeeringUsage struct{}
type EnterpriseServiceUsage ¶
type EnterpriseServiceUsage struct{}
type EventPayloadCARoots ¶
func (EventPayloadCARoots) HasReadPermission ¶
func (e EventPayloadCARoots) HasReadPermission(authz acl.Authorizer) bool
func (EventPayloadCARoots) Subject ¶
func (e EventPayloadCARoots) Subject() stream.Subject
func (EventPayloadCARoots) ToSubscriptionEvent ¶
func (e EventPayloadCARoots) ToSubscriptionEvent(idx uint64) *pbsubscribe.Event
type EventPayloadCheckServiceNode ¶
type EventPayloadCheckServiceNode struct { Op pbsubscribe.CatalogOp Value *structs.CheckServiceNode // contains filtered or unexported fields }
EventPayloadCheckServiceNode is used as the Payload for a stream.Event to indicates changes to a CheckServiceNode for service health.
The stream.Payload methods implemented by EventPayloadCheckServiceNode are do not mutate the payload, making it safe to use in an Event sent to stream.EventPublisher.Publish.
func (EventPayloadCheckServiceNode) HasReadPermission ¶
func (e EventPayloadCheckServiceNode) HasReadPermission(authz acl.Authorizer) bool
func (EventPayloadCheckServiceNode) Subject ¶
func (e EventPayloadCheckServiceNode) Subject() stream.Subject
func (EventPayloadCheckServiceNode) ToSubscriptionEvent ¶
func (e EventPayloadCheckServiceNode) ToSubscriptionEvent(idx uint64) *pbsubscribe.Event
type EventPayloadConfigEntry ¶
type EventPayloadConfigEntry struct { Op pbsubscribe.ConfigEntryUpdate_UpdateOp Value structs.ConfigEntry }
func (EventPayloadConfigEntry) HasReadPermission ¶
func (e EventPayloadConfigEntry) HasReadPermission(authz acl.Authorizer) bool
func (EventPayloadConfigEntry) Subject ¶
func (e EventPayloadConfigEntry) Subject() stream.Subject
func (EventPayloadConfigEntry) ToSubscriptionEvent ¶
func (e EventPayloadConfigEntry) ToSubscriptionEvent(idx uint64) *pbsubscribe.Event
type EventPayloadServiceListUpdate ¶
type EventPayloadServiceListUpdate struct { Op pbsubscribe.CatalogOp Name string EnterpriseMeta acl.EnterpriseMeta PeerName string }
EventPayloadServiceListUpdate is used as the Payload for a stream.Event when services (not service instances) are registered/deregistered. These events are used to materialize the list of services in a datacenter.
func (*EventPayloadServiceListUpdate) HasReadPermission ¶
func (e *EventPayloadServiceListUpdate) HasReadPermission(authz acl.Authorizer) bool
func (*EventPayloadServiceListUpdate) Subject ¶
func (e *EventPayloadServiceListUpdate) Subject() stream.Subject
func (*EventPayloadServiceListUpdate) ToSubscriptionEvent ¶
func (e *EventPayloadServiceListUpdate) ToSubscriptionEvent(idx uint64) *pbsubscribe.Event
type EventPublisher ¶
type EventPublisher interface { Publish([]stream.Event) RegisterHandler(stream.Topic, stream.SnapshotFunc, bool) error Subscribe(*stream.SubscribeRequest) (*stream.Subscription, error) }
type EventSubjectConfigEntry ¶
type EventSubjectConfigEntry struct { Name string EnterpriseMeta *acl.EnterpriseMeta }
EventSubjectConfigEntry is a stream.Subject used to route and receive events for a specific config entry (kind is encoded in the topic).
func (EventSubjectConfigEntry) String ¶
func (s EventSubjectConfigEntry) String() string
type EventSubjectService ¶
type EventSubjectService struct { Key string EnterpriseMeta acl.EnterpriseMeta PeerName string // contains filtered or unexported fields }
EventSubjectService is a stream.Subject used to route and receive events for a specific service.
func (EventSubjectService) String ¶
func (s EventSubjectService) String() string
String satisfies the stream.Subject interface.
type FreeVirtualIP ¶
FreeVirtualIP is used to store a virtual IP freed up by a service deregistration. It is also used to store free virtual IPs when a snapshot is created.
type Graveyard ¶
type Graveyard struct {
// contains filtered or unexported fields
}
Graveyard manages a set of tombstones.
func NewGraveyard ¶
func NewGraveyard(gc *TombstoneGC) *Graveyard
NewGraveyard returns a new graveyard.
func (*Graveyard) GetMaxIndexTxn ¶
func (g *Graveyard) GetMaxIndexTxn(tx ReadTxn, prefix string, _ *acl.EnterpriseMeta) (uint64, error)
GetMaxIndexTxn returns the highest index tombstone whose key matches the given context, using a prefix match.
func (*Graveyard) InsertTxn ¶
func (g *Graveyard) InsertTxn(tx WriteTxn, key string, idx uint64, entMeta *acl.EnterpriseMeta) error
InsertTxn adds a new tombstone.
type IndexEntry ¶
IndexEntry keeps a record of the last index of a table or entity within a table.
type IntentionDecisionOpts ¶
type IntentionDecisionOpts struct { Target string Namespace string Partition string Peer string Intentions structs.SimplifiedIntentions MatchType structs.IntentionMatchType DefaultDecision acl.EnforcementDecision AllowPermissions bool }
type KVUsage ¶
type KVUsage struct { KVCount int EnterpriseKVUsage }
type KeyValueQuery ¶
type KeyValueQuery struct { Key string Value string PeerName string acl.EnterpriseMeta }
KeyValueQuery is a type used to query for both a key and a value that may include an enterprise identifier.
func (KeyValueQuery) NamespaceOrDefault ¶
func (q KeyValueQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (KeyValueQuery) PartitionOrDefault ¶
func (q KeyValueQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (KeyValueQuery) PeerOrEmpty ¶
func (q KeyValueQuery) PeerOrEmpty() string
type KindServiceName ¶
type KindServiceName struct { Kind structs.ServiceKind Service structs.ServiceName structs.RaftIndex }
func (*KindServiceName) NamespaceOrDefault ¶
func (n *KindServiceName) NamespaceOrDefault() string
func (*KindServiceName) PartitionOrDefault ¶
func (n *KindServiceName) PartitionOrDefault() string
type KindServiceNameQuery ¶
type KindServiceNameQuery struct { Kind structs.ServiceKind Name string acl.EnterpriseMeta }
KindServiceNameQuery is used to lookup service names by kind or enterprise meta.
func (KindServiceNameQuery) NamespaceOrDefault ¶
func (q KindServiceNameQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (KindServiceNameQuery) PartitionOrDefault ¶
func (q KindServiceNameQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type MultiQuery ¶
type MultiQuery struct { Value []string acl.EnterpriseMeta }
func (MultiQuery) IDValue ¶
func (q MultiQuery) IDValue() []string
func (MultiQuery) NamespaceOrDefault ¶
func (q MultiQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (MultiQuery) PartitionOrDefault ¶
func (q MultiQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type NodeCheckQuery ¶
type NodeCheckQuery struct { Node string CheckID string PeerName string acl.EnterpriseMeta }
NodeCheckQuery is used to query the ID index of the checks table.
func (NodeCheckQuery) NamespaceOrDefault ¶
func (q NodeCheckQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (NodeCheckQuery) PartitionOrDefault ¶
func (q NodeCheckQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (NodeCheckQuery) PeerOrEmpty ¶
func (q NodeCheckQuery) PeerOrEmpty() string
type NodeServiceQuery ¶
type NodeServiceQuery struct { Node string Service string PeerName string acl.EnterpriseMeta }
NodeServiceQuery is a type used to query the checks table.
func (NodeServiceQuery) NamespaceOrDefault ¶
func (q NodeServiceQuery) NamespaceOrDefault() string
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (NodeServiceQuery) PartitionOrDefault ¶
func (q NodeServiceQuery) PartitionOrDefault() string
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (NodeServiceQuery) PeerOrEmpty ¶
func (q NodeServiceQuery) PeerOrEmpty() string
type NodeUsage ¶
type NodeUsage struct { Nodes int EnterpriseNodeUsage }
NodeUsage contains all of the usage data related to nodes
type PeeringUsage ¶
type PeeringUsage struct { // Number of peerings. Peerings int EnterprisePeeringUsage }
PeeringUsage contains all of the usage data related to peerings.
type PreparedQueryIndex ¶
type PreparedQueryIndex struct { }
PreparedQueryIndex is a custom memdb indexer used to manage index prepared query templates. None of the built-in indexers do what we need, and our use case is pretty specific so it's better to put the logic here.
func (*PreparedQueryIndex) FromArgs ¶
func (p *PreparedQueryIndex) FromArgs(args ...interface{}) ([]byte, error)
FromArgs is used when querying for an exact match. Since we don't add any suffix we can just call the prefix version.
func (*PreparedQueryIndex) FromObject ¶
func (*PreparedQueryIndex) FromObject(obj interface{}) (bool, []byte, error)
FromObject is used to compute the index key when inserting or updating an object.
func (*PreparedQueryIndex) PrefixFromArgs ¶
func (*PreparedQueryIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
PrefixFromArgs is used when doing a prefix scan for an object.
type Query ¶
type Query struct { Value string PeerName string acl.EnterpriseMeta }
Query is a type used to query any single value index that may include an enterprise identifier.
func (Query) NamespaceOrDefault ¶
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (Query) PartitionOrDefault ¶
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (Query) PeerOrEmpty ¶
type ReadDB ¶
type ReadDB interface {
ReadTxn() AbortTxn
}
ReadDB is a DB that provides read-only transactions.
type ReadTxn ¶
type ReadTxn interface { Get(table, index string, args ...interface{}) (memdb.ResultIterator, error) First(table, index string, args ...interface{}) (interface{}, error) FirstWatch(table, index string, args ...interface{}) (<-chan struct{}, interface{}, error) }
ReadTxn is implemented by memdb.Txn to perform read operations.
type Restore ¶
type Restore struct {
// contains filtered or unexported fields
}
Restore is used to efficiently manage restoring a large amount of data to a state store.
func (*Restore) ACLAuthMethod ¶
func (s *Restore) ACLAuthMethod(method *structs.ACLAuthMethod) error
func (*Restore) ACLBindingRule ¶
func (s *Restore) ACLBindingRule(rule *structs.ACLBindingRule) error
func (*Restore) ACLToken ¶
ACLToken is used when restoring from a snapshot. For general inserts, use ACL.
func (*Restore) Abort ¶
func (s *Restore) Abort()
Abort abandons the changes made by a restore. This or Commit should always be called.
func (*Restore) Autopilot ¶
func (s *Restore) Autopilot(config *structs.AutopilotConfig) error
Autopilot is used when restoring from a snapshot.
func (*Restore) CAConfig ¶
func (s *Restore) CAConfig(config *structs.CAConfiguration) error
CAConfig is used when restoring from a snapshot.
func (*Restore) CAProviderState ¶
func (s *Restore) CAProviderState(state *structs.CAConsulProviderState) error
CAProviderState is used when restoring from a snapshot.
func (*Restore) Commit ¶
Commit commits the changes made by a restore. This or Abort should always be called.
func (*Restore) ConfigEntry ¶
func (s *Restore) ConfigEntry(c structs.ConfigEntry) error
ConfigEntry is used when restoring from a snapshot.
func (*Restore) Coordinates ¶
func (s *Restore) Coordinates(idx uint64, updates structs.Coordinates) error
Coordinates is used when restoring from a snapshot. For general inserts, use CoordinateBatchUpdate. We do less vetting of the updates here because they already got checked on the way in during a batch update.
func (*Restore) FederationState ¶
func (s *Restore) FederationState(g *structs.FederationState) error
FederationState is used when restoring from a snapshot.
func (*Restore) FreeVirtualIP ¶
func (s *Restore) FreeVirtualIP(req FreeVirtualIP) error
func (*Restore) IndexRestore ¶
func (s *Restore) IndexRestore(idx *IndexEntry) error
IndexRestore is used to restore an index
func (*Restore) LegacyIntention
deprecated
func (*Restore) PeeringSecrets ¶
func (r *Restore) PeeringSecrets(p *pbpeering.PeeringSecrets) error
func (*Restore) PeeringTrustBundle ¶
func (r *Restore) PeeringTrustBundle(ptb *pbpeering.PeeringTrustBundle) error
func (*Restore) PreparedQuery ¶
func (s *Restore) PreparedQuery(query *structs.PreparedQuery) error
PreparedQuery is used when restoring from a snapshot. For general inserts, use PreparedQuerySet.
func (*Restore) Registration ¶
func (s *Restore) Registration(idx uint64, req *structs.RegisterRequest) error
Registration is used to make sure a node, service, and check registration is performed within a single transaction to avoid race conditions on state updates.
func (*Restore) ServiceVirtualIP ¶
func (s *Restore) ServiceVirtualIP(req ServiceVirtualIP) error
func (*Restore) Session ¶
Session is used when restoring from a snapshot. For general inserts, use SessionCreate.
func (*Restore) SystemMetadataEntry ¶
func (s *Restore) SystemMetadataEntry(entry *structs.SystemMetadataEntry) error
SystemMetadataEntry is used when restoring from a snapshot.
type SamenessGroupDefaultIndex ¶
type SamenessGroupDefaultIndex struct{}
SamenessGroupDefaultIndex is a placeholder for CE. Sameness-groups are enterprise only.
func (*SamenessGroupDefaultIndex) FromArgs ¶
func (*SamenessGroupDefaultIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*SamenessGroupDefaultIndex) FromObject ¶
func (*SamenessGroupDefaultIndex) FromObject(obj interface{}) (bool, [][]byte, error)
type SamenessGroupMemberIndex ¶
type SamenessGroupMemberIndex struct { }
func (*SamenessGroupMemberIndex) FromArgs ¶
func (s *SamenessGroupMemberIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*SamenessGroupMemberIndex) FromObject ¶
func (s *SamenessGroupMemberIndex) FromObject(obj interface{}) (bool, [][]byte, error)
type ServiceIntentionLegacyIDIndex ¶
type ServiceIntentionLegacyIDIndex struct {
// contains filtered or unexported fields
}
func (*ServiceIntentionLegacyIDIndex) FromArgs ¶
func (s *ServiceIntentionLegacyIDIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ServiceIntentionLegacyIDIndex) FromObject ¶
func (s *ServiceIntentionLegacyIDIndex) FromObject(obj interface{}) (bool, [][]byte, error)
func (*ServiceIntentionLegacyIDIndex) PrefixFromArgs ¶
func (s *ServiceIntentionLegacyIDIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
type ServiceIntentionSourceIndex ¶
type ServiceIntentionSourceIndex struct { }
func (*ServiceIntentionSourceIndex) FromArgs ¶
func (s *ServiceIntentionSourceIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ServiceIntentionSourceIndex) FromObject ¶
func (s *ServiceIntentionSourceIndex) FromObject(obj interface{}) (bool, [][]byte, error)
type ServiceIntentionSourceSamenessGroupIndex ¶
type ServiceIntentionSourceSamenessGroupIndex struct { }
func (*ServiceIntentionSourceSamenessGroupIndex) FromArgs ¶
func (s *ServiceIntentionSourceSamenessGroupIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ServiceIntentionSourceSamenessGroupIndex) FromObject ¶
func (s *ServiceIntentionSourceSamenessGroupIndex) FromObject(obj interface{}) (bool, [][]byte, error)
type ServiceManualVIPIndex ¶
type ServiceManualVIPIndex struct{}
func (*ServiceManualVIPIndex) FromArgs ¶
func (index *ServiceManualVIPIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ServiceManualVIPIndex) FromObject ¶
func (index *ServiceManualVIPIndex) FromObject(obj interface{}) (bool, []byte, error)
type ServiceNameIndex ¶
type ServiceNameIndex struct {
Field string
}
func (*ServiceNameIndex) FromArgs ¶
func (index *ServiceNameIndex) FromArgs(args ...interface{}) ([]byte, error)
func (*ServiceNameIndex) FromObject ¶
func (index *ServiceNameIndex) FromObject(obj interface{}) (bool, []byte, error)
func (*ServiceNameIndex) PrefixFromArgs ¶
func (index *ServiceNameIndex) PrefixFromArgs(args ...interface{}) ([]byte, error)
type ServiceVirtualIP ¶
type ServiceVirtualIP struct { Service structs.PeeredServiceName IP net.IP ManualIPs []string structs.RaftIndex }
ServiceVirtualIP is used to store a virtual IP associated with a service. It is also used to store assigned virtual IPs when a snapshot is created.
func (ServiceVirtualIP) IPWithOffset ¶
func (s ServiceVirtualIP) IPWithOffset() (string, error)
type ServiceWithDecision ¶
type ServiceWithDecision struct { Name structs.ServiceName Decision structs.IntentionDecisionSummary }
type SimplifiedExportedServices ¶
type SimplifiedExportedServices structs.ExportedServicesConfigEntry
SimplifiedExportedServices contains a version of the exported-services that has been flattened by removing all of the sameness group references and replacing them with corresponding partition / peer entries.
func (*SimplifiedExportedServices) ToPartitionMap ¶
func (e *SimplifiedExportedServices) ToPartitionMap() map[string]map[string][]string
ToPartitionMap is only used by the partition exporting logic. It returns a map[namespace][service] => []consuming_partitions
type Snapshot ¶
type Snapshot struct {
// contains filtered or unexported fields
}
Snapshot is used to provide a point-in-time snapshot. It works by starting a read transaction against the whole state store.
func (*Snapshot) ACLAuthMethods ¶
ACLAuthMethods is used when saving a snapshot
func (*Snapshot) ACLBindingRules ¶
ACLBindingRules is used when saving a snapshot
func (*Snapshot) ACLPolicies ¶
ACLPolicies is used when saving a snapshot
func (*Snapshot) Autopilot ¶
func (s *Snapshot) Autopilot() (*structs.AutopilotConfig, error)
Autopilot is used to pull the autopilot config from the snapshot.
func (*Snapshot) CAConfig ¶
func (s *Snapshot) CAConfig() (*structs.CAConfiguration, error)
CAConfig is used to pull the CA config from the snapshot.
func (*Snapshot) CAProviderState ¶
func (s *Snapshot) CAProviderState() ([]*structs.CAConsulProviderState, error)
CAProviderState is used to pull the built-in provider states from the snapshot.
func (*Snapshot) Checks ¶
func (s *Snapshot) Checks(node string, entMeta *acl.EnterpriseMeta, peerName string) (memdb.ResultIterator, error)
Checks is used to pull the full list of checks for a given node for use during snapshots.
func (*Snapshot) ConfigEntries ¶
func (s *Snapshot) ConfigEntries() ([]structs.ConfigEntry, error)
ConfigEntries is used to pull all the config entries for the snapshot.
func (*Snapshot) Coordinates ¶
Coordinates is used to pull all the coordinates from the snapshot.
func (*Snapshot) FederationStates ¶
func (s *Snapshot) FederationStates() ([]*structs.FederationState, error)
FederationStates is used to pull all the federation states for the snapshot.
func (*Snapshot) FreeVirtualIPs ¶
FreeVirtualIPs is used to pull the freed virtual IPs for use during snapshots.
func (*Snapshot) LegacyIntentions
deprecated
func (s *Snapshot) LegacyIntentions() (structs.Intentions, error)
LegacyIntentions is used to pull all the intentions from the snapshot.
Deprecated: service-intentions config entries are handled as config entries in the snapshot.
func (*Snapshot) PeeringSecrets ¶
func (*Snapshot) PeeringTrustBundles ¶
func (*Snapshot) PreparedQueries ¶
func (s *Snapshot) PreparedQueries() (structs.PreparedQueries, error)
PreparedQueries is used to pull all the prepared queries from the snapshot.
func (*Snapshot) ServiceVirtualIPs ¶
ServiceVirtualIPs is used to pull the service virtual IP mappings for use during snapshots.
func (*Snapshot) Services ¶
func (s *Snapshot) Services(node string, entMeta *acl.EnterpriseMeta, peerName string) (memdb.ResultIterator, error)
Services is used to pull the full list of services for a given node for use during snapshots.
func (*Snapshot) Sessions ¶
Sessions is used to pull the full list of sessions for use during snapshots.
func (*Snapshot) SystemMetadataEntries ¶
func (s *Snapshot) SystemMetadataEntries() ([]*structs.SystemMetadataEntry, error)
SystemMetadataEntries used to pull all the system metadata entries for the snapshot.
func (*Snapshot) Tombstones ¶
Tombstones is used to pull all the tombstones from the graveyard.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is where we store all of Consul's state, including records of node registrations, services, checks, key/value pairs and more. The DB is entirely in-memory and is constructed from the Raft log through the FSM.
func NewStateStore ¶
func NewStateStore(gc *TombstoneGC) *Store
NewStateStore creates a new in-memory state storage layer.
func NewStateStoreWithEventPublisher ¶
func NewStateStoreWithEventPublisher(gc *TombstoneGC, publisher EventPublisher) *Store
func (*Store) ACLAuthMethodBatchDelete ¶
func (*Store) ACLAuthMethodBatchSet ¶
func (s *Store) ACLAuthMethodBatchSet(idx uint64, methods structs.ACLAuthMethods) error
func (*Store) ACLAuthMethodDeleteByName ¶
func (*Store) ACLAuthMethodGetByName ¶
func (s *Store) ACLAuthMethodGetByName(ws memdb.WatchSet, name string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLAuthMethod, error)
func (*Store) ACLAuthMethodList ¶
func (s *Store) ACLAuthMethodList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLAuthMethods, error)
func (*Store) ACLAuthMethodSet ¶
func (s *Store) ACLAuthMethodSet(idx uint64, method *structs.ACLAuthMethod) error
func (*Store) ACLAuthMethodUpsertValidateEnterprise ¶
func (s *Store) ACLAuthMethodUpsertValidateEnterprise(method *structs.ACLAuthMethod, existing *structs.ACLAuthMethod) error
func (*Store) ACLBindingRuleBatchDelete ¶
func (*Store) ACLBindingRuleBatchSet ¶
func (s *Store) ACLBindingRuleBatchSet(idx uint64, rules structs.ACLBindingRules) error
func (*Store) ACLBindingRuleDeleteByID ¶
func (*Store) ACLBindingRuleGetByID ¶
func (s *Store) ACLBindingRuleGetByID(ws memdb.WatchSet, id string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLBindingRule, error)
func (*Store) ACLBindingRuleList ¶
func (s *Store) ACLBindingRuleList(ws memdb.WatchSet, methodName string, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLBindingRules, error)
func (*Store) ACLBindingRuleSet ¶
func (s *Store) ACLBindingRuleSet(idx uint64, rule *structs.ACLBindingRule) error
func (*Store) ACLBindingRuleUpsertValidateEnterprise ¶
func (s *Store) ACLBindingRuleUpsertValidateEnterprise(rule *structs.ACLBindingRule, existing *structs.ACLBindingRule) error
func (*Store) ACLBootstrap ¶
ACLBootstrap is used to perform a one-time ACL bootstrap operation on a cluster to get the first management token.
func (*Store) ACLPolicyBatchDelete ¶
func (*Store) ACLPolicyBatchGet ¶
func (*Store) ACLPolicyBatchSet ¶
func (s *Store) ACLPolicyBatchSet(idx uint64, policies structs.ACLPolicies) error
func (*Store) ACLPolicyDeleteByID ¶
func (*Store) ACLPolicyDeleteByName ¶
func (*Store) ACLPolicyGetByID ¶
func (*Store) ACLPolicyGetByName ¶
func (*Store) ACLPolicyList ¶
func (s *Store) ACLPolicyList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLPolicies, error)
func (*Store) ACLPolicySet ¶
func (*Store) ACLPolicyUpsertValidateEnterprise ¶
func (*Store) ACLRoleBatchDelete ¶
func (*Store) ACLRoleBatchGet ¶
func (*Store) ACLRoleBatchSet ¶
func (*Store) ACLRoleDeleteByID ¶
func (*Store) ACLRoleDeleteByName ¶
func (*Store) ACLRoleGetByID ¶
func (*Store) ACLRoleGetByName ¶
func (*Store) ACLRoleList ¶
func (*Store) ACLRoleUpsertValidateEnterprise ¶
func (*Store) ACLTokenBatchDelete ¶
func (*Store) ACLTokenBatchGet ¶
func (*Store) ACLTokenBatchSet ¶
func (*Store) ACLTokenDeleteByAccessor ¶
func (s *Store) ACLTokenDeleteByAccessor(idx uint64, accessor string, entMeta *acl.EnterpriseMeta) error
ACLTokenDeleteByAccessor is used to remove an existing ACL from the state store. If the ACL does not exist this is a no-op and no error is returned.
func (*Store) ACLTokenGetByAccessor ¶
func (s *Store) ACLTokenGetByAccessor(ws memdb.WatchSet, accessor string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLToken, error)
ACLTokenGetByAccessor is used to look up an existing ACL token by its AccessorID.
func (*Store) ACLTokenGetBySecret ¶
func (s *Store) ACLTokenGetBySecret(ws memdb.WatchSet, secret string, entMeta *acl.EnterpriseMeta) (uint64, *structs.ACLToken, error)
ACLTokenGetBySecret is used to look up an existing ACL token by its SecretID.
func (*Store) ACLTokenList
deprecated
func (s *Store) ACLTokenList(ws memdb.WatchSet, local, global bool, policy, role, methodName string, methodMeta, entMeta *acl.EnterpriseMeta) (uint64, structs.ACLTokens, error)
ACLTokenList return a list of ACL Tokens that match the policy, role, and method. This function should be treated as deprecated, and ACLTokenListWithParameters should be preferred.
Deprecated: use ACLTokenListWithParameters
func (*Store) ACLTokenListExpired ¶
func (s *Store) ACLTokenListExpired(local bool, asOf time.Time, max int) (structs.ACLTokens, <-chan struct{}, error)
ACLTokenListExpires lists tokens that are expired as of the provided time. The returned set will be no larger than the max value provided.
func (*Store) ACLTokenListWithParameters ¶
func (s *Store) ACLTokenListWithParameters(ws memdb.WatchSet, params ACLTokenListParameters) (uint64, structs.ACLTokens, error)
ACLTokenListWithParameters returns a list of ACL Tokens that match the provided parameters.
func (*Store) ACLTokenMinExpirationTime ¶
func (*Store) ACLTokenSet ¶
ACLTokenSet is used in many tests to set a single ACL token. It is now a shim for calling ACLTokenBatchSet with default options.
func (*Store) ACLTokenUpsertValidateEnterprise ¶
func (*Store) APIGatewaySnapshot ¶
func (s *Store) APIGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
APIGatewaySnapshot is a stream.SnapshotFunc that returns a snapshot of api-gateway config entries.
func (*Store) Abandon ¶
func (s *Store) Abandon()
Abandon is used to signal that the given state store has been abandoned. Calling this more than one time will panic.
func (*Store) AbandonCh ¶
func (s *Store) AbandonCh() <-chan struct{}
AbandonCh returns a channel you can wait on to know if the state store was abandoned.
func (*Store) AreIntentionsInConfigEntries ¶
AreIntentionsInConfigEntries determines which table is the canonical store for intentions data.
func (*Store) AssignManualServiceVIPs ¶
func (s *Store) AssignManualServiceVIPs(idx uint64, psn structs.PeeredServiceName, ips []string) (bool, []structs.PeeredServiceName, error)
AssignManualServiceVIPs attempts to associate a list of manual virtual IP addresses with a given service name. Any IP addresses given will be removed from other services in the same partition. This is done to ensure that a manual VIP can only exist once for a given partition. This function returns: - a bool indicating whether the given service exists. - a list of service names that had ip addresses removed from them. - an error indicating success or failure of the call.
func (*Store) AutopilotCASConfig ¶
AutopilotCASConfig is used to try updating the Autopilot configuration with a given Raft index. If the CAS index specified is not equal to the last observed index for the config, then the call is a noop,
func (*Store) AutopilotConfig ¶
func (s *Store) AutopilotConfig() (uint64, *structs.AutopilotConfig, error)
AutopilotConfig is used to get the current Autopilot configuration.
func (*Store) AutopilotSetConfig ¶
func (s *Store) AutopilotSetConfig(idx uint64, config *structs.AutopilotConfig) error
AutopilotSetConfig is used to set the current Autopilot configuration.
func (*Store) BoundAPIGatewaySnapshot ¶
func (s *Store) BoundAPIGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
BoundAPIGatewaySnapshot is a stream.SnapshotFunc that returns a snapshot of bound-api-gateway config entries.
func (*Store) CACheckAndSetConfig ¶
func (s *Store) CACheckAndSetConfig(idx, cidx uint64, config *structs.CAConfiguration) (bool, error)
CACheckAndSetConfig is used to try updating the CA configuration with a given Raft index. If the CAS index specified is not equal to the last observed index for the config, then the call will return an error,
func (*Store) CAConfig ¶
func (s *Store) CAConfig(ws memdb.WatchSet) (uint64, *structs.CAConfiguration, error)
CAConfig is used to get the current CA configuration.
func (*Store) CADeleteProviderState ¶
CADeleteProviderState is used to remove the built-in Consul CA provider state for the given ID.
func (*Store) CAIncrementProviderSerialNumber ¶
func (*Store) CAProviderState ¶
CAProviderState is used to get the Consul CA provider state for the given ID.
func (*Store) CARootActive ¶
CARootActive returns the currently active CARoot.
func (*Store) CARootSetCAS ¶
CARootSetCAS sets the current CA root state using a check-and-set operation. On success, this will replace the previous set of CARoots completely with the given set of roots.
The first boolean result returns whether the transaction succeeded or not.
func (*Store) CARootsAndConfig ¶
func (*Store) CARootsSnapshot ¶
func (s *Store) CARootsSnapshot(_ stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
caRootsSnapshot returns a stream.SnapshotFunc that provides a snapshot of the current active list of CA Roots.
func (*Store) CASetConfig ¶
func (s *Store) CASetConfig(idx uint64, config *structs.CAConfiguration) error
CASetConfig is used to set the current CA configuration.
func (*Store) CASetProviderState ¶
CASetProviderState is used to set the current built-in CA provider state.
func (*Store) CanBootstrapACLToken ¶
CanBootstrapACLToken checks if bootstrapping is possible and returns the reset index
func (*Store) CatalogDump ¶
func (s *Store) CatalogDump() (*structs.CatalogContents, error)
CatalogDump returns all the contents of the node, service and check tables. In Enterprise, this will return entries across all partitions and namespaces. TODO(peering) make this peering aware?
func (*Store) CheckConnectServiceNodes ¶
func (s *Store) CheckConnectServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error)
CheckConnectServiceNodes is used to query all nodes and checks for Connect compatible endpoints for a given service.
func (*Store) CheckIngressServiceNodes ¶
func (s *Store) CheckIngressServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta) (uint64, structs.CheckServiceNodes, error)
CheckIngressServiceNodes is used to query all nodes and checks for ingress endpoints for a given service.
func (*Store) CheckServiceNodes ¶
func (s *Store) CheckServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error)
CheckServiceNodes is used to query all nodes and checks for a given service.
func (*Store) CheckServiceTagNodes ¶
func (s *Store) CheckServiceTagNodes(ws memdb.WatchSet, serviceName string, tags []string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error)
CheckServiceTagNodes is used to query all nodes and checks for a given service, filtering out services that don't contain the given tag.
func (*Store) ChecksInState ¶
func (s *Store) ChecksInState(ws memdb.WatchSet, state string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
ChecksInState is used to query the state store for all checks which are in the provided state.
func (*Store) ChecksInStateByNodeMeta ¶
func (s *Store) ChecksInStateByNodeMeta(ws memdb.WatchSet, state string, filters map[string]string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
ChecksInStateByNodeMeta is used to query the state store for all checks which are in the provided state, filtered by the given node metadata values.
func (*Store) CombinedCheckServiceNodes ¶
func (s *Store) CombinedCheckServiceNodes(ws memdb.WatchSet, service structs.ServiceName, peerName string) (uint64, structs.CheckServiceNodes, error)
CombinedCheckServiceNodes is used to query all nodes and checks for both typical and Connect endpoints of a service
func (*Store) ConfigEntries ¶
func (s *Store) ConfigEntries(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, []structs.ConfigEntry, error)
ConfigEntries is called to get all config entry objects.
func (*Store) ConfigEntriesByKind ¶
func (s *Store) ConfigEntriesByKind(ws memdb.WatchSet, kind string, entMeta *acl.EnterpriseMeta) (uint64, []structs.ConfigEntry, error)
ConfigEntriesByKind is called to get all config entry objects with the given kind. If kind is empty, all config entries will be returned.
func (*Store) ConfigEntry ¶
func (s *Store) ConfigEntry(ws memdb.WatchSet, kind, name string, entMeta *acl.EnterpriseMeta) (uint64, structs.ConfigEntry, error)
ConfigEntry is called to get a given config entry.
func (*Store) ConfigEntryUsage ¶
func (s *Store) ConfigEntryUsage() (uint64, ConfigEntryUsage, error)
func (*Store) ConnectServiceNodes ¶
func (s *Store) ConnectServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceNodes, error)
ConnectServiceNodes returns the nodes associated with a Connect compatible destination for the given service name. This will include both proxies and native integrations.
func (*Store) Coordinate ¶
func (s *Store) Coordinate(ws memdb.WatchSet, node string, entMeta *acl.EnterpriseMeta) (uint64, lib.CoordinateSet, error)
Coordinate returns a map of coordinates for the given node, indexed by network segment.
func (*Store) CoordinateBatchUpdate ¶
func (s *Store) CoordinateBatchUpdate(idx uint64, updates structs.Coordinates) error
CoordinateBatchUpdate processes a batch of coordinate updates and applies them in a single transaction.
func (*Store) Coordinates ¶
func (s *Store) Coordinates(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Coordinates, error)
Coordinates queries for all nodes with coordinates.
func (*Store) DeleteCheck ¶
func (s *Store) DeleteCheck(idx uint64, node string, checkID types.CheckID, entMeta *acl.EnterpriseMeta, peerName string) error
DeleteCheck is used to delete a health check registration.
func (*Store) DeleteConfigEntry ¶
func (*Store) DeleteConfigEntryCAS ¶
DeleteConfigEntryCAS performs a check-and-set deletion of a config entry with the given raft index. If the index is not specified, or is not equal to the entry's current ModifyIndex then the call is a noop, otherwise the normal deletion is performed.
func (*Store) DeleteNode ¶
func (s *Store) DeleteNode(idx uint64, nodeName string, entMeta *acl.EnterpriseMeta, peerName string) error
DeleteNode is used to delete a given node by its ID.
func (*Store) DeleteService ¶
func (s *Store) DeleteService(idx uint64, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) error
DeleteService is used to delete a given service associated with a node.
func (*Store) DumpGatewayServices ¶
func (s *Store) DumpGatewayServices(ws memdb.WatchSet) (uint64, structs.GatewayServices, error)
func (*Store) EnsureCheck ¶
func (s *Store) EnsureCheck(idx uint64, hc *structs.HealthCheck) error
EnsureCheck is used to store a check registration in the db.
func (*Store) EnsureConfigEntry ¶
func (s *Store) EnsureConfigEntry(idx uint64, conf structs.ConfigEntry) error
EnsureConfigEntry is called to do an upsert of a given config entry.
func (*Store) EnsureConfigEntryCAS ¶
EnsureConfigEntryCAS is called to do a check-and-set upsert of a given config entry.
func (*Store) EnsureConfigEntryWithStatusCAS ¶
func (s *Store) EnsureConfigEntryWithStatusCAS(idx, cidx uint64, conf structs.ConfigEntry) (bool, error)
EnsureConfigEntryWithStatusCAS is called to do a check-and-set upsert of a given config entry and its status.
func (*Store) EnsureNode ¶
EnsureNode is used to upsert node registration or modification.
func (*Store) EnsureRegistration ¶
func (s *Store) EnsureRegistration(idx uint64, req *structs.RegisterRequest) error
EnsureRegistration is used to make sure a node, service, and check registration is performed within a single transaction to avoid race conditions on state updates.
func (*Store) EnsureService ¶
EnsureService is called to upsert creation of a given NodeService.
func (*Store) ExportedServicesForAllPeersByName ¶
func (s *Store) ExportedServicesForAllPeersByName(ws memdb.WatchSet, dc string, entMeta acl.EnterpriseMeta) (uint64, map[string]structs.ServiceList, error)
func (*Store) ExportedServicesForPeer ¶
func (s *Store) ExportedServicesForPeer(ws memdb.WatchSet, peerID string, dc string) (uint64, *structs.ExportedServiceList, error)
ExportedServicesForPeer returns the list of typical and proxy services exported to a peer.
TODO(peering): What to do about terminating gateways? Sometimes terminating gateways are the appropriate destination to dial for an upstream mesh service. However, that information is handled by observing the terminating gateway's config entry, which we wouldn't want to replicate. How would client peers know to route through terminating gateways when they're not dialing through a remote mesh gateway?
func (*Store) FederationStateBatchDelete ¶
func (*Store) FederationStateBatchSet ¶
func (s *Store) FederationStateBatchSet(idx uint64, configs structs.FederationStates) error
func (*Store) FederationStateDelete ¶
func (*Store) FederationStateGet ¶
func (s *Store) FederationStateGet(ws memdb.WatchSet, datacenter string) (uint64, *structs.FederationState, error)
FederationStateGet is called to get a federation state.
func (*Store) FederationStateList ¶
FederationStateList is called to get all federation state objects.
func (*Store) FederationStateSet ¶
func (s *Store) FederationStateSet(idx uint64, config *structs.FederationState) error
FederationStateSet is called to do an upsert of a given federation state.
func (*Store) GatewayServices ¶
func (s *Store) GatewayServices(ws memdb.WatchSet, gateway string, entMeta *acl.EnterpriseMeta) (uint64, structs.GatewayServices, error)
GatewayServices is used to query all services associated with a gateway
func (*Store) GetNode ¶
func (s *Store) GetNode(nodeNameOrID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.Node, error)
GetNode is used to retrieve a node registration by node name ID.
func (*Store) GetNodeID ¶
func (s *Store) GetNodeID(id types.NodeID, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.Node, error)
GetNodeID is used to retrieve a node registration by node ID.
func (*Store) GetSamenessGroup ¶
func (s *Store) GetSamenessGroup(ws memdb.WatchSet, name string, overrides map[configentry.KindName]structs.ConfigEntry, partition string) (uint64, *structs.SamenessGroupConfigEntry, error)
GetSamenessGroup returns a SamenessGroupConfigEntry from the state store using the provided parameters.
func (*Store) GetSimplifiedExportedServices ¶
func (s *Store) GetSimplifiedExportedServices(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, *SimplifiedExportedServices, error)
func (*Store) HTTPRouteSnapshot ¶
func (s *Store) HTTPRouteSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
HTTPRouteSnapshot is a stream.SnapshotFunc that retuns a snapshot of http-route config entries.
func (*Store) IPRateLimiterSnapshot ¶
func (s *Store) IPRateLimiterSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
IPRateLimiterSnapshot is a stream.SnapshotFunc that returns a snapshot of "control-plane-request-limit" config entries.
func (*Store) IngressGatewaySnapshot ¶
func (s *Store) IngressGatewaySnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
IngressGatewaySnapshot is a stream.SnapshotFunc that returns a snapshot of ingress-gateway config entries.
func (*Store) InlineCertificateSnapshot ¶
func (s *Store) InlineCertificateSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
InlineCertificateSnapshot is a stream.SnapshotFunc that returns a snapshot of inline-certificate config entries.
func (*Store) IntentionDecision ¶
func (s *Store) IntentionDecision(opts IntentionDecisionOpts) (structs.IntentionDecisionSummary, error)
IntentionDecision returns whether a connection should be allowed to a source or destination given a set of intentions.
allowPermissions determines whether the presence of L7 permissions leads to a DENY decision. This should be false when evaluating a connection between a source and destination, but not the request that will be sent.
func (*Store) IntentionGet ¶
func (s *Store) IntentionGet(ws memdb.WatchSet, id string) (uint64, *structs.ServiceIntentionsConfigEntry, *structs.Intention, error)
IntentionGet returns the given intention by ID.
func (*Store) IntentionGetExact ¶
func (s *Store) IntentionGetExact(ws memdb.WatchSet, args *structs.IntentionQueryExact) (uint64, *structs.ServiceIntentionsConfigEntry, *structs.Intention, error)
IntentionGetExact returns the given intention by it's full unique name.
func (*Store) IntentionMatch ¶
func (s *Store) IntentionMatch(ws memdb.WatchSet, args *structs.IntentionQueryMatch) (uint64, []structs.Intentions, error)
IntentionMatch returns the list of intentions that match the namespace and name for either a source or destination. This applies the resolution rules so wildcards will match any value.
The returned value is the list of intentions in the same order as the entries in args. The intentions themselves are sorted based on the intention precedence rules. i.e. result[0][0] is the highest precedent rule to match for the first entry.
func (*Store) IntentionMatchOne ¶
func (s *Store) IntentionMatchOne( ws memdb.WatchSet, entry structs.IntentionMatchEntry, matchType structs.IntentionMatchType, destinationType structs.IntentionTargetType, ) (uint64, structs.SimplifiedIntentions, error)
IntentionMatchOne returns the list of intentions that match the namespace and name for a single source or destination. This applies the resolution rules so wildcards will match any value.
The returned intentions are sorted based on the intention precedence rules. i.e. result[0] is the highest precedent rule to match
func (*Store) IntentionMutation ¶
func (s *Store) IntentionMutation(idx uint64, op structs.IntentionOp, mut *structs.IntentionMutation) error
func (*Store) IntentionTopology ¶
func (s *Store) IntentionTopology( ws memdb.WatchSet, target structs.ServiceName, downstreams bool, defaultDecision acl.EnforcementDecision, intentionTarget structs.IntentionTargetType, ) (uint64, structs.ServiceList, error)
IntentionTopology returns the upstreams or downstreams of a service. Upstreams and downstreams are inferred from intentions. If intentions allow a connection from the target to some candidate service, the candidate service is considered an upstream of the target.
func (*Store) Intentions ¶
func (s *Store) Intentions(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, bool, error)
Intentions returns the list of all intentions. The boolean response value is true if it came from config entries.
func (*Store) JWTProviderSnapshot ¶
func (s *Store) JWTProviderSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
JWTProviderSnapshot is a stream.SnapshotFunc that returns a snapshot of jwt-provider config entries.
func (*Store) KVSDelete ¶
KVSDelete is used to perform a shallow delete on a single key in the the state store.
func (*Store) KVSDeleteCAS ¶
func (s *Store) KVSDeleteCAS(idx, cidx uint64, key string, entMeta *acl.EnterpriseMeta) (bool, error)
KVSDeleteCAS is used to try doing a KV delete operation with a given raft index. If the CAS index specified is not equal to the last observed index for the given key, then the call is a noop, otherwise a normal KV delete is invoked.
func (*Store) KVSDeleteTree ¶
KVSDeleteTree is used to do a recursive delete on a key prefix in the state store. If any keys are modified, the last index is set, otherwise this is a no-op.
func (*Store) KVSGet ¶
func (s *Store) KVSGet(ws memdb.WatchSet, key string, entMeta *acl.EnterpriseMeta) (uint64, *structs.DirEntry, error)
KVSGet is used to retrieve a key/value pair from the state store.
func (*Store) KVSList ¶
func (s *Store) KVSList(ws memdb.WatchSet, prefix string, entMeta *acl.EnterpriseMeta) (uint64, structs.DirEntries, error)
KVSList is used to list out all keys under a given prefix. If the prefix is left empty, all keys in the KVS will be returned. The returned is the max index of the returned kvs entries or applicable tombstones, or else it's the full table indexes for kvs and tombstones.
func (*Store) KVSLock ¶
KVSLock is similar to KVSSet but only performs the set if the lock can be acquired.
func (*Store) KVSLockDelay ¶
KVSLockDelay returns the expiration time for any lock delay associated with the given key.
func (*Store) KVSSetCAS ¶
KVSSetCAS is used to do a check-and-set operation on a KV entry. The ModifyIndex in the provided entry is used to determine if we should write the entry to the state store or bail. Returns a bool indicating if a write happened and any error.
func (*Store) KVSUnlock ¶
KVSUnlock is similar to KVSSet but only performs the set if the lock can be unlocked (the key must already exist and be locked).
func (*Store) LegacyIntentionDelete
deprecated
func (*Store) LegacyIntentionDeleteAll ¶
LegacyIntentionDeleteAll deletes all legacy intentions. This is part of the config entry migration code.
func (*Store) LegacyIntentions ¶
func (s *Store) LegacyIntentions(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Intentions, error)
LegacyIntentions is like Intentions() but only returns legacy intentions. This is exposed for migration purposes.
func (*Store) MeshConfigSnapshot ¶
func (s *Store) MeshConfigSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
MeshConfigSnapshot is a stream.SnapshotFunc that returns a snapshot of mesh config entries.
func (*Store) NodeCheck ¶
func (s *Store) NodeCheck(nodeName string, checkID types.CheckID, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.HealthCheck, error)
NodeCheck is used to retrieve a specific check associated with the given node.
func (*Store) NodeChecks ¶
func (s *Store) NodeChecks(ws memdb.WatchSet, nodeName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
NodeChecks is used to retrieve checks associated with the given node from the state store.
func (*Store) NodeDump ¶
func (s *Store) NodeDump(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.NodeDump, error)
NodeDump is used to generate a dump of all nodes. This call is expensive as it has to query every node, service, and check. The response can also be quite large since there is currently no filtering applied.
func (*Store) NodeInfo ¶
func (s *Store) NodeInfo(ws memdb.WatchSet, node string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.NodeDump, error)
NodeInfo is used to generate a dump of a single node. The dump includes all services and checks which are registered against the node.
func (*Store) NodeService ¶
func (s *Store) NodeService(ws memdb.WatchSet, nodeName string, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeService, error)
NodeService is used to retrieve a specific service associated with the given node.
func (*Store) NodeServiceList ¶
func (s *Store) NodeServiceList(ws memdb.WatchSet, nodeNameOrID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeServiceList, error)
NodeServices is used to query service registrations by node name or UUID.
func (*Store) NodeServices ¶
func (s *Store) NodeServices(ws memdb.WatchSet, nodeNameOrID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.NodeServices, error)
NodeServices is used to query service registrations by node name or UUID.
func (*Store) NodeSessions ¶
func (s *Store) NodeSessions(ws memdb.WatchSet, nodeID string, entMeta *acl.EnterpriseMeta) (uint64, structs.Sessions, error)
NodeSessions returns a set of active sessions associated with the given node ID. The returned index is the highest index seen from the result set.
func (*Store) NodeUsage ¶
NodeUsage returns the latest seen Raft index, a compiled set of node usage data, and any errors.
func (*Store) Nodes ¶
func (s *Store) Nodes(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.Nodes, error)
Nodes is used to return all of the known nodes.
func (*Store) NodesByMeta ¶
func (s *Store) NodesByMeta(ws memdb.WatchSet, filters map[string]string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.Nodes, error)
NodesByMeta is used to return all nodes with the given metadata key/value pairs.
func (*Store) PeeringList ¶
func (*Store) PeeringListDeleted ¶
func (*Store) PeeringRead ¶
func (*Store) PeeringReadByID ¶
func (*Store) PeeringSecretsDelete ¶
func (*Store) PeeringSecretsRead ¶
func (s *Store) PeeringSecretsRead(ws memdb.WatchSet, peerID string) (*pbpeering.PeeringSecrets, error)
func (*Store) PeeringSecretsWrite ¶
func (s *Store) PeeringSecretsWrite(idx uint64, req *pbpeering.SecretsWriteRequest) error
func (*Store) PeeringTerminateByID ¶
func (*Store) PeeringTrustBundleDelete ¶
func (*Store) PeeringTrustBundleList ¶
func (s *Store) PeeringTrustBundleList(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error)
PeeringTrustBundleList returns the peering trust bundles for all peers.
func (*Store) PeeringTrustBundleRead ¶
func (s *Store) PeeringTrustBundleRead(ws memdb.WatchSet, q Query) (uint64, *pbpeering.PeeringTrustBundle, error)
PeeringTrustBundleRead returns the peering trust bundle for the peer name given as the query value.
func (*Store) PeeringTrustBundleWrite ¶
func (s *Store) PeeringTrustBundleWrite(idx uint64, ptb *pbpeering.PeeringTrustBundle) error
PeeringTrustBundleWrite writes ptb to the state store. It also updates the corresponding peering object with the new certs. If there is an existing trust bundle with the given peer name, it will be overwritten. If there is no corresponding peering, then an error is returned.
func (*Store) PeeringUsage ¶
func (s *Store) PeeringUsage() (uint64, PeeringUsage, error)
PeeringUsage returns the latest seen Raft index, a compiled set of peering usage data, and any errors.
func (*Store) PeeringWrite ¶
func (s *Store) PeeringWrite(idx uint64, req *pbpeering.PeeringWriteRequest) error
func (*Store) PeeringsForService ¶
func (s *Store) PeeringsForService(ws memdb.WatchSet, serviceName string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.Peering, error)
PeeringsForService returns the list of peerings that are associated with the service name provided in the query. This is used to configure connect proxies for a given service. The result is generated by querying for exported service config entries and filtering for those that match the given service.
TODO(peering): this implementation does all of the work on read to materialize this list of peerings, we should explore writing to a separate index that has service peerings prepared ahead of time should this become a performance bottleneck.
func (*Store) PreparedQueryDelete ¶
PreparedQueryDelete deletes the given query by ID.
func (*Store) PreparedQueryGet ¶
func (s *Store) PreparedQueryGet(ws memdb.WatchSet, queryID string) (uint64, *structs.PreparedQuery, error)
PreparedQueryGet returns the given prepared query by ID.
func (*Store) PreparedQueryList ¶
func (s *Store) PreparedQueryList(ws memdb.WatchSet) (uint64, structs.PreparedQueries, error)
PreparedQueryList returns all the prepared queries.
func (*Store) PreparedQueryResolve ¶
func (s *Store) PreparedQueryResolve(queryIDOrName string, source structs.QuerySource) (uint64, *structs.PreparedQuery, error)
PreparedQueryResolve returns the given prepared query by looking up an ID or Name. If the query was looked up by name and it's a template, then the template will be rendered before it is returned.
func (*Store) PreparedQuerySet ¶
func (s *Store) PreparedQuerySet(idx uint64, query *structs.PreparedQuery) error
PreparedQuerySet is used to create or update a prepared query.
func (*Store) ReadDiscoveryChainConfigEntries ¶
func (s *Store) ReadDiscoveryChainConfigEntries( ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, ) (uint64, *configentry.DiscoveryChainSet, error)
ReadDiscoveryChainConfigEntries will query for the full discovery chain for the provided service name. All relevant config entries will be recursively fetched and included in the result.
Once returned, the caller still needs to assemble these into a useful graph structure.
func (*Store) ReadResolvedServiceConfigEntries ¶
func (s *Store) ReadResolvedServiceConfigEntries( ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, upstreamIDs []structs.ServiceID, proxyMode structs.ProxyMode, ) (uint64, *configentry.ResolvedServiceConfigSet, error)
func (*Store) ReapTombstones ¶
ReapTombstones is used to delete all the tombstones with an index less than or equal to the given index. This is used to prevent unbounded storage growth of the tombstones.
func (*Store) Restore ¶
Restore is used to efficiently manage restoring a large amount of data into the state store. It works by doing all the restores inside of a single transaction.
func (*Store) SamenessGroupSnapshot ¶
func (s *Store) SamenessGroupSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
SamenessGroupSnapshot is a stream.SnapshotFunc that returns a snapshot of "sameness-group" config entries.
func (*Store) ServiceAddressNodes ¶
func (s *Store) ServiceAddressNodes(ws memdb.WatchSet, address string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceNodes, error)
ServiceAddressNodes returns the nodes associated with a given service, filtering out services that don't match the given serviceAddress
func (*Store) ServiceChecks ¶
func (s *Store) ServiceChecks(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
ServiceChecks is used to get all checks associated with a given service ID. The query is performed against a service _name_ instead of a service ID.
func (*Store) ServiceChecksByNodeMeta ¶
func (s *Store) ServiceChecksByNodeMeta(ws memdb.WatchSet, serviceName string, filters map[string]string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.HealthChecks, error)
ServiceChecksByNodeMeta is used to get all checks associated with a given service ID, filtered by the given node metadata values. The query is performed against a service _name_ instead of a service ID.
func (*Store) ServiceDefaultsSnapshot ¶
func (s *Store) ServiceDefaultsSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
ServiceDefaultsSnapshot is a stream.SnapshotFunc that returns a snapshot of service-defaults config entries.
func (*Store) ServiceDiscoveryChain ¶
func (s *Store) ServiceDiscoveryChain( ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, req discoverychain.CompileRequest, ) (uint64, *structs.CompiledDiscoveryChain, *configentry.DiscoveryChainSet, error)
func (*Store) ServiceDump ¶
func (s *Store) ServiceDump(ws memdb.WatchSet, kind structs.ServiceKind, useKind bool, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.CheckServiceNodes, error)
func (*Store) ServiceGateways ¶
func (s *Store) ServiceGateways(ws memdb.WatchSet, service string, kind structs.ServiceKind, entMeta acl.EnterpriseMeta) (uint64, structs.CheckServiceNodes, error)
TODO: Find a way to consolidate this with CheckIngressServiceNodes ServiceGateways is used to query all gateways associated with a service
func (*Store) ServiceHealthSnapshot ¶
func (s *Store) ServiceHealthSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (index uint64, err error)
serviceHealthSnapshot returns a stream.SnapshotFunc that provides a snapshot of stream.Events that describe the current state of a service health query.
func (*Store) ServiceIntentionsSnapshot ¶
func (s *Store) ServiceIntentionsSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
ServiceIntentionsSnapshot is a stream.SnapshotFunc that returns a snapshot of service-intentions config entries.
func (*Store) ServiceList ¶
func (s *Store) ServiceList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceList, error)
func (*Store) ServiceListSnapshot ¶
func (s *Store) ServiceListSnapshot(_ stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
ServiceListSnapshot is a stream.SnapshotFunc that returns a snapshot of all service names.
func (*Store) ServiceManualVIPs ¶
func (s *Store) ServiceManualVIPs(psn structs.PeeredServiceName) (*ServiceVirtualIP, error)
func (*Store) ServiceNamesOfKind ¶
func (s *Store) ServiceNamesOfKind(ws memdb.WatchSet, kind structs.ServiceKind) (uint64, []*KindServiceName, error)
func (*Store) ServiceNode ¶
func (s *Store) ServiceNode(nodeID, nodeName, serviceID string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, *structs.ServiceNode, error)
ServiceNode is used to retrieve a specific service by service ID and node ID or name.
func (*Store) ServiceNodes ¶
func (s *Store) ServiceNodes(ws memdb.WatchSet, serviceName string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceNodes, error)
ServiceNodes returns the nodes associated with a given service name.
func (*Store) ServiceResolverSnapshot ¶
func (s *Store) ServiceResolverSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
ServiceResolverSnapshot is a stream.SnapshotFunc that returns a snapshot of service-resolver config entries.
func (*Store) ServiceTagNodes ¶
func (s *Store) ServiceTagNodes(ws memdb.WatchSet, service string, tags []string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, structs.ServiceNodes, error)
ServiceTagNodes returns the nodes associated with a given service, filtering out services that don't contain the given tags.
func (*Store) ServiceTopology ¶
func (s *Store) ServiceTopology( ws memdb.WatchSet, dc, service string, kind structs.ServiceKind, defaultAllow acl.EnforcementDecision, entMeta *acl.EnterpriseMeta, ) (uint64, *structs.ServiceTopology, error)
TODO(freddy) Split this up. The upstream/downstream logic is very similar. TODO(freddy) Add comprehensive state store test
func (*Store) ServiceUsage ¶
func (s *Store) ServiceUsage(ws memdb.WatchSet) (uint64, structs.ServiceUsage, error)
ServiceUsage returns the latest seen Raft index, a compiled set of service usage data, and any errors.
func (*Store) ServiceVirtualIPs ¶
func (s *Store) ServiceVirtualIPs() (uint64, []ServiceVirtualIP, error)
func (*Store) Services ¶
func (s *Store) Services(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta, peerName string, joinServiceNodes bool) (uint64, structs.ServiceNodes, error)
Services returns all services along with a list of associated tags.
func (*Store) ServicesByNodeMeta ¶
func (s *Store) ServicesByNodeMeta(ws memdb.WatchSet, filters map[string]string, entMeta *acl.EnterpriseMeta, peerName string) (uint64, []*structs.ServiceNode, error)
ServicesByNodeMeta returns all services, filtered by the given node metadata.
func (*Store) SessionCreate ¶
SessionCreate is used to register a new session in the state store.
func (*Store) SessionDestroy ¶
SessionDestroy is used to remove an active session. This will implicitly invalidate the session and invoke the specified session destroy behavior.
func (*Store) SessionGet ¶
func (s *Store) SessionGet(ws memdb.WatchSet, sessionID string, entMeta *acl.EnterpriseMeta) (uint64, *structs.Session, error)
SessionGet is used to retrieve an active session from the state store.
func (*Store) SessionList ¶
func (s *Store) SessionList(ws memdb.WatchSet, entMeta *acl.EnterpriseMeta) (uint64, structs.Sessions, error)
SessionList returns a slice containing all of the active sessions.
func (*Store) SessionListAll ¶
func (*Store) SystemMetadataDelete ¶
func (s *Store) SystemMetadataDelete(idx uint64, entry *structs.SystemMetadataEntry) error
func (*Store) SystemMetadataGet ¶
func (s *Store) SystemMetadataGet(ws memdb.WatchSet, key string) (uint64, *structs.SystemMetadataEntry, error)
SystemMetadataGet is called to get a system metadata.
func (*Store) SystemMetadataList ¶
func (s *Store) SystemMetadataList(ws memdb.WatchSet) (uint64, []*structs.SystemMetadataEntry, error)
SystemMetadataList is called to get all system metadata objects.
func (*Store) SystemMetadataSet ¶
func (s *Store) SystemMetadataSet(idx uint64, entry *structs.SystemMetadataEntry) error
SystemMetadataSet is called to do an upsert of a set of system metadata entries.
func (*Store) TCPRouteSnapshot ¶
func (s *Store) TCPRouteSnapshot(req stream.SubscribeRequest, buf stream.SnapshotAppender) (uint64, error)
TCPRouteSnapshot is a stream.SnapshotFunc that returns a snapshot of tcp-route config entries.
func (*Store) TrustBundleListByService ¶
func (s *Store) TrustBundleListByService(ws memdb.WatchSet, service, dc string, entMeta acl.EnterpriseMeta) (uint64, []*pbpeering.PeeringTrustBundle, error)
TrustBundleListByService returns the trust bundles for all peers that the given service is exported to, via a discovery chain target.
func (*Store) TxnRO ¶
TxnRO runs the given operations inside a single read transaction in the state store. You must verify outside this function that no write operations are present, otherwise you'll get an error from the state store.
func (*Store) TxnRW ¶
TxnRW tries to run the given operations all inside a single transaction. If any of the operations fail, the entire transaction will be rolled back. This is done in a full write transaction on the state store, so reads and writes are possible
func (*Store) ValidateProposedPeeringSecretUUID ¶
func (*Store) ValidateRegisterRequest ¶
func (s *Store) ValidateRegisterRequest(_ *structs.RegisterRequest) (*acl.EnterpriseMeta, error)
func (*Store) VirtualIPForService ¶
func (s *Store) VirtualIPForService(psn structs.PeeredServiceName) (string, error)
func (*Store) VirtualIPsForAllImportedServices ¶
func (s *Store) VirtualIPsForAllImportedServices(ws memdb.WatchSet, entMeta acl.EnterpriseMeta) (uint64, []ServiceVirtualIP, error)
VirtualIPsForAllImportedServices returns a slice of ServiceVirtualIP for all VirtualIP-assignable services that have been imported by the partition represented in entMeta. Namespace is ignored.
type TimeQuery ¶
type TimeQuery struct { Value time.Time acl.EnterpriseMeta }
func (TimeQuery) NamespaceOrDefault ¶
NamespaceOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (TimeQuery) PartitionOrDefault ¶
PartitionOrDefault exists because structs.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
type Tombstone ¶
type Tombstone struct { Key string Index uint64 acl.EnterpriseMeta }
Tombstone is the internal type used to track tombstones.
type TombstoneGC ¶
TombstoneGC is used to track creation of tombstones so that they can be garbage collected after their TTL expires. The tombstones allow queries to provide monotonic index values within the TTL window. The GC is used to prevent monotonic growth in storage usage. This is a trade off between the length of the TTL and the storage overhead.
In practice, this is required to fix the issue of delete visibility. When data is deleted from the KV store, the "latest" row can go backwards if the newest row is removed. The tombstones provide a way to ensure time doesn't move backwards within some interval.
func NewTombstoneGC ¶
func NewTombstoneGC(ttl, granularity time.Duration) (*TombstoneGC, error)
NewTombstoneGC is used to construct a new TombstoneGC given a TTL for tombstones and a tracking granularity. Longer TTLs ensure correct behavior for more time, but use more storage. A shorter granularity increases the number of Raft transactions and reduce how far past the TTL we perform GC.
func (*TombstoneGC) ExpireCh ¶
func (t *TombstoneGC) ExpireCh() <-chan uint64
ExpireCh is used to return a channel that streams the next index that should be expired.
func (*TombstoneGC) Hint ¶
func (t *TombstoneGC) Hint(index uint64)
Hint is used to indicate that keys at the given index have been deleted, and that their GC should be scheduled.
func (*TombstoneGC) PendingExpiration ¶
func (t *TombstoneGC) PendingExpiration() bool
PendingExpiration is used to check if any expirations are pending.
func (*TombstoneGC) SetEnabled ¶
func (t *TombstoneGC) SetEnabled(enabled bool)
SetEnabled is used to control if the tombstone GC is enabled. Should only be enabled by the leader node.
type UsageEntry ¶
UsageEntry represents a count of some arbitrary identifier within the state store, along with the last seen index.
type WriteTxn ¶
type WriteTxn interface { ReadTxn Defer(func()) Delete(table string, obj interface{}) error DeleteAll(table, index string, args ...interface{}) (int, error) DeletePrefix(table string, index string, prefix string) (bool, error) Insert(table string, obj interface{}) error }
WriteTxn is implemented by memdb.Txn to perform write operations.
Source Files ¶
- acl.go
- acl_ce.go
- acl_events.go
- acl_schema.go
- autopilot.go
- catalog.go
- catalog_ce.go
- catalog_events.go
- catalog_events_ce.go
- catalog_schema.deepcopy.go
- catalog_schema.go
- config_entry.go
- config_entry_ce.go
- config_entry_events.go
- config_entry_exported_services.go
- config_entry_exported_services_ce.go
- config_entry_intention.go
- config_entry_intention_ce.go
- config_entry_sameness_group.go
- config_entry_sameness_group_ce.go
- config_entry_schema.go
- connect_ca.go
- connect_ca_events.go
- coordinate.go
- coordinate_ce.go
- delay_ce.go
- events.go
- federation_state.go
- graveyard.go
- graveyard_ce.go
- indexer.go
- intention.go
- intention_ce.go
- kvs.go
- kvs_ce.go
- memdb.go
- mock_publishFuncType.go
- operations_ce.go
- peering.go
- peering_ce.go
- prepared_query.go
- prepared_query_index.go
- query.go
- query_ce.go
- schema.go
- schema_ce.go
- session.go
- session_ce.go
- state_store.go
- system_metadata.go
- tombstone_gc.go
- txn.go
- usage.go
- usage_ce.go