Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions internal/commands/extension_package.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type ExtensionPackageFlags struct {
Policy string
Path string
AdditionalTags []string
Label map[string]string
}

// ExtensionPackager packages extensions
Expand Down Expand Up @@ -123,6 +124,7 @@ func ExtensionPackage(logger logging.Logger, cfg config.Config, packager Extensi
PullPolicy: pullPolicy,
Targets: multiArchCfg.Targets(),
AdditionalTags: flags.AdditionalTags,
Labels: flags.Label,
}); err != nil {
return err
}
Expand Down Expand Up @@ -155,6 +157,8 @@ Targets should be in the format '[os][/arch][/variant]:[distroname@osversion@ano
- To specify multiple distribution versions: '--target "linux/arm/v6:ubuntu@14.04" --target "linux/arm/v6:ubuntu@16.04"'
`)
cmd.Flags().StringSliceVarP(&flags.AdditionalTags, "tag", "", nil, "Additional tags to push the output image to.\nTags should be in the format 'image:tag' or 'repository/image:tag'."+stringSliceHelp("tag"))
cmd.Flags().StringToStringVarP(&flags.Label, "label", "l", nil, "Labels to add to packaged Extension, in the form of '<name>=<value>'")

AddHelpFlag(cmd, "package")
return cmd
}
Expand Down
14 changes: 14 additions & 0 deletions internal/commands/extension_package_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,20 @@ func testExtensionPackageCommand(t *testing.T, when spec.G, it spec.S) {
})
})

when("--label cannot be parsed", func() {
it("errors with a descriptive message", func() {
cmd := packageCommand()
cmd.SetArgs([]string{
"some-image-name", "--config", "/path/to/some/file",
"--label", "name+value",
})

err := cmd.Execute()
h.AssertNotNil(t, err)
h.AssertError(t, err, "invalid argument \"name+value\" for \"-l, --label\" flag: name+value must be formatted as key=value")
})
})

when("--target cannot be parsed", func() {
it("errors with a descriptive message", func() {
cmd := packageCommand()
Expand Down
Loading