Help us shape the future of Go! Take the 2026 Go Developer Survey

framework

package
v1.15.5 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2026 License: Apache-2.0 Imports: 27 Imported by: 8

Documentation

Overview

Package framework contains the upgraded remote resolution framework. It is equivalent to `pkg/resolution/resolver/framework`. This was necessary to ensure backwards compatibility with the existing framework.

This package is subject to further refactoring and changes.

Index

Constants

View Source
const FakeUrl string = "fake://url"

Variables

This section is empty.

Functions

func NewController

func NewController(ctx context.Context, resolver Resolver, modifiers ...ReconcilerModifier) func(context.Context, configmap.Watcher) *controller.Impl

NewController returns a knative controller for a Tekton Resolver. This sets up a lot of the boilerplate that individual resolvers shouldn't need to be concerned with since it's common to all of them.

Types

type FakeResolver

type FakeResolver framework.FakeResolver

FakeResolver implements a framework.Resolver that can fetch pre-configured strings based on a parameter value, or return resolution attempts with a configured error.

func (*FakeResolver) GetName

func (r *FakeResolver) GetName(_ context.Context) string

GetName returns the string name that the fake resolver should be associated with.

func (*FakeResolver) GetResolutionTimeout

func (r *FakeResolver) GetResolutionTimeout(ctx context.Context, defaultTimeout time.Duration, params map[string]string) (time.Duration, error)

GetResolutionTimeout returns the configured timeout for the reconciler, or the default time.Duration if not configured.

func (*FakeResolver) GetSelector

func (r *FakeResolver) GetSelector(_ context.Context) map[string]string

GetSelector returns the labels that resource requests are required to have for the fake resolver to process them.

func (*FakeResolver) Initialize

func (r *FakeResolver) Initialize(ctx context.Context) error

Initialize performs any setup required by the fake resolver.

func (*FakeResolver) Resolve

Resolve performs the work of fetching a file from the fake resolver given a map of parameters.

func (*FakeResolver) Validate

Validate returns an error if the given parameter map is not valid for a resource request targeting the fake resolver.

type Reconciler

type Reconciler struct {
	// Implements reconciler.LeaderAware
	reconciler.LeaderAwareFuncs

	// Clock is used by the reconciler to track the passage of time
	// and can be overridden for tests.
	Clock clock.PassiveClock
	// contains filtered or unexported fields
}

Reconciler handles ResolutionRequest objects, performs functionality common to all resolvers and delegates resolver-specific actions to its embedded type-specific Resolver object.

func (*Reconciler) MarkFailed

func (r *Reconciler) MarkFailed(ctx context.Context, rr *v1beta1.ResolutionRequest, resolutionErr error) error

MarkFailed updates a ResolutionRequest as having failed. It returns errors that occur during the update process or nil if the update appeared to succeed.

func (*Reconciler) OnError

func (r *Reconciler) OnError(ctx context.Context, rr *v1beta1.ResolutionRequest, err error) error

OnError is used to handle any situation where a ResolutionRequest has reached a terminal situation that cannot be recovered from.

func (*Reconciler) Reconcile

func (r *Reconciler) Reconcile(ctx context.Context, key string) error

Reconcile receives the string key of a ResolutionRequest object, looks it up, checks it for common errors, and then delegates resolver-specific functionality to the reconciler's embedded type-specific resolver. Any errors that occur during validation or resolution are handled by updating or failing the ResolutionRequest.

type ReconcilerModifier

type ReconcilerModifier = func(reconciler *Reconciler)

ReconcilerModifier is a func that can access and modify a reconciler in the moments before a resolver is started. It allows for things like injecting a test clock.

type Resolver

type Resolver interface {
	// Initialize is called at the moment the resolver controller is
	// instantiated and is a good place to setup things like
	// resource listers.
	Initialize(ctx context.Context) error

	// GetName should give back the name of the resolver. E.g. "Git"
	GetName(ctx context.Context) string

	// GetSelector returns the labels that are used to direct resolution
	// requests to this resolver.
	GetSelector(ctx context.Context) map[string]string

	// Validate is given the ressolution request spec
	// should return an error if the resolver cannot resolve it.
	Validate(ctx context.Context, req *v1beta1.ResolutionRequestSpec) error

	// ResolveRequest receives the resolution request spec
	// and returns the resolved data along with any annotations
	// to include in the response. If resolution fails then an error
	// should be returned instead. If a resolution.Error
	// is returned then its Reason and Message are used as part of the
	// response to the request. If an error is returned which is transient,
	// such as a kubernetes timeout or too many requests error, the
	// ResolutionRequest will not be updated with a failed status.
	// See github.com/tektoncd/pipeline/pkg/resolution/common/errors.go for
	// the definition of a transient error.
	Resolve(ctx context.Context, req *v1beta1.ResolutionRequestSpec) (framework.ResolvedResource, error)
}

Resolver is the interface to implement for type-specific resource resolution. It fetches resources from a given type of remote location and returns their content along with any associated annotations.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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