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 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) DownloadToChart ¶
DownloadToChart 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. @date: 2022-03-30 @author: allen
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, 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 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 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) DownloadAllChart ¶
DownloadAllChart takes a list of dependencies and downloads them into charts/
It will delete versions of the chart that exist on disk and might cause a conflict. @date: 2022-03-30 @author: allen
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 )