Documentation ¶
Index ¶
- type CacheHook
- type Callbacks
- func (cb *Callbacks) OnDeltaStreamClosed(id int64, node *corev3.Node)
- func (cb *Callbacks) OnDeltaStreamOpen(_ context.Context, id int64, typ string) error
- func (cb *Callbacks) OnFetchRequest(_ context.Context, req *discovery.DiscoveryRequest) error
- func (cb *Callbacks) OnFetchResponse(req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)
- func (cb *Callbacks) OnStreamClosed(id int64, node *corev3.Node)
- func (cb *Callbacks) OnStreamDeltaRequest(id int64, req *discovery.DeltaDiscoveryRequest) error
- func (cb *Callbacks) OnStreamDeltaResponse(id int64, req *discovery.DeltaDiscoveryRequest, ...)
- func (cb *Callbacks) OnStreamOpen(_ context.Context, id int64, typ string) error
- func (cb *Callbacks) OnStreamRequest(id int64, req *discovery.DiscoveryRequest) error
- func (cb *Callbacks) OnStreamResponse(_ context.Context, id int64, req *discovery.DiscoveryRequest, ...)
- type NamespaceResourcesContainer
- type NamespaceStatusInfo
- type NamespaceUpdateResourcesRequest
- func (r *NamespaceUpdateResourcesRequest) AddNormals(xdsType resource.XDSType, res []types.Resource)
- func (r *NamespaceUpdateResourcesRequest) AddTls(tlsMode resource.TLSMode, xdsType resource.XDSType, res []types.Resource)
- func (r *NamespaceUpdateResourcesRequest) RemoveNormal(xdsType resource.XDSType, res []types.Resource)
- func (r *NamespaceUpdateResourcesRequest) RemoveTls(tlsMode resource.TLSMode, xdsType resource.XDSType, res []types.Resource)
- type NoReadyXdsResponse
- type ResourceCache
- func (sc *ResourceCache) CleanEnvoyNodeCache(node *corev3.Node) error
- func (sc *ResourceCache) CreateDeltaWatch(request *cachev3.DeltaRequest, state stream.StreamState, ...) func()
- func (sc *ResourceCache) CreateWatch(request *cachev3.Request, streamState stream.StreamState, ...) func()
- func (sc *ResourceCache) Fetch(ctx context.Context, request *cachev3.Request) (cachev3.Response, error)
- func (sc *ResourceCache) GetResources(typeUrl resource.XDSType, ns, nodeId string) map[string]types.Resource
- func (sc *ResourceCache) GetStatusKeys() []string
- func (sc *ResourceCache) UpdateResources(ctx context.Context, req *UpdateResourcesRequest) error
- type ResourcesContainer
- type TypeResources
- type UpdateResourcesRequest
- func (r *UpdateResourcesRequest) AddNormalNamespaces(namespace string, xdsType resource.XDSType, res []types.Resource)
- func (r *UpdateResourcesRequest) AddTlsNamespaces(namespace string, tls resource.TLSMode, xdsType resource.XDSType, ...)
- func (r *UpdateResourcesRequest) RemoveNormalNamespaces(namespace string, tls resource.TLSMode, xdsType resource.XDSType, ...)
- func (r *UpdateResourcesRequest) RemoveTlsNamespaces(namespace string, tls resource.TLSMode, xdsType resource.XDSType, ...)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CacheHook ¶
type CacheHook interface { // OnCreateWatch OnCreateWatch(request *cachev3.Request, streamState stream.StreamState, value chan cachev3.Response) // OnCreateDeltaWatch OnCreateDeltaWatch(request *cachev3.DeltaRequest, state stream.StreamState, value chan cachev3.DeltaResponse) // OnFetch OnFetch(ctx context.Context, request *cachev3.Request) }
CacheHook .
type Callbacks ¶
type Callbacks struct {
// contains filtered or unexported fields
}
func NewCallback ¶
func NewCallback(cacheMgr *ResourceCache, nodeMgr *resource.XDSNodeManager) *Callbacks
func (*Callbacks) OnDeltaStreamClosed ¶
func (*Callbacks) OnDeltaStreamOpen ¶
func (*Callbacks) OnFetchRequest ¶
func (*Callbacks) OnFetchResponse ¶
func (cb *Callbacks) OnFetchResponse(req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)
func (*Callbacks) OnStreamDeltaRequest ¶
func (cb *Callbacks) OnStreamDeltaRequest(id int64, req *discovery.DeltaDiscoveryRequest) error
func (*Callbacks) OnStreamDeltaResponse ¶
func (cb *Callbacks) OnStreamDeltaResponse(id int64, req *discovery.DeltaDiscoveryRequest, resp *discovery.DeltaDiscoveryResponse)
func (*Callbacks) OnStreamOpen ¶
func (*Callbacks) OnStreamRequest ¶
func (cb *Callbacks) OnStreamRequest(id int64, req *discovery.DiscoveryRequest) error
func (*Callbacks) OnStreamResponse ¶
func (cb *Callbacks) OnStreamResponse(_ context.Context, id int64, req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)
type NamespaceResourcesContainer ¶
type NamespaceResourcesContainer struct {
// contains filtered or unexported fields
}
type NamespaceStatusInfo ¶
type NamespaceStatusInfo struct {
// contains filtered or unexported fields
}
type NamespaceUpdateResourcesRequest ¶
type NamespaceUpdateResourcesRequest struct { // NormalResources CDS/EDS/RDS/VHDS 相关的资源 NormalResources map[resource.XDSType]*TypeResources // DemandResources . DemandResources map[resource.XDSType]*TypeResources // TlsResources . TlsResources map[resource.TLSMode]map[resource.XDSType]*TypeResources }
NamespaceUpdateResourcesRequest 记录命名空间下的待更新的 XDS 资源
func NewNamespaceUpdateResourcesRequest ¶
func NewNamespaceUpdateResourcesRequest() *NamespaceUpdateResourcesRequest
func (*NamespaceUpdateResourcesRequest) AddNormals ¶
func (r *NamespaceUpdateResourcesRequest) AddNormals(xdsType resource.XDSType, res []types.Resource)
func (*NamespaceUpdateResourcesRequest) RemoveNormal ¶
func (r *NamespaceUpdateResourcesRequest) RemoveNormal(xdsType resource.XDSType, res []types.Resource)
type NoReadyXdsResponse ¶
type NoReadyXdsResponse struct {
cachev3.DeltaResponse
}
func (*NoReadyXdsResponse) GetDeltaDiscoveryResponse ¶
func (r *NoReadyXdsResponse) GetDeltaDiscoveryResponse() (*discovery.DeltaDiscoveryResponse, error)
func (*NoReadyXdsResponse) GetDeltaRequest ¶
func (r *NoReadyXdsResponse) GetDeltaRequest() *discovery.DeltaDiscoveryRequest
type ResourceCache ¶
type ResourceCache struct {
// contains filtered or unexported fields
}
func NewResourceCache ¶
func NewResourceCache(hook CacheHook) *ResourceCache
NewResourceCache initializes a simple sc.
ADS flag forces a delay in responding to streaming requests until all resources are explicitly named in the request. This avoids the problem of a partial request over a single stream for a subset of resources which would require generating a fresh version for acknowledgement. ADS flag requires snapshot consistency. For non-ADS case (and fetch), multiple partial requests are sent across multiple streams and re-using the snapshot version is OK.
func (*ResourceCache) CleanEnvoyNodeCache ¶
func (sc *ResourceCache) CleanEnvoyNodeCache(node *corev3.Node) error
CleanEnvoyNodeCache 清理 Envoy Node 强关联的 XDS 规则数据
func (*ResourceCache) CreateDeltaWatch ¶
func (sc *ResourceCache) CreateDeltaWatch(request *cachev3.DeltaRequest, state stream.StreamState, value chan cachev3.DeltaResponse) func()
CreateDeltaWatch returns a watch for a delta xDS request which implements the Simple Snapshotsc.
func (*ResourceCache) CreateWatch ¶
func (sc *ResourceCache) CreateWatch(request *cachev3.Request, streamState stream.StreamState, value chan cachev3.Response) func()
CreateWatch returns a watch for an xDS request. A nil function may be returned if an error occurs.
func (*ResourceCache) Fetch ¶
func (sc *ResourceCache) Fetch(ctx context.Context, request *cachev3.Request) (cachev3.Response, error)
Fetch implements the cache fetch function. Fetch is called on multiple streams, so responding to individual names with the same version works.
func (*ResourceCache) GetResources ¶
func (sc *ResourceCache) GetResources(typeUrl resource.XDSType, ns, nodeId string) map[string]types.Resource
GetResources .
func (*ResourceCache) GetStatusKeys ¶
func (sc *ResourceCache) GetStatusKeys() []string
GetStatusKeys retrieves all node IDs in the status map.
func (*ResourceCache) UpdateResources ¶
func (sc *ResourceCache) UpdateResources(ctx context.Context, req *UpdateResourcesRequest) error
UpdateResources updates a snapshot for a node.
type ResourcesContainer ¶
type ResourcesContainer struct { // GlobalVersion 当前整体 typeUrl 下的所有 resource 的全局共用版本,主要是用于非 Delta 场景下的 Watch GlobalVersion string // Resources name -> resource Resources map[string]types.Resource // VersionMap holds the current hash map of all resources in the snapshot. // This field should remain nil until it is used, at which point should be // instantiated by calling ConstructVersionMap(). // VersionMap is only to be used with delta xDS. VersionMap map[string]string }
ResourcesContainer
func (*ResourcesContainer) ConstructVersionMap ¶
func (s *ResourcesContainer) ConstructVersionMap(modified []string) error
ConstructVersionMap will construct a version map based on the current state of a snapshot
type TypeResources ¶
type TypeResources struct { // UpsertResources 新增/更新的 XDS resource 信息 UpsertResources map[string]types.Resource // RemoveResources 准备删除的 XDS resource 信息 RemoveResources map[string]struct{} }
TypeResources 记录每一类 xDS 的更新/删除资源记录
func NewTypeResources ¶
func NewTypeResources() *TypeResources
func (*TypeResources) AppendRemoves ¶
func (r *TypeResources) AppendRemoves(resources map[string]types.Resource)
func (*TypeResources) AppendUpserts ¶
func (r *TypeResources) AppendUpserts(resources map[string]types.Resource)
type UpdateResourcesRequest ¶
type UpdateResourcesRequest struct { // Lds LDS 相关的资源 Lds map[string]map[string]types.Resource // NamespaceResources . NamespaceResources map[string]*NamespaceUpdateResourcesRequest // contains filtered or unexported fields }
UpdateResourcesRequest 更新 XDS 资源请求
func NewUpdateResourcesRequest ¶
func NewUpdateResourcesRequest() *UpdateResourcesRequest
func (*UpdateResourcesRequest) AddNormalNamespaces ¶
func (*UpdateResourcesRequest) AddTlsNamespaces ¶
func (r *UpdateResourcesRequest) AddTlsNamespaces(namespace string, tls resource.TLSMode, xdsType resource.XDSType, res []types.Resource)
AddTlsNamespaces .
func (*UpdateResourcesRequest) RemoveNormalNamespaces ¶
func (*UpdateResourcesRequest) RemoveTlsNamespaces ¶
func (r *UpdateResourcesRequest) RemoveTlsNamespaces(namespace string, tls resource.TLSMode, xdsType resource.XDSType, res []types.Resource)
RemoveTlsNamespaces .