Add numeric selector to create image policy cmd
Signed-off-by: Hidde Beydals <hello@hidde.co>
This commit is contained in:
@@ -43,11 +43,13 @@ the status of the object.`,
|
|||||||
RunE: createImagePolicyRun}
|
RunE: createImagePolicyRun}
|
||||||
|
|
||||||
type imagePolicyFlags struct {
|
type imagePolicyFlags struct {
|
||||||
imageRef string
|
imageRef string
|
||||||
semver string
|
semver string
|
||||||
alpha string
|
alpha string
|
||||||
filterRegex string
|
numeric string
|
||||||
filterExtract string
|
filterRegex string
|
||||||
|
filterExtract string
|
||||||
|
filterNumerical string
|
||||||
}
|
}
|
||||||
|
|
||||||
var imagePolicyArgs = imagePolicyFlags{}
|
var imagePolicyArgs = imagePolicyFlags{}
|
||||||
@@ -57,6 +59,7 @@ func init() {
|
|||||||
flags.StringVar(&imagePolicyArgs.imageRef, "image-ref", "", "the name of an image repository object")
|
flags.StringVar(&imagePolicyArgs.imageRef, "image-ref", "", "the name of an image repository object")
|
||||||
flags.StringVar(&imagePolicyArgs.semver, "select-semver", "", "a semver range to apply to tags; e.g., '1.x'")
|
flags.StringVar(&imagePolicyArgs.semver, "select-semver", "", "a semver range to apply to tags; e.g., '1.x'")
|
||||||
flags.StringVar(&imagePolicyArgs.alpha, "select-alpha", "", "use alphabetical sorting to select image; either \"asc\" meaning select the last, or \"desc\" meaning select the first")
|
flags.StringVar(&imagePolicyArgs.alpha, "select-alpha", "", "use alphabetical sorting to select image; either \"asc\" meaning select the last, or \"desc\" meaning select the first")
|
||||||
|
flags.StringVar(&imagePolicyArgs.numeric, "select-numeric", "", "use numeric sorting to select image; either \"asc\" meaning select the last, or \"desc\" meaning select the first")
|
||||||
flags.StringVar(&imagePolicyArgs.filterRegex, "filter-regex", "", "regular expression pattern used to filter the image tags")
|
flags.StringVar(&imagePolicyArgs.filterRegex, "filter-regex", "", "regular expression pattern used to filter the image tags")
|
||||||
flags.StringVar(&imagePolicyArgs.filterExtract, "filter-extract", "", "replacement pattern (using capture groups from --filter-regex) to use for sorting")
|
flags.StringVar(&imagePolicyArgs.filterExtract, "filter-extract", "", "replacement pattern (using capture groups from --filter-regex) to use for sorting")
|
||||||
|
|
||||||
@@ -111,6 +114,13 @@ func createImagePolicyRun(cmd *cobra.Command, args []string) error {
|
|||||||
policy.Spec.Policy.Alphabetical = &imagev1.AlphabeticalPolicy{
|
policy.Spec.Policy.Alphabetical = &imagev1.AlphabeticalPolicy{
|
||||||
Order: imagePolicyArgs.alpha,
|
Order: imagePolicyArgs.alpha,
|
||||||
}
|
}
|
||||||
|
case imagePolicyArgs.numeric != "":
|
||||||
|
if imagePolicyArgs.numeric != "desc" && imagePolicyArgs.numeric != "asc" {
|
||||||
|
return fmt.Errorf("--select-numeric must be one of [\"asc\", \"desc\"]")
|
||||||
|
}
|
||||||
|
policy.Spec.Policy.Numerical = &imagev1.NumericalPolicy{
|
||||||
|
Order: imagePolicyArgs.numeric,
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("a policy must be provided with either --select-semver or --select-alpha")
|
return fmt.Errorf("a policy must be provided with either --select-semver or --select-alpha")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ flux create image policy <name> [flags]
|
|||||||
-h, --help help for policy
|
-h, --help help for policy
|
||||||
--image-ref string the name of an image repository object
|
--image-ref string the name of an image repository object
|
||||||
--select-alpha string use alphabetical sorting to select image; either "asc" meaning select the last, or "desc" meaning select the first
|
--select-alpha string use alphabetical sorting to select image; either "asc" meaning select the last, or "desc" meaning select the first
|
||||||
|
--select-numeric string use numeric sorting to select image; either "asc" meaning select the last, or "desc" meaning select the first
|
||||||
--select-semver string a semver range to apply to tags; e.g., '1.x'
|
--select-semver string a semver range to apply to tags; e.g., '1.x'
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user