mirror of
https://github.com/fluxcd/flux2.git
synced 2026-02-23 16:11:48 +00:00
Merge 07741c1c18 into 7b551b0d35
This commit is contained in:
commit
6b62c6c92c
1 changed files with 16 additions and 6 deletions
|
|
@ -33,17 +33,20 @@ var pullArtifactCmd = &cobra.Command{
|
||||||
Use: "artifact",
|
Use: "artifact",
|
||||||
Short: "Pull artifact",
|
Short: "Pull artifact",
|
||||||
Long: withPreviewNote(`The pull artifact command downloads and extracts the OCI artifact content to the given path.
|
Long: withPreviewNote(`The pull artifact command downloads and extracts the OCI artifact content to the given path.
|
||||||
The command can read the credentials from '~/.docker/config.json' but they can also be passed with --creds. It can also login to a supported provider with the --provider flag.`),
|
The command can read the credentials from '~/.docker/config.json' but they can also be passed with --creds. It can also login to a supported provider with the --provider flag.
|
||||||
|
|
||||||
|
You can also pull a specific artifact layer by it's index with the --layer-index flag.`),
|
||||||
Example: ` # Pull an OCI artifact created by flux from GHCR
|
Example: ` # Pull an OCI artifact created by flux from GHCR
|
||||||
flux pull artifact oci://ghcr.io/org/manifests/app:v0.0.1 --output ./path/to/local/manifests
|
flux pull artifact oci://ghcr.io/org/manifests/app:v0.0.1 --output ./path/to/local/manifests --layer-index 1
|
||||||
`,
|
`,
|
||||||
RunE: pullArtifactCmdRun,
|
RunE: pullArtifactCmdRun,
|
||||||
}
|
}
|
||||||
|
|
||||||
type pullArtifactFlags struct {
|
type pullArtifactFlags struct {
|
||||||
output string
|
output string
|
||||||
creds string
|
creds string
|
||||||
provider flags.SourceOCIProvider
|
layerIndex int
|
||||||
|
provider flags.SourceOCIProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
var pullArtifactArgs = newPullArtifactFlags()
|
var pullArtifactArgs = newPullArtifactFlags()
|
||||||
|
|
@ -57,6 +60,7 @@ func newPullArtifactFlags() pullArtifactFlags {
|
||||||
func init() {
|
func init() {
|
||||||
pullArtifactCmd.Flags().StringVarP(&pullArtifactArgs.output, "output", "o", "", "path where the artifact content should be extracted.")
|
pullArtifactCmd.Flags().StringVarP(&pullArtifactArgs.output, "output", "o", "", "path where the artifact content should be extracted.")
|
||||||
pullArtifactCmd.Flags().StringVar(&pullArtifactArgs.creds, "creds", "", "credentials for OCI registry in the format <username>[:<password>] if --provider is generic")
|
pullArtifactCmd.Flags().StringVar(&pullArtifactArgs.creds, "creds", "", "credentials for OCI registry in the format <username>[:<password>] if --provider is generic")
|
||||||
|
pullArtifactCmd.Flags().IntVar(&pullArtifactArgs.layerIndex, "layer-index", -1, "specific artifact layer index to pull")
|
||||||
pullArtifactCmd.Flags().Var(&pullArtifactArgs.provider, "provider", sourceOCIRepositoryArgs.provider.Description())
|
pullArtifactCmd.Flags().Var(&pullArtifactArgs.provider, "provider", sourceOCIRepositoryArgs.provider.Description())
|
||||||
pullCmd.AddCommand(pullArtifactCmd)
|
pullCmd.AddCommand(pullArtifactCmd)
|
||||||
}
|
}
|
||||||
|
|
@ -106,7 +110,13 @@ func pullArtifactCmdRun(cmd *cobra.Command, args []string) error {
|
||||||
|
|
||||||
logger.Actionf("pulling artifact from %s", url)
|
logger.Actionf("pulling artifact from %s", url)
|
||||||
|
|
||||||
meta, err := ociClient.Pull(ctx, url, pullArtifactArgs.output)
|
pullOptions := []oci.PullOption{}
|
||||||
|
if pullArtifactArgs.layerIndex != -1 {
|
||||||
|
logger.Actionf("pulling artifact layer by index %d", pullArtifactArgs.layerIndex)
|
||||||
|
pullOptions = append(pullOptions, oci.WithPullLayerIndex(pullArtifactArgs.layerIndex))
|
||||||
|
}
|
||||||
|
|
||||||
|
meta, err := ociClient.Pull(ctx, url, pullArtifactArgs.output, pullOptions...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue