diff --git a/staging/publishing/import-restrictions.yaml b/staging/publishing/import-restrictions.yaml index 135d86454b..05eef5ca12 100644 --- a/staging/publishing/import-restrictions.yaml +++ b/staging/publishing/import-restrictions.yaml @@ -27,6 +27,7 @@ - k8s.io/api/core/v1 - k8s.io/cli-runtime/pkg/genericclioptions/printers - k8s.io/cli-runtime/pkg/genericclioptions/resource + - k8s.io/cli-runtime/pkg/kustomize - baseImportPath: "./vendor/k8s.io/apimachinery/" allowedImports: diff --git a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/BUILD b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/BUILD index 22b34de008..3221ba1eb7 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/BUILD +++ b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/BUILD @@ -35,12 +35,14 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", + "//staging/src/k8s.io/cli-runtime/pkg/kustomize:go_default_library", "//staging/src/k8s.io/client-go/discovery:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", "//staging/src/k8s.io/client-go/restmapper:go_default_library", "//vendor/golang.org/x/text/encoding/unicode:go_default_library", "//vendor/golang.org/x/text/transform:go_default_library", + "//vendor/sigs.k8s.io/kustomize/pkg/fs:go_default_library", ], ) diff --git a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/visitor.go b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/visitor.go index b4e3b359a1..a679ce90af 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/visitor.go +++ b/staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource/visitor.go @@ -39,6 +39,8 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/apimachinery/pkg/watch" + "k8s.io/cli-runtime/pkg/kustomize" + "sigs.k8s.io/kustomize/pkg/fs" ) const ( @@ -520,6 +522,24 @@ func (v *FileVisitor) Visit(fn VisitorFunc) error { return v.StreamVisitor.Visit(fn) } +// KustomizeVisitor is wrapper around a StreamVisitor, to handle Kustomization directories +type KustomizeVisitor struct { + Path string + *StreamVisitor +} + +// Visit in a KustomizeVisitor gets the output of Kustomize build and save it in the Streamvisitor +func (v *KustomizeVisitor) Visit(fn VisitorFunc) error { + fSys := fs.MakeRealFS() + var out bytes.Buffer + err := kustomize.RunKustomizeBuild(&out, fSys, v.Path) + if err != nil { + return err + } + v.StreamVisitor.Reader = bytes.NewReader(out.Bytes()) + return v.StreamVisitor.Visit(fn) +} + // StreamVisitor reads objects from an io.Reader and walks them. A stream visitor can only be // visited once. // TODO: depends on objects being in JSON format before being passed to decode - need to implement diff --git a/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json b/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json index e3eb79beb5..22b93712b0 100644 --- a/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-cli-plugin/Godeps/Godeps.json @@ -6,14 +6,50 @@ "./..." ], "Deps": [ + { + "ImportPath": "github.com/PuerkitoBio/purell", + "Rev": "8a290539e2e8629dbc4e6bad948158f790ec31f4" + }, + { + "ImportPath": "github.com/PuerkitoBio/urlesc", + "Rev": "5bd2802263f21d8788851d5305584c82a5c75d7e" + }, { "ImportPath": "github.com/davecgh/go-spew/spew", "Rev": "782f4967f2dc4564575ca782fe2d04090b5faca8" }, + { + "ImportPath": "github.com/emicklei/go-restful", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, + { + "ImportPath": "github.com/emicklei/go-restful/log", + "Rev": "ff4f55a206334ef123e4f79bbf348980da81ca46" + }, { "ImportPath": "github.com/evanphx/json-patch", "Rev": "5858425f75500d40c52783dce87d085a483ce135" }, + { + "ImportPath": "github.com/ghodss/yaml", + "Rev": "c7ce16629ff4cd059ed96ed06419dd3856fd3577" + }, + { + "ImportPath": "github.com/go-openapi/jsonpointer", + "Rev": "ef5f0afec364d3b9396b7b77b43dbe26bf1f8004" + }, + { + "ImportPath": "github.com/go-openapi/jsonreference", + "Rev": "8483a886a90412cd6858df4ea3483dce9c8e35a3" + }, + { + "ImportPath": "github.com/go-openapi/spec", + "Rev": "5bae59e25b21498baea7f9d46e9c147ec106a42e" + }, + { + "ImportPath": "github.com/go-openapi/swag", + "Rev": "5899d5c5e619fda5fa86e14795a835f473ca284c" + }, { "ImportPath": "github.com/gogo/protobuf/proto", "Rev": "342cbe0a04158f6dcb03ca0079991a51a4248c02" @@ -82,6 +118,18 @@ "ImportPath": "github.com/json-iterator/go", "Rev": "ab8a2e0c74be9d3be70b3184d9acc634935ded82" }, + { + "ImportPath": "github.com/mailru/easyjson/buffer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jlexer", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, + { + "ImportPath": "github.com/mailru/easyjson/jwriter", + "Rev": "2f5df55504ebc322e4d52d34df6a1f5b503bf26d" + }, { "ImportPath": "github.com/modern-go/concurrent", "Rev": "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94" @@ -94,6 +142,10 @@ "ImportPath": "github.com/peterbourgon/diskv", "Rev": "5f041e8faa004a95c88a202771f4cc3e991971e6" }, + { + "ImportPath": "github.com/pkg/errors", + "Rev": "645ef00459ed84a119197bfb8d8205042c6df63d" + }, { "ImportPath": "github.com/spf13/cobra", "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" @@ -142,6 +194,10 @@ "ImportPath": "golang.org/x/sys/windows", "Rev": "95c6576299259db960f6c5b9b69ea52422860fce" }, + { + "ImportPath": "golang.org/x/text/cases", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, { "ImportPath": "golang.org/x/text/encoding", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" @@ -158,10 +214,22 @@ "ImportPath": "golang.org/x/text/encoding/unicode", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" }, + { + "ImportPath": "golang.org/x/text/internal", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, + { + "ImportPath": "golang.org/x/text/internal/tag", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, { "ImportPath": "golang.org/x/text/internal/utf8internal", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" }, + { + "ImportPath": "golang.org/x/text/language", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, { "ImportPath": "golang.org/x/text/runes", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" @@ -170,6 +238,10 @@ "ImportPath": "golang.org/x/text/secure/bidirule", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" }, + { + "ImportPath": "golang.org/x/text/secure/precis", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, { "ImportPath": "golang.org/x/text/transform", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" @@ -182,6 +254,10 @@ "ImportPath": "golang.org/x/text/unicode/norm", "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" }, + { + "ImportPath": "golang.org/x/text/width", + "Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01" + }, { "ImportPath": "golang.org/x/time/rate", "Rev": "f51c12702a4d776e4c1fa9b0fabab841babae631" @@ -326,6 +402,10 @@ "ImportPath": "k8s.io/api/storage/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/equality", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/api/errors", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -338,6 +418,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/api/resource", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/api/validation", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -350,6 +434,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/validation", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1beta1", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -430,6 +518,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/json", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/naming", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -446,6 +538,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/util/sets", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/pkg/util/validation", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -466,6 +562,10 @@ "ImportPath": "k8s.io/apimachinery/pkg/watch", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -482,6 +582,42 @@ "ImportPath": "k8s.io/cli-runtime/pkg/genericclioptions/resource", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/configmapandsecret", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kunstruct", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/kv", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/hash", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, + { + "ImportPath": "k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator", + "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + }, { "ImportPath": "k8s.io/client-go/discovery", "Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" @@ -582,10 +718,106 @@ "ImportPath": "k8s.io/klog", "Rev": "8139d8cb77af419532b33dfa7dd09fbc5f1d344f" }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/common", + "Rev": "d7c86cdc46e3a4fcf892b32dd7bc3aa775e0870e" + }, + { + "ImportPath": "k8s.io/kube-openapi/pkg/util/proto", + "Rev": "d7c86cdc46e3a4fcf892b32dd7bc3aa775e0870e" + }, { "ImportPath": "k8s.io/utils/integer", "Rev": "ed37f7428a91fc2a81070808937195dcd46d320e" }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/commands/build", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/constants", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/expansion", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/factory", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/fs", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/git", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/gvk", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/ifc", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/ifc/transformer", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/image", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/internal/error", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/loader", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/patch", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/patch/transformer", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resid", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resmap", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/resource", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/target", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers/config", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/transformers/config/defaultconfig", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, + { + "ImportPath": "sigs.k8s.io/kustomize/pkg/types", + "Rev": "ce7e5ee2c30cc5856fea01fe423cf167f2a2d0c3" + }, { "ImportPath": "sigs.k8s.io/yaml", "Rev": "fd68e9863619f6ec2fdd8625fe1f02e7c877e480"