Documentation
¶
Overview ¶
Package helmchart implements the source.Fetcher for KindHelmChart — the single authoritative path that fetches a Helm chart (by name + version) from its backing HelmRepository. OCI registries are pulled via the OCI fetcher; classic HTTP repositories via helm's getter. The HelmRelease controller synthesizes a HelmChart per (chart, version, repo) and the source controller fetches it here, so every chart pull gains retry, the content-addressed Store, and depwait uniformly with every other source kind.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Synthesize ¶
func Synthesize(r *manifest.HelmRepository, chartName, version string) *manifest.HelmChartSource
Synthesize builds an in-memory HelmChart for a single chart served by a HelmRepository. The HelmRelease controller registers it so the source controller fetches the chart here; the chart name+version live on the consuming HelmRelease, not the HelmRepository, so there's no standalone CR. The id is syntheticChartName(...): distinct charts/versions from the same repo get distinct Store ids.
Types ¶
type Fetcher ¶
type Fetcher struct {
// contains filtered or unexported fields
}
Fetcher resolves a HelmChart into an on-disk chart artifact.
func New ¶
func New(secrets source.SecretGetter, repos RepoLookup, oci ociFetcher, cache *source.Cache, layout cacheroot.Layout) (*Fetcher, error)
New constructs a HelmChart fetcher. cache is the shared content-addressed store HTTP chart tarballs land in (so they dedup with the rest of the cache and the GC sweep sees them); layout supplies the helm tmp dir for index/TLS temp files.
func (*Fetcher) Fetch ¶
func (f *Fetcher) Fetch(ctx context.Context, hc *manifest.HelmChartSource) (*store.SourceArtifact, error)
Fetch implements source.TypedFetcher[*manifest.HelmChartSource]. It resolves the backing HelmRepository, then pulls the chart: OCI repos via the OCI fetcher (a synthesized OCIRepository), HTTP repos via the getter.
type RepoLookup ¶
type RepoLookup func(namespace, name string) *manifest.HelmRepository
RepoLookup resolves a HelmRepository CR by (namespace, name). The orchestrator wires it against the canonical Store.