reconcilers

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateOnlyMutator

func CreateOnlyMutator(_, _ client.Object) (bool, error)

Types

type BaseReconciler

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

func NewBaseReconciler

func NewBaseReconciler(
	client client.Client, scheme *runtime.Scheme, apiClientReader client.Reader,
	logger logr.Logger, recorder record.EventRecorder) *BaseReconciler

func (*BaseReconciler) APIClientReader

func (b *BaseReconciler) APIClientReader() client.Reader

APIClientReader return a client that directly reads objects from the Kubernetes APIServer

func (*BaseReconciler) AddFinalizer added in v0.3.0

func (b *BaseReconciler) AddFinalizer(ctx context.Context, obj client.Object, finalizer string) error

func (*BaseReconciler) Client

func (b *BaseReconciler) Client() client.Client

Client returns a split client that reads objects from the cache and writes to the Kubernetes APIServer

func (*BaseReconciler) CreateResource

func (b *BaseReconciler) CreateResource(ctx context.Context, obj client.Object) error

func (*BaseReconciler) DeleteResource

func (b *BaseReconciler) DeleteResource(ctx context.Context, obj client.Object, options ...client.DeleteOption) error

func (*BaseReconciler) EnsureOwnerReference

func (b *BaseReconciler) EnsureOwnerReference(owner, obj client.Object) (bool, error)

EnsureOwnerReference sets owner as a Controller OwnerReference on owned returns boolean to notify when the object has been updated

func (*BaseReconciler) EventRecorder

func (b *BaseReconciler) EventRecorder() record.EventRecorder

func (*BaseReconciler) GetResource

func (b *BaseReconciler) GetResource(ctx context.Context, objKey types.NamespacedName, obj client.Object) error

func (*BaseReconciler) Logger

func (b *BaseReconciler) Logger() logr.Logger

func (*BaseReconciler) Reconcile

func (*BaseReconciler) ReconcileResource

func (b *BaseReconciler) ReconcileResource(ctx context.Context, obj, desired client.Object, mutateFn MutateFn) error

ReconcileResource attempts to mutate the existing state in order to match the desired state. The object's desired state must be reconciled with the existing state inside the passed in callback MutateFn.

obj: Object of the same type as the 'desired' object.

Used to read the resource from the kubernetes cluster.
Could be zero-valued initialized object.

desired: Object representing the desired state

It returns an error.

func (*BaseReconciler) RemoveFinalizer added in v0.3.0

func (b *BaseReconciler) RemoveFinalizer(ctx context.Context, obj client.Object, finalizer string) error

func (*BaseReconciler) Scheme

func (b *BaseReconciler) Scheme() *runtime.Scheme

func (*BaseReconciler) SetOwnerReference

func (b *BaseReconciler) SetOwnerReference(owner, obj client.Object) error

SetOwnerReference sets owner as a Controller OwnerReference on owned

func (*BaseReconciler) UpdateResource

func (b *BaseReconciler) UpdateResource(ctx context.Context, obj client.Object) error

func (*BaseReconciler) UpdateResourceStatus

func (b *BaseReconciler) UpdateResourceStatus(ctx context.Context, obj client.Object) error

type GatewayDiff added in v0.3.0

type GatewayDiff struct {
	GatewaysMissingPolicyRef     []common.GatewayWrapper
	GatewaysWithValidPolicyRef   []common.GatewayWrapper
	GatewaysWithInvalidPolicyRef []common.GatewayWrapper
}

type MutateFn

type MutateFn func(existing, desired client.Object) (bool, error)

MutateFn is a function which mutates the existing object into it's desired state.

type TargetRefReconciler added in v0.2.0

type TargetRefReconciler struct {
	*BaseReconciler
}

func (*TargetRefReconciler) ComputeGatewayDiffs added in v0.3.0

func (r *TargetRefReconciler) ComputeGatewayDiffs(ctx context.Context, policy common.KuadrantPolicy, targetNetworkObject client.Object, policyRefsConfig common.PolicyRefsConfig) (*GatewayDiff, error)

Returns: * list of gateways to which the policy applies for the first time * list of gateways to which the policy no longer applies * list of gateways to which the policy still applies

func (*TargetRefReconciler) DeleteTargetBackReference added in v0.2.0

func (r *TargetRefReconciler) DeleteTargetBackReference(ctx context.Context, targetNetworkObject client.Object, annotationName string) error

func (*TargetRefReconciler) FetchAcceptedGatewayHTTPRoutes added in v0.4.0

func (r *TargetRefReconciler) FetchAcceptedGatewayHTTPRoutes(ctx context.Context, gwKey client.ObjectKey) (routes []gatewayapiv1.HTTPRoute)

FetchAcceptedGatewayHTTPRoutes returns the list of HTTPRoutes that have been accepted as children of a gateway.

func (*TargetRefReconciler) FetchValidGateway added in v0.2.0

func (r *TargetRefReconciler) FetchValidGateway(ctx context.Context, key client.ObjectKey) (*gatewayapiv1.Gateway, error)

func (*TargetRefReconciler) FetchValidHTTPRoute added in v0.2.0

func (r *TargetRefReconciler) FetchValidHTTPRoute(ctx context.Context, key client.ObjectKey) (*gatewayapiv1.HTTPRoute, error)

func (*TargetRefReconciler) FetchValidTargetRef added in v0.2.0

func (r *TargetRefReconciler) FetchValidTargetRef(ctx context.Context, targetRef gatewayapiv1alpha2.PolicyTargetReference, defaultNs string) (client.Object, error)

FetchValidTargetRef fetches the target reference object and checks the status is valid

func (*TargetRefReconciler) GetAllGatewayPolicyRefs added in v0.4.0

func (r *TargetRefReconciler) GetAllGatewayPolicyRefs(ctx context.Context, policyRefsConfig common.PolicyRefsConfig) ([]client.ObjectKey, error)

GetAllGatewayPolicyRefs returns the policy refs of a given policy kind from all gateways managed by kuadrant. The gateway objects are handled in order of creation to mitigate the risk of non-idenpotent reconciliations based on this list of policy refs; nevertheless, the actual order of returned policy refs depends on the order the policy refs appear in the annotations of the gateways. Only gateways with status programmed are considered.

func (*TargetRefReconciler) Reconcile added in v0.2.0

func (*TargetRefReconciler) ReconcileGatewayPolicyReferences added in v0.3.0

func (r *TargetRefReconciler) ReconcileGatewayPolicyReferences(ctx context.Context, policy client.Object, gwDiffObj *GatewayDiff) error

ReconcileGatewayPolicyReferences updates the annotations in the Gateway resources that list to all the policies that directly or indirectly target the gateway, based upon a pre-computed gateway diff object

func (*TargetRefReconciler) ReconcileTargetBackReference added in v0.2.0

func (r *TargetRefReconciler) ReconcileTargetBackReference(ctx context.Context, policyKey client.ObjectKey, targetNetworkObject client.Object, annotationName string) error

ReconcileTargetBackReference adds policy key in annotations of the target object

func (*TargetRefReconciler) TargetedGatewayKeys added in v0.2.0

func (r *TargetRefReconciler) TargetedGatewayKeys(_ context.Context, targetNetworkObject client.Object) []client.ObjectKey

TargetedGatewayKeys returns the list of gateways that are being referenced from the target.

Jump to

Keyboard shortcuts

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