Skip to content

Commit cc30d9e

Browse files
committed
Add defaults for version flag while installing packages using kctrl
Signed-off-by: Soumik Majumder <[email protected]>
1 parent 4821a0d commit cc30d9e

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

cli/pkg/kctrl/cmd/package/installed/create_or_update.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ const (
3535
valuesFileKey = "values.yaml"
3636
yttOverlayPrefix = "ext.packaging.carvel.dev/ytt-paths-from-secret-name"
3737
yttOverlayAnnotation = yttOverlayPrefix + ".kctrl-ytt-overlays"
38+
defaultPkgiVersion = ">= 0.0.0"
3839
)
3940

4041
type CreateOrUpdateOptions struct {
@@ -100,7 +101,7 @@ func NewCreateCmd(o *CreateOrUpdateOptions, flagsFactory cmdcore.FlagsFactory) *
100101
}
101102

102103
cmd.Flags().StringVarP(&o.packageName, "package", "p", "", "Set package name (required)")
103-
cmd.Flags().StringVarP(&o.version, "version", "v", "", "Set package version (required)")
104+
cmd.Flags().StringVarP(&o.version, "version", "v", defaultPkgiVersion, "Set package version")
104105
cmd.Flags().StringVar(&o.serviceAccountName, "service-account-name", "", "Name of an existing service account used to install underlying package contents, optional")
105106
cmd.Flags().StringVar(&o.valuesFile, "values-file", "", "The path to the configuration values file, optional")
106107
cmd.Flags().BoolVar(&o.values, "values", true, "Add or keep values supplied to package install, optional")
@@ -146,7 +147,7 @@ func NewInstallCmd(o *CreateOrUpdateOptions, flagsFactory cmdcore.FlagsFactory)
146147
}
147148

148149
cmd.Flags().StringVarP(&o.packageName, "package", "p", "", "Set package name (required)")
149-
cmd.Flags().StringVarP(&o.version, "version", "v", "", "Set package version (required)")
150+
cmd.Flags().StringVarP(&o.version, "version", "v", defaultPkgiVersion, "Set package version")
150151
cmd.Flags().StringVar(&o.serviceAccountName, "service-account-name", "", "Name of an existing service account used to install underlying package contents, optional")
151152
cmd.Flags().StringVar(&o.valuesFile, "values-file", "", "The path to the configuration values file, optional")
152153
cmd.Flags().BoolVar(&o.values, "values", true, "Add or keep values supplied to package install, optional")
@@ -235,17 +236,9 @@ func (o *CreateOrUpdateOptions) RunCreate(args []string) error {
235236
return nil
236237
}
237238

238-
if len(o.version) == 0 {
239-
pkgClient, err := o.depsFactory.PackageClient()
240-
if err != nil {
241-
return err
242-
}
243-
244-
err = o.showVersions(pkgClient)
245-
if err != nil {
246-
return err
247-
}
248-
return fmt.Errorf("Expected package version to be non empty")
239+
if o.version == defaultPkgiVersion {
240+
o.statusUI.PrintMessage(fmt.Sprintf(`Version constraint defaulted to '%s'. Use the '--version'
241+
flag to lock to a non-latest version.`, defaultPkgiVersion))
249242
}
250243

251244
client, err := o.depsFactory.CoreClient()

cli/test/e2e/package_install_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,3 +327,14 @@ key1: value1:
327327
"--values-file", "-"}, RunOpts{StdinReader: strings.NewReader(valuesFile2)})
328328
})
329329
}
330+
331+
func TestPackageInstallVersionDefaults(t *testing.T) {
332+
env := BuildEnv(t)
333+
logger := Logger{}
334+
kappCtrl := Kctrl{t, env.Namespace, env.KctrlBinaryPath, logger}
335+
336+
logger.Section("Listing with error in package install", func() {
337+
out, _ := kappCtrl.RunWithOpts([]string{"package", "install", "-i", "asdf", "-p", "asdf.asdf.com", "--dry-run", "-n", "installs"}, RunOpts{})
338+
require.Contains(t, out, "constraints: '>= 0.0.0'")
339+
})
340+
}

0 commit comments

Comments
 (0)