Documentation ¶
Overview ¶
Package downloader provides a library for downloading charts.
This package contains various tools for downloading charts from repository servers, and then storing them in Helm-specific directory structures. This library contains many functions that depend on a specific filesystem layout.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNoOwnerRepo = errors.New("could not find a repo containing the given URL")
ErrNoOwnerRepo indicates that a given chart URL can't be found in any repos.
Functions ¶
func VerifyChart ¶
func VerifyChart(path, keyring string) (*provenance.Verification, error)
VerifyChart takes a path to a chart archive and a keyring, and verifies the chart.
It assumes that a chart archive file is accompanied by a provenance file whose name is the archive file name plus the ".prov" extension.
Types ¶
type ChartDownloader ¶
type ChartDownloader struct { // Out is the location to write warning and info messages. Out io.Writer // Verify indicates what verification strategy to use. Verify VerificationStrategy // Keyring is the keyring file used for verification. Keyring string // Getter collection for the operation Getters getter.Providers // Options provide parameters to be passed along to the Getter being initialized. Options []getter.Option RegistryClient *registry.Client RepositoryConfig string RepositoryCache string }
ChartDownloader handles downloading a chart.
It is capable of performing verifications on charts as well.
func (*ChartDownloader) DownloadTo ¶
func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, *provenance.Verification, error)
DownloadTo retrieves a chart. Depending on the settings, it may also download a provenance file.
If Verify is set to VerifyNever, the verification will be nil. If Verify is set to VerifyIfPossible, this will return a verification (or nil on failure), and print a warning on failure. If Verify is set to VerifyAlways, this will return a verification or an error if the verification fails. If Verify is set to VerifyLater, this will download the prov file (if it exists), but not verify it.
For VerifyNever and VerifyIfPossible, the Verification may be empty.
Returns a string path to the location where the file was downloaded and a verification (if provenance was verified), or an error if something bad happened.
func (*ChartDownloader) ResolveChartVersion ¶
func (c *ChartDownloader) ResolveChartVersion(ref, version string) (*url.URL, error)
ResolveChartVersion resolves a chart reference to a URL.
It returns the URL and sets the ChartDownloader's Options that can fetch the URL using the appropriate Getter.
A reference may be an HTTP URL, an oci reference URL, a 'reponame/chartname' reference, or a local path.
A version is a SemVer string (1.2.3-beta.1+f334a6789).
- For fully qualified URLs, the version will be ignored (since URLs aren't versioned)
- For a chart reference
- If version is non-empty, this will return the URL for that version
- If version is empty, this will return the URL for the latest version
- If no version can be found, an error is returned
type ErrRepoNotFound ¶
type ErrRepoNotFound struct {
Repos []string
}
ErrRepoNotFound indicates that chart repositories can't be found in local repo cache. The value of Repos is missing repos.
func (ErrRepoNotFound) Error ¶
func (e ErrRepoNotFound) Error() string
Error implements the error interface.
type Manager ¶
type Manager struct { // Out is used to print warnings and notifications. Out io.Writer // ChartPath is the path to the unpacked base chart upon which this operates. ChartPath string // Verification indicates whether the chart should be verified. Verify VerificationStrategy // Debug is the global "--debug" flag Debug bool // Keyring is the key ring file. Keyring string // SkipUpdate indicates that the repository should not be updated first. SkipUpdate bool // Getter collection for the operation Getters []getter.Provider RegistryClient *registry.Client RepositoryConfig string RepositoryCache string }
Manager handles the lifecycle of fetching, resolving, and storing dependencies.
func (*Manager) Build ¶
Build rebuilds a local charts directory from a lockfile.
If the lockfile is not present, this will run a Manager.Update()
If SkipUpdate is set, this will not update the repository.
func (*Manager) Update ¶
Update updates a local charts directory.
It first reads the Chart.yaml file, and then attempts to negotiate versions based on that. It will download the versions from remote chart repositories unless SkipUpdate is true.
func (*Manager) UpdateRepositories ¶
UpdateRepositories updates all of the local repos to the latest.
type VerificationStrategy ¶
type VerificationStrategy int
VerificationStrategy describes a strategy for determining whether to verify a chart.
const ( // VerifyNever will skip all verification of a chart. VerifyNever VerificationStrategy = iota // VerifyIfPossible will attempt a verification, it will not error if verification // data is missing. But it will not stop processing if verification fails. VerifyIfPossible // VerifyAlways will always attempt a verification, and will fail if the // verification fails. VerifyAlways // VerifyLater will fetch verification data, but not do any verification. // This is to accommodate the case where another step of the process will // perform verification. VerifyLater )