state

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChangeProcessor

type ChangeProcessor interface {
	// CaptureUpsertChange captures an upsert change to a resource.
	// It panics if the resource is of unsupported type or if the passed Gateway is different from the one this
	// ChangeProcessor was created for.
	CaptureUpsertChange(obj client.Object)
	// CaptureDeleteChange captures a delete change to a resource.
	// The method panics if the resource is of unsupported type or if the passed Gateway is different from the one
	// this ChangeProcessor was created for.
	CaptureDeleteChange(resourceType client.Object, nsname types.NamespacedName)
	// Process processes any captured changes and produces an internal representation of the Gateway configuration and
	// the status information about the processed resources.
	// If no changes were captured, the changed return argument will be false and both the configuration and statuses
	// will be empty.
	Process(ctx context.Context) (changed bool, conf dataplane.Configuration, statuses Statuses)
}

ChangeProcessor processes the changes to resources producing the internal representation of the Gateway configuration. It only supports one GatewayClass resource.

type ChangeProcessorConfig

type ChangeProcessorConfig struct {
	// SecretMemoryManager is the secret memory manager.
	SecretMemoryManager secrets.SecretDiskMemoryManager
	// ServiceResolver resolves Services to Endpoints.
	ServiceResolver resolver.ServiceResolver
	// RelationshipCapturer captures relationships between Kubernetes API resources and Gateway API resources.
	RelationshipCapturer relationship.Capturer
	// Validators validate resources according to data-plane specific rules.
	Validators validation.Validators
	// Logger is the logger for this Change Processor.
	Logger logr.Logger
	// EventRecorder records events for Kubernetes resources.
	EventRecorder record.EventRecorder
	// Scheme is the a Kubernetes scheme.
	Scheme *runtime.Scheme
	// GatewayCtlrName is the name of the Gateway controller.
	GatewayCtlrName string
	// GatewayClassName is the name of the GatewayClass resource.
	GatewayClassName string
}

ChangeProcessorConfig holds configuration parameters for ChangeProcessorImpl.

type ChangeProcessorImpl

type ChangeProcessorImpl struct {
	// contains filtered or unexported fields
}

ChangeProcessorImpl is an implementation of ChangeProcessor.

func NewChangeProcessorImpl

func NewChangeProcessorImpl(cfg ChangeProcessorConfig) *ChangeProcessorImpl

NewChangeProcessorImpl creates a new ChangeProcessorImpl for the Gateway resource with the configured namespace name.

func (*ChangeProcessorImpl) CaptureDeleteChange

func (c *ChangeProcessorImpl) CaptureDeleteChange(resourceType client.Object, nsname types.NamespacedName)

func (*ChangeProcessorImpl) CaptureUpsertChange

func (c *ChangeProcessorImpl) CaptureUpsertChange(obj client.Object)

func (*ChangeProcessorImpl) Process

func (c *ChangeProcessorImpl) Process(
	ctx context.Context,
) (changed bool, conf dataplane.Configuration, statuses Statuses)

type GatewayClassStatus

type GatewayClassStatus struct {
	Conditions         []conditions.Condition
	ObservedGeneration int64
}

GatewayClassStatus holds status-related information about the GatewayClass resource.

type GatewayStatus

type GatewayStatus struct {
	// ListenerStatuses holds the statuses of listeners defined on the Gateway.
	ListenerStatuses ListenerStatuses
	// NsName is the namespaced name of the winning Gateway resource.
	NsName types.NamespacedName
	// ObservedGeneration is the generation of the resource that was processed.
	ObservedGeneration int64
}

GatewayStatus holds the status of the winning Gateway resource.

type HTTPRouteStatus

type HTTPRouteStatus struct {
	// ParentStatuses holds the statuses for parentRefs of the HTTPRoute.
	ParentStatuses []ParentStatus
	// ObservedGeneration is the generation of the resource that was processed.
	ObservedGeneration int64
}

HTTPRouteStatus holds the status-related information about an HTTPRoute resource.

type HTTPRouteStatuses

type HTTPRouteStatuses map[types.NamespacedName]HTTPRouteStatus

HTTPRouteStatuses holds the statuses of HTTPRoutes where the key is the namespaced name of an HTTPRoute.

type IgnoredGatewayStatus

type IgnoredGatewayStatus struct {
	ObservedGeneration int64
}

IgnoredGatewayStatus holds the status of an ignored Gateway resource.

type IgnoredGatewayStatuses

type IgnoredGatewayStatuses map[types.NamespacedName]IgnoredGatewayStatus

IgnoredGatewayStatuses holds the statuses of the ignored Gateway resources.

type ListenerStatus

type ListenerStatus struct {
	// Conditions is the list of conditions for this listener.
	Conditions []conditions.Condition
	// AttachedRoutes is the number of routes attached to the listener.
	AttachedRoutes int32
}

ListenerStatus holds the status-related information about a listener in the Gateway resource.

type ListenerStatuses

type ListenerStatuses map[string]ListenerStatus

ListenerStatuses holds the statuses of listeners where the key is the name of a listener in the Gateway resource.

type ParentStatus

type ParentStatus struct {
	// GatewayNsName is the Namespaced name of the Gateway, which the parentRef references.
	GatewayNsName types.NamespacedName
	// SectionName is the SectionName of the parentRef.
	SectionName *v1beta1.SectionName
	// Conditions is the list of conditions that are relevant to the parentRef.
	Conditions []conditions.Condition
}

ParentStatus holds status-related information related to how the HTTPRoute binds to a specific parentRef.

type Statuses

type Statuses struct {
	GatewayClassStatus     *GatewayClassStatus
	GatewayStatus          *GatewayStatus
	IgnoredGatewayStatuses IgnoredGatewayStatuses
	HTTPRouteStatuses      HTTPRouteStatuses
}

Statuses holds the status-related information about Gateway API resources.

type Updater added in v0.3.0

type Updater interface {
	Upsert(obj client.Object)
	Delete(objType client.Object, nsname types.NamespacedName)
}

Updater updates the cluster state.

Directories

Path Synopsis
Package dataplane translates Graph representation of the cluster state into an intermediate representation of data plane configuration.
Package dataplane translates Graph representation of the cluster state into an intermediate representation of data plane configuration.
Package graph translates the cluster state (Gateway API and Kubernetes resources) into a graph-like representation, for which: - Resources are validated.
Package graph translates the cluster state (Gateway API and Kubernetes resources) into a graph-like representation, for which: - Resources are validated.
relationshipfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
resolverfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
secretsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
Code generated by counterfeiter.
validationfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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