What are Resolvers?
A Resolver is a program that runs in a Kubernetes cluster alongside Tekton Pipelines and “resolves” requests for Tasks and Pipelines from remote locations. For example, if you submit a PipelineRun that needs a Pipeline YAML stored in a git repo, a Resolver fetches the YAML file from git and returns it to Tekton Pipelines. This pattern extends beyond just git, allowing integration with other version control systems, cloud buckets, or storage systems without modifying Tekton Pipelines itself.Available Resolvers
Git Resolver
Fetch resources from git repositories using anonymous or authenticated access
Hub Resolver
Fetch resources from Artifact Hub or Tekton Hub catalogs
Bundle Resolver
Fetch resources from OCI bundles stored in container registries
Cluster Resolver
Fetch resources from within the same Kubernetes cluster
HTTP Resolver
Fetch resources from HTTP/HTTPS URLs
Custom Resolver
Build your own resolver for custom storage backends
Requirements
- A cluster running Tekton Pipeline v0.41.0 or later
- Built-in remote resolvers installed
- Beta features enabled
- Appropriate feature flags enabled in the
resolvers-feature-flagsConfigMap
Enabling Resolvers
Resolvers are enabled by setting the appropriate feature flag in theresolvers-feature-flags ConfigMap in the tekton-pipelines-resolvers namespace:
Default Resolver Type
You can configure a default resolver type using thedefault-resolver-type field in the config-defaults ConfigMap (alpha feature):
Resolver Cache Configuration
The resolver cache improves performance by caching resolved resources for bundle and git resolvers. Configure caching globally using theresolver-cache-config ConfigMap:
max-size
Maximum number of cache entries (default: 1000)
default-ttl
Time-to-live for cache entries (default: 5m)
How Resolution Works
When you reference a remote resource in a PipelineRun or TaskRun:- Tekton creates a
ResolutionRequestwith the resolver type and parameters - The appropriate resolver receives the request based on label matching
- The resolver fetches the resource from the remote location
- The resolver returns the resource data to Tekton Pipelines
- Tekton executes the Pipeline or Task
ResolutionRequest Status
Each resolved resource includes metadata inResolutionRequest.Status.RefSource:
- url/uri: The source location of the resource
- digest: Hash of the resource content for verification
- entrypoint: Path or name of the specific resource
Getting Started
To start using resolvers, choose the resolver that matches your needs:- Use Git Resolver for resources in version control
- Use Hub Resolver for community-maintained catalog resources
- Use Bundle Resolver for OCI-bundled resources
- Use Cluster Resolver for resources in the same cluster
- Use HTTP Resolver for resources at HTTP/HTTPS URLs
- Create a Custom Resolver for proprietary storage systems
Remote Resolution was initially created as TEP-060 and migrated into the core Pipelines project in #4710.