Architecture
Artifact Hub Shim separates catalog ingestion from catalog consumption. The API builds an immutable in-memory snapshot from packaged and Git-backed sources, then serves that snapshot through interfaces expected by Tekton and the ACP DevOps UI. An optional extension handles admission-time visibility checks and TaskRun template rendering.
TOC
Core ComponentsCatalog SourcesImmutable Catalog SnapshotCompatibility APIExtension WebhooksExtra-Resource SynchronizationSecurity BoundariesAvailability and StorageCore Components
Catalog Sources
The built-in catalog is delivered as an image with the plugin, so it remains
available without internet access. Administrators can add Git-backed sources by
creating labeled repository ConfigMap resources. A source definition selects
the Git URL, revision, catalog paths, optional credentials, and visibility
scope.
The source loader materializes each source independently. An invalid or temporarily unavailable source is reported without preventing valid sources from being indexed. For configuration details, see Configure Custom Git Repositories.
Immutable Catalog Snapshot
The index normalizes supported Tekton resources, detects conflicting package identities, resolves catalog aliases, selects the latest version, and applies disabled-package rules. A completed refresh atomically replaces the active snapshot, so consumers do not observe a partially updated catalog.
Compatibility API
The API Deployment exposes three groups of endpoints:
- Artifact Hub-compatible package and search endpoints used by the Tekton hub resolver.
- Hub UI-compatible list, detail, and manifest endpoints used by ACP DevOps.
- Health, readiness, and snapshot-status endpoints used for operations.
The in-cluster Service is the integration endpoint for Tekton and Pipelines as Code. A separately rendered Ingress provides the ACP DevOps Hub UI route.
Extension Webhooks
The extension is deployed separately from the read API and can provide:
- validation of namespace, project, or allowlist catalog visibility for Tekton
ResolutionRequestobjects; - rendering of catalog-provided mail and execution-overview templates into
TaskRunresources.
The extension can be disabled independently if its admission behavior must be rolled back. Disabling it does not stop the catalog read API.
Extra-Resource Synchronization
Catalog repositories can include explicitly labeled extra ConfigMap
resources such as tool-image definitions and templates. A leader-elected sync
controller writes only to configured namespaces, records ownership, avoids
adopting unrelated objects, and prunes obsolete managed objects unless they
carry the Artifact Hub Shim keep annotation.
Security Boundaries
- UI-compatible endpoints authenticate the request and authorize
getorlistaccess to the virtualhub.tekton.dev/resourcesresource. - Native resolver requests have no end-user credential. The extension performs admission-time visibility checks for local Tekton resolution when enabled.
- Git credentials are read from Kubernetes
Secretresources and are not returned by catalog APIs. - Chart RBAC limits extra-resource writes to explicitly allowed namespaces.
For detailed authentication and RBAC settings, see Chart Configuration.
Availability and Storage
Read replicas operate independently from the active immutable snapshot. A
multi-replica deployment must use pod-local emptyDir runtime storage. PVC
storage is supported for a single replica when retaining repository checkouts
or payload content across pod recreation is useful. For supported combinations,
see High Availability.