From 5e76f32712fd9a2a55b935389e6808ca612e9916 Mon Sep 17 00:00:00 2001 From: Kostiantyn Kalynovskyi Date: Mon, 22 Feb 2021 17:42:08 +0000 Subject: [PATCH] Allow filtering of config bundle Change-Id: I4f2381bf775d202851fa1d6c3d65c2d1f1043ead --- pkg/phase/render.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/pkg/phase/render.go b/pkg/phase/render.go index 9b42edbcb..8c5383d6d 100644 --- a/pkg/phase/render.go +++ b/pkg/phase/render.go @@ -67,9 +67,17 @@ func (fo *RenderCommand) RunE(cfgFactory config.Factory, out io.Writer) error { if err != nil { return err } + groupVersion := strings.Split(fo.APIVersion, "/") + group := "" + version := groupVersion[0] + if len(groupVersion) > 1 { + group = groupVersion[0] + version = strings.Join(groupVersion[1:], "/") + } + sel := document.NewSelector().ByLabel(fo.Label).ByAnnotation(fo.Annotation).ByGvk(group, version, fo.Kind) if fo.Source == RenderSourceConfig { - return renderConfigBundle(out, helper) + return renderConfigBundle(out, helper, sel) } client := NewClient(helper) @@ -78,15 +86,6 @@ func (fo *RenderCommand) RunE(cfgFactory config.Factory, out io.Writer) error { return err } - groupVersion := strings.Split(fo.APIVersion, "/") - group := "" - version := groupVersion[0] - if len(groupVersion) > 1 { - group = groupVersion[0] - version = strings.Join(groupVersion[1:], "/") - } - - sel := document.NewSelector().ByLabel(fo.Label).ByAnnotation(fo.Annotation).ByGvk(group, version, fo.Kind) var executorRender bool if fo.Source == RenderSourceExecutor { executorRender = true @@ -94,11 +93,16 @@ func (fo *RenderCommand) RunE(cfgFactory config.Factory, out io.Writer) error { return phase.Render(out, executorRender, ifc.RenderOptions{FilterSelector: sel}) } -func renderConfigBundle(out io.Writer, h ifc.Helper) error { +func renderConfigBundle(out io.Writer, h ifc.Helper, sel document.Selector) error { bundle, err := document.NewBundleByPath(h.PhaseBundleRoot()) if err != nil { return err } + + bundle, err = bundle.SelectBundle(sel) + if err != nil { + return err + } return bundle.Write(out) }