diff --git a/src/cmd/uds.go b/src/cmd/uds.go index 68dd4981..4357284f 100644 --- a/src/cmd/uds.go +++ b/src/cmd/uds.go @@ -294,6 +294,7 @@ func init() { deployCmd.Flags().BoolVarP(&config.CommonOptions.Confirm, "confirm", "c", false, lang.CmdBundleDeployFlagConfirm) deployCmd.Flags().StringArrayVarP(&bundleCfg.DeployOpts.Packages, "packages", "p", []string{}, lang.CmdBundleDeployFlagPackages) deployCmd.Flags().BoolVarP(&bundleCfg.DeployOpts.Resume, "resume", "r", false, lang.CmdBundleDeployFlagResume) + deployCmd.Flags().IntVar(&bundleCfg.DeployOpts.Retries, "retries", 1, lang.CmdBundleDeployFlagRetries) // inspect cmd flags rootCmd.AddCommand(inspectCmd) diff --git a/src/config/lang/lang.go b/src/config/lang/lang.go index ef06a452..03e17d4f 100644 --- a/src/config/lang/lang.go +++ b/src/config/lang/lang.go @@ -37,6 +37,7 @@ const ( CmdBundleDeployFlagPackages = "Specify which zarf packages you would like to deploy from the bundle. By default all zarf packages in the bundle are deployed." CmdBundleDeployFlagResume = "Only deploys packages from the bundle which haven't already been deployed" CmdBundleDeployFlagSet = "Specify deployment variables to set on the command line (KEY=value)" + CmdBundleDeployFlagRetries = "Specify the number of retries for package deployments (applies to all pkgs in a bundle)" // bundle inspect CmdBundleInspectShort = "Display the metadata of a bundle" diff --git a/src/pkg/bundle/deploy.go b/src/pkg/bundle/deploy.go index 006b7dd1..64187b5a 100644 --- a/src/pkg/bundle/deploy.go +++ b/src/pkg/bundle/deploy.go @@ -106,7 +106,7 @@ func deployPackages(packages []types.Package, resume bool, b *Bundle) error { OptionalComponents: strings.Join(pkg.OptionalComponents, ","), PublicKeyPath: publicKeyPath, SetVariables: pkgVars, - Retries: 1, + Retries: b.cfg.DeployOpts.Retries, } valuesOverrides, err := b.loadChartOverrides(pkg, pkgVars) diff --git a/src/types/options.go b/src/types/options.go index e8c6d256..1b2f41f4 100644 --- a/src/types/options.go +++ b/src/types/options.go @@ -34,6 +34,7 @@ type BundleDeployOptions struct { Variables map[string]map[string]interface{} `yaml:"variables,omitempty"` SharedVariables map[string]interface{} `yaml:"shared,omitempty"` ZarfPackageNameMap map[string]string `yaml:"-" json:"-"` + Retries int `yaml:"retries"` } // BundleInspectOptions is the options for the bundler.Inspect() function