Documentation
¶
Index ¶
- Constants
- Variables
- func ACLIDReserved(id string) bool
- func Decode(buf []byte, out interface{}) error
- func DecodeProto(buf []byte, pb proto.Message) error
- func DefaultEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
- func DefaultEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
- func DurationFromProto(d *duration.Duration) time.Duration
- func DurationToProto(d time.Duration) *duration.Duration
- func Encode(t MessageType, msg interface{}) ([]byte, error)
- func EncodeProto(t MessageType, pb proto.Message) ([]byte, error)
- func EncodeProtoInterface(t MessageType, message interface{}) ([]byte, error)
- func IsConsulServiceID(id ServiceID) bool
- func IsErrNoDCPath(err error) bool
- func IsErrNoLeader(err error) bool
- func IsErrQueryNotFound(err error) bool
- func IsErrRPCRateExceeded(err error) bool
- func IsErrServiceNotFound(err error) bool
- func IsHostname(address string) bool
- func IsIP(address string) bool
- func IsProtocolHTTPLike(protocol string) bool
- func IsSerfCheckID(id CheckID) bool
- func IsValidPartitionAndDatacenter(meta acl.EnterpriseMeta, datacenters []string, primaryDatacenter string) bool
- func IsZeroProtoTime(t *timestamp.Timestamp) bool
- func NewEnterpriseMetaInDefaultPartition(_ string) acl.EnterpriseMeta
- func NewEnterpriseMetaWithPartition(_, _ string) acl.EnterpriseMeta
- func NodeEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
- func NodeEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
- func NodeNameString(node string, _ *acl.EnterpriseMeta) string
- func NormalizeServiceSplitWeight(weight float32) float32
- func ParseDurationFunc() mapstructure.DecodeHookFunc
- func ParseServiceIDString(input string) (string, *acl.EnterpriseMeta)
- func ParseServiceNameString(input string) (string, *acl.EnterpriseMeta)
- func ReplicationEnterpriseMeta() *acl.EnterpriseMeta
- func SanitizeLegacyACLToken(token *ACLToken)
- func SanitizeLegacyACLTokenRules(rules string) string
- func SatisfiesMetaFilters(meta map[string]string, filters map[string]string) bool
- func ServiceGatewayVirtualIPTag(sn ServiceName) string
- func ServiceIDString(id string, _ *acl.EnterpriseMeta) string
- func TestMsgpackEncodeDecode(t *testing.T, in interface{}, requireEncoderEquality bool)
- func TimeFromProto(s *timestamp.Timestamp) time.Time
- func TimeToProto(s time.Time) *timestamp.Timestamp
- func Uint8ToString(bs []uint8) string
- func UniqueID(node string, compoundID string) string
- func ValidStatus(s string) bool
- func ValidateMetaTags(metaTags map[string]string) error
- func ValidateNodeMetadata(meta map[string]string, allowConsulPrefix bool) error
- func ValidateServiceMetadata(kind ServiceKind, meta map[string]string, allowConsulPrefix bool) error
- func ValidateWeights(weights *Weights) error
- func WildcardEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
- func WildcardEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
- type ACLAuthMethod
- type ACLAuthMethodBatchDeleteRequest
- type ACLAuthMethodBatchSetRequest
- type ACLAuthMethodDeleteRequest
- type ACLAuthMethodEnterpriseFields
- type ACLAuthMethodEnterpriseMeta
- type ACLAuthMethodGetRequest
- type ACLAuthMethodListRequest
- type ACLAuthMethodListResponse
- type ACLAuthMethodListStub
- type ACLAuthMethodListStubs
- type ACLAuthMethodResponse
- type ACLAuthMethodSetRequest
- type ACLAuthMethods
- type ACLAuthorizationRequest
- type ACLAuthorizationResponse
- type ACLBindingRule
- type ACLBindingRuleBatchDeleteRequest
- type ACLBindingRuleBatchSetRequest
- type ACLBindingRuleDeleteRequest
- type ACLBindingRuleGetRequest
- type ACLBindingRuleListRequest
- type ACLBindingRuleListResponse
- type ACLBindingRuleResponse
- type ACLBindingRuleSetRequest
- type ACLBindingRules
- type ACLCaches
- func (c *ACLCaches) GetAuthorizer(id string) *AuthorizerCacheEntry
- func (c *ACLCaches) GetIdentity(id string) *IdentityCacheEntry
- func (c *ACLCaches) GetIdentityWithSecretToken(secretToken string) *IdentityCacheEntry
- func (c *ACLCaches) GetParsedPolicy(id string) *ParsedPolicyCacheEntry
- func (c *ACLCaches) GetPolicy(policyID string) *PolicyCacheEntry
- func (c *ACLCaches) GetRole(roleID string) *RoleCacheEntry
- func (c *ACLCaches) Purge()
- func (c *ACLCaches) PutAuthorizer(id string, authorizer acl.Authorizer)
- func (c *ACLCaches) PutIdentity(id string, ident ACLIdentity)
- func (c *ACLCaches) PutIdentityWithSecretToken(secretToken string, identity ACLIdentity)
- func (c *ACLCaches) PutParsedPolicy(id string, policy *acl.Policy)
- func (c *ACLCaches) PutPolicy(policyId string, policy *ACLPolicy)
- func (c *ACLCaches) PutRole(roleID string, role *ACLRole)
- func (c *ACLCaches) RemoveIdentity(id string)
- func (c *ACLCaches) RemoveIdentityWithSecretToken(secretToken string)
- func (c *ACLCaches) RemovePolicy(policyID string)
- func (c *ACLCaches) RemoveRole(roleID string)
- type ACLCachesConfig
- type ACLIdentity
- type ACLLoginParams
- type ACLLoginRequest
- type ACLLogoutRequest
- type ACLMode
- type ACLNodeIdentities
- type ACLNodeIdentity
- type ACLPolicies
- type ACLPolicy
- type ACLPolicyBatchDeleteRequest
- type ACLPolicyBatchGetRequest
- type ACLPolicyBatchResponse
- type ACLPolicyBatchSetRequest
- type ACLPolicyDeleteRequest
- type ACLPolicyGetRequest
- type ACLPolicyListRequest
- type ACLPolicyListResponse
- type ACLPolicyListStub
- type ACLPolicyListStubs
- type ACLPolicyResponse
- type ACLPolicySetRequest
- type ACLReplicationStatus
- type ACLReplicationType
- type ACLRole
- type ACLRoleBatchDeleteRequest
- type ACLRoleBatchGetRequest
- type ACLRoleBatchResponse
- type ACLRoleBatchSetRequest
- type ACLRoleDeleteRequest
- type ACLRoleGetRequest
- type ACLRoleListRequest
- type ACLRoleListResponse
- type ACLRolePolicyLink
- type ACLRoleResponse
- type ACLRoleSetRequest
- type ACLRoles
- type ACLServerIdentity
- func (i *ACLServerIdentity) EnterpriseMetadata() *acl.EnterpriseMeta
- func (i *ACLServerIdentity) ID() string
- func (i *ACLServerIdentity) IsExpired(asOf time.Time) bool
- func (i *ACLServerIdentity) IsLocal() bool
- func (i *ACLServerIdentity) NodeIdentityList() []*ACLNodeIdentity
- func (i *ACLServerIdentity) PolicyIDs() []string
- func (i *ACLServerIdentity) RoleIDs() []string
- func (i *ACLServerIdentity) SecretToken() string
- func (i *ACLServerIdentity) ServiceIdentityList() []*ACLServiceIdentity
- type ACLServiceIdentities
- type ACLServiceIdentity
- type ACLToken
- func (t *ACLToken) Clone() *ACLToken
- func (t *ACLToken) EnterpriseMetadata() *acl.EnterpriseMeta
- func (t *ACLToken) EstimateSize() int
- func (t *ACLToken) HasExpirationTime() bool
- func (t *ACLToken) ID() string
- func (t *ACLToken) IsExpired(asOf time.Time) bool
- func (t *ACLToken) IsLocal() bool
- func (t *ACLToken) NodeIdentityList() []*ACLNodeIdentity
- func (t *ACLToken) PolicyIDs() []string
- func (t *ACLToken) RoleIDs() []string
- func (t *ACLToken) SecretToken() string
- func (t *ACLToken) ServiceIdentityList() []*ACLServiceIdentity
- func (t *ACLToken) SetHash(force bool) []byte
- func (token *ACLToken) Stub() *ACLTokenListStub
- func (t *ACLToken) UnmarshalJSON(data []byte) (err error)
- type ACLTokenBatchDeleteRequest
- type ACLTokenBatchGetRequest
- type ACLTokenBatchResponse
- type ACLTokenBatchSetRequest
- type ACLTokenBootstrapRequest
- type ACLTokenDeleteRequest
- type ACLTokenExpanded
- type ACLTokenGetRequest
- type ACLTokenIDType
- type ACLTokenListRequest
- type ACLTokenListResponse
- type ACLTokenListStub
- type ACLTokenListStubs
- type ACLTokenPolicyLink
- type ACLTokenResponse
- type ACLTokenRoleLink
- type ACLTokenSetRequest
- type ACLTokens
- type AWSCAProviderConfig
- type AgentRecoveryTokenIdentity
- func (id *AgentRecoveryTokenIdentity) EnterpriseMetadata() *acl.EnterpriseMeta
- func (id *AgentRecoveryTokenIdentity) ID() string
- func (id *AgentRecoveryTokenIdentity) IsExpired(asOf time.Time) bool
- func (id *AgentRecoveryTokenIdentity) IsLocal() bool
- func (id *AgentRecoveryTokenIdentity) NodeIdentityList() []*ACLNodeIdentity
- func (id *AgentRecoveryTokenIdentity) PolicyIDs() []string
- func (id *AgentRecoveryTokenIdentity) RoleIDs() []string
- func (id *AgentRecoveryTokenIdentity) SecretToken() string
- func (id *AgentRecoveryTokenIdentity) ServiceIdentityList() []*ACLServiceIdentity
- type AuthorizerCacheEntry
- type AutopilotConfig
- type AutopilotHealthReply
- type AutopilotServerHealth
- type AutopilotSetConfigRequest
- type CAConfiguration
- type CAConsulProviderState
- type CALeafOp
- type CALeafRequest
- type CAOp
- type CARequest
- type CARoot
- type CARoots
- type CASignRequest
- type CatalogContents
- type CatalogSummary
- type CheckDefinition
- type CheckID
- type CheckServiceNode
- type CheckServiceNodes
- func (csns CheckServiceNodes) DeepCopy() CheckServiceNodes
- func (nodes CheckServiceNodes) Filter(onlyPassing bool) CheckServiceNodes
- func (nodes CheckServiceNodes) FilterIgnore(onlyPassing bool, ignoreCheckIDs []types.CheckID) CheckServiceNodes
- func (nodes CheckServiceNodes) ShallowClone() CheckServiceNodes
- func (nodes CheckServiceNodes) Shuffle()
- func (nodes CheckServiceNodes) ToServiceDump() ServiceDump
- type CheckType
- func (o *CheckType) DeepCopy() *CheckType
- func (c *CheckType) Empty() bool
- func (c *CheckType) IsAlias() bool
- func (c *CheckType) IsDocker() bool
- func (c *CheckType) IsGRPC() bool
- func (c *CheckType) IsH2PING() bool
- func (c *CheckType) IsHTTP() bool
- func (c *CheckType) IsMonitor() bool
- func (c *CheckType) IsOSService() bool
- func (c *CheckType) IsScript() bool
- func (c *CheckType) IsTCP() bool
- func (c *CheckType) IsTTL() bool
- func (c *CheckType) IsUDP() bool
- func (c *CheckType) Type() string
- func (t *CheckType) UnmarshalJSON(data []byte) (err error)
- func (c *CheckType) Validate() error
- type CheckTypes
- type ChecksInStateRequest
- type CommonCAProviderConfig
- type CompiledDiscoveryChain
- type CompoundResponse
- type ConfigEntry
- type ConfigEntryDeleteResponse
- type ConfigEntryGraphError
- type ConfigEntryListAllRequest
- type ConfigEntryOp
- type ConfigEntryQuery
- type ConfigEntryRequest
- type ConfigEntryResponse
- type ConnectAuthorizeRequest
- type ConnectProxyConfig
- type ConsulCAProviderConfig
- type CookieConfig
- type Coordinate
- type CoordinateUpdateRequest
- type Coordinates
- type DCSpecificRequest
- type DatacenterIndexedCheckServiceNodes
- type DatacenterMap
- type DatacentersRequest
- type DeregisterRequest
- type DestinationConfig
- type DirEntries
- type DirEntry
- type DiscoveryChainRequest
- type DiscoveryChainResponse
- type DiscoveryFailover
- type DiscoveryGraphNode
- type DiscoveryResolver
- type DiscoveryRoute
- type DiscoverySplit
- type DiscoveryTarget
- func (t *DiscoveryTarget) GetEnterpriseMetadata() *acl.EnterpriseMeta
- func (t *DiscoveryTarget) MarshalJSON() ([]byte, error)
- func (t *DiscoveryTarget) ServiceID() ServiceID
- func (t *DiscoveryTarget) ServiceName() ServiceName
- func (t *DiscoveryTarget) String() string
- func (t *DiscoveryTarget) ToDiscoveryTargetOpts() DiscoveryTargetOpts
- func (t *DiscoveryTarget) UnmarshalJSON(data []byte) error
- type DiscoveryTargetOpts
- type EventFireRequest
- type EventFireResponse
- type ExpandedTokenInfo
- type ExportedDiscoveryChainInfo
- type ExportedService
- type ExportedServiceList
- type ExportedServicesConfigEntry
- func (e *ExportedServicesConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ExportedServicesConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ExportedServicesConfigEntry) Clone() *ExportedServicesConfigEntry
- func (e *ExportedServicesConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ExportedServicesConfigEntry) GetKind() string
- func (e *ExportedServicesConfigEntry) GetMeta() map[string]string
- func (e *ExportedServicesConfigEntry) GetName() string
- func (e *ExportedServicesConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ExportedServicesConfigEntry) MarshalJSON() ([]byte, error)
- func (e *ExportedServicesConfigEntry) Normalize() error
- func (e *ExportedServicesConfigEntry) ToMap() map[string]map[string][]string
- func (e *ExportedServicesConfigEntry) Validate() error
- type ExposeConfig
- type ExposePath
- type FederationState
- type FederationStateOp
- type FederationStateQuery
- type FederationStateRequest
- type FederationStateResponse
- type FederationStates
- type GatewayService
- type GatewayServiceKind
- type GatewayServiceTLSConfig
- type GatewayServices
- type GatewayTLSConfig
- type GatewayTLSSDSConfig
- type HTTPHeaderModifiers
- type HashPolicy
- type HealthCheck
- func (c *HealthCheck) CheckType() *CheckType
- func (c *HealthCheck) Clone() *HealthCheck
- func (hc *HealthCheck) CompoundCheckID() CheckID
- func (hc *HealthCheck) CompoundServiceID() ServiceID
- func (o *HealthCheck) DeepCopy() *HealthCheck
- func (hc *HealthCheck) FillAuthzContext(ctx *acl.AuthorizerContext)
- func (c *HealthCheck) IsSame(other *HealthCheck) bool
- func (hc *HealthCheck) NodeIdentity() Identity
- func (hc *HealthCheck) PeerOrEmpty() string
- func (_ *HealthCheck) Validate() error
- type HealthCheckDefinition
- type HealthChecks
- type HealthSummary
- type Identity
- type IdentityCacheEntry
- type IndexedCARoots
- type IndexedCheckServiceNodes
- type IndexedConfigEntries
- type IndexedCoordinate
- type IndexedCoordinates
- type IndexedDirEntries
- type IndexedExportedServiceList
- type IndexedFederationStates
- type IndexedGatewayServices
- type IndexedGenericConfigEntries
- type IndexedHealthChecks
- type IndexedIntentionMatches
- type IndexedIntentions
- type IndexedKeyList
- type IndexedNodeDump
- type IndexedNodeServiceList
- type IndexedNodeServices
- type IndexedNodes
- type IndexedNodesWithGateways
- type IndexedPeeredServiceList
- type IndexedPreparedQueries
- type IndexedServiceDump
- type IndexedServiceList
- type IndexedServiceNodes
- type IndexedServiceTopology
- type IndexedServices
- type IndexedSessions
- type IngressGatewayConfigEntry
- func (e *IngressGatewayConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *IngressGatewayConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *IngressGatewayConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *IngressGatewayConfigEntry) GetKind() string
- func (e *IngressGatewayConfigEntry) GetMeta() map[string]string
- func (e *IngressGatewayConfigEntry) GetName() string
- func (e *IngressGatewayConfigEntry) GetRaftIndex() *RaftIndex
- func (e *IngressGatewayConfigEntry) ListRelatedServices() []ServiceID
- func (e *IngressGatewayConfigEntry) Normalize() error
- func (e *IngressGatewayConfigEntry) Validate() error
- type IngressListener
- type IngressService
- type IngressServiceConfig
- type Intention
- func (ixn *Intention) CanRead(authz acl.Authorizer) bool
- func (ixn *Intention) CanWrite(authz acl.Authorizer) bool
- func (t *Intention) Clone() *Intention
- func (o *Intention) DeepCopy() *Intention
- func (ixn *Intention) DestinationEnterpriseMeta() *acl.EnterpriseMeta
- func (x *Intention) DestinationServiceName() ServiceName
- func (_ *Intention) FillAuthzContext(_ *acl.AuthorizerContext, _ bool)
- func (ixn *Intention) FillPartitionAndNamespace(entMeta *acl.EnterpriseMeta, fillDefault bool)
- func (t *Intention) HasWildcardDestination() bool
- func (t *Intention) HasWildcardSource() bool
- func (x *Intention) LegacyEstimateSize() intdeprecated
- func (t *Intention) MarshalJSON() ([]byte, error)
- func (x *Intention) SetHash()deprecated
- func (ixn *Intention) SourceEnterpriseMeta() *acl.EnterpriseMeta
- func (x *Intention) SourceServiceName() ServiceName
- func (x *Intention) String() string
- func (x *Intention) ToConfigEntry(legacy bool) *ServiceIntentionsConfigEntry
- func (t *Intention) ToExact() *IntentionQueryExact
- func (x *Intention) ToSourceIntention(legacy bool) *SourceIntention
- func (t *Intention) UnmarshalJSON(data []byte) (err error)
- func (x *Intention) UpdatePrecedence()deprecated
- func (x *Intention) Validate() errordeprecated
- type IntentionAction
- type IntentionDecisionSummary
- type IntentionHTTPHeaderPermission
- type IntentionHTTPPermission
- type IntentionListRequest
- type IntentionMatchEntry
- type IntentionMatchType
- type IntentionMutation
- type IntentionOp
- type IntentionPermission
- type IntentionPrecedenceSorter
- type IntentionQueryCheck
- type IntentionQueryCheckResponse
- type IntentionQueryExact
- type IntentionQueryMatch
- type IntentionQueryRequest
- type IntentionRequest
- type IntentionSourceType
- type IntentionTargetType
- type Intentions
- type IssuedCert
- type KVSRequest
- type KeyListRequest
- type KeyRequest
- type KeyringOp
- type KeyringRequest
- type KeyringResponse
- type KeyringResponses
- type LeastRequestConfig
- type LinkedService
- type LoadBalancer
- type MeshConfigEntry
- func (e *MeshConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *MeshConfigEntry) CanWrite(authz acl.Authorizer) error
- func (o *MeshConfigEntry) DeepCopy() *MeshConfigEntry
- func (e *MeshConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *MeshConfigEntry) GetKind() string
- func (e *MeshConfigEntry) GetMeta() map[string]string
- func (e *MeshConfigEntry) GetName() string
- func (e *MeshConfigEntry) GetRaftIndex() *RaftIndex
- func (e *MeshConfigEntry) MarshalJSON() ([]byte, error)
- func (e *MeshConfigEntry) Normalize() error
- func (e *MeshConfigEntry) PeerThroughMeshGateways() bool
- func (e *MeshConfigEntry) Validate() error
- type MeshDirectionalTLSConfig
- type MeshGatewayConfig
- type MeshGatewayMode
- type MeshHTTPConfig
- type MeshTLSConfig
- type MessageType
- type NetworkSegment
- type Node
- func (n *Node) BestAddress(wan bool) string
- func (o *Node) DeepCopy() *Node
- func (n *Node) FillAuthzContext(ctx *acl.AuthorizerContext)
- func (n *Node) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (n *Node) IsSame(other *Node) bool
- func (n *Node) OverridePartition(_ string)
- func (n *Node) PartitionOrDefault() string
- func (n *Node) PeerOrEmpty() string
- func (n *Node) ToRegisterRequest() RegisterRequest
- type NodeDump
- type NodeInfo
- type NodeService
- func TestNodeService(t testing.T) *NodeService
- func TestNodeServiceExpose(t testing.T) *NodeService
- func TestNodeServiceIngressGateway(t testing.T, address string) *NodeService
- func TestNodeServiceMeshGateway(t testing.T) *NodeService
- func TestNodeServiceMeshGatewayWithAddrs(t testing.T, address string, port int, lanAddr, wanAddr ServiceAddress) *NodeService
- func TestNodeServiceProxy(t testing.T) *NodeService
- func TestNodeServiceProxyInPartition(t testing.T, partition string) *NodeService
- func TestNodeServiceSidecar(t testing.T) *NodeService
- func TestNodeServiceTerminatingGateway(t testing.T, address string) *NodeService
- func TestNodeServiceWithName(t testing.T, name string) *NodeService
- func (ns *NodeService) BestAddress(wan bool) (string, int)
- func (ns *NodeService) CompoundServiceID() ServiceID
- func (ns *NodeService) CompoundServiceName() ServiceName
- func (o *NodeService) DeepCopy() *NodeService
- func (ns *NodeService) FillAuthzContext(ctx *acl.AuthorizerContext)
- func (s *NodeService) IsGateway() bool
- func (s *NodeService) IsSame(other *NodeService) bool
- func (s *NodeService) IsSidecarProxy() bool
- func (s *NodeService) ToServiceNode(node string) *ServiceNode
- func (s *NodeService) Validate() error
- func (s *NodeService) ValidateForAgent() error
- type NodeServiceList
- type NodeServices
- type NodeSpecificRequest
- type Nodes
- type OpaqueUpstreamConfig
- type OpaqueUpstreamConfigs
- type ParsedPolicyCacheEntry
- type PartitionSpecificRequest
- type PassiveHealthCheck
- type PeeredServiceName
- type PeeringMeshConfig
- type PeeringServiceMeta
- type PeeringToken
- type PeeringTokenRemote
- type PolicyCacheEntry
- type PreparedQueries
- type PreparedQuery
- type PreparedQueryExecuteRemoteRequest
- type PreparedQueryExecuteRequest
- type PreparedQueryExecuteResponse
- type PreparedQueryExplainResponse
- type PreparedQueryOp
- type PreparedQueryRequest
- type PreparedQuerySpecificRequest
- type ProxyConfigEntry
- func (e *ProxyConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ProxyConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ProxyConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ProxyConfigEntry) GetKind() string
- func (e *ProxyConfigEntry) GetMeta() map[string]string
- func (e *ProxyConfigEntry) GetName() string
- func (e *ProxyConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ProxyConfigEntry) MarshalBinary() (data []byte, err error)
- func (e *ProxyConfigEntry) Normalize() error
- func (e *ProxyConfigEntry) UnmarshalBinary(data []byte) error
- func (e *ProxyConfigEntry) Validate() error
- type ProxyMode
- type QueryBackend
- type QueryDNSOptions
- type QueryFailoverOptions
- type QueryFailoverTarget
- type QueryMeta
- func (q *QueryMeta) GetBackend() QueryBackend
- func (m *QueryMeta) GetConsistencyLevel() string
- func (m *QueryMeta) GetIndex() uint64
- func (m *QueryMeta) GetKnownLeader() bool
- func (m *QueryMeta) GetLastContact() (time.Duration, error)
- func (q *QueryMeta) GetResultsFilteredByACLs() bool
- func (q *QueryMeta) SetConsistencyLevel(consistencyLevel string)
- func (q *QueryMeta) SetIndex(index uint64)
- func (q *QueryMeta) SetKnownLeader(knownLeader bool)
- func (q *QueryMeta) SetLastContact(lastContact time.Duration)
- func (q *QueryMeta) SetResultsFilteredByACLs(v bool)
- type QueryOptions
- func (q QueryOptions) AllowStaleRead() bool
- func (q QueryOptions) BlockingTimeout(maxQueryTime, defaultQueryTime time.Duration) time.Duration
- func (q QueryOptions) ConsistencyLevel() string
- func (m *QueryOptions) GetAllowStale() bool
- func (m *QueryOptions) GetFilter() string
- func (m *QueryOptions) GetMaxAge() (time.Duration, error)
- func (m *QueryOptions) GetMaxQueryTime() (time.Duration, error)
- func (m *QueryOptions) GetMaxStaleDuration() (time.Duration, error)
- func (m *QueryOptions) GetMinQueryIndex() uint64
- func (m *QueryOptions) GetMustRevalidate() bool
- func (m *QueryOptions) GetRequireConsistent() bool
- func (m *QueryOptions) GetStaleIfError() (time.Duration, error)
- func (m *QueryOptions) GetToken() string
- func (m *QueryOptions) GetUseCache() bool
- func (q QueryOptions) HasTimedOut(start time.Time, rpcHoldTimeout, maxQueryTime, defaultQueryTime time.Duration) (bool, error)
- func (q QueryOptions) IsRead() bool
- func (q *QueryOptions) SetAllowStale(allowStale bool)
- func (q *QueryOptions) SetFilter(filter string)
- func (q *QueryOptions) SetMaxAge(maxAge time.Duration)
- func (q *QueryOptions) SetMaxQueryTime(maxQueryTime time.Duration)
- func (q *QueryOptions) SetMaxStaleDuration(maxStaleDuration time.Duration)
- func (q *QueryOptions) SetMinQueryIndex(minQueryIndex uint64)
- func (q *QueryOptions) SetMustRevalidate(mustRevalidate bool)
- func (q *QueryOptions) SetRequireConsistent(requireConsistent bool)
- func (q *QueryOptions) SetStaleIfError(staleIfError time.Duration)
- func (q *QueryOptions) SetToken(token string)
- func (q *QueryOptions) SetTokenSecret(s string)
- func (q *QueryOptions) SetUseCache(useCache bool)
- func (q QueryOptions) TokenSecret() string
- type QuerySource
- type QueryTemplateOptions
- type RPCInfo
- type RaftConfigurationResponse
- type RaftIndex
- type RaftRemovePeerRequest
- type RaftServer
- type RaftStats
- type RegisterRequest
- type RemoteACLAuthorizationRequest
- type RingHashConfig
- type RoleCacheEntry
- type ServiceAddress
- type ServiceCheck
- type ServiceConfigEntry
- func (e *ServiceConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ServiceConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ServiceConfigEntry) Clone() *ServiceConfigEntry
- func (o *ServiceConfigEntry) DeepCopy() *ServiceConfigEntry
- func (e *ServiceConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ServiceConfigEntry) GetKind() string
- func (e *ServiceConfigEntry) GetMeta() map[string]string
- func (e *ServiceConfigEntry) GetName() string
- func (e *ServiceConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ServiceConfigEntry) Normalize() error
- func (e *ServiceConfigEntry) Validate() error
- type ServiceConfigRequest
- type ServiceConfigResponse
- type ServiceConnect
- type ServiceConsumer
- type ServiceDefinition
- type ServiceDump
- type ServiceDumpRequest
- type ServiceID
- type ServiceInfo
- type ServiceIntentionsConfigEntry
- func (e *ServiceIntentionsConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ServiceIntentionsConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ServiceIntentionsConfigEntry) Clone() *ServiceIntentionsConfigEntry
- func (e *ServiceIntentionsConfigEntry) DeleteSourceByLegacyID(legacyID string) bool
- func (e *ServiceIntentionsConfigEntry) DeleteSourceByName(sn ServiceName) bool
- func (e *ServiceIntentionsConfigEntry) DestinationServiceName() ServiceName
- func (e *ServiceIntentionsConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ServiceIntentionsConfigEntry) GetKind() string
- func (e *ServiceIntentionsConfigEntry) GetMeta() map[string]string
- func (e *ServiceIntentionsConfigEntry) GetName() string
- func (e *ServiceIntentionsConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ServiceIntentionsConfigEntry) HasAnyPermissions() bool
- func (e *ServiceIntentionsConfigEntry) HasWildcardDestination() bool
- func (e *ServiceIntentionsConfigEntry) LegacyIDFieldsAreAllEmpty() bool
- func (e *ServiceIntentionsConfigEntry) LegacyIDFieldsAreAllSet() bool
- func (e *ServiceIntentionsConfigEntry) LegacyNormalize() error
- func (e *ServiceIntentionsConfigEntry) LegacyValidate() error
- func (e *ServiceIntentionsConfigEntry) Normalize() error
- func (e *ServiceIntentionsConfigEntry) ToIntention(src *SourceIntention) *Intention
- func (e *ServiceIntentionsConfigEntry) ToIntentions() Intentions
- func (e *ServiceIntentionsConfigEntry) UpdateOver(rawPrev ConfigEntry) error
- func (e *ServiceIntentionsConfigEntry) UpdateSourceByLegacyID(legacyID string, update *SourceIntention) bool
- func (e *ServiceIntentionsConfigEntry) UpsertSourceByName(sn ServiceName, upsert *SourceIntention)
- func (e *ServiceIntentionsConfigEntry) Validate() error
- type ServiceKind
- type ServiceList
- type ServiceName
- type ServiceNode
- func (sn *ServiceNode) CompoundServiceID() ServiceID
- func (sn *ServiceNode) CompoundServiceName() ServiceName
- func (s *ServiceNode) FillAuthzContext(ctx *acl.AuthorizerContext)
- func (s *ServiceNode) IsSameService(other *ServiceNode) bool
- func (s *ServiceNode) NodeIdentity() Identity
- func (s *ServiceNode) PartialClone() *ServiceNode
- func (s *ServiceNode) PeerOrEmpty() string
- func (s *ServiceNode) ToNodeService() *NodeService
- type ServiceNodes
- type ServiceQuery
- type ServiceResolverConfigEntry
- func (e *ServiceResolverConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ServiceResolverConfigEntry) CanWrite(authz acl.Authorizer) error
- func (o *ServiceResolverConfigEntry) DeepCopy() *ServiceResolverConfigEntry
- func (e *ServiceResolverConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ServiceResolverConfigEntry) GetKind() string
- func (e *ServiceResolverConfigEntry) GetMeta() map[string]string
- func (e *ServiceResolverConfigEntry) GetName() string
- func (e *ServiceResolverConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ServiceResolverConfigEntry) IsDefault() bool
- func (e *ServiceResolverConfigEntry) ListRelatedServices() []ServiceID
- func (e *ServiceResolverConfigEntry) MarshalJSON() ([]byte, error)
- func (e *ServiceResolverConfigEntry) Normalize() error
- func (e *ServiceResolverConfigEntry) SubsetExists(name string) bool
- func (e *ServiceResolverConfigEntry) UnmarshalJSON(data []byte) error
- func (e *ServiceResolverConfigEntry) Validate() error
- type ServiceResolverFailover
- func (o *ServiceResolverFailover) DeepCopy() *ServiceResolverFailover
- func (failover *ServiceResolverFailover) GetEnterpriseMeta(_ *acl.EnterpriseMeta) *acl.EnterpriseMeta
- func (t *ServiceResolverFailover) ToDiscoveryTargetOpts() DiscoveryTargetOpts
- func (failover *ServiceResolverFailover) ValidateEnterprise() error
- type ServiceResolverFailoverTarget
- type ServiceResolverRedirect
- type ServiceResolverSubset
- type ServiceRoute
- type ServiceRouteDestination
- func (o *ServiceRouteDestination) DeepCopy() *ServiceRouteDestination
- func (dest *ServiceRouteDestination) GetEnterpriseMeta(_ *acl.EnterpriseMeta) *acl.EnterpriseMeta
- func (d *ServiceRouteDestination) HasRetryFeatures() bool
- func (e *ServiceRouteDestination) MarshalJSON() ([]byte, error)
- func (e *ServiceRouteDestination) UnmarshalJSON(data []byte) error
- type ServiceRouteHTTPMatch
- type ServiceRouteHTTPMatchHeader
- type ServiceRouteHTTPMatchQueryParam
- type ServiceRouteMatch
- type ServiceRouterConfigEntry
- func (e *ServiceRouterConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ServiceRouterConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ServiceRouterConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ServiceRouterConfigEntry) GetKind() string
- func (e *ServiceRouterConfigEntry) GetMeta() map[string]string
- func (e *ServiceRouterConfigEntry) GetName() string
- func (e *ServiceRouterConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ServiceRouterConfigEntry) ListRelatedServices() []ServiceID
- func (e *ServiceRouterConfigEntry) Normalize() error
- func (e *ServiceRouterConfigEntry) Validate() error
- type ServiceSpecificRequest
- type ServiceSplit
- type ServiceSplitterConfigEntry
- func (e *ServiceSplitterConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *ServiceSplitterConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *ServiceSplitterConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *ServiceSplitterConfigEntry) GetKind() string
- func (e *ServiceSplitterConfigEntry) GetMeta() map[string]string
- func (e *ServiceSplitterConfigEntry) GetName() string
- func (e *ServiceSplitterConfigEntry) GetRaftIndex() *RaftIndex
- func (e *ServiceSplitterConfigEntry) ListRelatedServices() []ServiceID
- func (e *ServiceSplitterConfigEntry) Normalize() error
- func (e *ServiceSplitterConfigEntry) Validate() error
- type ServiceTopology
- type Services
- type Session
- type SessionBehavior
- type SessionOp
- type SessionRequest
- type SessionSpecificRequest
- type Sessions
- type SignedResponse
- type SnapshotOp
- type SnapshotReplyFn
- type SnapshotRequest
- type SnapshotResponse
- type SourceIntention
- type SystemMetadataEntry
- type SystemMetadataOp
- type SystemMetadataRequest
- type TerminatingGatewayConfigEntry
- func (e *TerminatingGatewayConfigEntry) CanRead(authz acl.Authorizer) error
- func (e *TerminatingGatewayConfigEntry) CanWrite(authz acl.Authorizer) error
- func (e *TerminatingGatewayConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (e *TerminatingGatewayConfigEntry) GetKind() string
- func (e *TerminatingGatewayConfigEntry) GetMeta() map[string]string
- func (e *TerminatingGatewayConfigEntry) GetName() string
- func (e *TerminatingGatewayConfigEntry) GetRaftIndex() *RaftIndex
- func (e *TerminatingGatewayConfigEntry) Normalize() error
- func (e *TerminatingGatewayConfigEntry) Validate() error
- func (e *TerminatingGatewayConfigEntry) Warnings() []string
- type TombstoneOp
- type TombstoneRequest
- type TransparentProxyConfig
- type TransparentProxyMeshConfig
- type TxnCheckOp
- type TxnCheckResult
- type TxnError
- type TxnErrors
- type TxnIntentionOpdeprecated
- type TxnKVOp
- type TxnKVResult
- type TxnNodeOp
- type TxnNodeResult
- type TxnOp
- type TxnOps
- type TxnReadRequest
- type TxnReadResponse
- type TxnRequest
- type TxnResponse
- type TxnResult
- type TxnResults
- type TxnServiceOp
- type TxnServiceResult
- type TxnSessionOp
- type UpdatableConfigEntry
- type Upstream
- func (o *Upstream) DeepCopy() *Upstream
- func (us *Upstream) DestinationID() ServiceID
- func (us *Upstream) GetEnterpriseMeta() *acl.EnterpriseMeta
- func (u *Upstream) HasLocalPortOrSocket() bool
- func (us *Upstream) String() string
- func (u *Upstream) ToAPI() api.Upstream
- func (u *Upstream) ToKey() UpstreamKey
- func (t *Upstream) UnmarshalJSON(data []byte) (err error)
- func (u *Upstream) UpstreamAddressToString() string
- func (u *Upstream) UpstreamIsUnixSocket() bool
- func (u *Upstream) Validate() error
- type UpstreamConfig
- func (cfg UpstreamConfig) Clone() UpstreamConfig
- func (cfg UpstreamConfig) MergeInto(dst map[string]interface{})
- func (cfg *UpstreamConfig) NormalizeWithName(entMeta *acl.EnterpriseMeta) error
- func (cfg *UpstreamConfig) NormalizeWithoutName() error
- func (cfg *UpstreamConfig) ServiceID() ServiceID
- func (cfg *UpstreamConfig) ServiceName() ServiceName
- func (cfg UpstreamConfig) ValidateWithName() error
- func (cfg UpstreamConfig) ValidateWithoutName() error
- type UpstreamConfiguration
- type UpstreamKey
- type UpstreamLimits
- type Upstreams
- type VaultAuthMethod
- type VaultCAProviderConfig
- type WarningConfigEntry
- type Weights
- type WriteRequest
Constants ¶
const ( // This policy gives unlimited access to everything. Users // may rename if desired but cannot delete or modify the rules. ACLPolicyGlobalManagementID = "00000000-0000-0000-0000-000000000001" ACLPolicyGlobalManagement = ` acl = "write" agent_prefix "" { policy = "write" } event_prefix "" { policy = "write" } key_prefix "" { policy = "write" } keyring = "write" node_prefix "" { policy = "write" } operator = "write" mesh = "write" peering = "write" query_prefix "" { policy = "write" } service_prefix "" { policy = "write" intentions = "write" } session_prefix "" { policy = "write" }` + EnterpriseACLPolicyGlobalManagement // This is the policy ID for anonymous access. This is configurable by the // user. ACLTokenAnonymousID = "00000000-0000-0000-0000-000000000002" ACLReservedPrefix = "00000000-0000-0000-0000-0000000000" )
const ( // BindingRuleBindTypeService is the binding rule bind type that // assigns a Service Identity to the token that is created using the value // of the computed BindName as the ServiceName like: // // &ACLToken{ // ...other fields... // ServiceIdentities: []*ACLServiceIdentity{ // &ACLServiceIdentity{ // ServiceName: "<computed BindName>", // }, // }, // } BindingRuleBindTypeService = "service" // BindingRuleBindTypeRole is the binding rule bind type that only allows // the binding rule to function if a role with the given name (BindName) // exists at login-time. If it does the token that is created is directly // linked to that role like: // // &ACLToken{ // ...other fields... // Roles: []ACLTokenRoleLink{ // { Name: "<computed BindName>" } // } // } // // If it does not exist at login-time the rule is ignored. BindingRuleBindTypeRole = "role" // BindingRuleBindTypeNode is the binding rule bind type that assigns // a Node Identity to the token that is created using the value of // the computed BindName as the NodeName like: // // &ACLToken{ // ...other fields... // NodeIdentities: []*ACLNodeIdentity{ // &ACLNodeIdentity{ // NodeName: "<computed BindName>", // Datacenter: "<local datacenter of the binding rule>" // } // } // } BindingRuleBindTypeNode = "node" )
const ( SerfCheckID types.CheckID = "serfHealth" SerfCheckName = "Serf Health Status" SerfCheckAliveOutput = "Agent alive and reachable" SerfCheckFailedOutput = "Agent not live or unreachable" )
These are used to manage the built-in "serfHealth" check that's attached to every node in the catalog.
const ( // These are used to manage the "consul" service that's attached to every // Consul server node in the catalog. ConsulServiceID = "consul" ConsulServiceName = "consul" )
const ( ServiceDefaults string = "service-defaults" ProxyDefaults string = "proxy-defaults" ServiceRouter string = "service-router" ServiceSplitter string = "service-splitter" ServiceResolver string = "service-resolver" IngressGateway string = "ingress-gateway" TerminatingGateway string = "terminating-gateway" ServiceIntentions string = "service-intentions" MeshConfig string = "mesh" ExportedServices string = "exported-services" ProxyConfigGlobal string = "global" MeshConfigMesh string = "mesh" DefaultServiceProtocol = "tcp" ConnectionExactBalance = "exact_balance" )
const ( // Names of Envoy's LB policies LBPolicyMaglev = "maglev" LBPolicyRingHash = "ring_hash" LBPolicyRandom = "random" LBPolicyLeastRequest = "least_request" LBPolicyRoundRobin = "round_robin" // Names of Envoy's LB policies HashPolicyCookie = "cookie" HashPolicyHeader = "header" HashPolicyQueryParam = "query_parameter" )
const ( DefaultLeafCertTTL = "72h" DefaultIntermediateCertTTL = "8760h" // ~ 1 year = 365 * 24h DefaultRootCertTTL = "87600h" // ~ 10 years = 365 * 24h * 10 )
const ( ConsulCAProvider = "consul" VaultCAProvider = "vault" AWSCAProvider = "aws-pca" )
const ( // TODO (freddy) Should we have a TopologySourceMixed when there is a mix of proxy reg and tproxy? // Currently we label as proxy-registration if ANY instance has the explicit upstream definition. // TopologySourceRegistration is used to label upstreams or downstreams from explicit upstream definitions. TopologySourceRegistration = "proxy-registration" // TopologySourceSpecificIntention is used to label upstreams or downstreams from specific intentions. TopologySourceSpecificIntention = "specific-intention" // TopologySourceWildcardIntention is used to label upstreams or downstreams from wildcard intentions. TopologySourceWildcardIntention = "wildcard-intention" // TopologySourceDefaultAllow is used to label upstreams or downstreams from default allow ACL policy. TopologySourceDefaultAllow = "default-allow" // TopologySourceRoutingConfig is used to label upstreams that are not backed by a service instance // and are simply used for routing configurations. TopologySourceRoutingConfig = "routing-config" )
const ( UpstreamDestTypeService = "service" UpstreamDestTypePreparedQuery = "prepared_query" )
const ( DiscoveryGraphNodeTypeRouter = "router" DiscoveryGraphNodeTypeSplitter = "splitter" DiscoveryGraphNodeTypeResolver = "resolver" )
const ( IntentionDataOriginLegacy = "legacy" IntentionDataOriginConfigEntries = "config" )
const ( RegisterRequestType MessageType = 0 DeregisterRequestType = 1 KVSRequestType = 2 SessionRequestType = 3 DeprecatedACLRequestType = 4 // Removed with the legacy ACL system TombstoneRequestType = 5 CoordinateBatchUpdateType = 6 PreparedQueryRequestType = 7 TxnRequestType = 8 AutopilotRequestType = 9 AreaRequestType = 10 ACLBootstrapRequestType = 11 IntentionRequestType = 12 ConnectCARequestType = 13 ConnectCAProviderStateType = 14 ConnectCAConfigType = 15 // FSM snapshots only. IndexRequestType = 16 // FSM snapshots only. ACLTokenSetRequestType = 17 ACLTokenDeleteRequestType = 18 ACLPolicySetRequestType = 19 ACLPolicyDeleteRequestType = 20 ConnectCALeafRequestType = 21 ConfigEntryRequestType = 22 ACLRoleSetRequestType = 23 ACLRoleDeleteRequestType = 24 ACLBindingRuleSetRequestType = 25 ACLBindingRuleDeleteRequestType = 26 ACLAuthMethodSetRequestType = 27 ACLAuthMethodDeleteRequestType = 28 ChunkingStateType = 29 FederationStateRequestType = 30 SystemMetadataRequestType = 31 ServiceVirtualIPRequestType = 32 FreeVirtualIPRequestType = 33 KindServiceNamesType = 34 PeeringWriteType = 35 PeeringDeleteType = 36 PeeringTerminateByIDType = 37 PeeringTrustBundleWriteType = 38 PeeringTrustBundleDeleteType = 39 PeeringSecretsWriteType = 40 )
These are serialized between Consul servers and stored in Consul snapshots, so entries must only ever be added.
const ( // LocalPeerKeyword is a reserved keyword used for indexing in the state store for objects in the local peer. LocalPeerKeyword = "~" // DefaultPeerKeyword is the PeerName to use to refer to the local // cluster's own data, rather than replicated peered data. // // This may internally be converted into LocalPeerKeyword, but external // uses should not use that symbol directly in most cases. DefaultPeerKeyword = "" // TODOPeerKeyword is the peer keyword to use if you aren't sure if the // usage SHOULD be peering-aware yet. // // TODO(peering): remove this in the future TODOPeerKeyword = "" )
const ( // IgnoreUnknownTypeFlag is set along with a MessageType // to indicate that the message type can be safely ignored // if it is not recognized. This is for future proofing, so // that new commands can be added in a way that won't cause // old servers to crash when the FSM attempts to process them. IgnoreUnknownTypeFlag MessageType = 128 // NodeMaint is the special key set by a node in maintenance mode. NodeMaint = "_node_maintenance" // ServiceMaintPrefix is the prefix for a service in maintenance mode. ServiceMaintPrefix = "_service_maintenance:" // The meta key prefix reserved for Consul's internal use MetaKeyReservedPrefix = "consul-" // MetaSegmentKey is the node metadata key used to store the node's network segment MetaSegmentKey = "consul-network-segment" // MetaWANFederationKey is the mesh gateway metadata key that indicates a // mesh gateway is usable for wan federation. MetaWANFederationKey = "consul-wan-federation" // MetaExternalSource is the metadata key used when a resource is managed by a source outside Consul like nomad/k8s MetaExternalSource = "external-source" // TaggedAddressVirtualIP is the key used to store tagged virtual IPs generated by Consul. TaggedAddressVirtualIP = "consul-virtual" // MaxLockDelay provides a maximum LockDelay value for // a session. Any value above this will not be respected. MaxLockDelay = 60 * time.Second // JitterFraction is a the limit to the amount of jitter we apply // to a user specified MaxQueryTime. We divide the specified time by // the fraction. So 16 == 6.25% limit of jitter. This same fraction // is applied to the RPCHoldTimeout JitterFraction = 16 // WildcardSpecifier is the string which should be used for specifying a wildcard // The exact semantics of the wildcard is left up to the code where its used. WildcardSpecifier = "*" )
const ( TaggedAddressWAN = "wan" TaggedAddressWANIPv4 = "wan_ipv4" TaggedAddressWANIPv6 = "wan_ipv6" TaggedAddressLAN = "lan" TaggedAddressLANIPv4 = "lan_ipv4" TaggedAddressLANIPv6 = "lan_ipv6" )
const ( SessionTTLMax = 24 * time.Hour SessionTTLMultiplier = 2 )
const ( KeyringList KeyringOp = "list" KeyringInstall = "install" KeyringUse = "use" KeyringRemove = "remove" )
const ( SystemMetadataIntentionFormatKey = "intention-format" SystemMetadataIntentionFormatConfigValue = "config-entry" SystemMetadataIntentionFormatLegacyValue = "legacy" SystemMetadataVirtualIPsEnabled = "virtual-ips" SystemMetadataTermGatewayVirtualIPsEnabled = "virtual-ips-term-gateway" )
const (
EnterpriseACLPolicyGlobalManagement = ""
)
const ( // IntentionDefaultNamespace is the default namespace value. // NOTE(mitchellh): This is only meant to be a temporary constant. // When namespaces are introduced, we should delete this constant and // fix up all the places where this was used with the proper namespace // value. IntentionDefaultNamespace = "default" )
const ( // QueryTemplateTypeNamePrefixMatch uses the Name field of the query as // a prefix to select the template. QueryTemplateTypeNamePrefixMatch = "name_prefix_match" )
const ServerManagementTokenAccessorID = "server-management-token"
Variables ¶
var ( ErrNoLeader = errors.New(errNoLeader) ErrNoDCPath = errors.New(errNoDCPath) ErrNoServers = errors.New(errNoServers) ErrNotReadyForConsistentReads = errors.New(errNotReadyForConsistentReads) ErrSegmentsNotSupported = errors.New(errSegmentsNotSupported) ErrRPCRateExceeded = errors.New(errRPCRateExceeded) ErrDCNotAvailable = errors.New(errDCNotAvailable) ErrQueryNotFound = errors.New(errQueryNotFound) ErrLeaderNotTracked = errors.New(errLeaderNotTracked) )
var ACLBootstrapInvalidResetIndexErr = errors.New("Invalid ACL bootstrap reset index")
ACLBootstrapInvalidResetIndexErr is returned when bootstrap is requested with a non-zero reset index but the index doesn't match the bootstrap index
var ACLBootstrapNotAllowedErr = errors.New("ACL bootstrap no longer allowed")
ACLBootstrapNotAllowedErr is returned once we know that a bootstrap can no longer be done since the cluster was bootstrapped
var AllConfigEntryKinds = []string{ ServiceDefaults, ProxyDefaults, ServiceRouter, ServiceSplitter, ServiceResolver, IngressGateway, TerminatingGateway, ServiceIntentions, MeshConfig, ExportedServices, }
var IntermediateCertRenewInterval = time.Hour
intermediateCertRenewInterval is the interval at which the expiration of the intermediate cert is checked and renewed if necessary.
var MaxLeafCertTTL = 365 * 24 * time.Hour
var MinLeafCertTTL = time.Hour
var MsgpackHandle = &codec.MsgpackHandle{ RawToString: true, BasicHandle: codec.BasicHandle{ DecodeOptions: codec.DecodeOptions{ MapType: reflect.TypeOf(map[string]interface{}{}), }, }, }
MsgpackHandle is a shared handle for encoding/decoding msgpack payloads
var (
NodeMaintCheckID = NewCheckID(NodeMaint, nil)
)
var TestingOldPre1dot7MsgpackHandle = &codec.MsgpackHandle{}
TestingOldPre1dot7MsgpackHandle is the common configuration pre-1.7.0
Functions ¶
func ACLIDReserved ¶ added in v1.4.0
func DefaultEnterpriseMetaInDefaultPartition ¶ added in v1.11.0
func DefaultEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
TODO(partition): stop using this
func DefaultEnterpriseMetaInPartition ¶ added in v1.11.0
func DefaultEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
DefaultEnterpriseMetaInPartition stub
func DurationFromProto ¶ added in v1.12.0
func Encode ¶
func Encode(t MessageType, msg interface{}) ([]byte, error)
Encode is used to encode a MsgPack object with type prefix
func EncodeProto ¶ added in v1.7.0
func EncodeProto(t MessageType, pb proto.Message) ([]byte, error)
func EncodeProtoInterface ¶ added in v1.7.0
func EncodeProtoInterface(t MessageType, message interface{}) ([]byte, error)
func IsConsulServiceID ¶ added in v1.10.5
func IsErrNoDCPath ¶ added in v1.8.1
func IsErrNoLeader ¶ added in v1.0.0
func IsErrQueryNotFound ¶ added in v1.8.1
func IsErrRPCRateExceeded ¶ added in v0.9.3
func IsErrServiceNotFound ¶ added in v1.4.1
func IsHostname ¶ added in v1.13.0
func IsProtocolHTTPLike ¶ added in v1.9.0
func IsSerfCheckID ¶ added in v1.10.5
func IsValidPartitionAndDatacenter ¶ added in v1.11.0
func IsValidPartitionAndDatacenter(meta acl.EnterpriseMeta, datacenters []string, primaryDatacenter string) bool
func IsZeroProtoTime ¶ added in v1.12.0
IsZeroProtoTime returns true if the time is the minimum protobuf timestamp (the Unix epoch).
func NewEnterpriseMetaInDefaultPartition ¶ added in v1.11.0
func NewEnterpriseMetaInDefaultPartition(_ string) acl.EnterpriseMeta
TODO(partition): stop using this
func NewEnterpriseMetaWithPartition ¶ added in v1.11.0
func NewEnterpriseMetaWithPartition(_, _ string) acl.EnterpriseMeta
func NodeEnterpriseMetaInDefaultPartition ¶ added in v1.11.0
func NodeEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
TODO(partition): stop using this
func NodeEnterpriseMetaInPartition ¶ added in v1.11.0
func NodeEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
func NodeNameString ¶ added in v1.11.0
func NodeNameString(node string, _ *acl.EnterpriseMeta) string
func NormalizeServiceSplitWeight ¶ added in v1.6.0
func ParseDurationFunc ¶ added in v1.2.3
func ParseDurationFunc() mapstructure.DecodeHookFunc
ParseDurationFunc is a mapstructure hook for decoding a string or []uint8 into a time.Duration value.
func ParseServiceIDString ¶ added in v1.7.0
func ParseServiceIDString(input string) (string, *acl.EnterpriseMeta)
func ParseServiceNameString ¶ added in v1.8.0
func ParseServiceNameString(input string) (string, *acl.EnterpriseMeta)
func ReplicationEnterpriseMeta ¶ added in v1.7.0
func ReplicationEnterpriseMeta() *acl.EnterpriseMeta
ReplicationEnterpriseMeta stub
func SanitizeLegacyACLToken ¶ added in v1.4.0
func SanitizeLegacyACLToken(token *ACLToken)
SanitizeLegacyACLToken does nothing in the OSS builds. It does not mutate the input argument at all.
In enterprise builds this hook is necessary to support fixing old multiline HCL strings in legacy token Sentinel policies into heredocs. If the token was updated and previously had a Hash set, this will also update it.
DEPRECATED (ACL-Legacy-Compat)
func SanitizeLegacyACLTokenRules ¶ added in v1.4.0
SanitizeLegacyACLTokenRules does nothing in the OSS builds. It always returns an empty string.
In enterprise builds this hook is necessary to support fixing any old multiline HCL strings in legacy token Sentinel policies into heredocs.
DEPRECATED (ACL-Legacy-Compat)
func SatisfiesMetaFilters ¶
SatisfiesMetaFilters returns true if the metadata map contains the given filters
func ServiceGatewayVirtualIPTag ¶ added in v1.11.2
func ServiceGatewayVirtualIPTag(sn ServiceName) string
func ServiceIDString ¶ added in v1.7.0
func ServiceIDString(id string, _ *acl.EnterpriseMeta) string
func TestMsgpackEncodeDecode ¶ added in v1.7.0
TestMsgpackEncodeDecode is a test helper to easily write a test to verify msgpack encoding and decoding using two handles is identical.
func Uint8ToString ¶ added in v1.2.3
func UniqueID ¶ added in v1.9.0
UniqueID is a unique identifier for a service instance within a datacenter by encoding: node/namespace/service_id
Note: We do not have strict character restrictions in all node names, so this should NOT be split on / to retrieve components.
func ValidStatus ¶
func ValidateMetaTags ¶ added in v1.13.0
ValidateMetaTags validates arbitrary key/value pairs from the agent_endpoints
func ValidateNodeMetadata ¶ added in v1.8.0
ValidateNodeMetadata validates a set of key/value pairs from the agent config for use on a Node.
func ValidateServiceMetadata ¶ added in v1.8.0
func ValidateServiceMetadata(kind ServiceKind, meta map[string]string, allowConsulPrefix bool) error
ValidateServiceMetadata validates a set of key/value pairs from the agent config for use on a Service. ValidateMeta validates a set of key/value pairs from the agent config
func ValidateWeights ¶ added in v1.2.3
ValidateWeights checks the definition of DNS weight is valid
func WildcardEnterpriseMetaInDefaultPartition ¶ added in v1.11.0
func WildcardEnterpriseMetaInDefaultPartition() *acl.EnterpriseMeta
TODO(partition): stop using this
func WildcardEnterpriseMetaInPartition ¶ added in v1.11.0
func WildcardEnterpriseMetaInPartition(_ string) *acl.EnterpriseMeta
WildcardEnterpriseMetaInPartition stub
Types ¶
type ACLAuthMethod ¶ added in v1.5.0
type ACLAuthMethod struct { // Name is a unique identifier for this specific auth method. // // Immutable once set and only settable during create. Name string // Type is the type of the auth method this is. // // Immutable once set and only settable during create. Type string // DisplayName is an optional name to use instead of the Name field when // displaying information about this auth method in any kind of user // interface. DisplayName string `json:",omitempty"` // Description is just an optional bunch of explanatory text. Description string `json:",omitempty"` // MaxTokenTTL this is the maximum life of a token created by this method. MaxTokenTTL time.Duration `json:",omitempty"` // TokenLocality defines the kind of token that this auth method produces. // This can be either 'local' or 'global'. If empty 'local' is assumed. TokenLocality string `json:",omitempty"` // Configuration is arbitrary configuration for the auth method. This // should only contain primitive values and containers (such as lists and // maps). Config map[string]interface{} // Embedded Enterprise ACL Meta acl.EnterpriseMeta `mapstructure:",squash"` ACLAuthMethodEnterpriseFields `mapstructure:",squash"` // Embedded Raft Metadata RaftIndex `hash:"ignore"` }
func (*ACLAuthMethod) MarshalJSON ¶ added in v1.8.0
func (m *ACLAuthMethod) MarshalJSON() ([]byte, error)
func (*ACLAuthMethod) Stub ¶ added in v1.5.0
func (p *ACLAuthMethod) Stub() *ACLAuthMethodListStub
func (*ACLAuthMethod) UnmarshalJSON ¶ added in v1.8.0
func (m *ACLAuthMethod) UnmarshalJSON(data []byte) (err error)
type ACLAuthMethodBatchDeleteRequest ¶ added in v1.5.0
type ACLAuthMethodBatchDeleteRequest struct { AuthMethodNames []string // While it may seem odd that AuthMethodNames is associated with a single // EnterpriseMeta, it is okay as this struct is only ever used to // delete a single entry. This is because AuthMethods unlike tokens, policies // and roles are not replicated between datacenters and therefore never // batch applied. acl.EnterpriseMeta }
ACLAuthMethodBatchDeleteRequest is used at the Raft layer for batching multiple auth method deletions
type ACLAuthMethodBatchSetRequest ¶ added in v1.5.0
type ACLAuthMethodBatchSetRequest struct {
AuthMethods ACLAuthMethods
}
ACLAuthMethodBatchSetRequest is used at the Raft layer for batching multiple auth method creations and updates
type ACLAuthMethodDeleteRequest ¶ added in v1.5.0
type ACLAuthMethodDeleteRequest struct { AuthMethodName string // name of the auth method to delete Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta WriteRequest }
ACLAuthMethodDeleteRequest is used at the RPC layer deletion requests
func (*ACLAuthMethodDeleteRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLAuthMethodDeleteRequest) RequestDatacenter() string
type ACLAuthMethodEnterpriseFields ¶ added in v1.8.0
type ACLAuthMethodEnterpriseFields struct{}
type ACLAuthMethodEnterpriseMeta ¶ added in v1.7.0
type ACLAuthMethodEnterpriseMeta struct{}
func (*ACLAuthMethodEnterpriseMeta) FillWithEnterpriseMeta ¶ added in v1.7.0
func (_ *ACLAuthMethodEnterpriseMeta) FillWithEnterpriseMeta(_ *acl.EnterpriseMeta)
func (*ACLAuthMethodEnterpriseMeta) ToEnterpriseMeta ¶ added in v1.7.0
func (_ *ACLAuthMethodEnterpriseMeta) ToEnterpriseMeta() *acl.EnterpriseMeta
type ACLAuthMethodGetRequest ¶ added in v1.5.0
type ACLAuthMethodGetRequest struct { AuthMethodName string // name used for the auth method lookup Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLAuthMethodGetRequest is used at the RPC layer to perform rule read operations
func (*ACLAuthMethodGetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLAuthMethodGetRequest) RequestDatacenter() string
type ACLAuthMethodListRequest ¶ added in v1.5.0
type ACLAuthMethodListRequest struct { Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLAuthMethodListRequest is used at the RPC layer to request a listing of auth methods
func (*ACLAuthMethodListRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLAuthMethodListRequest) RequestDatacenter() string
type ACLAuthMethodListResponse ¶ added in v1.5.0
type ACLAuthMethodListResponse struct { AuthMethods ACLAuthMethodListStubs QueryMeta }
type ACLAuthMethodListStub ¶ added in v1.5.0
type ACLAuthMethodListStub struct { Name string Type string DisplayName string `json:",omitempty"` Description string `json:",omitempty"` MaxTokenTTL time.Duration `json:",omitempty"` TokenLocality string `json:",omitempty"` CreateIndex uint64 ModifyIndex uint64 acl.EnterpriseMeta }
Note: this is a subset of ACLAuthMethod's fields
func (*ACLAuthMethodListStub) MarshalJSON ¶ added in v1.10.0
func (m *ACLAuthMethodListStub) MarshalJSON() ([]byte, error)
This is nearly identical to the ACLAuthMethod MarshalJSON Unmarshaling is not implemented because the API is read only
type ACLAuthMethodListStubs ¶ added in v1.5.0
type ACLAuthMethodListStubs []*ACLAuthMethodListStub
func (ACLAuthMethodListStubs) Sort ¶ added in v1.5.0
func (methods ACLAuthMethodListStubs) Sort()
type ACLAuthMethodResponse ¶ added in v1.5.0
type ACLAuthMethodResponse struct { AuthMethod *ACLAuthMethod QueryMeta }
ACLAuthMethodResponse returns a single auth method + metadata
type ACLAuthMethodSetRequest ¶ added in v1.5.0
type ACLAuthMethodSetRequest struct { AuthMethod ACLAuthMethod // The auth method to upsert Datacenter string // The datacenter to perform the request within WriteRequest }
ACLAuthMethodSetRequest is used at the RPC layer for creation and update requests
func (*ACLAuthMethodSetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLAuthMethodSetRequest) RequestDatacenter() string
type ACLAuthMethods ¶ added in v1.5.0
type ACLAuthMethods []*ACLAuthMethod
func (ACLAuthMethods) Sort ¶ added in v1.5.0
func (methods ACLAuthMethods) Sort()
type ACLAuthorizationRequest ¶ added in v1.7.0
type ACLAuthorizationResponse ¶ added in v1.7.0
type ACLAuthorizationResponse struct { ACLAuthorizationRequest Allow bool }
func CreateACLAuthorizationResponses ¶ added in v1.7.0
func CreateACLAuthorizationResponses(authz acl.Authorizer, requests []ACLAuthorizationRequest) ([]ACLAuthorizationResponse, error)
type ACLBindingRule ¶ added in v1.5.0
type ACLBindingRule struct { // ID is the internal UUID associated with the binding rule ID string // Description is a human readable description (Optional) Description string // AuthMethod is the name of the auth method for which this rule applies. AuthMethod string // Selector is an expression that matches against verified identity // attributes returned from the auth method during login. Selector string // BindType adjusts how this binding rule is applied at login time. The // valid values are: // // - BindingRuleBindTypeService = "service" // - BindingRuleBindTypeRole = "role" BindType string // BindName is the target of the binding. Can be lightly templated using // HIL ${foo} syntax from available field names. How it is used depends // upon the BindType. BindName string // Embedded Enterprise ACL metadata acl.EnterpriseMeta `mapstructure:",squash"` // Embedded Raft Metadata RaftIndex `hash:"ignore"` }
func (*ACLBindingRule) Clone ¶ added in v1.5.0
func (r *ACLBindingRule) Clone() *ACLBindingRule
type ACLBindingRuleBatchDeleteRequest ¶ added in v1.5.0
type ACLBindingRuleBatchDeleteRequest struct {
BindingRuleIDs []string
}
ACLBindingRuleBatchDeleteRequest is used at the Raft layer for batching multiple rule deletions
type ACLBindingRuleBatchSetRequest ¶ added in v1.5.0
type ACLBindingRuleBatchSetRequest struct {
BindingRules ACLBindingRules
}
ACLBindingRuleBatchSetRequest is used at the Raft layer for batching multiple rule creations and updates
type ACLBindingRuleDeleteRequest ¶ added in v1.5.0
type ACLBindingRuleDeleteRequest struct { BindingRuleID string // id of the rule to delete Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta WriteRequest }
ACLBindingRuleDeleteRequest is used at the RPC layer deletion requests
func (*ACLBindingRuleDeleteRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLBindingRuleDeleteRequest) RequestDatacenter() string
type ACLBindingRuleGetRequest ¶ added in v1.5.0
type ACLBindingRuleGetRequest struct { BindingRuleID string // id used for the rule lookup Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLBindingRuleGetRequest is used at the RPC layer to perform rule read operations
func (*ACLBindingRuleGetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLBindingRuleGetRequest) RequestDatacenter() string
type ACLBindingRuleListRequest ¶ added in v1.5.0
type ACLBindingRuleListRequest struct { AuthMethod string // optional filter Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLBindingRuleListRequest is used at the RPC layer to request a listing of rules
func (*ACLBindingRuleListRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLBindingRuleListRequest) RequestDatacenter() string
type ACLBindingRuleListResponse ¶ added in v1.5.0
type ACLBindingRuleListResponse struct { BindingRules ACLBindingRules QueryMeta }
type ACLBindingRuleResponse ¶ added in v1.5.0
type ACLBindingRuleResponse struct { BindingRule *ACLBindingRule QueryMeta }
ACLBindingRuleResponse returns a single binding + metadata
type ACLBindingRuleSetRequest ¶ added in v1.5.0
type ACLBindingRuleSetRequest struct { BindingRule ACLBindingRule // The rule to upsert Datacenter string // The datacenter to perform the request within WriteRequest }
ACLBindingRuleSetRequest is used at the RPC layer for creation and update requests
func (*ACLBindingRuleSetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLBindingRuleSetRequest) RequestDatacenter() string
type ACLBindingRules ¶ added in v1.5.0
type ACLBindingRules []*ACLBindingRule
func (ACLBindingRules) Sort ¶ added in v1.5.0
func (rules ACLBindingRules) Sort()
type ACLCaches ¶ added in v1.4.0
type ACLCaches struct {
// contains filtered or unexported fields
}
func NewACLCaches ¶ added in v1.4.0
func NewACLCaches(config *ACLCachesConfig) (*ACLCaches, error)
func (*ACLCaches) GetAuthorizer ¶ added in v1.4.0
func (c *ACLCaches) GetAuthorizer(id string) *AuthorizerCacheEntry
GetAuthorizer fetches a acl from the cache and returns it
func (*ACLCaches) GetIdentity ¶ added in v1.4.0
func (c *ACLCaches) GetIdentity(id string) *IdentityCacheEntry
GetIdentity fetches an identity from the cache and returns it
func (*ACLCaches) GetIdentityWithSecretToken ¶ added in v1.13.0
func (c *ACLCaches) GetIdentityWithSecretToken(secretToken string) *IdentityCacheEntry
GetIdentityWithSecretToken fetches the identity with the given secret token from the cache.
func (*ACLCaches) GetParsedPolicy ¶ added in v1.4.0
func (c *ACLCaches) GetParsedPolicy(id string) *ParsedPolicyCacheEntry
GetPolicy fetches a policy from the cache and returns it
func (*ACLCaches) GetPolicy ¶ added in v1.4.0
func (c *ACLCaches) GetPolicy(policyID string) *PolicyCacheEntry
GetPolicy fetches a policy from the cache and returns it
func (*ACLCaches) GetRole ¶ added in v1.5.0
func (c *ACLCaches) GetRole(roleID string) *RoleCacheEntry
GetRole fetches a role from the cache by id and returns it
func (*ACLCaches) PutAuthorizer ¶ added in v1.4.0
func (c *ACLCaches) PutAuthorizer(id string, authorizer acl.Authorizer)
func (*ACLCaches) PutIdentity ¶ added in v1.4.0
func (c *ACLCaches) PutIdentity(id string, ident ACLIdentity)
PutIdentity adds a new identity to the cache
func (*ACLCaches) PutIdentityWithSecretToken ¶ added in v1.13.0
func (c *ACLCaches) PutIdentityWithSecretToken(secretToken string, identity ACLIdentity)
PutIdentityWithSecretToken adds a new identity to the cache, keyed by the given secret token (with a prefix to prevent collisions).
func (*ACLCaches) PutParsedPolicy ¶ added in v1.4.0
func (*ACLCaches) RemoveIdentity ¶ added in v1.4.0
func (*ACLCaches) RemoveIdentityWithSecretToken ¶ added in v1.13.0
RemoveIdentityWithSecretToken removes the identity from the cache with the given secret token.
func (*ACLCaches) RemovePolicy ¶ added in v1.4.0
func (*ACLCaches) RemoveRole ¶ added in v1.5.0
type ACLCachesConfig ¶ added in v1.4.0
type ACLIdentity ¶ added in v1.4.0
type ACLIdentity interface { // ID returns the accessor ID, a string that can be used for logging and // telemetry. It is not the secret ID used for authentication. ID() string SecretToken() string PolicyIDs() []string RoleIDs() []string ServiceIdentityList() []*ACLServiceIdentity NodeIdentityList() []*ACLNodeIdentity IsExpired(asOf time.Time) bool IsLocal() bool EnterpriseMetadata() *acl.EnterpriseMeta }
type ACLLoginParams ¶ added in v1.5.0
type ACLLoginRequest ¶ added in v1.5.0
type ACLLoginRequest struct { Auth *ACLLoginParams Datacenter string // The datacenter to perform the request within WriteRequest }
func (*ACLLoginRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLLoginRequest) RequestDatacenter() string
type ACLLogoutRequest ¶ added in v1.5.0
type ACLLogoutRequest struct { Datacenter string // The datacenter to perform the request within WriteRequest }
func (*ACLLogoutRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLLogoutRequest) RequestDatacenter() string
type ACLNodeIdentities ¶ added in v1.13.0
type ACLNodeIdentities []*ACLNodeIdentity
func (ACLNodeIdentities) Deduplicate ¶ added in v1.13.0
func (ids ACLNodeIdentities) Deduplicate() ACLNodeIdentities
Deduplicate returns a new list of node identities without duplicates.
type ACLNodeIdentity ¶ added in v1.8.1
type ACLNodeIdentity struct { // NodeName identities the Node that this identity authorizes access to NodeName string // Datacenter is required and specifies the datacenter of the node. Datacenter string }
ACLNodeIdentity represents a high-level grant of all privileges necessary to assume the identity of that node and manage it.
func (*ACLNodeIdentity) AddToHash ¶ added in v1.8.1
func (s *ACLNodeIdentity) AddToHash(h hash.Hash)
func (*ACLNodeIdentity) Clone ¶ added in v1.8.1
func (s *ACLNodeIdentity) Clone() *ACLNodeIdentity
func (*ACLNodeIdentity) EstimateSize ¶ added in v1.8.1
func (s *ACLNodeIdentity) EstimateSize() int
func (*ACLNodeIdentity) SyntheticPolicy ¶ added in v1.8.1
func (s *ACLNodeIdentity) SyntheticPolicy(entMeta *acl.EnterpriseMeta) *ACLPolicy
type ACLPolicies ¶ added in v1.4.0
type ACLPolicies []*ACLPolicy
func (ACLPolicies) Compile ¶ added in v1.4.0
func (policies ACLPolicies) Compile(cache *ACLCaches, entConf *acl.Config) (acl.Authorizer, error)
func (ACLPolicies) HashKey ¶ added in v1.4.0
func (policies ACLPolicies) HashKey() string
HashKey returns a consistent hash for a set of policies.
func (ACLPolicies) Sort ¶ added in v1.4.0
func (policies ACLPolicies) Sort()
type ACLPolicy ¶
type ACLPolicy struct { // This is the internal UUID associated with the policy ID string // Unique name to reference the policy by. // - Valid Characters: [a-zA-Z0-9-] // - Valid Lengths: 1 - 128 Name string // Human readable description (Optional) Description string // The rule set (using the updated rule syntax) Rules string // DEPRECATED (ACL-Legacy-Compat) - This is only needed while we support the legacy ACLs Syntax acl.SyntaxVersion `json:"-"` // Datacenters that the policy is valid within. // - No wildcards allowed // - If empty then the policy is valid within all datacenters Datacenters []string `json:",omitempty"` // Hash of the contents of the policy // This does not take into account the ID (which is immutable) // nor the raft metadata. // // This is needed mainly for replication purposes. When replicating from // one DC to another keeping the content Hash will allow us to avoid // unnecessary calls to the authoritative DC Hash []byte // Embedded Enterprise ACL Metadata acl.EnterpriseMeta `mapstructure:",squash"` // Embedded Raft Metadata RaftIndex `hash:"ignore"` }
func (*ACLPolicy) EnterprisePolicyMeta ¶ added in v1.7.0
func (p *ACLPolicy) EnterprisePolicyMeta() *acl.EnterprisePolicyMeta
func (*ACLPolicy) EstimateSize ¶ added in v1.4.0
func (*ACLPolicy) Stub ¶ added in v1.4.0
func (p *ACLPolicy) Stub() *ACLPolicyListStub
func (*ACLPolicy) UnmarshalJSON ¶ added in v1.6.2
type ACLPolicyBatchDeleteRequest ¶ added in v1.4.0
type ACLPolicyBatchDeleteRequest struct {
PolicyIDs []string
}
ACLPolicyBatchDeleteRequest is used at the Raft layer for batching multiple policy deletions
This is particularly useful during replication
type ACLPolicyBatchGetRequest ¶ added in v1.4.0
type ACLPolicyBatchGetRequest struct { PolicyIDs []string // List of policy ids to fetch Datacenter string // The datacenter to perform the request within QueryOptions }
ACLPolicyBatchGetRequest is used at the RPC layer to request a subset of the policies associated with the token used for retrieval
func (*ACLPolicyBatchGetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLPolicyBatchGetRequest) RequestDatacenter() string
type ACLPolicyBatchResponse ¶ added in v1.4.0
type ACLPolicyBatchSetRequest ¶ added in v1.4.0
type ACLPolicyBatchSetRequest struct {
Policies ACLPolicies
}
ACLPolicyBatchSetRequest is used at the Raft layer for batching multiple policy creations and updates
This is particularly useful during replication
type ACLPolicyDeleteRequest ¶ added in v1.4.0
type ACLPolicyDeleteRequest struct { PolicyID string // The id of the policy to delete Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta WriteRequest }
ACLPolicyDeleteRequest is used at the RPC layer deletion requests
func (*ACLPolicyDeleteRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLPolicyDeleteRequest) RequestDatacenter() string
type ACLPolicyGetRequest ¶ added in v1.4.0
type ACLPolicyGetRequest struct { PolicyID string // id used for the policy lookup (one of PolicyID or PolicyName is allowed) PolicyName string // name used for the policy lookup (one of PolicyID or PolicyName is allowed) Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLPolicyGetRequest is used at the RPC layer to perform policy read operations
func (*ACLPolicyGetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLPolicyGetRequest) RequestDatacenter() string
type ACLPolicyListRequest ¶ added in v1.4.0
type ACLPolicyListRequest struct { Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLPolicyListRequest is used at the RPC layer to request a listing of policies
func (*ACLPolicyListRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLPolicyListRequest) RequestDatacenter() string
type ACLPolicyListResponse ¶ added in v1.4.0
type ACLPolicyListResponse struct { Policies ACLPolicyListStubs QueryMeta }
type ACLPolicyListStub ¶ added in v1.4.0
type ACLPolicyListStubs ¶ added in v1.4.0
type ACLPolicyListStubs []*ACLPolicyListStub
func (ACLPolicyListStubs) Sort ¶ added in v1.4.0
func (policies ACLPolicyListStubs) Sort()
type ACLPolicyResponse ¶ added in v1.4.0
ACLPolicyResponse returns a single policy + metadata
type ACLPolicySetRequest ¶ added in v1.4.0
type ACLPolicySetRequest struct { Policy ACLPolicy // The policy to upsert Datacenter string // The datacenter to perform the request within WriteRequest }
ACLPolicySetRequest is used at the RPC layer for creation and update requests
func (*ACLPolicySetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLPolicySetRequest) RequestDatacenter() string
type ACLReplicationStatus ¶
type ACLReplicationStatus struct { Enabled bool Running bool SourceDatacenter string ReplicationType ACLReplicationType ReplicatedIndex uint64 ReplicatedRoleIndex uint64 ReplicatedTokenIndex uint64 LastSuccess time.Time LastError time.Time LastErrorMessage string }
ACLReplicationStatus provides information about the health of the ACL replication system.
type ACLReplicationType ¶ added in v1.4.0
type ACLReplicationType string
const ( ACLReplicatePolicies ACLReplicationType = "policies" ACLReplicateRoles ACLReplicationType = "roles" ACLReplicateTokens ACLReplicationType = "tokens" )
func (ACLReplicationType) SingularNoun ¶ added in v1.5.0
func (t ACLReplicationType) SingularNoun() string
type ACLRole ¶ added in v1.5.0
type ACLRole struct { // ID is the internal UUID associated with the role ID string // Name is the unique name to reference the role by. Name string // Description is a human readable description (Optional) Description string // List of policy links. // Note this is the list of IDs and not the names. Prior to role creation // the list of policy names gets validated and the policy IDs get stored herein Policies []ACLRolePolicyLink `json:",omitempty"` // List of services to generate synthetic policies for. ServiceIdentities ACLServiceIdentities `json:",omitempty"` // List of nodes to generate synthetic policies for. NodeIdentities ACLNodeIdentities `json:",omitempty"` // Hash of the contents of the role // This does not take into account the ID (which is immutable) // nor the raft metadata. // // This is needed mainly for replication purposes. When replicating from // one DC to another keeping the content Hash will allow us to avoid // unnecessary calls to the authoritative DC Hash []byte // Embedded Enterprise ACL metadata acl.EnterpriseMeta `mapstructure:",squash"` // Embedded Raft Metadata RaftIndex `hash:"ignore"` }
func (*ACLRole) EstimateSize ¶ added in v1.5.0
func (*ACLRole) NodeIdentityList ¶ added in v1.8.1
func (r *ACLRole) NodeIdentityList() []*ACLNodeIdentity
func (*ACLRole) UnmarshalJSON ¶ added in v1.6.2
type ACLRoleBatchDeleteRequest ¶ added in v1.5.0
type ACLRoleBatchDeleteRequest struct {
RoleIDs []string
}
ACLRoleBatchDeleteRequest is used at the Raft layer for batching multiple role deletions
This is particularly useful during replication
type ACLRoleBatchGetRequest ¶ added in v1.5.0
type ACLRoleBatchGetRequest struct { RoleIDs []string // List of role ids to fetch Datacenter string // The datacenter to perform the request within QueryOptions }
ACLRoleBatchGetRequest is used at the RPC layer to request a subset of the roles associated with the token used for retrieval
func (*ACLRoleBatchGetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLRoleBatchGetRequest) RequestDatacenter() string
type ACLRoleBatchResponse ¶ added in v1.5.0
type ACLRoleBatchSetRequest ¶ added in v1.5.0
ACLRoleBatchSetRequest is used at the Raft layer for batching multiple role creations and updates
This is particularly useful during replication
type ACLRoleDeleteRequest ¶ added in v1.5.0
type ACLRoleDeleteRequest struct { RoleID string // id of the role to delete Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta WriteRequest }
ACLRoleDeleteRequest is used at the RPC layer deletion requests
func (*ACLRoleDeleteRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLRoleDeleteRequest) RequestDatacenter() string
type ACLRoleGetRequest ¶ added in v1.5.0
type ACLRoleGetRequest struct { RoleID string // id used for the role lookup (one of RoleID or RoleName is allowed) RoleName string // name used for the role lookup (one of RoleID or RoleName is allowed) Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLRoleGetRequest is used at the RPC layer to perform role read operations
func (*ACLRoleGetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLRoleGetRequest) RequestDatacenter() string
type ACLRoleListRequest ¶ added in v1.5.0
type ACLRoleListRequest struct { Policy string // Policy filter Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLRoleListRequest is used at the RPC layer to request a listing of roles
func (*ACLRoleListRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLRoleListRequest) RequestDatacenter() string
type ACLRoleListResponse ¶ added in v1.5.0
type ACLRolePolicyLink ¶ added in v1.5.0
type ACLRoleResponse ¶ added in v1.5.0
ACLRoleResponse returns a single role + metadata
type ACLRoleSetRequest ¶ added in v1.5.0
type ACLRoleSetRequest struct { Role ACLRole // The role to upsert Datacenter string // The datacenter to perform the request within WriteRequest }
ACLRoleSetRequest is used at the RPC layer for creation and update requests
func (*ACLRoleSetRequest) RequestDatacenter ¶ added in v1.5.0
func (r *ACLRoleSetRequest) RequestDatacenter() string
type ACLRoles ¶ added in v1.5.0
type ACLRoles []*ACLRole
type ACLServerIdentity ¶ added in v1.14.0
type ACLServerIdentity struct {
// contains filtered or unexported fields
}
func NewACLServerIdentity ¶ added in v1.14.0
func NewACLServerIdentity(secretID string) *ACLServerIdentity
func (*ACLServerIdentity) EnterpriseMetadata ¶ added in v1.14.0
func (i *ACLServerIdentity) EnterpriseMetadata() *acl.EnterpriseMeta
func (*ACLServerIdentity) ID ¶ added in v1.14.0
func (i *ACLServerIdentity) ID() string
func (*ACLServerIdentity) IsExpired ¶ added in v1.14.0
func (i *ACLServerIdentity) IsExpired(asOf time.Time) bool
func (*ACLServerIdentity) IsLocal ¶ added in v1.14.0
func (i *ACLServerIdentity) IsLocal() bool
func (*ACLServerIdentity) NodeIdentityList ¶ added in v1.14.0
func (i *ACLServerIdentity) NodeIdentityList() []*ACLNodeIdentity
func (*ACLServerIdentity) PolicyIDs ¶ added in v1.14.0
func (i *ACLServerIdentity) PolicyIDs() []string
func (*ACLServerIdentity) RoleIDs ¶ added in v1.14.0
func (i *ACLServerIdentity) RoleIDs() []string
func (*ACLServerIdentity) SecretToken ¶ added in v1.14.0
func (i *ACLServerIdentity) SecretToken() string
func (*ACLServerIdentity) ServiceIdentityList ¶ added in v1.14.0
func (i *ACLServerIdentity) ServiceIdentityList() []*ACLServiceIdentity
type ACLServiceIdentities ¶ added in v1.13.0
type ACLServiceIdentities []*ACLServiceIdentity
func (ACLServiceIdentities) Deduplicate ¶ added in v1.13.0
func (ids ACLServiceIdentities) Deduplicate() ACLServiceIdentities
Deduplicate returns a new list of service identities without duplicates. Identities with the same ServiceName but different datacenters will be merged into a single identity with all datacenters.
type ACLServiceIdentity ¶ added in v1.5.0
type ACLServiceIdentity struct { ServiceName string // Datacenters that the synthetic policy will be valid within. // - No wildcards allowed // - If empty then the synthetic policy is valid within all datacenters // // Only valid for global tokens. It is an error to specify this for local tokens. Datacenters []string `json:",omitempty"` }
ACLServiceIdentity represents a high-level grant of all necessary privileges to assume the identity of the named Service in the Catalog and within Connect.
func (*ACLServiceIdentity) AddToHash ¶ added in v1.5.0
func (s *ACLServiceIdentity) AddToHash(h hash.Hash)
func (*ACLServiceIdentity) Clone ¶ added in v1.5.0
func (s *ACLServiceIdentity) Clone() *ACLServiceIdentity
func (*ACLServiceIdentity) EstimateSize ¶ added in v1.5.0
func (s *ACLServiceIdentity) EstimateSize() int
func (*ACLServiceIdentity) SyntheticPolicy ¶ added in v1.5.0
func (s *ACLServiceIdentity) SyntheticPolicy(entMeta *acl.EnterpriseMeta) *ACLPolicy
type ACLToken ¶ added in v1.4.0
type ACLToken struct { // This is the UUID used for tracking and management purposes AccessorID string // This is the UUID used as the api token by clients SecretID string // Human readable string to display for the token (Optional) Description string // List of policy links - nil/empty for legacy tokens or if service identities are in use. // Note this is the list of IDs and not the names. Prior to token creation // the list of policy names gets validated and the policy IDs get stored herein Policies []ACLTokenPolicyLink `json:",omitempty"` // List of role links. Note this is the list of IDs and not the names. // Prior to token creation the list of role names gets validated and the // role IDs get stored herein Roles []ACLTokenRoleLink `json:",omitempty"` // List of services to generate synthetic policies for. ServiceIdentities ACLServiceIdentities `json:",omitempty"` // The node identities that this token should be allowed to manage. NodeIdentities ACLNodeIdentities `json:",omitempty"` // Type is the V1 Token Type // DEPRECATED (ACL-Legacy-Compat) - remove once we no longer support v1 ACL compat // Even though we are going to auto upgrade management tokens we still // want to be able to have the old APIs operate on the upgraded management tokens // so this field is being kept to identify legacy tokens even after an auto-upgrade Type string `json:"-"` // Rules is the V1 acl rules associated with // DEPRECATED (ACL-Legacy-Compat) - remove once we no longer support v1 ACL compat Rules string `json:",omitempty"` // Whether this token is DC local. This means that it will not be synced // to the ACL datacenter and replicated to others. Local bool // AuthMethod is the name of the auth method used to create this token. AuthMethod string `json:",omitempty"` // ACLAuthMethodEnterpriseMeta is the EnterpriseMeta for the AuthMethod that this token was created from ACLAuthMethodEnterpriseMeta // ExpirationTime represents the point after which a token should be // considered revoked and is eligible for destruction. The zero value // represents NO expiration. // // This is a pointer value so that the zero value is omitted properly // during json serialization. time.Time does not respect json omitempty // directives unfortunately. ExpirationTime *time.Time `json:",omitempty"` // ExpirationTTL is a convenience field for helping set ExpirationTime to a // value of CreateTime+ExpirationTTL. This can only be set during // TokenCreate and is cleared and used to initialize the ExpirationTime // field before being persisted to the state store or raft log. // // This is a string version of a time.Duration like "2m". ExpirationTTL time.Duration `json:",omitempty"` // The time when this token was created CreateTime time.Time `json:",omitempty"` // Hash of the contents of the token // // This is needed mainly for replication purposes. When replicating from // one DC to another keeping the content Hash will allow us to avoid // unnecessary calls to the authoritative DC Hash []byte // Embedded Enterprise Metadata acl.EnterpriseMeta `mapstructure:",squash"` // Embedded Raft Metadata RaftIndex }
func (*ACLToken) EnterpriseMetadata ¶ added in v1.7.0
func (t *ACLToken) EnterpriseMetadata() *acl.EnterpriseMeta
func (*ACLToken) EstimateSize ¶ added in v1.4.0
func (*ACLToken) HasExpirationTime ¶ added in v1.5.0
func (*ACLToken) NodeIdentityList ¶ added in v1.8.1
func (t *ACLToken) NodeIdentityList() []*ACLNodeIdentity
func (*ACLToken) SecretToken ¶ added in v1.4.0
func (*ACLToken) ServiceIdentityList ¶ added in v1.5.0
func (t *ACLToken) ServiceIdentityList() []*ACLServiceIdentity
func (*ACLToken) Stub ¶ added in v1.4.0
func (token *ACLToken) Stub() *ACLTokenListStub
func (*ACLToken) UnmarshalJSON ¶ added in v1.6.2
type ACLTokenBatchDeleteRequest ¶ added in v1.4.0
type ACLTokenBatchDeleteRequest struct {
TokenIDs []string // Tokens to delete
}
ACLTokenBatchDeleteRequest is used only at the Raft layer for batching multiple token deletions.
This is particularly useful during token replication when multiple tokens need to be removed from the local DCs state.
type ACLTokenBatchGetRequest ¶ added in v1.4.0
type ACLTokenBatchGetRequest struct { AccessorIDs []string // List of accessor ids to fetch Datacenter string // The datacenter to perform the request within QueryOptions }
ACLTokenBatchGetRequest is used for reading multiple tokens, this is different from the the token list request in that only tokens with the the requested ids are returned
func (*ACLTokenBatchGetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLTokenBatchGetRequest) RequestDatacenter() string
type ACLTokenBatchResponse ¶ added in v1.4.0
type ACLTokenBatchResponse struct { Tokens []*ACLToken Redacted bool // whether the token secrets were redacted. Removed bool // whether any tokens were completely removed QueryMeta }
ACLTokenBatchResponse returns multiple Tokens associated with the same metadata
type ACLTokenBatchSetRequest ¶ added in v1.4.0
type ACLTokenBatchSetRequest struct { Tokens ACLTokens CAS bool AllowMissingLinks bool ProhibitUnprivileged bool FromReplication bool }
ACLTokenBatchSetRequest is used only at the Raft layer for batching multiple token creation/update operations
This is particularly useful during token replication and during automatic legacy token upgrades.
type ACLTokenBootstrapRequest ¶ added in v1.4.0
type ACLTokenBootstrapRequest struct { Token ACLToken // Token to use for bootstrapping ResetIndex uint64 // Reset index }
ACLTokenBootstrapRequest is used only at the Raft layer for ACL bootstrapping
The RPC layer will use a generic DCSpecificRequest to indicate that bootstrapping must be performed but the actual token and the resetIndex will be generated by that RPC endpoint
type ACLTokenDeleteRequest ¶ added in v1.4.0
type ACLTokenDeleteRequest struct { TokenID string // ID of the token to delete Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta WriteRequest }
ACLTokenDeleteRequest is used for token deletion operations at the RPC layer
func (*ACLTokenDeleteRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLTokenDeleteRequest) RequestDatacenter() string
type ACLTokenExpanded ¶ added in v1.12.0
type ACLTokenExpanded struct { *ACLToken ExpandedTokenInfo }
type ACLTokenGetRequest ¶ added in v1.4.0
type ACLTokenGetRequest struct { TokenID string // id used for the token lookup TokenIDType ACLTokenIDType // The Type of ID used to lookup the token Expanded bool Datacenter string // The datacenter to perform the request within acl.EnterpriseMeta QueryOptions }
ACLTokenGetRequest is used for token read operations at the RPC layer
func (*ACLTokenGetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLTokenGetRequest) RequestDatacenter() string
type ACLTokenIDType ¶ added in v1.4.0
type ACLTokenIDType string
const ( ACLTokenSecret ACLTokenIDType = "secret" ACLTokenAccessor ACLTokenIDType = "accessor" )
type ACLTokenListRequest ¶ added in v1.4.0
type ACLTokenListRequest struct { IncludeLocal bool // Whether local tokens should be included IncludeGlobal bool // Whether global tokens should be included Policy string // Policy filter Role string // Role filter AuthMethod string // Auth Method filter Datacenter string // The datacenter to perform the request within ACLAuthMethodEnterpriseMeta acl.EnterpriseMeta QueryOptions }
ACLTokenListRequest is used for token listing operations at the RPC layer
func (*ACLTokenListRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLTokenListRequest) RequestDatacenter() string
type ACLTokenListResponse ¶ added in v1.4.0
type ACLTokenListResponse struct { Tokens ACLTokenListStubs QueryMeta }
ACLTokenListResponse is used to return the secret data free stubs of the tokens
type ACLTokenListStub ¶ added in v1.4.0
type ACLTokenListStub struct { AccessorID string SecretID string Description string Policies []ACLTokenPolicyLink `json:",omitempty"` Roles []ACLTokenRoleLink `json:",omitempty"` ServiceIdentities ACLServiceIdentities `json:",omitempty"` NodeIdentities ACLNodeIdentities `json:",omitempty"` Local bool AuthMethod string `json:",omitempty"` ExpirationTime *time.Time `json:",omitempty"` CreateTime time.Time `json:",omitempty"` Hash []byte CreateIndex uint64 ModifyIndex uint64 Legacy bool `json:",omitempty"` acl.EnterpriseMeta ACLAuthMethodEnterpriseMeta }
type ACLTokenListStubs ¶ added in v1.4.0
type ACLTokenListStubs []*ACLTokenListStub
func (ACLTokenListStubs) Sort ¶ added in v1.4.0
func (tokens ACLTokenListStubs) Sort()
type ACLTokenPolicyLink ¶ added in v1.4.0
type ACLTokenResponse ¶ added in v1.4.0
type ACLTokenResponse struct { Token *ACLToken Redacted bool // whether the token's secret was redacted SourceDatacenter string ExpandedTokenInfo QueryMeta }
ACLTokenResponse returns a single Token + metadata
type ACLTokenRoleLink ¶ added in v1.5.0
type ACLTokenSetRequest ¶ added in v1.4.0
type ACLTokenSetRequest struct { ACLToken ACLToken // Token to manipulate - I really dislike this name but "Token" is taken in the WriteRequest Create bool // Used to explicitly mark this request as a creation Datacenter string // The datacenter to perform the request within WriteRequest }
ACLTokenSetRequest is used for token creation and update operations at the RPC layer
func (*ACLTokenSetRequest) RequestDatacenter ¶ added in v1.4.0
func (r *ACLTokenSetRequest) RequestDatacenter() string
type AWSCAProviderConfig ¶ added in v1.7.0
type AWSCAProviderConfig struct { CommonCAProviderConfig `mapstructure:",squash"` ExistingARN string DeleteOnExit bool }
type AgentRecoveryTokenIdentity ¶ added in v1.12.0
type AgentRecoveryTokenIdentity struct {
// contains filtered or unexported fields
}
func NewAgentRecoveryTokenIdentity ¶ added in v1.12.0
func NewAgentRecoveryTokenIdentity(agent string, secretID string) *AgentRecoveryTokenIdentity
func (*AgentRecoveryTokenIdentity) EnterpriseMetadata ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) EnterpriseMetadata() *acl.EnterpriseMeta
func (*AgentRecoveryTokenIdentity) ID ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) ID() string
func (*AgentRecoveryTokenIdentity) IsExpired ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) IsExpired(asOf time.Time) bool
func (*AgentRecoveryTokenIdentity) IsLocal ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) IsLocal() bool
func (*AgentRecoveryTokenIdentity) NodeIdentityList ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) NodeIdentityList() []*ACLNodeIdentity
func (*AgentRecoveryTokenIdentity) PolicyIDs ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) PolicyIDs() []string
func (*AgentRecoveryTokenIdentity) RoleIDs ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) RoleIDs() []string
func (*AgentRecoveryTokenIdentity) SecretToken ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) SecretToken() string
func (*AgentRecoveryTokenIdentity) ServiceIdentityList ¶ added in v1.12.0
func (id *AgentRecoveryTokenIdentity) ServiceIdentityList() []*ACLServiceIdentity
type AuthorizerCacheEntry ¶ added in v1.4.0
type AuthorizerCacheEntry struct { Authorizer acl.Authorizer CacheTime time.Time TTL time.Duration }
func (*AuthorizerCacheEntry) Age ¶ added in v1.4.0
func (e *AuthorizerCacheEntry) Age() time.Duration
type AutopilotConfig ¶
type AutopilotConfig struct { // CleanupDeadServers controls whether to remove dead servers when a new // server is added to the Raft peers. CleanupDeadServers bool // LastContactThreshold is the limit on the amount of time a server can go // without leader contact before being considered unhealthy. LastContactThreshold time.Duration // MaxTrailingLogs is the amount of entries in the Raft Log that a server can // be behind before being considered unhealthy. MaxTrailingLogs uint64 // MinQuorum sets the minimum number of servers required in a cluster // before autopilot can prune dead servers. MinQuorum uint // ServerStabilizationTime is the minimum amount of time a server must be // in a stable, healthy state before it can be added to the cluster. Only // applicable with Raft protocol version 3 or higher. ServerStabilizationTime time.Duration // (Enterprise-only) RedundancyZoneTag is the node tag to use for separating // servers into zones for redundancy. If left blank, this feature will be disabled. RedundancyZoneTag string // (Enterprise-only) DisableUpgradeMigration will disable Autopilot's upgrade migration // strategy of waiting until enough newer-versioned servers have been added to the // cluster before promoting them to voters. DisableUpgradeMigration bool // (Enterprise-only) UpgradeVersionTag is the node tag to use for version info when // performing upgrade migrations. If left blank, the Consul version will be used. UpgradeVersionTag string // CreateIndex/ModifyIndex store the create/modify indexes of this configuration. CreateIndex uint64 ModifyIndex uint64 }
Autopilotconfig holds the Autopilot configuration for a cluster.
func (*AutopilotConfig) ToAutopilotLibraryConfig ¶ added in v1.9.0
func (c *AutopilotConfig) ToAutopilotLibraryConfig() *autopilot.Config
type AutopilotHealthReply ¶ added in v1.9.0
type AutopilotHealthReply struct { // Healthy is true if all the servers in the cluster are healthy. Healthy bool // FailureTolerance is the number of healthy servers that could be lost without // an outage occurring. FailureTolerance int // Servers holds the health of each server. Servers []AutopilotServerHealth }
AutopilotHealthReply is a representation of the overall health of the cluster
type AutopilotServerHealth ¶ added in v1.9.0
type AutopilotServerHealth struct { // ID is the raft ID of the server. ID string // Name is the node name of the server. Name string // Address is the address of the server. Address string // The status of the SerfHealth check for the server. SerfStatus serf.MemberStatus // Version is the version of the server. Version string // Leader is whether this server is currently the leader. Leader bool // LastContact is the time since this node's last contact with the leader. LastContact time.Duration // LastTerm is the highest leader term this server has a record of in its Raft log. LastTerm uint64 // LastIndex is the last log index this server has a record of in its Raft log. LastIndex uint64 // Healthy is whether or not the server is healthy according to the current // Autopilot config. Healthy bool // Voter is whether this is a voting server. Voter bool // StableSince is the last time this server's Healthy value changed. StableSince time.Time }
ServerHealth is the health (from the leader's point of view) of a server.
type AutopilotSetConfigRequest ¶
type AutopilotSetConfigRequest struct { // Datacenter is the target this request is intended for. Datacenter string // Config is the new Autopilot configuration to use. Config AutopilotConfig // CAS controls whether to use check-and-set semantics for this request. CAS bool // WriteRequest holds the ACL token to go along with this request. WriteRequest }
AutopilotSetConfigRequest is used by the Operator endpoint to update the current Autopilot configuration of the cluster.
func (*AutopilotSetConfigRequest) RequestDatacenter ¶
func (op *AutopilotSetConfigRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type CAConfiguration ¶ added in v1.2.0
type CAConfiguration struct { // ClusterID is a unique identifier for the cluster ClusterID string `json:"-"` // Provider is the CA provider implementation to use. Provider string // Configuration is arbitrary configuration for the provider. This // should only contain primitive values and containers (such as lists // and maps). Config map[string]interface{} // State is optionally used by the provider to persist information it needs // between reloads like UUIDs of resources it manages. It only supports string // values to avoid gotchas with interface{} since this is encoded through // msgpack when it's written through raft. For example if providers used a // custom struct or even a simple `int` type, msgpack with loose type // information during encode/decode and providers will end up getting back // different types have have to remember to test multiple variants of state // handling to account for cases where it's been through msgpack or not. // Keeping this as strings only forces compatibility and leaves the input // Providers have to work with unambiguous - they can parse ints or other // types as they need. We expect this only to be used to store a handful of // identifiers anyway so this is simpler. State map[string]string // ForceWithoutCrossSigning indicates that the CA reconfiguration should go // ahead even if the current CA is unable to cross sign certificates. This // risks temporary connection failures during the rollout as new leafs will be // rejected by proxies that have not yet observed the new root cert but is the // only option if a CA that doesn't support cross signing needs to be // reconfigured or mirated away from. ForceWithoutCrossSigning bool RaftIndex }
CAConfiguration is the configuration for the current CA plugin.
func (*CAConfiguration) GetCommonConfig ¶ added in v1.2.2
func (c *CAConfiguration) GetCommonConfig() (*CommonCAProviderConfig, error)
func (*CAConfiguration) UnmarshalJSON ¶ added in v1.7.0
func (c *CAConfiguration) UnmarshalJSON(data []byte) (err error)
type CAConsulProviderState ¶ added in v1.2.0
type CAConsulProviderState struct { ID string PrivateKey string RootCert string IntermediateCert string RaftIndex }
CAConsulProviderState is used to track the built-in Consul CA provider's state.
type CALeafOp ¶ added in v1.4.1
type CALeafOp string
CALeafOp is the operation for a request related to leaf certificates.
const (
CALeafOpIncrementIndex CALeafOp = "increment-index"
)
type CALeafRequest ¶ added in v1.4.1
type CALeafRequest struct { // Op is the type of operation being requested. This determines what // other fields are required. Op CALeafOp // Datacenter is the target for this request. Datacenter string // WriteRequest is a common struct containing ACL tokens and other // write-related common elements for requests. WriteRequest }
CALeafRequest is used to modify connect CA leaf data. This is used by the FSM (agent/consul/fsm) to apply changes.
func (*CALeafRequest) RequestDatacenter ¶ added in v1.4.1
func (q *CALeafRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type CAOp ¶ added in v1.2.0
type CAOp string
CAOp is the operation for a request related to intentions.
type CARequest ¶ added in v1.2.0
type CARequest struct { // Op is the type of operation being requested. This determines what // other fields are required. Op CAOp // Datacenter is the target for this request. Datacenter string // Index is used by CAOpSetRoots and CAOpSetConfig for a CAS operation. Index uint64 // Roots is a list of roots. This is used for CAOpSet. One root must // always be active. Roots []*CARoot // Config is the configuration for the current CA plugin. Config *CAConfiguration // ProviderState is the state for the builtin CA provider. ProviderState *CAConsulProviderState // WriteRequest is a common struct containing ACL tokens and other // write-related common elements for requests. WriteRequest }
CARequest is used to modify connect CA data. This is used by the FSM (agent/consul/fsm) to apply changes.
func (*CARequest) RequestDatacenter ¶ added in v1.2.0
RequestDatacenter returns the datacenter for a given request.
type CARoot ¶ added in v1.2.0
type CARoot struct { // ID is a globally unique ID (UUID) representing this CA chain. It is // calculated from the SHA1 of the primary CA certificate. ID string // Name is a human-friendly name for this CA root. This value is // opaque to Consul and is not used for anything internally. Name string // SerialNumber is the x509 serial number of the primary CA certificate. SerialNumber uint64 // SigningKeyID is the connect.HexString encoded id of the public key that // corresponds to the private key used to sign leaf certificates in the // local datacenter. // // The value comes from x509.Certificate.SubjectKeyId of the local leaf // signing cert. // // See https://www.rfc-editor.org/rfc/rfc3280#section-4.2.1.1 for more detail. SigningKeyID string // ExternalTrustDomain is the trust domain this root was generated under. It // is usually empty implying "the current cluster trust-domain". It is set // only in the case that a cluster changes trust domain and then all old roots // that are still trusted have the old trust domain set here. // // We currently DON'T validate these trust domains explicitly anywhere, see // IndexedRoots.TrustDomain doc. We retain this information for debugging and // future flexibility. ExternalTrustDomain string // NotBefore is the x509.Certificate.NotBefore value of the primary CA // certificate. This value should generally be a time in the past. NotBefore time.Time // NotAfter is the x509.Certificate.NotAfter value of the primary CA // certificate. This is the time when the certificate will expire. NotAfter time.Time // RootCert is the PEM-encoded public certificate for the root CA. The // certificate is the same for all federated clusters. RootCert string // IntermediateCerts is a list of PEM-encoded intermediate certs to // attach to any leaf certs signed by this CA. The list may include a // certificate cross-signed by an old root CA, any subordinate CAs below the // root CA, and the intermediate CA used to sign leaf certificates in the // local Datacenter. // // If the provider which created this root uses an intermediate to sign // leaf certificates (Vault provider), or this is a secondary Datacenter then // the intermediate used to sign leaf certificates will be the last in the // list. IntermediateCerts []string // SigningCert is the PEM-encoded signing certificate and SigningKey // is the PEM-encoded private key for the signing certificate. These // may actually be empty if the CA plugin in use manages these for us. SigningCert string `json:",omitempty"` SigningKey string `json:",omitempty"` // Active is true if this is the current active CA. This must only // be true for exactly one CA. For any method that modifies roots in the // state store, tests should be written to verify that multiple roots // cannot be active. Active bool // RotatedOutAt is the time at which this CA was removed from the state. // This will only be set on roots that have been rotated out from being the // active root. RotatedOutAt time.Time `json:"-"` // PrivateKeyType is the type of the private key used to sign certificates. It // may be "rsa" or "ec". This is provided as a convenience to avoid parsing // the public key to from the certificate to infer the type. PrivateKeyType string // PrivateKeyBits is the length of the private key used to sign certificates. // This is provided as a convenience to avoid parsing the public key from the // certificate to infer the type. PrivateKeyBits int RaftIndex }
CARoot represents a root CA certificate that is trusted.
type CASignRequest ¶ added in v1.2.0
type CASignRequest struct { // Datacenter is the target for this request. Datacenter string // CSR is the PEM-encoded CSR. CSR string // WriteRequest is a common struct containing ACL tokens and other // write-related common elements for requests. WriteRequest }
CASignRequest is the request for signing a service certificate.
func (*CASignRequest) RequestDatacenter ¶ added in v1.2.0
func (q *CASignRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type CatalogContents ¶ added in v1.12.0
type CatalogContents struct { Nodes []*Node Services []*ServiceNode Checks []*HealthCheck }
type CatalogSummary ¶ added in v1.12.0
type CatalogSummary struct { Nodes []HealthSummary Services []HealthSummary Checks []HealthSummary }
type CheckDefinition ¶
type CheckDefinition struct { ID types.CheckID Name string Notes string ServiceID string Token string Status string // Copied fields from CheckType without the fields // already present in CheckDefinition: // // ID (CheckID), Name, Status, Notes // ScriptArgs []string HTTP string H2PING string H2PingUseTLS bool Header map[string][]string Method string Body string DisableRedirects bool TCP string UDP string Interval time.Duration DockerContainerID string Shell string GRPC string GRPCUseTLS bool OSService string TLSServerName string TLSSkipVerify bool AliasNode string AliasService string Timeout time.Duration TTL time.Duration SuccessBeforePassing int FailuresBeforeWarning int FailuresBeforeCritical int DeregisterCriticalServiceAfter time.Duration OutputMaxSize int acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` }
CheckDefinition is used to JSON decode the Check definitions
func (*CheckDefinition) CheckType ¶
func (c *CheckDefinition) CheckType() *CheckType
func (*CheckDefinition) HealthCheck ¶
func (c *CheckDefinition) HealthCheck(node string) *HealthCheck
func (*CheckDefinition) UnmarshalJSON ¶ added in v1.6.2
func (t *CheckDefinition) UnmarshalJSON(data []byte) (err error)
type CheckID ¶ added in v1.7.0
type CheckID struct { ID types.CheckID acl.EnterpriseMeta }
func NewCheckID ¶ added in v1.7.0
func NewCheckID(id types.CheckID, entMeta *acl.EnterpriseMeta) CheckID
func (CheckID) NamespaceOrDefault ¶ added in v1.11.0
NamespaceOrDefault exists because acl.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (CheckID) PartitionOrDefault ¶ added in v1.11.0
PartitionOrDefault exists because acl.EnterpriseMeta uses a pointer receiver for this method. Remove once that is fixed.
func (CheckID) StringHashMD5 ¶ added in v1.9.11
StringHashMD5 is used mainly to populate part of the filename of a check definition persisted on the local agent (deprecated in favor of StringHashSHA256) Kept around for backwards compatibility
func (CheckID) StringHashSHA256 ¶ added in v1.9.11
StringHashSHA256 is used mainly to populate part of the filename of a check definition persisted on the local agent
type CheckServiceNode ¶
type CheckServiceNode struct { Node *Node Service *NodeService Checks HealthChecks }
CheckServiceNode is used to provide the node, its service definition, as well as a HealthCheck that is associated.
func TestCheckNodeServiceWithNameInPeer ¶ added in v1.14.0
func TestCheckNodeServiceWithNameInPeer(t testing.T, name, peer, ip string, useHostname bool) CheckServiceNode
func (*CheckServiceNode) BestAddress ¶ added in v1.6.0
func (csn *CheckServiceNode) BestAddress(wan bool) (uint64, string, int)
func (*CheckServiceNode) CanRead ¶ added in v1.9.0
func (csn *CheckServiceNode) CanRead(authz acl.Authorizer) acl.EnforcementDecision
func (*CheckServiceNode) DeepCopy ¶ added in v1.13.7
func (o *CheckServiceNode) DeepCopy() *CheckServiceNode
DeepCopy generates a deep copy of *CheckServiceNode
type CheckServiceNodes ¶
type CheckServiceNodes []CheckServiceNode
func (CheckServiceNodes) DeepCopy ¶ added in v1.13.7
func (csns CheckServiceNodes) DeepCopy() CheckServiceNodes
func (CheckServiceNodes) Filter ¶
func (nodes CheckServiceNodes) Filter(onlyPassing bool) CheckServiceNodes
Filter removes nodes that are failing health checks (and any non-passing check if that option is selected). Note that this returns the filtered results AND modifies the receiver for performance.
func (CheckServiceNodes) FilterIgnore ¶ added in v1.0.7
func (nodes CheckServiceNodes) FilterIgnore(onlyPassing bool, ignoreCheckIDs []types.CheckID) CheckServiceNodes
FilterIgnore removes nodes that are failing health checks just like Filter. It also ignores the status of any check with an ID present in ignoreCheckIDs as if that check didn't exist. Note that this returns the filtered results AND modifies the receiver for performance.
func (CheckServiceNodes) ShallowClone ¶ added in v1.8.0
func (nodes CheckServiceNodes) ShallowClone() CheckServiceNodes
ShallowClone duplicates the slice and underlying array.
func (CheckServiceNodes) Shuffle ¶
func (nodes CheckServiceNodes) Shuffle()
Shuffle does an in-place random shuffle using the Fisher-Yates algorithm.
func (CheckServiceNodes) ToServiceDump ¶ added in v1.8.0
func (nodes CheckServiceNodes) ToServiceDump() ServiceDump
type CheckType ¶
type CheckType struct { CheckID types.CheckID Name string Status string Notes string ScriptArgs []string HTTP string H2PING string H2PingUseTLS bool Header map[string][]string Method string Body string DisableRedirects bool TCP string UDP string Interval time.Duration AliasNode string AliasService string DockerContainerID string Shell string GRPC string GRPCUseTLS bool OSService string TLSServerName string TLSSkipVerify bool Timeout time.Duration TTL time.Duration SuccessBeforePassing int FailuresBeforeWarning int FailuresBeforeCritical int // Definition fields used when exposing checks through a proxy ProxyHTTP string ProxyGRPC string // DeregisterCriticalServiceAfter, if >0, will cause the associated // service, if any, to be deregistered if this check is critical for // longer than this duration. DeregisterCriticalServiceAfter time.Duration OutputMaxSize int }
CheckType is used to create either the CheckMonitor or the CheckTTL. The following types are supported: Script, HTTP, TCP, Docker, TTL, GRPC, Alias, H2PING. Script, HTTP, Docker, TCP, GRPC, and H2PING all require Interval. Only one of the types may to be provided: TTL or Script/Interval or HTTP/Interval or TCP/Interval or Docker/Interval or GRPC/Interval or AliasService or H2PING/Interval. Since types like CheckHTTP and CheckGRPC derive from CheckType, there are helper conversion methods that do the reverse conversion. ie. checkHTTP.CheckType()
func (*CheckType) Empty ¶ added in v1.0.0
Empty checks if the CheckType has no fields defined. Empty checks parsed from json configs are filtered out
func (*CheckType) IsOSService ¶ added in v1.14.0
IsOSService checks if this is a WindowsService/systemd type
func (*CheckType) UnmarshalJSON ¶ added in v1.6.2
type CheckTypes ¶
type CheckTypes []*CheckType
type ChecksInStateRequest ¶
type ChecksInStateRequest struct { Datacenter string NodeMetaFilters map[string]string State string Source QuerySource PeerName string acl.EnterpriseMeta `mapstructure:",squash"` QueryOptions }
ChecksInStateRequest is used to query for checks in a state
func (*ChecksInStateRequest) RequestDatacenter ¶
func (r *ChecksInStateRequest) RequestDatacenter() string
type CommonCAProviderConfig ¶ added in v1.2.2
type CommonCAProviderConfig struct { LeafCertTTL time.Duration RootCertTTL time.Duration // IntermediateCertTTL is only valid in the primary datacenter, and determines // the duration that any signed intermediates are valid for. IntermediateCertTTL time.Duration SkipValidate bool // CSRMaxPerSecond is a rate limit on processing Connect Certificate Signing // Requests on the servers. It applies to all CA providers so can be used to // limit rate to an external CA too. 0 disables the rate limit. Defaults to 50 // which is low enough to prevent overload of a reasonably sized production // server while allowing a cluster with 1000 service instances to complete a // rotation in 20 seconds. For reference a quad-core 2017 MacBook pro can // process 100 signing RPCs a second while using less than half of one core. // For large clusters with powerful servers it's advisable to increase this // rate or to disable this limit and instead rely on CSRMaxConcurrent to only // consume a subset of the server's cores. CSRMaxPerSecond float32 // CSRMaxConcurrent is a limit on how many concurrent CSR signing requests // will be processed in parallel. New incoming signing requests will try for // `consul.csrSemaphoreWait` (currently 500ms) for a slot before being // rejected with a "rate limited" backpressure response. This effectively sets // how many CPU cores can be occupied by Connect CA signing activity and // should be a (small) subset of your server's available cores to allow other // tasks to complete when a barrage of CSRs come in (e.g. after a CA root // rotation). Setting to 0 disables the limit, attempting to sign certs // immediately in the RPC goroutine. This is 0 by default and CSRMaxPerSecond // is used. This is ignored if CSRMaxPerSecond is non-zero. CSRMaxConcurrent int // PrivateKeyType specifies which type of key the CA should generate. It only // applies when the provider is generating its own key and is ignored if the // provider already has a key or an external key is provided. Supported values // are "ec" or "rsa". "ec" is the default and will generate a NIST P-256 // Elliptic key. PrivateKeyType string // PrivateKeyBits specifies the number of bits the CA's private key should // use. For RSA, supported values are 2048 and 4096. For EC, supported values // are 224, 256, 384 and 521 and correspond to the NIST P-* curve of the same // name. As with PrivateKeyType this is only relevant whan the provier is // generating new CA keys (root or intermediate). PrivateKeyBits int }
func (CommonCAProviderConfig) Validate ¶ added in v1.2.2
func (c CommonCAProviderConfig) Validate() error
type CompiledDiscoveryChain ¶ added in v1.6.0
type CompiledDiscoveryChain struct { ServiceName string Namespace string // the namespace that the chain was compiled within Partition string // the partition that the chain was compiled within Datacenter string // the datacenter that the chain was compiled within // CustomizationHash is a unique hash of any data that affects the // compilation of the discovery chain other than config entries or the // name/namespace/datacenter evaluation criteria. // // If set, this value should be used to prefix/suffix any generated load // balancer data plane objects to avoid sharing customized and // non-customized versions. CustomizationHash string `json:",omitempty"` // Default indicates if this discovery chain is based on no // service-resolver, service-splitter, or service-router config entries. Default bool `json:",omitempty"` // Protocol is the overall protocol shared by everything in the chain. Protocol string `json:",omitempty"` // ServiceMeta is the metadata from the underlying service-defaults config // entry for the service named ServiceName. ServiceMeta map[string]string `json:",omitempty"` // StartNode is the first key into the Nodes map that should be followed // when walking the discovery chain. StartNode string `json:",omitempty"` // Nodes contains all nodes available for traversal in the chain keyed by a // unique name. You can walk this by starting with StartNode. // // NOTE: The names should be treated as opaque values and are only // guaranteed to be consistent within a single compilation. Nodes map[string]*DiscoveryGraphNode `json:",omitempty"` // Targets is a list of all targets used in this chain. Targets map[string]*DiscoveryTarget `json:",omitempty"` }
CompiledDiscoveryChain is the result from taking a set of related config entries for a single service's discovery chain and restructuring them into a form that is more usable for actual service discovery.
func (*CompiledDiscoveryChain) CompoundServiceName ¶ added in v1.10.0
func (c *CompiledDiscoveryChain) CompoundServiceName() ServiceName
func (*CompiledDiscoveryChain) DeepCopy ¶ added in v1.13.7
func (o *CompiledDiscoveryChain) DeepCopy() *CompiledDiscoveryChain
DeepCopy generates a deep copy of *CompiledDiscoveryChain
func (*CompiledDiscoveryChain) ID ¶ added in v1.10.0
func (c *CompiledDiscoveryChain) ID() string
ID returns an ID that encodes the service, namespace, partition, and datacenter. This ID allows us to compare a discovery chain target to the chain upstream itself.
type CompoundResponse ¶
type CompoundResponse interface { // Add adds a new response to the compound response Add(interface{}) // New returns an empty response object which can be passed around by // reference, and then passed to Add() later on. New() interface{} }
CompoundResponse is an interface for gathering multiple responses. It is used in cross-datacenter RPC calls where more than 1 datacenter is expected to reply.
type ConfigEntry ¶ added in v1.5.0
type ConfigEntry interface { GetKind() string GetName() string // This is called in the RPC endpoint and can apply defaults or limits. Normalize() error Validate() error // CanRead and CanWrite return whether or not the given Authorizer // has permission to read or write to the config entry, respectively. // TODO(acl-error-enhancements) This should be resolver.Result or similar but we have to wait until we move things to the acl package CanRead(acl.Authorizer) error CanWrite(acl.Authorizer) error GetMeta() map[string]string GetEnterpriseMeta() *acl.EnterpriseMeta GetRaftIndex() *RaftIndex }
ConfigEntry is the interface for centralized configuration stored in Raft. Currently only service-defaults and proxy-defaults are supported.
func DecodeConfigEntry ¶ added in v1.5.0
func DecodeConfigEntry(raw map[string]interface{}) (ConfigEntry, error)
DecodeConfigEntry can be used to decode a ConfigEntry from a raw map value. Currently its used in the HTTP API to decode ConfigEntry structs coming from JSON. Unlike some of our custom binary encodings we don't have a preamble including the kind so we will not have a concrete type to decode into. In those cases we must first decode into a map[string]interface{} and then call this function to decode into a concrete type.
There is an 'api' variation of this in command/config/write/config_write.go:newDecodeConfigEntry
func MakeConfigEntry ¶ added in v1.5.0
func MakeConfigEntry(kind, name string) (ConfigEntry, error)
type ConfigEntryDeleteResponse ¶ added in v1.11.0
type ConfigEntryDeleteResponse struct {
Deleted bool
}
type ConfigEntryGraphError ¶ added in v1.6.0
type ConfigEntryGraphError struct { // one of Message or Err should be set Message string Err error }
func (*ConfigEntryGraphError) Error ¶ added in v1.6.0
func (e *ConfigEntryGraphError) Error() string
type ConfigEntryListAllRequest ¶ added in v1.9.0
type ConfigEntryListAllRequest struct { // Kinds should always be set. For backwards compatibility with versions // prior to 1.9.0, if this is omitted or left empty it is assumed to mean // the subset of config entry kinds that were present in 1.8.0: // // proxy-defaults, service-defaults, service-resolver, service-splitter, // service-router, terminating-gateway, and ingress-gateway. Kinds []string Datacenter string acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` QueryOptions }
ConfigEntryListAllRequest is used when requesting to list all config entries of a set of kinds.
func (*ConfigEntryListAllRequest) RequestDatacenter ¶ added in v1.9.0
func (r *ConfigEntryListAllRequest) RequestDatacenter() string
type ConfigEntryOp ¶ added in v1.5.0
type ConfigEntryOp string
const ( ConfigEntryUpsert ConfigEntryOp = "upsert" ConfigEntryUpsertCAS ConfigEntryOp = "upsert-cas" ConfigEntryDelete ConfigEntryOp = "delete" ConfigEntryDeleteCAS ConfigEntryOp = "delete-cas" )
type ConfigEntryQuery ¶ added in v1.5.0
type ConfigEntryQuery struct { Kind string Name string Datacenter string acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` QueryOptions }
ConfigEntryQuery is used when requesting info about a config entry.
func (*ConfigEntryQuery) CacheInfo ¶ added in v1.6.0
func (r *ConfigEntryQuery) CacheInfo() cache.RequestInfo
func (*ConfigEntryQuery) RequestDatacenter ¶ added in v1.5.0
func (c *ConfigEntryQuery) RequestDatacenter() string
type ConfigEntryRequest ¶ added in v1.5.0
type ConfigEntryRequest struct { Op ConfigEntryOp Datacenter string Entry ConfigEntry WriteRequest }
ConfigEntryRequest is used when creating/updating/deleting a ConfigEntry.
func (*ConfigEntryRequest) MarshalBinary ¶ added in v1.5.0
func (c *ConfigEntryRequest) MarshalBinary() (data []byte, err error)
func (*ConfigEntryRequest) RequestDatacenter ¶ added in v1.5.0
func (c *ConfigEntryRequest) RequestDatacenter() string
func (*ConfigEntryRequest) UnmarshalBinary ¶ added in v1.5.0
func (c *ConfigEntryRequest) UnmarshalBinary(data []byte) error
type ConfigEntryResponse ¶ added in v1.5.0
type ConfigEntryResponse struct { Entry ConfigEntry QueryMeta }
ConfigEntryResponse returns a single ConfigEntry
func (*ConfigEntryResponse) MarshalBinary ¶ added in v1.5.0
func (c *ConfigEntryResponse) MarshalBinary() (data []byte, err error)
func (*ConfigEntryResponse) UnmarshalBinary ¶ added in v1.5.0
func (c *ConfigEntryResponse) UnmarshalBinary(data []byte) error
type ConnectAuthorizeRequest ¶ added in v1.2.0
type ConnectAuthorizeRequest struct { // Target is the name of the service that is being requested. Target string // EnterpriseMeta is the embedded Consul Enterprise specific metadata acl.EnterpriseMeta // ClientCertURI is a unique identifier for the requesting client. This // is currently the URI SAN from the TLS client certificate. // // ClientCertSerial is a colon-hex-encoded of the serial number for // the requesting client cert. This is used to check against revocation // lists. ClientCertURI string ClientCertSerial string }
ConnectAuthorizeRequest is the structure of a request to authorize a connection.
func (*ConnectAuthorizeRequest) TargetNamespace ¶ added in v1.7.0
func (req *ConnectAuthorizeRequest) TargetNamespace() string
func (*ConnectAuthorizeRequest) TargetPartition ¶ added in v1.11.0
func (req *ConnectAuthorizeRequest) TargetPartition() string
type ConnectProxyConfig ¶ added in v1.3.0
type ConnectProxyConfig struct { // DestinationServiceName is required and is the name of the service to accept // traffic for. DestinationServiceName string `json:",omitempty" alias:"destination_service_name"` // DestinationServiceID is optional and should only be specified for // "side-car" style proxies where the proxy is in front of just a single // instance of the service. It should be set to the service ID of the instance // being represented which must be registered to the same agent. It's valid to // provide a service ID that does not yet exist to avoid timing issues when // bootstrapping a service with a proxy. DestinationServiceID string `json:",omitempty" alias:"destination_service_id"` // LocalServiceAddress is the address of the local service instance. It is // optional and should only be specified for "side-car" style proxies. It will // default to 127.0.0.1 if the proxy is a "side-car" (DestinationServiceID is // set) but otherwise will be ignored. LocalServiceAddress string `json:",omitempty" alias:"local_service_address"` // LocalServicePort is the port of the local service instance. It is optional // and should only be specified for "side-car" style proxies. It will default // to the registered port for the instance if the proxy is a "side-car" // (DestinationServiceID is set) but otherwise will be ignored. LocalServicePort int `json:",omitempty" alias:"local_service_port"` // LocalServiceSocketPath is the socket of the local service instance. It is optional // and should only be specified for "side-car" style proxies. LocalServiceSocketPath string `json:",omitempty" alias:"local_service_socket_path"` // Mode represents how the proxy's inbound and upstream listeners are dialed. Mode ProxyMode // Config is the arbitrary configuration data provided with the proxy // registration. Config map[string]interface{} `json:",omitempty" bexpr:"-"` // Upstreams describes any upstream dependencies the proxy instance should // setup. Upstreams Upstreams `json:",omitempty"` // MeshGateway defines the mesh gateway configuration for this upstream MeshGateway MeshGatewayConfig `json:",omitempty" alias:"mesh_gateway"` // Expose defines whether checks or paths are exposed through the proxy Expose ExposeConfig `json:",omitempty"` // TransparentProxy defines configuration for when the proxy is in // transparent mode. TransparentProxy TransparentProxyConfig `json:",omitempty" alias:"transparent_proxy"` }
ConnectProxyConfig describes the configuration needed for any proxy managed or unmanaged. It describes a single logical service's listener and optionally upstreams and sidecar-related config for a single instance. To describe a centralized proxy that routed traffic for multiple services, a different one of these would be needed for each, sharing the same LogicalProxyID.
func TestConnectProxyConfig ¶ added in v1.3.0
func TestConnectProxyConfig(t testing.T) ConnectProxyConfig
TestConnectProxyConfig returns a ConnectProxyConfig representing a valid Connect proxy.
func (*ConnectProxyConfig) DeepCopy ¶ added in v1.13.7
func (o *ConnectProxyConfig) DeepCopy() *ConnectProxyConfig
DeepCopy generates a deep copy of *ConnectProxyConfig
func (*ConnectProxyConfig) MarshalJSON ¶ added in v1.6.0
func (c *ConnectProxyConfig) MarshalJSON() ([]byte, error)
func (*ConnectProxyConfig) ToAPI ¶ added in v1.3.0
func (c *ConnectProxyConfig) ToAPI() *api.AgentServiceConnectProxyConfig
ToAPI returns the api struct with the same fields. We have duplicates to avoid the api package depending on this one which imports a ton of Consul's core which you don't want if you are just trying to use our client in your app.
func (*ConnectProxyConfig) UnmarshalJSON ¶ added in v1.6.2
func (t *ConnectProxyConfig) UnmarshalJSON(data []byte) (err error)
type ConsulCAProviderConfig ¶ added in v1.2.0
type ConsulCAProviderConfig struct { CommonCAProviderConfig `mapstructure:",squash"` PrivateKey string RootCert string // DisableCrossSigning is really only useful in test code to use the built in // provider while exercising logic that depends on the CA provider ability to // cross sign. We don't document this config field publicly or make any // attempt to parse it from snake case unlike other fields here. DisableCrossSigning bool }
func (*ConsulCAProviderConfig) Validate ¶ added in v1.7.0
func (c *ConsulCAProviderConfig) Validate() error
type CookieConfig ¶ added in v1.9.0
type CookieConfig struct { // Generates a session cookie with no expiration. Session bool `json:",omitempty"` // TTL for generated cookies. Cannot be specified for session cookies. TTL time.Duration `json:",omitempty"` // The path to set for the cookie Path string `json:",omitempty"` }
CookieConfig contains configuration for the "cookie" hash policy type. This is specified to have Envoy generate a cookie for a client on its first request.
type Coordinate ¶
type Coordinate struct { Node string Segment string Partition string `json:",omitempty"` // TODO(partitions): fully thread this needle Coord *coordinate.Coordinate }
Coordinate stores a node name with its associated network coordinate.
func (*Coordinate) FillAuthzContext ¶ added in v1.11.0
func (_ *Coordinate) FillAuthzContext(_ *acl.AuthorizerContext)
func (*Coordinate) GetEnterpriseMeta ¶ added in v1.11.0
func (c *Coordinate) GetEnterpriseMeta() *acl.EnterpriseMeta
func (*Coordinate) PartitionOrDefault ¶ added in v1.11.0
func (c *Coordinate) PartitionOrDefault() string
type CoordinateUpdateRequest ¶
type CoordinateUpdateRequest struct { Datacenter string Node string Segment string Coord *coordinate.Coordinate acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` WriteRequest }
CoordinateUpdateRequest is used to update the network coordinate of a given node.
func (*CoordinateUpdateRequest) RequestDatacenter ¶
func (c *CoordinateUpdateRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given update request.
type Coordinates ¶
type Coordinates []*Coordinate
type DCSpecificRequest ¶
type DCSpecificRequest struct { Datacenter string NodeMetaFilters map[string]string Source QuerySource PeerName string acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` QueryOptions }
DCSpecificRequest is used to query about a specific DC
func (*DCSpecificRequest) CacheInfo ¶ added in v1.2.0
func (r *DCSpecificRequest) CacheInfo() cache.RequestInfo
func (*DCSpecificRequest) CacheMinIndex ¶ added in v1.2.0
func (r *DCSpecificRequest) CacheMinIndex() uint64
func (*DCSpecificRequest) RequestDatacenter ¶
func (r *DCSpecificRequest) RequestDatacenter() string
type DatacenterIndexedCheckServiceNodes ¶ added in v1.8.0
type DatacenterIndexedCheckServiceNodes struct { DatacenterNodes map[string]CheckServiceNodes QueryMeta }
type DatacenterMap ¶
type DatacenterMap struct { Datacenter string AreaID types.AreaID Coordinates Coordinates }
DatacenterMap is used to represent a list of nodes with their raw coordinates, associated with a datacenter. Coordinates are only compatible between nodes in the same area.
type DatacentersRequest ¶ added in v1.6.0
type DatacentersRequest struct {
QueryOptions
}
func (*DatacentersRequest) CacheInfo ¶ added in v1.6.0
func (r *DatacentersRequest) CacheInfo() cache.RequestInfo
type DeregisterRequest ¶
type DeregisterRequest struct { Datacenter string Node string ServiceID string CheckID types.CheckID PeerName string acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` WriteRequest }
DeregisterRequest is used for the Catalog.Deregister endpoint to deregister a service, check, or node (only one should be provided). If ServiceID or CheckID are not provided, the entire node is deregistered. If a ServiceID is provided, any associated Checks with that service are also deregistered.
func (*DeregisterRequest) RequestDatacenter ¶
func (r *DeregisterRequest) RequestDatacenter() string
func (*DeregisterRequest) UnmarshalJSON ¶ added in v1.7.0
func (r *DeregisterRequest) UnmarshalJSON(data []byte) error
type DestinationConfig ¶ added in v1.13.0
type DestinationConfig struct { // Addresses of the endpoint; hostname or IP Addresses []string `json:",omitempty"` // Port allowed within this endpoint Port int `json:",omitempty"` }
DestinationConfig represents a virtual service, i.e. one that is external to Consul
type DirEntries ¶
type DirEntries []*DirEntry
type DirEntry ¶
type DirEntry struct { LockIndex uint64 Key string Flags uint64 Value []byte Session string `json:",omitempty"` acl.EnterpriseMeta `bexpr:"-"` RaftIndex }
DirEntry is used to represent a directory entry. This is used for values in our Key-Value store.
func (*DirEntry) FillAuthzContext ¶ added in v1.7.0
func (_ *DirEntry) FillAuthzContext(_ *acl.AuthorizerContext)
FillAuthzContext stub
type DiscoveryChainRequest ¶ added in v1.6.0
type DiscoveryChainRequest struct { Name string EvaluateInDatacenter string EvaluateInNamespace string EvaluateInPartition string // OverrideMeshGateway allows for the mesh gateway setting to be overridden // for any resolver in the compiled chain. OverrideMeshGateway MeshGatewayConfig // OverrideProtocol allows for the final protocol for the chain to be // altered. // // - If the chain ordinarily would be TCP and an L7 protocol is passed here // the chain will not include Routers or Splitters. // // - If the chain ordinarily would be L7 and TCP is passed here the chain // will not include Routers or Splitters. OverrideProtocol string // OverrideConnectTimeout allows for the ConnectTimeout setting to be // overridden for any resolver in the compiled chain. OverrideConnectTimeout time.Duration Datacenter string // where to route the RPC QueryOptions }
DiscoveryChainRequest is used when requesting the discovery chain for a service.
func (*DiscoveryChainRequest) CacheInfo ¶ added in v1.6.0
func (r *DiscoveryChainRequest) CacheInfo() cache.RequestInfo
func (*DiscoveryChainRequest) GetEnterpriseMeta ¶ added in v1.7.0
func (req *DiscoveryChainRequest) GetEnterpriseMeta() *acl.EnterpriseMeta
GetEnterpriseMeta is used to synthesize the EnterpriseMeta struct from fields in the DiscoveryChainRequest
func (*DiscoveryChainRequest) RequestDatacenter ¶ added in v1.6.0
func (r *DiscoveryChainRequest) RequestDatacenter() string
func (*DiscoveryChainRequest) WithEnterpriseMeta ¶ added in v1.7.0
func (req *DiscoveryChainRequest) WithEnterpriseMeta(_ *acl.EnterpriseMeta)
WithEnterpriseMeta will populate the corresponding fields in the DiscoveryChainRequest from the EnterpriseMeta struct
type DiscoveryChainResponse ¶ added in v1.6.0
type DiscoveryChainResponse struct { Chain *CompiledDiscoveryChain QueryMeta }
type DiscoveryFailover ¶ added in v1.6.0
type DiscoveryFailover struct {
Targets []string `json:",omitempty"`
}
compiled form of ServiceResolverFailover
func (*DiscoveryFailover) DeepCopy ¶ added in v1.13.7
func (o *DiscoveryFailover) DeepCopy() *DiscoveryFailover
DeepCopy generates a deep copy of *DiscoveryFailover
type DiscoveryGraphNode ¶ added in v1.6.0
type DiscoveryGraphNode struct { Type string Name string // this is NOT necessarily a service // fields for Type==router Routes []*DiscoveryRoute `json:",omitempty"` // fields for Type==splitter Splits []*DiscoverySplit `json:",omitempty"` // fields for Type==resolver Resolver *DiscoveryResolver `json:",omitempty"` // shared by Type==resolver || Type==splitter LoadBalancer *LoadBalancer `json:",omitempty"` }
DiscoveryGraphNode is a single node in the compiled discovery chain.
func (*DiscoveryGraphNode) DeepCopy ¶ added in v1.13.7
func (o *DiscoveryGraphNode) DeepCopy() *DiscoveryGraphNode
DeepCopy generates a deep copy of *DiscoveryGraphNode
func (*DiscoveryGraphNode) IsResolver ¶ added in v1.6.0
func (s *DiscoveryGraphNode) IsResolver() bool
func (*DiscoveryGraphNode) IsRouter ¶ added in v1.6.0
func (s *DiscoveryGraphNode) IsRouter() bool
func (*DiscoveryGraphNode) IsSplitter ¶ added in v1.6.0
func (s *DiscoveryGraphNode) IsSplitter() bool
func (*DiscoveryGraphNode) MapKey ¶ added in v1.6.0
func (s *DiscoveryGraphNode) MapKey() string
type DiscoveryResolver ¶ added in v1.6.0
type DiscoveryResolver struct { Default bool `json:",omitempty"` ConnectTimeout time.Duration `json:",omitempty"` Target string `json:",omitempty"` Failover *DiscoveryFailover `json:",omitempty"` }
compiled form of ServiceResolverConfigEntry
func (*DiscoveryResolver) DeepCopy ¶ added in v1.13.7
func (o *DiscoveryResolver) DeepCopy() *DiscoveryResolver
DeepCopy generates a deep copy of *DiscoveryResolver
func (*DiscoveryResolver) MarshalJSON ¶ added in v1.6.0
func (r *DiscoveryResolver) MarshalJSON() ([]byte, error)
func (*DiscoveryResolver) UnmarshalJSON ¶ added in v1.6.0
func (r *DiscoveryResolver) UnmarshalJSON(data []byte) error
type DiscoveryRoute ¶ added in v1.6.0
type DiscoveryRoute struct { Definition *ServiceRoute `json:",omitempty"` NextNode string `json:",omitempty"` }
compiled form of ServiceRoute
func (*DiscoveryRoute) DeepCopy ¶ added in v1.13.7
func (o *DiscoveryRoute) DeepCopy() *DiscoveryRoute
DeepCopy generates a deep copy of *DiscoveryRoute
type DiscoverySplit ¶ added in v1.6.0
type DiscoverySplit struct { Definition *ServiceSplit `json:",omitempty"` // Weight is not necessarily a duplicate of Definition.Weight since when // multiple splits are compiled down to a single set of splits the effective // weight of a split leg might not be the same as in the original definition. // Proxies should use this compiled weight. The Definition is provided above // for any other significant configuration that the proxy might need to apply // to that leg of the split. Weight float32 `json:",omitempty"` NextNode string `json:",omitempty"` }
compiled form of ServiceSplit
func (*DiscoverySplit) DeepCopy ¶ added in v1.13.7
func (o *DiscoverySplit) DeepCopy() *DiscoverySplit
DeepCopy generates a deep copy of *DiscoverySplit
type DiscoveryTarget ¶ added in v1.6.0
type DiscoveryTarget struct { // ID is a unique identifier for referring to this target in a compiled // chain. It should be treated as a per-compile opaque string. ID string `json:",omitempty"` Service string `json:",omitempty"` ServiceSubset string `json:",omitempty"` Namespace string `json:",omitempty"` Partition string `json:",omitempty"` Datacenter string `json:",omitempty"` Peer string `json:",omitempty"` MeshGateway MeshGatewayConfig `json:",omitempty"` Subset ServiceResolverSubset `json:",omitempty"` TransparentProxy TransparentProxyConfig `json:",omitempty"` ConnectTimeout time.Duration `json:",omitempty"` // External is true if this target is outside of this consul cluster. External bool `json:",omitempty"` // SNI is the sni field to use when connecting to this set of endpoints // over TLS. SNI string `json:",omitempty"` // Name is the unique name for this target for use when generating load // balancer objects. This has a structure similar to SNI, but will not be // affected by SNI customizations. Name string `json:",omitempty"` }
DiscoveryTarget represents all of the inputs necessary to use a resolver config entry to execute a catalog query to generate a list of service instances during discovery.
func NewDiscoveryTarget ¶ added in v1.6.0
func NewDiscoveryTarget(opts DiscoveryTargetOpts) *DiscoveryTarget
func (*DiscoveryTarget) GetEnterpriseMetadata ¶ added in v1.7.0
func (t *DiscoveryTarget) GetEnterpriseMetadata() *acl.EnterpriseMeta
func (*DiscoveryTarget) MarshalJSON ¶ added in v1.10.10
func (t *DiscoveryTarget) MarshalJSON() ([]byte, error)
func (*DiscoveryTarget) ServiceID ¶ added in v1.7.0
func (t *DiscoveryTarget) ServiceID() ServiceID
func (*DiscoveryTarget) ServiceName ¶ added in v1.13.0
func (t *DiscoveryTarget) ServiceName() ServiceName
func (*DiscoveryTarget) String ¶ added in v1.6.0
func (t *DiscoveryTarget) String() string
func (*DiscoveryTarget) ToDiscoveryTargetOpts ¶ added in v1.14.0
func (t *DiscoveryTarget) ToDiscoveryTargetOpts() DiscoveryTargetOpts
func (*DiscoveryTarget) UnmarshalJSON ¶ added in v1.10.10
func (t *DiscoveryTarget) UnmarshalJSON(data []byte) error
type DiscoveryTargetOpts ¶ added in v1.14.0
type EventFireRequest ¶
type EventFireRequest struct { Datacenter string Name string Payload []byte // Not using WriteRequest so that any server can process // the request. It is a bit unusual... QueryOptions }
EventFireRequest is used to ask a server to fire a Serf event. It is a bit odd, since it doesn't depend on the catalog or leader. Any node can respond, so it's not quite like a standard write request. This is used only internally.
func (*EventFireRequest) RequestDatacenter ¶
func (r *EventFireRequest) RequestDatacenter() string
type EventFireResponse ¶
type EventFireResponse struct {
QueryMeta
}
EventFireResponse is used to respond to a fire request.
type ExpandedTokenInfo ¶ added in v1.12.0
type ExportedDiscoveryChainInfo ¶ added in v1.13.0
type ExportedDiscoveryChainInfo struct { // Protocol is the overall protocol associated with this discovery chain. Protocol string // TCPTargets is the list of discovery chain targets that are reachable by // this discovery chain. // // NOTE: this is only populated if Protocol=tcp. TCPTargets []*DiscoveryTarget }
NOTE: this is not serialized via msgpack so it can be changed without concern.
func (ExportedDiscoveryChainInfo) Equal ¶ added in v1.13.0
func (i ExportedDiscoveryChainInfo) Equal(o ExportedDiscoveryChainInfo) bool
type ExportedService ¶ added in v1.11.0
type ExportedService struct { // Name is the name of the service to be exported. Name string // Namespace is the namespace to export the service from. Namespace string `json:",omitempty"` // Consumers is a list of downstream consumers of the service to be exported. Consumers []ServiceConsumer `json:",omitempty"` }
ExportedService manages the exporting of a service in the local partition to other partitions.
type ExportedServiceList ¶ added in v1.13.0
type ExportedServiceList struct { // Services is a list of exported services that apply to both standard // service discovery and service mesh. Services []ServiceName // DiscoChains is a map of service names to their exported discovery chains // for service mesh purposes as defined in the exported-services // configuration entry. DiscoChains map[ServiceName]ExportedDiscoveryChainInfo }
NOTE: this is not serialized via msgpack so it can be changed without concern.
func (*ExportedServiceList) ListAllDiscoveryChains ¶ added in v1.13.0
func (list *ExportedServiceList) ListAllDiscoveryChains() map[ServiceName]ExportedDiscoveryChainInfo
ListAllDiscoveryChains returns all discovery chains (union of Services and DiscoChains).
type ExportedServicesConfigEntry ¶ added in v1.11.0
type ExportedServicesConfigEntry struct { Name string // Services is a list of services to be exported and the list of partitions // to expose them to. Services []ExportedService `json:",omitempty"` Meta map[string]string `json:",omitempty"` acl.EnterpriseMeta `hcl:",squash" mapstructure:",squash"` RaftIndex }
ExportedServicesConfigEntry is the top-level struct for exporting a service to be exposed across other admin partitions.
func (*ExportedServicesConfigEntry) CanRead ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) CanRead(authz acl.Authorizer) error
func (*ExportedServicesConfigEntry) CanWrite ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) CanWrite(authz acl.Authorizer) error
func (*ExportedServicesConfigEntry) Clone ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) Clone() *ExportedServicesConfigEntry
func (*ExportedServicesConfigEntry) GetEnterpriseMeta ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) GetEnterpriseMeta() *acl.EnterpriseMeta
func (*ExportedServicesConfigEntry) GetKind ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) GetKind() string
func (*ExportedServicesConfigEntry) GetMeta ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) GetMeta() map[string]string
func (*ExportedServicesConfigEntry) GetName ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) GetName() string
func (*ExportedServicesConfigEntry) GetRaftIndex ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) GetRaftIndex() *RaftIndex
func (*ExportedServicesConfigEntry) MarshalJSON ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) MarshalJSON() ([]byte, error)
MarshalJSON adds the Kind field so that the JSON can be decoded back into the correct type. This method is implemented on the structs type (as apposed to the api type) because that is what the API currently uses to return a response.
func (*ExportedServicesConfigEntry) Normalize ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) Normalize() error
func (*ExportedServicesConfigEntry) ToMap ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) ToMap() map[string]map[string][]string
func (*ExportedServicesConfigEntry) Validate ¶ added in v1.11.0
func (e *ExportedServicesConfigEntry) Validate() error
type ExposeConfig ¶ added in v1.6.2
type ExposeConfig struct { // Checks defines whether paths associated with Consul checks will be exposed. // This flag triggers exposing all HTTP and GRPC check paths registered for the service. Checks bool `json:",omitempty"` // Paths is the list of paths exposed through the proxy. Paths []ExposePath `json:",omitempty"` }
ExposeConfig describes HTTP paths to expose through Envoy outside of Connect. Users can expose individual paths and/or all HTTP/GRPC paths for checks.
func (ExposeConfig) Clone ¶ added in v1.7.9
func (e ExposeConfig) Clone() ExposeConfig
func (*ExposeConfig) DeepCopy ¶ added in v1.13.7
func (o *ExposeConfig) DeepCopy() *ExposeConfig
DeepCopy generates a deep copy of *ExposeConfig
func (*ExposeConfig) Finalize ¶ added in v1.6.2
func (e *ExposeConfig) Finalize()
Finalize validates ExposeConfig and sets default values
func (*ExposeConfig) ToAPI ¶ added in v1.6.2
func (e *ExposeConfig) ToAPI() api.ExposeConfig
type ExposePath ¶ added in v1.6.2
type ExposePath struct { // ListenerPort defines the port of the proxy's listener for exposed paths. ListenerPort int `json:",omitempty" alias:"listener_port"` // Path is the path to expose through the proxy, ie. "/metrics." Path string `json:",omitempty"` // LocalPathPort is the port that the service is listening on for the given path. LocalPathPort int `json:",omitempty" alias:"local_path_port"` // Protocol describes the upstream's service protocol. // Valid values are "http" and "http2", defaults to "http" Protocol string `json:",omitempty"` // ParsedFromCheck is set if this path was parsed from a registered check ParsedFromCheck bool `json:",omitempty" alias:"parsed_from_check"` }
func (*ExposePath) ToAPI ¶ added in v1.6.2
func (p *ExposePath) ToAPI() api.ExposePath
func (*ExposePath) UnmarshalJSON ¶ added in v1.6.2
func (t *ExposePath) UnmarshalJSON(data []byte) (err error)
type FederationState ¶ added in v1.8.0
type FederationState struct { // Datacenter is the name of the datacenter. Datacenter string // MeshGateways is a snapshot of the catalog state for all mesh gateways in // this datacenter. MeshGateways CheckServiceNodes `json:",omitempty"` // UpdatedAt keeps track of when this record was modified. UpdatedAt time.Time // PrimaryModifyIndex is the ModifyIndex of the original data as it exists // in the primary datacenter. PrimaryModifyIndex uint64 // RaftIndex is local raft data. RaftIndex }
FederationState defines some WAN federation related state that should be cross-shared between all datacenters joined on the WAN. One record exists per datacenter.
func (*FederationState) IsSame ¶ added in v1.8.0
func (c *FederationState) IsSame(other *FederationState) bool
IsSame is used to compare two federation states for the purposes of anti-entropy.
type FederationStateOp ¶ added in v1.8.0
type FederationStateOp string
FederationStateOp is the operation for a request related to federation states.
const ( FederationStateUpsert FederationStateOp = "upsert" FederationStateDelete FederationStateOp = "delete" )
type FederationStateQuery ¶ added in v1.8.0
type FederationStateQuery struct { // Datacenter is the target this request is intended for. Datacenter string // TargetDatacenter is the name of a datacenter to fetch the federation state for. TargetDatacenter string // Options for queries QueryOptions }
FederationStateQuery is used to query federation states.
func (*FederationStateQuery) RequestDatacenter ¶ added in v1.8.0
func (c *FederationStateQuery) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type FederationStateRequest ¶ added in v1.8.0
type FederationStateRequest struct { // Datacenter is the target for this request. Datacenter string // Op is the type of operation being requested. Op FederationStateOp // State is the federation state to upsert or in the case of a delete // only the State.Datacenter field should be set. State *FederationState // WriteRequest is a common struct containing ACL tokens and other // write-related common elements for requests. WriteRequest }
FederationStateRequest is used to upsert and delete federation states.
func (*FederationStateRequest) RequestDatacenter ¶ added in v1.8.0
func (c *FederationStateRequest) RequestDatacenter() string
RequestDatacenter returns the datacenter for a given request.
type FederationStateResponse ¶ added in v1.8.0
type FederationStateResponse struct { State *FederationState QueryMeta }
FederationStateResponse is the response to a FederationStateQuery request.
type FederationStates ¶ added in v1.8.0
type FederationStates []*FederationState
FederationStates is a list of federation states.
func (FederationStates) Sort ¶ added in v1.8.0
func (listings FederationStates) Sort()
Sort sorts federation states by their datacenter.
type GatewayService ¶ added in v1.8.0
type GatewayService struct { Gateway ServiceName Service ServiceName GatewayKind ServiceKind Port int `json:",omitempty"` Protocol string `json:",omitempty"` Hosts []string `json:",omitempty"` CAFile string `json:",omitempty"` CertFile string `json:",omitempty"` KeyFile string `json:",omitempty"` SNI string `json:",omitempty"` FromWildcard bool `json:",omitempty"` ServiceKind GatewayServiceKind `json:",omitempty"` RaftIndex }
GatewayService is used to associate gateways with their linked services.
func (*GatewayService) Addresses ¶ added in v1.8.1
func (g *GatewayService) Addresses(defaultHosts []string) []string
func (*GatewayService) Clone ¶ added in v1.8.0
func (g *GatewayService) Clone() *GatewayService
func (*GatewayService) DeepCopy ¶ added in v1.13.7
func (o *GatewayService) DeepCopy() *GatewayService
DeepCopy generates a deep copy of *GatewayService
func (*GatewayService) IsSame ¶ added in v1.8.0
func (g *GatewayService) IsSame(o *GatewayService) bool
type GatewayServiceKind ¶ added in v1.13.0
type GatewayServiceKind string
const ( GatewayServiceKindUnknown GatewayServiceKind = "" GatewayServiceKindDestination GatewayServiceKind = "destination" GatewayServiceKindService GatewayServiceKind = "service" )
type GatewayServiceTLSConfig ¶ added in v1.11.0
type GatewayServiceTLSConfig struct { // SDS allows configuring TLS certificate from an SDS service. SDS *GatewayTLSSDSConfig `json:",omitempty"` }
func (*GatewayServiceTLSConfig) DeepCopy ¶ added in v1.13.7
func (o *GatewayServiceTLSConfig) DeepCopy() *GatewayServiceTLSConfig