feat templater: Add ability to exclude resource sets

* renamed --limit to --include (-i)
* added --exclude (-e)

Kontemplate users can now explicitly include and exclude certain resource sets.
Excludes always override includes.

Closes #11
This commit is contained in:
Vincent Ambo 2017-02-08 16:44:55 +01:00
parent 11a5cf9e19
commit 8e08a282eb
2 changed files with 62 additions and 29 deletions

23
main.go
View file

@ -37,9 +37,10 @@ func templateCommand() cli.Command {
Usage: "Interpolate and print templates",
Flags: commonFlags(),
Action: func(c *cli.Context) error {
limit := c.StringSlice("limit")
include := c.StringSlice("include")
exclude := c.StringSlice("exclude")
ctx, err := loadContext(c)
resources, err := templater.LoadAndPrepareTemplates(&limit, ctx)
resources, err := templater.LoadAndPrepareTemplates(&include, &exclude, ctx)
if err != nil {
return err
@ -66,9 +67,10 @@ func applyCommand() cli.Command {
Destination: &dryRun,
}),
Action: func(c *cli.Context) error {
limit := c.StringSlice("limit")
include := c.StringSlice("include")
exclude := c.StringSlice("exclude")
ctx, err := loadContext(c)
resources, err := templater.LoadAndPrepareTemplates(&limit, ctx)
resources, err := templater.LoadAndPrepareTemplates(&include, &exclude, ctx)
if err != nil {
return err
@ -92,9 +94,10 @@ func replaceCommand() cli.Command {
Usage: "Interpolate templates and run 'kubectl replace'",
Flags: commonFlags(),
Action: func(c *cli.Context) error {
limit := c.StringSlice("limit")
include := c.StringSlice("include")
exclude := c.StringSlice("exclude")
ctx, err := loadContext(c)
resources, err := templater.LoadAndPrepareTemplates(&limit, ctx)
resources, err := templater.LoadAndPrepareTemplates(&include, &exclude, ctx)
if err != nil {
return err
@ -140,8 +143,12 @@ func commonFlags() []cli.Flag {
Usage: "Cluster configuration file to use",
},
cli.StringSliceFlag{
Name: "limit, l",
Usage: "Limit templating to certain resource sets",
Name: "include, i",
Usage: "Limit templating to explicitly included resource sets",
},
cli.StringSliceFlag{
Name: "exclude, e",
Usage: "Exclude certain resource sets from templating",
},
}
}