cache

package
v1.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2024 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 3 more Imports: 15 Imported by: 0

Documentation

Index

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 (cb *Callbacks) OnDeltaStreamClosed(id int64, node *corev3.Node)

func (*Callbacks) OnDeltaStreamOpen

func (cb *Callbacks) OnDeltaStreamOpen(_ context.Context, id int64, typ string) error

func (*Callbacks) OnFetchRequest

func (cb *Callbacks) OnFetchRequest(_ context.Context, req *discovery.DiscoveryRequest) error

func (*Callbacks) OnFetchResponse

func (cb *Callbacks) OnFetchResponse(req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)

func (*Callbacks) OnStreamClosed

func (cb *Callbacks) OnStreamClosed(id int64, node *corev3.Node)

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 (cb *Callbacks) OnStreamOpen(_ context.Context, id int64, typ string) error

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) AddTls

func (r *NamespaceUpdateResourcesRequest) AddTls(tlsMode resource.TLSMode, xdsType resource.XDSType, res []types.Resource)

func (*NamespaceUpdateResourcesRequest) RemoveNormal

func (r *NamespaceUpdateResourcesRequest) RemoveNormal(xdsType resource.XDSType, res []types.Resource)

func (*NamespaceUpdateResourcesRequest) RemoveTls

func (r *NamespaceUpdateResourcesRequest) RemoveTls(tlsMode resource.TLSMode, 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 (r *UpdateResourcesRequest) AddNormalNamespaces(namespace string,
	xdsType resource.XDSType, res []types.Resource)

func (*UpdateResourcesRequest) AddTlsNamespaces

func (r *UpdateResourcesRequest) AddTlsNamespaces(namespace string, tls resource.TLSMode,
	xdsType resource.XDSType, res []types.Resource)

AddTlsNamespaces .

func (*UpdateResourcesRequest) RemoveNormalNamespaces

func (r *UpdateResourcesRequest) RemoveNormalNamespaces(namespace string, tls resource.TLSMode,
	xdsType resource.XDSType, res []types.Resource)

func (*UpdateResourcesRequest) RemoveTlsNamespaces

func (r *UpdateResourcesRequest) RemoveTlsNamespaces(namespace string, tls resource.TLSMode,
	xdsType resource.XDSType, res []types.Resource)

RemoveTlsNamespaces .

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL