mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-29 17:41:13 +00:00
Compare commits
1 Commits
release-pl
...
kustomize/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c9d828f04 |
10
.travis.yml
10
.travis.yml
@@ -1,11 +1,7 @@
|
|||||||
os:
|
os:
|
||||||
- linux
|
- linux
|
||||||
# TODO: Uncomment this when someone figures out how
|
- osx
|
||||||
# to speed up the slowness of homebrew installation on
|
# TODO: Uncomment when tests running on Windows.
|
||||||
# oxs; presumably cache images?
|
|
||||||
# - osx
|
|
||||||
#
|
|
||||||
# TODO: Uncomment when some gets the tests running on Windows.
|
|
||||||
# - windows
|
# - windows
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
@@ -24,7 +20,7 @@ git:
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- "1.13"
|
- "1.12"
|
||||||
|
|
||||||
go_import_path: sigs.k8s.io/kustomize
|
go_import_path: sigs.k8s.io/kustomize
|
||||||
|
|
||||||
|
|||||||
21
api/go.mod
21
api/go.mod
@@ -1,21 +0,0 @@
|
|||||||
module sigs.k8s.io/kustomize/api
|
|
||||||
|
|
||||||
go 1.13
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible
|
|
||||||
github.com/go-openapi/spec v0.19.4
|
|
||||||
github.com/golang/protobuf v1.3.2 // indirect
|
|
||||||
github.com/pkg/errors v0.8.1
|
|
||||||
github.com/spf13/pflag v1.0.5
|
|
||||||
github.com/stretchr/testify v1.4.0 // indirect
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 // indirect
|
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 // indirect
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
|
|
||||||
gopkg.in/yaml.v2 v2.2.4
|
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678
|
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5
|
|
||||||
k8s.io/client-go v11.0.0+incompatible
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d
|
|
||||||
sigs.k8s.io/yaml v1.1.0
|
|
||||||
)
|
|
||||||
162
api/go.sum
162
api/go.sum
@@ -1,162 +0,0 @@
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
|
||||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
|
||||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
|
||||||
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
|
||||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
|
||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
|
||||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
|
||||||
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
|
||||||
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
|
||||||
github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo=
|
|
||||||
github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
|
||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
|
||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
|
|
||||||
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
|
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
|
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
|
||||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
|
||||||
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
|
||||||
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
|
|
||||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
|
||||||
github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
|
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
|
||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
|
||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
|
||||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
|
||||||
github.com/onsi/ginkgo v1.10.1 h1:q/mM8GF/n0shIN8SaAZ0V+jnLPzen6WIVZdiwrRlMlo=
|
|
||||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
|
||||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
|
||||||
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
|
||||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
||||||
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
||||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
||||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
|
||||||
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
|
||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g=
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM=
|
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
|
||||||
gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
|
|
||||||
gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678 h1:z/0BV/tMBIvdwZvqBH/f7TWjQX9y3dj1nMNhrSK0h/8=
|
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678/go.mod h1:LZQaT8MvVpl7Bg2lYFcQm7+Mpdxq8p1NFl3yh+5DCwY=
|
|
||||||
k8s.io/apimachinery v0.0.0-20191016225534-b1267f8c42b4/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5 h1:r3/YL3+t1U46lJF5zUSArskUpnLyWuM28rQDpM1qQPI=
|
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
|
||||||
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
|
||||||
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
|
||||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
|
||||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
|
||||||
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d h1:Xpe6sK+RY4ZgCTyZ3y273UmFmURhjtoJiwOMbQsXitY=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
|
||||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
|
||||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Package loader has a data loading interface and various implementations.
|
|
||||||
package loader
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sigs.k8s.io/kustomize/api/filesys"
|
|
||||||
"sigs.k8s.io/kustomize/api/git"
|
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
|
||||||
)
|
|
||||||
|
|
||||||
// NewLoader returns a Loader pointed at the given target.
|
|
||||||
// If the target is remote, the loader will be restricted
|
|
||||||
// to the root and below only. If the target is local, the
|
|
||||||
// loader will have the restrictions passed in. Regardless,
|
|
||||||
// if a local target attempts to transitively load remote bases,
|
|
||||||
// the remote bases will all be root-only restricted.
|
|
||||||
func NewLoader(
|
|
||||||
lr LoadRestrictorFunc,
|
|
||||||
target string, fSys filesys.FileSystem) (ifc.Loader, error) {
|
|
||||||
repoSpec, err := git.NewRepoSpecFromUrl(target)
|
|
||||||
if err == nil {
|
|
||||||
// The target qualifies as a remote git target.
|
|
||||||
return newLoaderAtGitClone(
|
|
||||||
repoSpec, fSys, nil, git.ClonerUsingGitExec)
|
|
||||||
}
|
|
||||||
root, err := demandDirectoryRoot(fSys, target)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return newLoaderAtConfirmedDir(
|
|
||||||
lr, root, fSys, nil, git.ClonerUsingGitExec), nil
|
|
||||||
}
|
|
||||||
21
api/main.go
21
api/main.go
@@ -1,21 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// A dummy main to help with releasing the kustomize API module.
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/provenance"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO: delete this when we find a better way to generate release notes.
|
|
||||||
func main() {
|
|
||||||
fmt.Println(`
|
|
||||||
This 'main' exists only to make goreleaser create release notes for the API.
|
|
||||||
See https://github.com/goreleaser/goreleaser/issues/981
|
|
||||||
and https://github.com/kubernetes-sigs/kustomize/tree/master/releasing`)
|
|
||||||
provenance.GetProvenance().Print(os.Stdout, false)
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Package consts provides builtin plugin configuration data.
|
|
||||||
package consts
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package consts
|
|
||||||
|
|
||||||
const (
|
|
||||||
// imageFieldSpecs is left empty since `containers` and `initContainers`
|
|
||||||
// of *ANY* kind in *ANY* path are builtin supported in code
|
|
||||||
imagesFieldSpecs = ``
|
|
||||||
)
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package consts
|
|
||||||
|
|
||||||
const (
|
|
||||||
namePrefixFieldSpecs = `
|
|
||||||
namePrefix:
|
|
||||||
- path: metadata/name
|
|
||||||
`
|
|
||||||
)
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package consts
|
|
||||||
|
|
||||||
const (
|
|
||||||
namespaceFieldSpecs = `
|
|
||||||
namespace:
|
|
||||||
- path: metadata/namespace
|
|
||||||
create: true
|
|
||||||
- path: subjects
|
|
||||||
kind: RoleBinding
|
|
||||||
- path: subjects
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
`
|
|
||||||
)
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Package builtinconfig provides legacy methods for
|
|
||||||
// configuring builtin plugins from a common config file.
|
|
||||||
// As a user, its best to configure plugins individually
|
|
||||||
// with plugin config files specified in the `transformers:`
|
|
||||||
// or `generators:` field, than to use this legacy
|
|
||||||
// configuration technique.
|
|
||||||
package builtinconfig
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package builtinconfig
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
|
||||||
"sigs.k8s.io/yaml"
|
|
||||||
)
|
|
||||||
|
|
||||||
// loadDefaultConfig returns a TranformerConfig
|
|
||||||
// object from a list of files.
|
|
||||||
func loadDefaultConfig(
|
|
||||||
ldr ifc.Loader, paths []string) (*TransformerConfig, error) {
|
|
||||||
result := &TransformerConfig{}
|
|
||||||
for _, path := range paths {
|
|
||||||
data, err := ldr.Load(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
t, err := makeTransformerConfigFromBytes(data)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
result, err = result.Merge(t)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// makeTransformerConfigFromBytes returns a TransformerConfig object from bytes
|
|
||||||
func makeTransformerConfigFromBytes(data []byte) (*TransformerConfig, error) {
|
|
||||||
var t TransformerConfig
|
|
||||||
err := yaml.Unmarshal(data, &t)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
t.sortFields()
|
|
||||||
return &t, nil
|
|
||||||
}
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package builtinconfig
|
|
||||||
|
|
||||||
import (
|
|
||||||
"log"
|
|
||||||
"sort"
|
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
|
||||||
"sigs.k8s.io/kustomize/api/plugins/builtinconfig/consts"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TransformerConfig holds the data needed to perform transformations.
|
|
||||||
type TransformerConfig struct {
|
|
||||||
NamePrefix types.FsSlice `json:"namePrefix,omitempty" yaml:"namePrefix,omitempty"`
|
|
||||||
NameSuffix types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`
|
|
||||||
NameSpace types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
|
||||||
CommonLabels types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`
|
|
||||||
CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
|
|
||||||
NameReference nbrSlice `json:"nameReference,omitempty" yaml:"nameReference,omitempty"`
|
|
||||||
VarReference types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"`
|
|
||||||
Images types.FsSlice `json:"images,omitempty" yaml:"images,omitempty"`
|
|
||||||
Replicas types.FsSlice `json:"replicas,omitempty" yaml:"replicas,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// MakeEmptyConfig returns an empty TransformerConfig object
|
|
||||||
func MakeEmptyConfig() *TransformerConfig {
|
|
||||||
return &TransformerConfig{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MakeDefaultConfig returns a default TransformerConfig.
|
|
||||||
func MakeDefaultConfig() *TransformerConfig {
|
|
||||||
c, err := makeTransformerConfigFromBytes(
|
|
||||||
consts.GetDefaultFieldSpecs())
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Unable to make default transformconfig: %v", err)
|
|
||||||
}
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
|
|
||||||
// MakeTransformerConfig returns a merger of custom config,
|
|
||||||
// if any, with default config.
|
|
||||||
func MakeTransformerConfig(
|
|
||||||
ldr ifc.Loader, paths []string) (*TransformerConfig, error) {
|
|
||||||
t1 := MakeDefaultConfig()
|
|
||||||
if len(paths) == 0 {
|
|
||||||
return t1, nil
|
|
||||||
}
|
|
||||||
t2, err := loadDefaultConfig(ldr, paths)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return t1.Merge(t2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// sortFields provides determinism in logging, tests, etc.
|
|
||||||
func (t *TransformerConfig) sortFields() {
|
|
||||||
sort.Sort(t.NamePrefix)
|
|
||||||
sort.Sort(t.NameSpace)
|
|
||||||
sort.Sort(t.CommonLabels)
|
|
||||||
sort.Sort(t.CommonAnnotations)
|
|
||||||
sort.Sort(t.NameReference)
|
|
||||||
sort.Sort(t.VarReference)
|
|
||||||
sort.Sort(t.Images)
|
|
||||||
sort.Sort(t.Replicas)
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddPrefixFieldSpec adds a FieldSpec to NamePrefix
|
|
||||||
func (t *TransformerConfig) AddPrefixFieldSpec(fs types.FieldSpec) (err error) {
|
|
||||||
t.NamePrefix, err = t.NamePrefix.MergeOne(fs)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddSuffixFieldSpec adds a FieldSpec to NameSuffix
|
|
||||||
func (t *TransformerConfig) AddSuffixFieldSpec(fs types.FieldSpec) (err error) {
|
|
||||||
t.NameSuffix, err = t.NameSuffix.MergeOne(fs)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddLabelFieldSpec adds a FieldSpec to CommonLabels
|
|
||||||
func (t *TransformerConfig) AddLabelFieldSpec(fs types.FieldSpec) (err error) {
|
|
||||||
t.CommonLabels, err = t.CommonLabels.MergeOne(fs)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddAnnotationFieldSpec adds a FieldSpec to CommonAnnotations
|
|
||||||
func (t *TransformerConfig) AddAnnotationFieldSpec(fs types.FieldSpec) (err error) {
|
|
||||||
t.CommonAnnotations, err = t.CommonAnnotations.MergeOne(fs)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddNamereferenceFieldSpec adds a NameBackReferences to NameReference
|
|
||||||
func (t *TransformerConfig) AddNamereferenceFieldSpec(
|
|
||||||
nbrs NameBackReferences) (err error) {
|
|
||||||
t.NameReference, err = t.NameReference.mergeOne(nbrs)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Merge merges two TransformerConfigs objects into
|
|
||||||
// a new TransformerConfig object
|
|
||||||
func (t *TransformerConfig) Merge(input *TransformerConfig) (
|
|
||||||
merged *TransformerConfig, err error) {
|
|
||||||
if input == nil {
|
|
||||||
return t, nil
|
|
||||||
}
|
|
||||||
merged = &TransformerConfig{}
|
|
||||||
merged.NamePrefix, err = t.NamePrefix.MergeAll(input.NamePrefix)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.NameSuffix, err = t.NameSuffix.MergeAll(input.NameSuffix)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.NameSpace, err = t.NameSpace.MergeAll(input.NameSpace)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.CommonAnnotations, err = t.CommonAnnotations.MergeAll(
|
|
||||||
input.CommonAnnotations)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.CommonLabels, err = t.CommonLabels.MergeAll(input.CommonLabels)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.VarReference, err = t.VarReference.MergeAll(input.VarReference)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.NameReference, err = t.NameReference.mergeAll(input.NameReference)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.Images, err = t.Images.MergeAll(input.Images)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.Replicas, err = t.Replicas.MergeAll(input.Replicas)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
merged.sortFields()
|
|
||||||
return merged, nil
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
// Code generated by "stringer -type=BuiltinPluginType"; DO NOT EDIT.
|
|
||||||
|
|
||||||
package builtinhelpers
|
|
||||||
|
|
||||||
import "strconv"
|
|
||||||
|
|
||||||
func _() {
|
|
||||||
// An "invalid array index" compiler error signifies that the constant values have changed.
|
|
||||||
// Re-run the stringer command to generate them again.
|
|
||||||
var x [1]struct{}
|
|
||||||
_ = x[Unknown-0]
|
|
||||||
_ = x[AnnotationsTransformer-1]
|
|
||||||
_ = x[ConfigMapGenerator-2]
|
|
||||||
_ = x[HashTransformer-3]
|
|
||||||
_ = x[ImageTagTransformer-4]
|
|
||||||
_ = x[InventoryTransformer-5]
|
|
||||||
_ = x[LabelTransformer-6]
|
|
||||||
_ = x[LegacyOrderTransformer-7]
|
|
||||||
_ = x[NamespaceTransformer-8]
|
|
||||||
_ = x[PatchJson6902Transformer-9]
|
|
||||||
_ = x[PatchStrategicMergeTransformer-10]
|
|
||||||
_ = x[PatchTransformer-11]
|
|
||||||
_ = x[PrefixSuffixTransformer-12]
|
|
||||||
_ = x[ReplicaCountTransformer-13]
|
|
||||||
_ = x[SecretGenerator-14]
|
|
||||||
}
|
|
||||||
|
|
||||||
const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorHashTransformerImageTagTransformerInventoryTransformerLabelTransformerLegacyOrderTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerReplicaCountTransformerSecretGenerator"
|
|
||||||
|
|
||||||
var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 62, 81, 101, 117, 139, 159, 183, 213, 229, 252, 275, 290}
|
|
||||||
|
|
||||||
func (i BuiltinPluginType) String() string {
|
|
||||||
if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) {
|
|
||||||
return "BuiltinPluginType(" + strconv.FormatInt(int64(i), 10) + ")"
|
|
||||||
}
|
|
||||||
return _BuiltinPluginType_name[_BuiltinPluginType_index[i]:_BuiltinPluginType_index[i+1]]
|
|
||||||
}
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
// Code generated by pluginator on LabelTransformer; DO NOT EDIT.
|
|
||||||
// pluginator {Version:unknown GitCommit:$Format:%H$ BuildDate:1970-01-01T00:00:00Z GoOs:linux GoArch:amd64}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package builtins
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
|
||||||
"sigs.k8s.io/kustomize/api/transform"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
|
||||||
"sigs.k8s.io/yaml"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Add the given labels to the given field specifications.
|
|
||||||
type LabelTransformerPlugin struct {
|
|
||||||
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
|
|
||||||
FieldSpecs []types.FieldSpec `json:"fieldSpecs,omitempty" yaml:"fieldSpecs,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func (p *LabelTransformerPlugin) Config(
|
|
||||||
h *resmap.PluginHelpers, c []byte) (err error) {
|
|
||||||
p.Labels = nil
|
|
||||||
p.FieldSpecs = nil
|
|
||||||
return yaml.Unmarshal(c, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *LabelTransformerPlugin) Transform(m resmap.ResMap) error {
|
|
||||||
t, err := transform.NewMapTransformer(
|
|
||||||
p.FieldSpecs,
|
|
||||||
p.Labels,
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return t.Transform(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewLabelTransformerPlugin() resmap.TransformerPlugin {
|
|
||||||
return &LabelTransformerPlugin{}
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Package builtins holds code generated from the builtin plugins.
|
|
||||||
// The "builtin" plugins are written as normal plugins and can
|
|
||||||
// be used as such, but they are also used to generate the code
|
|
||||||
// in this package so they can be statically linked to client code.
|
|
||||||
package builtins
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// +build tools
|
|
||||||
|
|
||||||
// This file exists to declare that its containing
|
|
||||||
// package explicitly depends on the pluginator
|
|
||||||
// tool (via go:generate directives)
|
|
||||||
package builtins
|
|
||||||
|
|
||||||
// TODO: replace this, with the appropriate version
|
|
||||||
// once the API is launched, and the new pluginator
|
|
||||||
// has been compiled against it and released.
|
|
||||||
//
|
|
||||||
// import (
|
|
||||||
// _ "sigs.k8s.io/kustomize/pluginator"
|
|
||||||
// )
|
|
||||||
@@ -1,557 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package target_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/testutils/kusttest"
|
|
||||||
)
|
|
||||||
|
|
||||||
const httpsService = `
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: my-https-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 443
|
|
||||||
protocol: TCP
|
|
||||||
name: https
|
|
||||||
selector:
|
|
||||||
app: my-app
|
|
||||||
`
|
|
||||||
|
|
||||||
func writeStatefulSetBase(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/base", `
|
|
||||||
resources:
|
|
||||||
- statefulset.yaml
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/base/statefulset.yaml", `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
serviceName: my-svc
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: my-app
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: my-app
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: app
|
|
||||||
image: my-image
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- spec:
|
|
||||||
storageClassName: default
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeHTTPSOverlay(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/https", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
- https-svc.yaml
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- sts-patch.yaml
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/https/https-svc.yaml", httpsService)
|
|
||||||
th.WriteF("/app/https/sts-patch.yaml", `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
serviceName: my-https-svc
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeHTTPSTransformerRaw(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteF("/app/https/service/https-svc.yaml", httpsService)
|
|
||||||
th.WriteF("/app/https/transformer/transformer.yaml", `
|
|
||||||
apiVersion: builtin
|
|
||||||
kind: PatchTransformer
|
|
||||||
metadata:
|
|
||||||
name: svcNameTran
|
|
||||||
target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: StatefulSet
|
|
||||||
name: my-sts
|
|
||||||
patch: |-
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
serviceName: my-https-svc
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeHTTPSTransformerBase(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/https/service", `
|
|
||||||
resources:
|
|
||||||
- https-svc.yaml
|
|
||||||
`)
|
|
||||||
th.WriteK("/app/https/transformer", `
|
|
||||||
resources:
|
|
||||||
- transformer.yaml
|
|
||||||
`)
|
|
||||||
writeHTTPSTransformerRaw(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeConfigFromEnvOverlay(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/config", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
configMapGenerator:
|
|
||||||
- name: my-config
|
|
||||||
literals:
|
|
||||||
- MY_ENV=foo
|
|
||||||
generatorOptions:
|
|
||||||
disableNameSuffixHash: true
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- sts-patch.yaml
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/config/sts-patch.yaml", `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: app
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: my-config
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeConfigFromEnvTransformerRaw(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteF("/app/config/map/generator.yaml", `
|
|
||||||
apiVersion: builtin
|
|
||||||
kind: ConfigMapGenerator
|
|
||||||
metadata:
|
|
||||||
name: my-config
|
|
||||||
disableNameSuffixHash: true
|
|
||||||
literals:
|
|
||||||
- MY_ENV=foo
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/config/transformer/transformer.yaml", `
|
|
||||||
apiVersion: builtin
|
|
||||||
kind: PatchTransformer
|
|
||||||
metadata:
|
|
||||||
name: envFromConfigTrans
|
|
||||||
target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: StatefulSet
|
|
||||||
name: my-sts
|
|
||||||
patch: |-
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: app
|
|
||||||
envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: my-config
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
func writeConfigFromEnvTransformerBase(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/config/map", `
|
|
||||||
resources:
|
|
||||||
- generator.yaml
|
|
||||||
`)
|
|
||||||
th.WriteK("/app/config/transformer", `
|
|
||||||
resources:
|
|
||||||
- transformer.yaml
|
|
||||||
`)
|
|
||||||
writeConfigFromEnvTransformerRaw(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeTolerationsOverlay(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/tolerations", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- sts-patch.yaml
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/tolerations/sts-patch.yaml", `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
tolerations:
|
|
||||||
- effect: NoExecute
|
|
||||||
key: node.kubernetes.io/not-ready
|
|
||||||
tolerationSeconds: 30
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeTolerationsTransformerRaw(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteF("/app/tolerations/transformer.yaml", `
|
|
||||||
apiVersion: builtin
|
|
||||||
kind: PatchTransformer
|
|
||||||
metadata:
|
|
||||||
name: tolTrans
|
|
||||||
target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: StatefulSet
|
|
||||||
name: my-sts
|
|
||||||
patch: |-
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
tolerations:
|
|
||||||
- effect: NoExecute
|
|
||||||
key: node.kubernetes.io/not-ready
|
|
||||||
tolerationSeconds: 30
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeTolerationsTransformerBase(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/tolerations", `
|
|
||||||
resources:
|
|
||||||
- transformer.yaml
|
|
||||||
`)
|
|
||||||
writeTolerationsTransformerRaw(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeStorageOverlay(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/storage", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
patchesJson6902:
|
|
||||||
- target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: StatefulSet
|
|
||||||
name: my-sts
|
|
||||||
path: sts-patch.json
|
|
||||||
`)
|
|
||||||
th.WriteF("/app/storage/sts-patch.json", `
|
|
||||||
[{"op": "replace", "path": "/spec/volumeClaimTemplates/0/spec/storageClassName", "value": "my-sc"}]
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeStorageTransformerRaw(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteF("/app/storage/transformer.yaml", `
|
|
||||||
apiVersion: builtin
|
|
||||||
kind: PatchTransformer
|
|
||||||
metadata:
|
|
||||||
name: storageTrans
|
|
||||||
target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: StatefulSet
|
|
||||||
name: my-sts
|
|
||||||
patch: |-
|
|
||||||
[{"op": "replace", "path": "/spec/volumeClaimTemplates/0/spec/storageClassName", "value": "my-sc"}]
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writeStorageTransformerBase(th *kusttest_test.KustTestHarness) {
|
|
||||||
th.WriteK("/app/storage", `
|
|
||||||
resources:
|
|
||||||
- transformer.yaml
|
|
||||||
`)
|
|
||||||
writeStorageTransformerRaw(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writePatchingOverlays(th *kusttest_test.KustTestHarness) {
|
|
||||||
writeStorageOverlay(th)
|
|
||||||
writeConfigFromEnvOverlay(th)
|
|
||||||
writeTolerationsOverlay(th)
|
|
||||||
writeHTTPSOverlay(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
func writePatchingTransformersRaw(th *kusttest_test.KustTestHarness) {
|
|
||||||
writeStorageTransformerRaw(th)
|
|
||||||
writeConfigFromEnvTransformerRaw(th)
|
|
||||||
writeTolerationsTransformerRaw(th)
|
|
||||||
writeHTTPSTransformerRaw(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Similar to writePatchingTransformersRaw, except here the
|
|
||||||
// transformers and related artifacts are addressable as _bases_.
|
|
||||||
// They are listed in a kustomization file, and consumers of
|
|
||||||
// the plugin refer to the kustomization instead of to the local
|
|
||||||
// file in the "transformers:" field.
|
|
||||||
//
|
|
||||||
// Using bases makes the set of files relocatable with
|
|
||||||
// respect to the overlays, and avoids the need to relax load
|
|
||||||
// restrictions on file paths reaching outside the `dev` and
|
|
||||||
// `prod` kustomization roots. I.e. with bases tests can use
|
|
||||||
// NewKustTestHarness instead of NewKustTestHarnessNoLoadRestrictor.
|
|
||||||
//
|
|
||||||
// Using transformer plugins from _bases_ means the plugin config
|
|
||||||
// must be self-contained, i.e. the config may not have fields that
|
|
||||||
// refer to local files, since those files won't be present when
|
|
||||||
// the plugin is instantiated and used.
|
|
||||||
func writePatchingTransformerBases(th *kusttest_test.KustTestHarness) {
|
|
||||||
writeStorageTransformerBase(th)
|
|
||||||
writeConfigFromEnvTransformerBase(th)
|
|
||||||
writeTolerationsTransformerBase(th)
|
|
||||||
writeHTTPSTransformerBase(th)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Here's a complex kustomization scenario that combines multiple overlays
|
|
||||||
// on a common base:
|
|
||||||
//
|
|
||||||
// dev prod
|
|
||||||
// | |
|
|
||||||
// | |
|
|
||||||
// + ------- + + ------------ + ------------- +
|
|
||||||
// | | | | |
|
|
||||||
// | | | | |
|
|
||||||
// v | v v v
|
|
||||||
// storage + -----> config tolerations https
|
|
||||||
// | | | |
|
|
||||||
// | | | |
|
|
||||||
// | + --- + + --- + |
|
|
||||||
// | | | |
|
|
||||||
// | v v |
|
|
||||||
// + -----------------------> base <------------------ +
|
|
||||||
//
|
|
||||||
// The base resource is a statefulset. Each intermediate overlay manages or
|
|
||||||
// generates new resources and patches different aspects of the same base
|
|
||||||
// resource, without using any of the `namePrefix`, `nameSuffix` or `namespace`
|
|
||||||
// kustomization keywords.
|
|
||||||
//
|
|
||||||
// Intermediate overlays:
|
|
||||||
// - storage: Changes the storage class of the stateful set with a JSON patch.
|
|
||||||
// - config: Generates a config map and adds a field as an environment
|
|
||||||
// variable.
|
|
||||||
// - tolerations: Adds a new tolerations field in the spec.
|
|
||||||
// - https: Adds a new service resource and changes the service name in the
|
|
||||||
// stateful set.
|
|
||||||
//
|
|
||||||
// Top overlays:
|
|
||||||
// - dev: Combines the storage and config intermediate overlays.
|
|
||||||
// - prod: Combines the config, tolerations and https intermediate overlays.
|
|
||||||
|
|
||||||
func TestComplexComposition_Dev_Failure(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarness(t, "/app/dev")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingOverlays(th)
|
|
||||||
th.WriteK("/app/dev", `
|
|
||||||
resources:
|
|
||||||
- ../storage
|
|
||||||
- ../config
|
|
||||||
`)
|
|
||||||
_, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err == nil {
|
|
||||||
t.Fatalf("Expected resource accumulation error")
|
|
||||||
}
|
|
||||||
if !strings.Contains(
|
|
||||||
err.Error(), "already registered id: apps_v1_StatefulSet|~X|my-sts") {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const devDesiredResult = `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: my-app
|
|
||||||
serviceName: my-svc
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: my-app
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: my-config
|
|
||||||
image: my-image
|
|
||||||
name: app
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- spec:
|
|
||||||
storageClassName: my-sc
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
MY_ENV: foo
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: my-config
|
|
||||||
`
|
|
||||||
|
|
||||||
func TestComplexComposition_Dev_SuccessWithRawTransformers(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarnessNoLoadRestrictor(t, "/app/dev")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingTransformersRaw(th)
|
|
||||||
th.WriteK("/app/dev", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
generators:
|
|
||||||
- ../config/map/generator.yaml
|
|
||||||
transformers:
|
|
||||||
- ../config/transformer/transformer.yaml
|
|
||||||
- ../storage/transformer.yaml
|
|
||||||
`)
|
|
||||||
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
th.AssertActualEqualsExpected(m, devDesiredResult)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestComplexComposition_Dev_SuccessWithBaseTransformers(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarness(t, "/app/dev")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingTransformerBases(th)
|
|
||||||
th.WriteK("/app/dev", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
generators:
|
|
||||||
- ../config/map
|
|
||||||
transformers:
|
|
||||||
- ../config/transformer
|
|
||||||
- ../storage
|
|
||||||
`)
|
|
||||||
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
th.AssertActualEqualsExpected(m, devDesiredResult)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestComplexComposition_Prod_Failure(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarness(t, "/app/prod")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingOverlays(th)
|
|
||||||
th.WriteK("/app/prod", `
|
|
||||||
resources:
|
|
||||||
- ../config
|
|
||||||
- ../tolerations
|
|
||||||
- ../https
|
|
||||||
`)
|
|
||||||
_, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err == nil {
|
|
||||||
t.Fatalf("Expected resource accumulation error")
|
|
||||||
}
|
|
||||||
if !strings.Contains(
|
|
||||||
err.Error(), "already registered id: apps_v1_StatefulSet|~X|my-sts") {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const prodDesiredResult = `
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: StatefulSet
|
|
||||||
metadata:
|
|
||||||
name: my-sts
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: my-app
|
|
||||||
serviceName: my-https-svc
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: my-app
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- envFrom:
|
|
||||||
- configMapRef:
|
|
||||||
name: my-config
|
|
||||||
image: my-image
|
|
||||||
name: app
|
|
||||||
tolerations:
|
|
||||||
- effect: NoExecute
|
|
||||||
key: node.kubernetes.io/not-ready
|
|
||||||
tolerationSeconds: 30
|
|
||||||
volumeClaimTemplates:
|
|
||||||
- spec:
|
|
||||||
storageClassName: default
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: my-https-svc
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: https
|
|
||||||
port: 443
|
|
||||||
protocol: TCP
|
|
||||||
selector:
|
|
||||||
app: my-app
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
data:
|
|
||||||
MY_ENV: foo
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: my-config
|
|
||||||
`
|
|
||||||
|
|
||||||
func TestComplexComposition_Prod_SuccessWithRawTransformers(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarnessNoLoadRestrictor(t, "/app/prod")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingTransformersRaw(th)
|
|
||||||
th.WriteK("/app/prod", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
- ../https/service/https-svc.yaml
|
|
||||||
generators:
|
|
||||||
- ../config/map/generator.yaml
|
|
||||||
transformers:
|
|
||||||
- ../config/transformer/transformer.yaml
|
|
||||||
- ../https/transformer/transformer.yaml
|
|
||||||
- ../tolerations/transformer.yaml
|
|
||||||
`)
|
|
||||||
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
th.AssertActualEqualsExpected(m, prodDesiredResult)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestComplexComposition_Prod_SuccessWithBaseTransformers(t *testing.T) {
|
|
||||||
th := kusttest_test.NewKustTestHarness(t, "/app/prod")
|
|
||||||
writeStatefulSetBase(th)
|
|
||||||
writePatchingTransformerBases(th)
|
|
||||||
th.WriteK("/app/prod", `
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
- ../https/service
|
|
||||||
generators:
|
|
||||||
- ../config/map
|
|
||||||
transformers:
|
|
||||||
- ../config/transformer
|
|
||||||
- ../https/transformer
|
|
||||||
- ../tolerations
|
|
||||||
`)
|
|
||||||
m, err := th.MakeKustTarget().MakeCustomizedResMap()
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Unexpected err: %v", err)
|
|
||||||
}
|
|
||||||
th.AssertActualEqualsExpected(m, prodDesiredResult)
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package transform
|
|
||||||
|
|
||||||
import (
|
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
|
||||||
)
|
|
||||||
|
|
||||||
// mapTransformer applies a string->string map to fieldSpecs.
|
|
||||||
type mapTransformer struct {
|
|
||||||
m map[string]string
|
|
||||||
fieldSpecs []types.FieldSpec
|
|
||||||
}
|
|
||||||
|
|
||||||
var _ resmap.Transformer = &mapTransformer{}
|
|
||||||
|
|
||||||
// NewMapTransformer construct a mapTransformer.
|
|
||||||
func NewMapTransformer(
|
|
||||||
pc []types.FieldSpec, m map[string]string) (resmap.Transformer, error) {
|
|
||||||
if m == nil {
|
|
||||||
return newNoOpTransformer(), nil
|
|
||||||
}
|
|
||||||
if pc == nil {
|
|
||||||
return nil, errors.New("fieldSpecs is not expected to be nil")
|
|
||||||
}
|
|
||||||
return &mapTransformer{fieldSpecs: pc, m: m}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transform apply each <key, value> pair in the mapTransformer to the
|
|
||||||
// fields specified in mapTransformer.
|
|
||||||
func (o *mapTransformer) Transform(m resmap.ResMap) error {
|
|
||||||
for _, r := range m.Resources() {
|
|
||||||
for _, path := range o.fieldSpecs {
|
|
||||||
if !r.OrgId().IsSelected(&path.Gvk) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
err := MutateField(
|
|
||||||
r.Map(), path.PathSlice(),
|
|
||||||
path.CreateIfNotPresent, o.addMap)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *mapTransformer) addMap(in interface{}) (interface{}, error) {
|
|
||||||
m, ok := in.(map[string]interface{})
|
|
||||||
if in == nil {
|
|
||||||
m = map[string]interface{}{}
|
|
||||||
} else if !ok {
|
|
||||||
return nil, fmt.Errorf("%#v is expected to be %T", in, m)
|
|
||||||
}
|
|
||||||
for k, v := range o.m {
|
|
||||||
m[k] = v
|
|
||||||
}
|
|
||||||
return m, nil
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package transform
|
|
||||||
|
|
||||||
import "sigs.k8s.io/kustomize/api/resmap"
|
|
||||||
|
|
||||||
// noOpTransformer contains a no-op transformer.
|
|
||||||
type noOpTransformer struct{}
|
|
||||||
|
|
||||||
var _ resmap.Transformer = &noOpTransformer{}
|
|
||||||
|
|
||||||
// newNoOpTransformer constructs a noOpTransformer.
|
|
||||||
func newNoOpTransformer() resmap.Transformer {
|
|
||||||
return &noOpTransformer{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transform does nothing.
|
|
||||||
func (o *noOpTransformer) Transform(_ resmap.ResMap) error {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
// Package types holds the definition of the kustomization struct and
|
|
||||||
// supporting structs. It's the k8s API conformant object that describes
|
|
||||||
// a set of generation and transformation operations to create and/or
|
|
||||||
// modify k8s resources.
|
|
||||||
// A kustomization file is a serialization of this struct.
|
|
||||||
package types
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
//go:generate stringer -type=GarbagePolicy
|
|
||||||
type GarbagePolicy int
|
|
||||||
|
|
||||||
const (
|
|
||||||
GarbageIgnore GarbagePolicy = iota + 1
|
|
||||||
GarbageCollect
|
|
||||||
)
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
. "sigs.k8s.io/kustomize/api/types"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestGenArgs_String(t *testing.T) {
|
|
||||||
tests := []struct {
|
|
||||||
ga *GenArgs
|
|
||||||
expected string
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
ga: nil,
|
|
||||||
expected: "{nilGenArgs}",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ga: &GenArgs{},
|
|
||||||
expected: "{nsfx:false,beh:unspecified}",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
ga: NewGenArgs(
|
|
||||||
&GeneratorArgs{Behavior: "merge"},
|
|
||||||
&GeneratorOptions{DisableNameSuffixHash: false}),
|
|
||||||
expected: "{nsfx:true,beh:merge}",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
for _, test := range tests {
|
|
||||||
if test.ga.String() != test.expected {
|
|
||||||
t.Fatalf("Expected '%s', got '%s'", test.expected, test.ga.String())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// GeneratorArgs contains arguments common to ConfigMap and Secret generators.
|
|
||||||
type GeneratorArgs struct {
|
|
||||||
// Namespace for the configmap, optional
|
|
||||||
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
|
||||||
|
|
||||||
// Name - actually the partial name - of the generated resource.
|
|
||||||
// The full name ends up being something like
|
|
||||||
// NamePrefix + this.Name + hash(content of generated resource).
|
|
||||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
|
||||||
|
|
||||||
// Behavior of generated resource, must be one of:
|
|
||||||
// 'create': create a new one
|
|
||||||
// 'replace': replace the existing one
|
|
||||||
// 'merge': merge with the existing one
|
|
||||||
Behavior string `json:"behavior,omitempty" yaml:"behavior,omitempty"`
|
|
||||||
|
|
||||||
// KvPairSources for the generator.
|
|
||||||
KvPairSources `json:",inline,omitempty" yaml:",inline,omitempty"`
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// Inventory records all objects touched in a build operation.
|
|
||||||
type Inventory struct {
|
|
||||||
Type string `json:"type,omitempty" yaml:"type,omitempty"`
|
|
||||||
ConfigMap NameArgs `json:"configMap,omitempty" yaml:"configMap,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NameArgs holds both namespace and name.
|
|
||||||
type NameArgs struct {
|
|
||||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
|
||||||
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// Pair is a key value pair.
|
|
||||||
type Pair struct {
|
|
||||||
Key string
|
|
||||||
Value string
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// Patch represent either a Strategic Merge Patch or a JSON patch
|
|
||||||
// and its targets.
|
|
||||||
// The content of the patch can either be from a file
|
|
||||||
// or from an inline string.
|
|
||||||
type Patch struct {
|
|
||||||
// Path is a relative file path to the patch file.
|
|
||||||
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
|
||||||
|
|
||||||
// Patch is the content of a patch.
|
|
||||||
Patch string `json:"patch,omitempty" yaml:"patch,omitempty"`
|
|
||||||
|
|
||||||
// Target points to the resources that the patch is applied to
|
|
||||||
Target *Selector `json:"target,omitempty" yaml:"target,omitempty"`
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// PatchJson6902 represents a json patch for an object
|
|
||||||
// with format documented https://tools.ietf.org/html/rfc6902.
|
|
||||||
type PatchJson6902 struct {
|
|
||||||
// PatchTarget refers to a Kubernetes object that the json patch will be
|
|
||||||
// applied to. It must refer to a Kubernetes resource under the
|
|
||||||
// purview of this kustomization. PatchTarget should use the
|
|
||||||
// raw name of the object (the name specified in its YAML,
|
|
||||||
// before addition of a namePrefix and a nameSuffix).
|
|
||||||
Target *PatchTarget `json:"target" yaml:"target"`
|
|
||||||
|
|
||||||
// relative file path for a json patch file inside a kustomization
|
|
||||||
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
|
||||||
|
|
||||||
// inline patch string
|
|
||||||
Patch string `json:"patch,omitempty" yaml:"patch,omitempty"`
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// PluginConfig holds plugin configuration.
|
|
||||||
type PluginConfig struct {
|
|
||||||
// DirectoryPath is an absolute path to a
|
|
||||||
// directory containing kustomize plugins.
|
|
||||||
// This directory may contain subdirectories
|
|
||||||
// further categorizing plugins.
|
|
||||||
DirectoryPath string
|
|
||||||
|
|
||||||
// Enabled is true if plugins are enabled.
|
|
||||||
Enabled bool
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
package types
|
|
||||||
|
|
||||||
// TypeMeta partially copies apimachinery/pkg/apis/meta/v1.TypeMeta
|
|
||||||
// No need for a direct dependence; the fields are stable.
|
|
||||||
type TypeMeta struct {
|
|
||||||
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
|
|
||||||
APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
|
|
||||||
}
|
|
||||||
@@ -8,57 +8,32 @@ are available on the [release page].
|
|||||||
|
|
||||||
Or...
|
Or...
|
||||||
|
|
||||||
## Quickly curl the latest binary
|
## Quickly curl the latest
|
||||||
|
|
||||||
```
|
```
|
||||||
# pick one
|
opsys=linux # or darwin, or windows
|
||||||
opsys=darwin
|
|
||||||
opsys=windows
|
|
||||||
opsys=linux
|
|
||||||
|
|
||||||
curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest |\
|
curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest |\
|
||||||
grep browser_download |\
|
grep browser_download |\
|
||||||
grep $opsys |\
|
grep $opsys |\
|
||||||
cut -d '"' -f 4 |\
|
cut -d '"' -f 4 |\
|
||||||
xargs curl -O -L
|
xargs curl -O -L
|
||||||
mv kustomize_kustomize\.v*_${opsys}_amd64 kustomize
|
mv kustomize_*_${opsys}_amd64 kustomize
|
||||||
chmod u+x kustomize
|
chmod u+x kustomize
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build the kustomize CLI from local source
|
## Get and install source for a particular release
|
||||||
|
|
||||||
|
For example
|
||||||
```
|
```
|
||||||
# Need go 1.13 or higher
|
# Omit the @v3.2.1 to get the default for major version 3
|
||||||
unset GOPATH
|
GO111MODULE=on go get sigs.k8s.io/kustomize/kustomize/v3@v3.2.1
|
||||||
# see https://golang.org/doc/go1.13#modules
|
|
||||||
unset GO111MODULES
|
|
||||||
|
|
||||||
# clone the repo
|
|
||||||
git clone git@github.com:kubernetes-sigs/kustomize.git
|
|
||||||
# get into the repo root
|
|
||||||
cd kustomize
|
|
||||||
|
|
||||||
# Optionally checkout a particular tag if you don't
|
|
||||||
# want to build at head
|
|
||||||
git checkout kustomize/v3.2.3
|
|
||||||
|
|
||||||
# build the binary
|
|
||||||
(cd kustomize; go install .)
|
|
||||||
|
|
||||||
# run it
|
|
||||||
~/go/bin/kustomize version
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Use of `GO111MODULE=on` shouldn't be necessary
|
||||||
|
with [Go v1.13](https://golang.org/doc/go1.13#modules).
|
||||||
|
|
||||||
### Other methods
|
### Other methods
|
||||||
|
|
||||||
#### Use go get
|
|
||||||
|
|
||||||
This works poorly with existing `Go` package installations at the
|
|
||||||
moment, since kustomize switched over to Go modules but hasn't
|
|
||||||
historically followed semver with respect to its API.
|
|
||||||
|
|
||||||
This is being [fixed](versioningPolicy.md), after which
|
|
||||||
`go get` should work correctly.
|
|
||||||
|
|
||||||
#### macOS
|
#### macOS
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -23,16 +23,8 @@ English | [简体中文](zh/README.md)
|
|||||||
|
|
||||||
## Release notes
|
## Release notes
|
||||||
|
|
||||||
* [kustomize/3.2.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv3.2.2) - kustomize CLI
|
* 3.2.1 - Patch release of kustomize in its own module. No change in function
|
||||||
moved to depend on kustomize Go API [3.3.0](v3.3.0.md).
|
from v3.2.0.
|
||||||
|
|
||||||
* [API 3.3.0](v3.3.0.md) - First release of the kustomize Go API
|
|
||||||
in a module excluding the `kustomize` CLI. From here on,
|
|
||||||
the CLI and API will release independently.
|
|
||||||
|
|
||||||
* [kustomize/3.2.1](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv3.2.1) - Patch release
|
|
||||||
of `kustomize` CLI in its own module,
|
|
||||||
depending on Go API release [3.2.0](v3.2.0.md).
|
|
||||||
|
|
||||||
* [3.2.0](v3.2.0.md) - TODO(jingfang)
|
* [3.2.0](v3.2.0.md) - TODO(jingfang)
|
||||||
|
|
||||||
|
|||||||
@@ -305,8 +305,8 @@ A Go plugin for kustomize looks like this:
|
|||||||
> package main
|
> package main
|
||||||
>
|
>
|
||||||
> import (
|
> import (
|
||||||
> "sigs.k8s.io/kustomize/api/ifc"
|
> "sigs.k8s.io/kustomize/v3/pkg/ifc"
|
||||||
> "sigs.k8s.io/kustomize/api/resmap"
|
> "sigs.k8s.io/kustomize/v3/pkg/resmap"
|
||||||
> ...
|
> ...
|
||||||
> )
|
> )
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -33,16 +33,16 @@ be defaulted. The latter method allows for
|
|||||||
complete plugin argument specification.
|
complete plugin argument specification.
|
||||||
|
|
||||||
|
|
||||||
[types.GeneratorOptions]: ../../api/types/generatoroptions.go
|
[types.GeneratorOptions]: ../../pkg/types/generatoroptions.go
|
||||||
[types.SecretArgs]: ../../api/types/secretargs.go
|
[types.SecretArgs]: ../../pkg/types/secretargs.go
|
||||||
[types.ConfigMapArgs]: ../../api/types/configmapargs.go
|
[types.ConfigMapArgs]: ../../pkg/types/configmapargs.go
|
||||||
[config.FieldSpec]: ../../api/plugins/builtinconfig/fieldspec.go
|
[config.FieldSpec]: ../../pkg/transformers/config/fieldspec.go
|
||||||
[types.ObjectMeta]: ../../api/types/objectmeta.go
|
[types.ObjectMeta]: ../../pkg/types/objectmeta.go
|
||||||
[types.Selector]: ../../api/types/selector.go
|
[types.Selector]: ../../pkg/types/selector.go
|
||||||
[types.Replica]: ../../api/types/replica.go
|
[types.Replica]: ../../pkg/types/replica.go
|
||||||
[types.PatchStrategicMerge]: ../../api/types/patchstrategicmerge.go
|
[types.PatchStrategicMerge]: ../../pkg/types/patchstrategicmerge.go
|
||||||
[types.PatchTarget]: ../../api/types/patchtarget.go
|
[types.PatchTarget]: ../../pkg/types/patchtarget.go
|
||||||
[image.Image]: ../../api/types/image.go
|
[image.Image]: ../../pkg/image/image.go
|
||||||
|
|
||||||
## _AnnotationTransformer_
|
## _AnnotationTransformer_
|
||||||
### Usage via `kustomization.yaml`
|
### Usage via `kustomization.yaml`
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ current setup.
|
|||||||
|
|
||||||
#### requirements
|
#### requirements
|
||||||
|
|
||||||
* linux, git, curl, Go 1.13
|
* linux, git, curl, Go 1.12
|
||||||
|
|
||||||
|
|
||||||
## Make a place to work
|
## Make a place to work
|
||||||
@@ -201,7 +201,7 @@ chmod a+x $MY_PLUGIN_DIR/SillyConfigMapGenerator
|
|||||||
```
|
```
|
||||||
mkdir -p $DEMO/bin
|
mkdir -p $DEMO/bin
|
||||||
gh=https://github.com/kubernetes-sigs/kustomize/releases/download
|
gh=https://github.com/kubernetes-sigs/kustomize/releases/download
|
||||||
url=$gh/v3.0.0/kustomize_3.0.0_linux_amd64
|
url=$gh/v3.0.0-pre/kustomize_3.0.0-pre_linux_amd64
|
||||||
curl -o $DEMO/bin/kustomize -L $url
|
curl -o $DEMO/bin/kustomize -L $url
|
||||||
chmod u+x $DEMO/bin/kustomize
|
chmod u+x $DEMO/bin/kustomize
|
||||||
```
|
```
|
||||||
@@ -226,3 +226,4 @@ Above, if you had set
|
|||||||
|
|
||||||
there would be no need to use `XDG_CONFIG_HOME` in the
|
there would be no need to use `XDG_CONFIG_HOME` in the
|
||||||
_kustomize_ command above.
|
_kustomize_ command above.
|
||||||
|
|
||||||
|
|||||||
@@ -52,8 +52,7 @@ kustomize and the plugin_.
|
|||||||
|
|
||||||
This means a one-time run of
|
This means a one-time run of
|
||||||
```
|
```
|
||||||
# Or whatever is appropriate at time of reading
|
GOPATH=${whatever} GO111MODULE=on go get sigs.k8s.io/kustomize/kustomize/v3
|
||||||
GOPATH=${whatever} GO111MODULE=on go get sigs.k8s.io/kustomize/api
|
|
||||||
```
|
```
|
||||||
|
|
||||||
and then a normal development cycle using
|
and then a normal development cycle using
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ current setup.
|
|||||||
|
|
||||||
#### requirements
|
#### requirements
|
||||||
|
|
||||||
* linux, git, curl, Go 1.13
|
* linux, git, curl, Go 1.12
|
||||||
|
|
||||||
For encryption
|
For encryption
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ Need v3.0.0 for what follows, and you must _compile_
|
|||||||
it (not download the binary from the release page):
|
it (not download the binary from the release page):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
GOPATH=$tmpGoPath go install sigs.k8s.io/kustomize/kustomize
|
GOPATH=$tmpGoPath go install sigs.k8s.io/kustomize/v3/cmd/kustomize
|
||||||
```
|
```
|
||||||
|
|
||||||
## Make a home for plugins
|
## Make a home for plugins
|
||||||
@@ -173,7 +173,7 @@ dependency [skew].
|
|||||||
On load failure
|
On load failure
|
||||||
|
|
||||||
* be sure to build the plugin with the same
|
* be sure to build the plugin with the same
|
||||||
version of Go (_go1.13_) on the same `$GOOS`
|
version of Go (_go1.12_) on the same `$GOOS`
|
||||||
(_linux_) and `$GOARCH` (_amd64_) used to build
|
(_linux_) and `$GOARCH` (_amd64_) used to build
|
||||||
the kustomize being [used in this demo].
|
the kustomize being [used in this demo].
|
||||||
|
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ normal k8s resources means that one can generate
|
|||||||
or transform a generator or a transformer (see
|
or transform a generator or a transformer (see
|
||||||
[TestTransformerTransformers]).
|
[TestTransformerTransformers]).
|
||||||
|
|
||||||
[TestTransformerTransformers]: ../api/target/transformerplugin_test.go
|
[TestTransformerTransformers]: ../pkg/target/transformerplugin_test.go
|
||||||
|
|
||||||
### `replicas` field
|
### `replicas` field
|
||||||
|
|
||||||
|
|||||||
114
docs/v3.3.0.md
114
docs/v3.3.0.md
@@ -1,114 +0,0 @@
|
|||||||
# kustomize 3.3.0
|
|
||||||
|
|
||||||
[versioning policy documentation]: https://github.com/kubernetes-sigs/kustomize/blob/master/docs/versioningPolicy.md
|
|
||||||
[release process documentation]: https://github.com/kubernetes-sigs/kustomize/tree/master/releasing
|
|
||||||
|
|
||||||
## Summary of changes
|
|
||||||
|
|
||||||
### First release of the Go API-only module.
|
|
||||||
|
|
||||||
Many of the PRs since the last kustomize release were
|
|
||||||
around restructuring the _sigs.k8s.io/kustomize_
|
|
||||||
repository into three Go modules instead of just one.
|
|
||||||
|
|
||||||
The reasons for this are detailed in the [versioning
|
|
||||||
policy documentation], and what it means for releasing
|
|
||||||
is explained in the [release process documentation].
|
|
||||||
|
|
||||||
The tl;dr is that the top level module
|
|
||||||
`sigs.k8s.io/kustomize` now defines the kustomize Go
|
|
||||||
API, and the _kustomize_ CLI sits below it in an
|
|
||||||
independent module `sigs.k8s.io/kustomize/kustomize`.
|
|
||||||
|
|
||||||
The modules release independently, though in practice a
|
|
||||||
new release of the kustomize Go API will likely be
|
|
||||||
followed quickly by a new release of the `kustomize`
|
|
||||||
executable.
|
|
||||||
|
|
||||||
This is a necessary step to creating a much smaller
|
|
||||||
kustomize Go API surface that has some hope of
|
|
||||||
conforming to semantic versioning and being of some use
|
|
||||||
to clients.
|
|
||||||
|
|
||||||
The kustomize CLI will see the same kustomize Go API as
|
|
||||||
any other client.
|
|
||||||
|
|
||||||
The new semver-able API will begin with `v4.0.0` (not
|
|
||||||
yet released) and be a clean break with `v3` etc.
|
|
||||||
|
|
||||||
|
|
||||||
### Change log since v3.2.0
|
|
||||||
|
|
||||||
```
|
|
||||||
3c9d828f - Have kustomize CLI depend on kustomize Go API v3.3.0 (Jeffrey Regan)
|
|
||||||
5d800f0b - Merge pull request #1595 from monopole/threeReleases (Jeff Regan)
|
|
||||||
4eb2d5bc - Three builders. (Jeffrey Regan)
|
|
||||||
988af1ff - Update README.md (Jeff Regan)
|
|
||||||
1617183e - Merge pull request #1590 from monopole/releaseProcessUpdate (Kubernetes Prow Robot)
|
|
||||||
ee727464 - update release process doc (jregan)
|
|
||||||
c9e7dc3b - Merge pull request #1589 from monopole/moreTestsAroundKustFileName (Jeff Regan)
|
|
||||||
07e0e46a - improve tests for alternative kustomization file names (Jeffrey Regan)
|
|
||||||
404d2d63 - Merge pull request #1587 from monopole/reducePgmconfig (Jeff Regan)
|
|
||||||
baa0296a - Reduce size of pgmconfig package (Jeffrey Regan)
|
|
||||||
0f665ac1 - Merge pull request #1544 from ptux/add-transformer-href (Jeff Regan)
|
|
||||||
14b0a650 - Merge pull request #1581 from monopole/refactorFs (Jeff Regan)
|
|
||||||
2d58f8b8 - Break the dep between fs and pgmconfig. (Jeffrey Regan)
|
|
||||||
9a43ca53 - Merge pull request #1578 from nlamirault/fix/build-plugins-doc (Jeff Regan)
|
|
||||||
5372fc6f - Merge pull request #1579 from monopole/fsPackageCleanup (Jeff Regan)
|
|
||||||
86bc3440 - Merge pull request #1513 from nimohunter/fix_empty_list_item (Kubernetes Prow Robot)
|
|
||||||
a014f7d4 - Merge pull request #1561 from beautytiger/dev-190925 (Jeff Regan)
|
|
||||||
9a94bcb8 - Improve fs package and doc in prep to officially go public (Jeffrey Regan)
|
|
||||||
07634ef0 - Merge pull request #1575 from monopole/versioning (Jeff Regan)
|
|
||||||
995f88d6 - Update versioning notes. (jregan)
|
|
||||||
334a6467 - Fix: documentation link for plugins (Nicolas Lamirault)
|
|
||||||
08963ba5 - improve test code coverage in transformers (Guangming Wang)
|
|
||||||
326fb689 - Merge pull request #1570 from bzub/1234-go_plugin_doc (Jeff Regan)
|
|
||||||
970ce67c - Update goPluginCaveats.md (Jeff Regan)
|
|
||||||
98d18930 - Update INSTALL.md (Jeff Regan)
|
|
||||||
d89b448c - Fix git tag recovery in cloud build. (Jeff Regan)
|
|
||||||
17bf9d32 - Update releasing README. (Jeff Regan)
|
|
||||||
a99aff1d - Merge pull request #1571 from monopole/updateCloudBuildProcess (Kubernetes Prow Robot)
|
|
||||||
a694ac7b - Update cloud build process for kustomize. (Jeffrey Regan)
|
|
||||||
b5b11ef6 - Fix compile kustomize example. (bzub)
|
|
||||||
fa1af6f5 - Merge pull request #1473 from richardmarshall/execpluginhash (Jeff Regan)
|
|
||||||
9288dec0 - Fix failing BashedConfigMapTest (Jeff Regan)
|
|
||||||
1a45dd0b - Merge pull request #1566 from monopole/releaseNotes3.2.1 (Kubernetes Prow Robot)
|
|
||||||
592c5acf - docs: Exec plugin generator options (Richard Marshall)
|
|
||||||
ac9424fa - tests: Add unit tests for update resource options (Richard Marshall)
|
|
||||||
79fbe7c4 - Support resource generator options in exec plugins (Richard Marshall)
|
|
||||||
f69d526f - v3.2.1 release notes (Jeff Regan)
|
|
||||||
07a95a60 - Merge pull request #1565 from monopole/tweakBinaryDepsBeforeTagging (Jeff Regan)
|
|
||||||
032b3857 - Pin the kustomize binary's dependence on kustomize libs. (jregan)
|
|
||||||
81062959 - Merge pull request #1564 from monopole/moveKustomizeBinaryToOwnModule (Kubernetes Prow Robot)
|
|
||||||
b82a8fd3 - Move the kustomize binary to its own module. (Jeffrey Regan)
|
|
||||||
2d0c22d6 - Merge pull request #1562 from keleustes/tools (Kubernetes Prow Robot)
|
|
||||||
aa342def - Pin tool versions using go modules (Ian Howell)
|
|
||||||
10786ec0 - Merge pull request #1554 from keleustes/readme (Kubernetes Prow Robot)
|
|
||||||
7c705687 - Update README.md to include Kubernetes 1.16 (Jerome Brette)
|
|
||||||
e8933d97 - Merge pull request #1560 from monopole/precommitTuneup (Jeff Regan)
|
|
||||||
9d7b6544 - Make pre-commit more portable and less tricky. (jregan)
|
|
||||||
7a0946a9 - Merge pull request #1558 from monopole/dependOnNewPluginatorModule (Jeff Regan)
|
|
||||||
def4f045 - Depend on new pluginator location. (Jeffrey Regan)
|
|
||||||
2f2408f1 - Merge pull request #1559 from monopole/compressCopyright (Jeff Regan)
|
|
||||||
3b9bcc48 - Compress copyright in the commands package. (Jeffrey Regan)
|
|
||||||
d0429ff4 - Merge pull request #1557 from monopole/pluginatorModule (Jeff Regan)
|
|
||||||
33deefc3 - Copy pluginator to its own module. (Jeffrey Regan)
|
|
||||||
9b3de82b - Merge pull request #1506 from Liujingfang1/release (Jeff Regan)
|
|
||||||
d217074f - Merge pull request #1550 from keleustes/apiversion (Kubernetes Prow Robot)
|
|
||||||
1d90ba7c - Fix typo in apiVersion yaml declaration (Jerome Brette)
|
|
||||||
eeeb4c36 - Merge pull request #1547 from keleustes/extensions (Kubernetes Prow Robot)
|
|
||||||
b1faa989 - Update Ingress apiVersion to networking.k8s.io/v1beta1 (Jerome Brette)
|
|
||||||
d8250c9e - move test case (nimohunter)
|
|
||||||
c9500466 - add transformer href (Wang(わん))
|
|
||||||
0c32691e - Merge pull request #1537 from jaypipes/gomod-install-note (Kubernetes Prow Robot)
|
|
||||||
88b1d627 - Merge pull request #1541 from rtnpro/patch-1 (Jeff Regan)
|
|
||||||
aec82066 - Update INSTALL.md (Jeff Regan)
|
|
||||||
20c2b53a - Merge pull request #1542 from monopole/tweakFilePathsInTest (Jeff Regan)
|
|
||||||
274b5c3b - Tweak file path handling and logging in test. (Jeffrey Regan)
|
|
||||||
b1fdaa23 - Fix typo in transformerconfigs README (Ratnadeep Debnath)
|
|
||||||
b5d5e70b - empty list or map item return error (nimohunter)
|
|
||||||
2e829853 - empty list or map item return error (nimohunter)
|
|
||||||
55941f57 - add note about GO111MODULE for source install (Jay Pipes)
|
|
||||||
9e226001 - empty list or map item return error (nimohunter)
|
|
||||||
77b63f96 - add release note for v3.2.0 (jingfangliu)
|
|
||||||
```
|
|
||||||
@@ -6,38 +6,44 @@ particular version of underlying packages (a Go
|
|||||||
API), and reading a particular version of a
|
API), and reading a particular version of a
|
||||||
[kustomization] file.
|
[kustomization] file.
|
||||||
|
|
||||||
> If you're having trouble with `go get`, please
|
|
||||||
> read [Go API Versioning](#go-api-versioning)
|
|
||||||
> and be patient.
|
|
||||||
|
|
||||||
## CLI Program Versioning
|
## CLI Program Versioning
|
||||||
|
|
||||||
The command `kustomize version` prints a three
|
The command `kustomize version` prints a three
|
||||||
field version tag (e.g. `v3.0.0`) that aspires to
|
field version tag (e.g. `v3.0.0`) that aspires to
|
||||||
[semantic versioning].
|
[semantic versioning].
|
||||||
|
|
||||||
This notion of semver applies only to the CLI;
|
This notion of semver applies only to the CLI.
|
||||||
the command names, their arguments and their flags.
|
|
||||||
|
|
||||||
The major version changes when some backward
|
The major version changes when some backward
|
||||||
incompatibility appears in how the commands
|
incompatibility appears in how the commands
|
||||||
behave.
|
behave.
|
||||||
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
See the [installation docs](INSTALL.md).
|
The best method to install kustomize is to
|
||||||
|
download a binary from the [release page].
|
||||||
|
|
||||||
|
If you want to try minor and patch upgrades in
|
||||||
|
dependencies via `go get -u` (see `help go
|
||||||
|
get`), try something like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
GO111MODULE=on go get -u sigs.k8s.io/kustomize/kustomize/v3@v3.2.1
|
||||||
|
```
|
||||||
|
|
||||||
## Go API Versioning
|
## Go API Versioning
|
||||||
|
|
||||||
The public methods in the public packages
|
The public methods in the public packages
|
||||||
of module `sigs.k8s.io/kustomize/api` constitute
|
of module `sigs.k8s.io/kusomize` constitue
|
||||||
the _kustomize Go API_.
|
the _kustomize Go API_.
|
||||||
|
|
||||||
#### Version sigs.k8s.io/kustomize/v3 and earlier
|
#### Version v3 and earlier
|
||||||
|
|
||||||
|
|
||||||
[import path]: https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher
|
[import path]: https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher
|
||||||
|
|
||||||
In `kustomize/v3` (and preceeding major versions), the
|
In `v3` (and preceeding major versions), the
|
||||||
kustomize program and the API live the same Go
|
kustomize program and the API live the same Go
|
||||||
module at `sigs.k8s.io/kustomize`, at [import path]
|
module at `sigs.k8s.io/kustomize`, at [import path]
|
||||||
`sigs.k8s.io/kustomize/v3`.
|
`sigs.k8s.io/kustomize/v3`.
|
||||||
@@ -57,7 +63,8 @@ directory named `internal`). Even a minor
|
|||||||
refactor changing a method name or argument type
|
refactor changing a method name or argument type
|
||||||
in some deeply buried (but still public) method is
|
in some deeply buried (but still public) method is
|
||||||
a backward incompatible change. As a result, Go
|
a backward incompatible change. As a result, Go
|
||||||
API semver hasn't been followed. This was a mistake.
|
API semver hasn't been followed (or we'd be at a much
|
||||||
|
higher version number by now).
|
||||||
|
|
||||||
Some options are
|
Some options are
|
||||||
|
|
||||||
@@ -81,16 +88,22 @@ Some options are
|
|||||||
|
|
||||||
The last option seems the most appealing.
|
The last option seems the most appealing.
|
||||||
|
|
||||||
#### The first stable API version is coming
|
Projects using the Go API directly only use about
|
||||||
|
a dozen public methods in ~ten packages. These
|
||||||
|
methods could likely be combined to one or two
|
||||||
|
public packages intentionally designed for general
|
||||||
|
use, analogous to, say,
|
||||||
|
[regexp](https://golang.org/pkg/regexp) or
|
||||||
|
[go-yaml](https://github.com/go-yaml/yaml),
|
||||||
|
reducing the API surface.
|
||||||
|
|
||||||
The first stable API version will launch
|
#### Version v4
|
||||||
as the Go module
|
|
||||||
|
|
||||||
```
|
With `v4` (i.e. the module dependency path
|
||||||
sigs.k8s.io/kustomize/api
|
`sigs.k8s.io/kustomize/v4`)
|
||||||
```
|
two things will happen.
|
||||||
|
|
||||||
The _kustomize_ program itself (`main.go`
|
First, the _kustomize_ program itself (`main.go`
|
||||||
and CLI specific code) will have moved out of
|
and CLI specific code) will have moved out of
|
||||||
`sigs.k8s.io/kustomize` and into the new module
|
`sigs.k8s.io/kustomize` and into the new module
|
||||||
`sigs.k8s.io/kustomize/kustomize`. This is a
|
`sigs.k8s.io/kustomize/kustomize`. This is a
|
||||||
@@ -101,14 +114,12 @@ trigger a major version bump). This module will
|
|||||||
not export packages; it's just home to a `main`
|
not export packages; it's just home to a `main`
|
||||||
package.
|
package.
|
||||||
|
|
||||||
The `sigs.k8s.io/kustomize/api` module will
|
Second, `sigs.k8s.io/kustomize/v4` will start to
|
||||||
obey semver with a sustainable public
|
obey semver with a substantially reduced public
|
||||||
surface, informed by current usage. Clients
|
surface, informed by current usage. Clients
|
||||||
should import packages from this module, i.e.
|
should import packages from this module, i.e.
|
||||||
from import paths prefixed by
|
from import paths prefixed by
|
||||||
`sigs.k8s.io/kustomize/api/` at first,
|
`sigs.k8s.io/kustomize/v4`. The kustomize binary
|
||||||
and later by `sigs.k8s.io/kustomize/api/v2/`.
|
|
||||||
The kustomize binary
|
|
||||||
itself is an API client requiring this module.
|
itself is an API client requiring this module.
|
||||||
|
|
||||||
The clients and API will evolve independently.
|
The clients and API will evolve independently.
|
||||||
|
|||||||
@@ -35,5 +35,5 @@ chmod u+x kustomize
|
|||||||
|
|
||||||
<!-- @installkustomize @testAgainstLatestRelease -->
|
<!-- @installkustomize @testAgainstLatestRelease -->
|
||||||
```
|
```
|
||||||
go install sigs.k8s.io/kustomize/kustomize
|
go install sigs.k8s.io/kustomize/v3/cmd/kustomize
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -15,10 +15,8 @@ Kustomize provides two ways of adding ConfigMap in one `kustomization`, either b
|
|||||||
> configMapGenerator:
|
> configMapGenerator:
|
||||||
> - name: a-configmap
|
> - name: a-configmap
|
||||||
> files:
|
> files:
|
||||||
> # configfile is used as key
|
|
||||||
> - configs/configfile
|
> - configs/configfile
|
||||||
> # configkey is used as key
|
> - configs/another_configfile
|
||||||
> - configkey=configs/another_configfile
|
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
The ConfigMaps declared as [resource] are treated the same way as other resources. Kustomize doesn't append any hash to the ConfigMap name. The ConfigMap declared from a ConfigMapGenerator is treated differently. A hash is appended to the name and any change in the ConfigMap will trigger a rolling update.
|
The ConfigMaps declared as [resource] are treated the same way as other resources. Kustomize doesn't append any hash to the ConfigMap name. The ConfigMap declared from a ConfigMapGenerator is treated differently. A hash is appended to the name and any change in the ConfigMap will trigger a rolling update.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
[plugin]: ../docs/plugins
|
[plugin]: ../docs/plugins
|
||||||
[fields]: ../docs/fields.md
|
[fields]: ../docs/fields.md
|
||||||
[fields in a kustomization file]: ../docs/fields.md
|
[fields in a kustomization file]: ../docs/fields.md
|
||||||
[TransformerConfig]: ../api/plugins/builtinconfig/transformerconfig.go
|
[TransformerConfig]: ../pkg/transformers/config/transformerconfig.go
|
||||||
[kustomization]: ../docs/glossary.md#kustomization
|
[kustomization]: ../docs/glossary.md#kustomization
|
||||||
|
|
||||||
# Customizing kustomize
|
# Customizing kustomize
|
||||||
|
|||||||
@@ -32,13 +32,13 @@ go get sigs.k8s.io/kustomize/v3/cmd/kustomize
|
|||||||
|
|
||||||
- generator 插件:
|
- generator 插件:
|
||||||
|
|
||||||
* [last mile helm](chart.md) - 对 helm chart 进行 last mile 修改。
|
* [last mile helm](../chart.md) - 对 helm chart 进行 last mile 修改。
|
||||||
|
|
||||||
* [secret generation](secretGeneratorPlugin.md) - 生成 Secret。
|
* [secret generation](../secretGeneratorPlugin.md) - 生成 Secret。
|
||||||
|
|
||||||
- transformer 插件:
|
- transformer 插件:
|
||||||
|
|
||||||
* [validation transformer](../validationTransformer/README.md) - 通过 transformer 验证资源。
|
* [validation transformer](../validationTransformer/README.md) - 通过 transformer 验证资源。
|
||||||
|
|
||||||
- 定制内建 transformer 配置
|
- 定制内建 transformer 配置
|
||||||
|
|
||||||
|
|||||||
@@ -1,215 +0,0 @@
|
|||||||
# 使用 kustomize 对 helm chart s进行修改
|
|
||||||
|
|
||||||
[last mile]: https://testingclouds.wordpress.com/2018/07/20/844/
|
|
||||||
[stable chart]: https://github.com/helm/charts/tree/master/stable
|
|
||||||
[Helm charts]: https://github.com/helm/charts
|
|
||||||
[_minecraft_]: https://github.com/helm/charts/tree/master/stable/minecraft
|
|
||||||
[插件]: ../../docs/plugins
|
|
||||||
|
|
||||||
kustomize 并不会读取 [Helm charts] ,但可以使用 generator ß来访问 [Helm charts] 。
|
|
||||||
|
|
||||||
使用 [last mile] 模式来结合 kustomize 和 helm ,使用一个 inflated chart 作为基础,然后使用 kustomize 在部署到集群的途中进行修改。
|
|
||||||
|
|
||||||
以下示例中使用的 generator 仅适用于 [stable chart] 仓库中的 chart。该示例虽然使用 [_minecraft_] ,但可以应用于任何 chart。
|
|
||||||
|
|
||||||
假设 `helm` 已在你的 `$PATH` 中,建立一个工作空间:
|
|
||||||
|
|
||||||
<!-- @makeWorkplace @test -->
|
|
||||||
```bash
|
|
||||||
DEMO_HOME=$(mktemp -d)
|
|
||||||
mkdir -p $DEMO_HOME/base
|
|
||||||
mkdir -p $DEMO_HOME/dev
|
|
||||||
mkdir -p $DEMO_HOME/prod
|
|
||||||
```
|
|
||||||
|
|
||||||
## 使用远程 chart
|
|
||||||
|
|
||||||
定义 _development_ variant(环境)。
|
|
||||||
|
|
||||||
这可能涉及许多 kustomizations(参见其他示例),但在本示例中,将 `dev-` 名称前缀添加到所有资源:
|
|
||||||
|
|
||||||
<!-- @writeKustDev @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/dev/kustomization.yaml
|
|
||||||
namePrefix: dev-
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
同上,使用 `namePrefix: prod-` 定义生产 variant :
|
|
||||||
|
|
||||||
<!-- @writeKustProd @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/prod/kustomization.yaml
|
|
||||||
namePrefix: prod-
|
|
||||||
resources:
|
|
||||||
- ../base
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
这两个 variants 指向同一个 base。
|
|
||||||
|
|
||||||
定义这个 base:
|
|
||||||
|
|
||||||
<!-- @writeKustDev @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/base/kustomization.yaml
|
|
||||||
generators:
|
|
||||||
- chartInflator.yaml
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
base 指向一个名为 `chartInflator.yaml` 的生成配置文件。
|
|
||||||
|
|
||||||
此文件允许指定 [stable chart] 的名称及其他内容,例如 values 文件的路径,默认为 `values.yaml` 。
|
|
||||||
|
|
||||||
创建配置文件 `chartInflator.yaml`,指定 chart 名称为 _minecraft_:
|
|
||||||
|
|
||||||
<!-- @writeGeneratorConfig @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/base/chartInflator.yaml
|
|
||||||
apiVersion: someteam.example.com/v1
|
|
||||||
kind: ChartInflator
|
|
||||||
metadata:
|
|
||||||
name: notImportantHere
|
|
||||||
chartName: minecraft
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
因为这个特定的 YAML 文件列在 kustomization文件的 `generators:` 字段中,所以它被视为生成器插件(由 _apiVersion_ 和 _kind_ 字段标识)与配置插件的其他字段之间的绑定。
|
|
||||||
|
|
||||||
将插件下载到 `DEMO_HOME` 并赋予其执行权限:
|
|
||||||
|
|
||||||
<!-- @installPlugin @test -->
|
|
||||||
```bash
|
|
||||||
plugin=plugin/someteam.example.com/v1/chartinflator/ChartInflator
|
|
||||||
curl -s --create-dirs -o \
|
|
||||||
"$DEMO_HOME/kustomize/$plugin" \
|
|
||||||
"https://raw.githubusercontent.com/\
|
|
||||||
kubernetes-sigs/kustomize/master/$plugin"
|
|
||||||
|
|
||||||
chmod a+x $DEMO_HOME/kustomize/$plugin
|
|
||||||
```
|
|
||||||
|
|
||||||
检查目录布局:
|
|
||||||
|
|
||||||
<!-- @tree -->
|
|
||||||
```bash
|
|
||||||
tree $DEMO_HOME
|
|
||||||
```
|
|
||||||
|
|
||||||
将会得倒类似的目录及文件:
|
|
||||||
|
|
||||||
> ```bash
|
|
||||||
> /tmp/whatever
|
|
||||||
> ├── base
|
|
||||||
> │ ├── chartInflator.yaml
|
|
||||||
> │ └── kustomization.yaml
|
|
||||||
> ├── dev
|
|
||||||
> │ └── kustomization.yaml
|
|
||||||
> ├── kustomize
|
|
||||||
> │ └── plugin
|
|
||||||
> │ └── someteam.example.com
|
|
||||||
> │ └── v1
|
|
||||||
> │ └── chartinflator
|
|
||||||
> │ └── ChartInflator
|
|
||||||
> └── prod
|
|
||||||
> └── kustomization.yaml
|
|
||||||
> ```
|
|
||||||
|
|
||||||
运行 kustomize 定义一个 helper function 来传入正确的环境和常见标志:
|
|
||||||
|
|
||||||
<!-- @defineKustomizeIt @test -->
|
|
||||||
```
|
|
||||||
function kustomizeIt {
|
|
||||||
XDG_CONFIG_HOME=$DEMO_HOME \
|
|
||||||
kustomize build --enable_alpha_plugins \
|
|
||||||
$DEMO_HOME/$1
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
最终构建 `prod` variant。这里要注意的是,所有资源名称现在都具有 `prod-` 前缀:
|
|
||||||
|
|
||||||
<!-- @doProd @test -->
|
|
||||||
```bash
|
|
||||||
clear
|
|
||||||
kustomizeIt prod
|
|
||||||
```
|
|
||||||
|
|
||||||
比较 `dev` 和 `prod`:
|
|
||||||
|
|
||||||
<!-- @doCompare -->
|
|
||||||
```bash
|
|
||||||
diff <(kustomizeIt dev) <(kustomizeIt prod) | more
|
|
||||||
```
|
|
||||||
|
|
||||||
在 base上 运行 kustomize 查看未修改但已展开的 chart。
|
|
||||||
这里的每次调用都是重新下载并重新展开 chart。
|
|
||||||
|
|
||||||
<!-- @showBase @test -->
|
|
||||||
```bash
|
|
||||||
kustomizeIt base
|
|
||||||
```
|
|
||||||
|
|
||||||
## 使用本地 chart
|
|
||||||
|
|
||||||
上面的示例由于未在配置中指定本地 chart 的主目录,所以kustomize会取得远程chart的副本并存在临时目录中。
|
|
||||||
|
|
||||||
要禁止 fetch,请明确指定 `charHome` ,并确保chart 已经被保存在该目录下
|
|
||||||
|
|
||||||
要进行演示,并且不会干扰您现有的 helm 环境,请执行以下操作:
|
|
||||||
|
|
||||||
<!-- @helmInit @test -->
|
|
||||||
```bash
|
|
||||||
helmHome=$DEMO_HOME/dothelm
|
|
||||||
chartHome=$DEMO_HOME/base/charts
|
|
||||||
|
|
||||||
function doHelm {
|
|
||||||
helm --home $helmHome $@
|
|
||||||
}
|
|
||||||
|
|
||||||
# 在新位置创建 helm 配置文件。
|
|
||||||
# 初始化命令比较复杂
|
|
||||||
doHelm init --client-only >& /dev/null
|
|
||||||
```
|
|
||||||
|
|
||||||
现在下载 chart ; 可以再次使用的 [_minecraft_] (也可以使用其他的 chart ):
|
|
||||||
|
|
||||||
<!-- @fetchChart @test -->
|
|
||||||
```bash
|
|
||||||
doHelm fetch --untar \
|
|
||||||
--untardir $chartHome \
|
|
||||||
stable/minecraft
|
|
||||||
```
|
|
||||||
|
|
||||||
使用 tree 查看更多信息;helm 配置数据和完整的 chart 副本:
|
|
||||||
|
|
||||||
<!-- @tree -->
|
|
||||||
```bash
|
|
||||||
tree $DEMO_HOME
|
|
||||||
```
|
|
||||||
|
|
||||||
将 `chartHome` 字段添加到生成器的配置文件中,以便可以查找本地 chart:
|
|
||||||
|
|
||||||
<!-- @modifyGenConfig @test -->
|
|
||||||
```bash
|
|
||||||
echo "chartHome: $chartHome" >>$DEMO_HOME/base/chartInflator.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
更改 values 文件,用来展示本地 chart 的更改:
|
|
||||||
|
|
||||||
<!-- @valueChange @test -->
|
|
||||||
```
|
|
||||||
sed -i 's/CHANGEME!/SOMETHINGELSE/' $chartHome/minecraft/values.yaml
|
|
||||||
sed -i 's/LoadBalancer/NodePort/' $chartHome/minecraft/values.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
最后进行构建:
|
|
||||||
|
|
||||||
<!-- @finalProd @test -->
|
|
||||||
```bash
|
|
||||||
kustomizeIt prod
|
|
||||||
```
|
|
||||||
|
|
||||||
观察结果中 `LoadBalancer` 变为 `NodePort`,并且加密的密码也有所不同。
|
|
||||||
@@ -1,193 +0,0 @@
|
|||||||
[ConfigMaps]: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#configmap-v1-core
|
|
||||||
[ELF]: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
|
|
||||||
[Go plugin]: https://golang.org/pkg/plugin
|
|
||||||
[Secrets]: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#secret-v1-core
|
|
||||||
[base64]: https://tools.ietf.org/html/rfc4648#section-4
|
|
||||||
[configuration directory]: https://wiki.archlinux.org/index.php/XDG_Base_Directory#Specification
|
|
||||||
[grpc]: https://grpc.io
|
|
||||||
[tag]: https://github.com/kubernetes-sigs/kustomize/releases
|
|
||||||
[v2.0.3]: https://github.com/kubernetes-sigs/kustomize/releases/tag/v2.0.3
|
|
||||||
[`exec.Command`]: https://golang.org/pkg/os/exec/#Command
|
|
||||||
|
|
||||||
# 生成 Secrets
|
|
||||||
|
|
||||||
## Secret 是什么?
|
|
||||||
|
|
||||||
Kubernetes 的 [ConfigMaps] 和 [Secrets] 都是key:value map,但 [Secrets] 的内容更为敏感,比如:密码或者 ssh 秘钥。
|
|
||||||
|
|
||||||
Kubernetes 开发者以各种方式工作,Secrets 保存的信息相比 ConfigMaps,Deployments 等的配置信息需要更谨慎的隐藏。
|
|
||||||
|
|
||||||
## 创建一个工作空间
|
|
||||||
|
|
||||||
<!-- @establishBase @test -->
|
|
||||||
```bash
|
|
||||||
DEMO_HOME=$(mktemp -d)
|
|
||||||
```
|
|
||||||
|
|
||||||
## 来自本地文件的 Secret
|
|
||||||
|
|
||||||
kustomize 可以通过三种不同的方式生成来自本地文件的 Secret 。
|
|
||||||
|
|
||||||
* 从 _env_ 文件中获取(`NAME = VALUE`,每行一个)
|
|
||||||
* 使用文件内容来生成一个 secret
|
|
||||||
* 从 kustomization.yaml 文件获取 secret
|
|
||||||
|
|
||||||
这里有一个示例结合所有的三种方式:
|
|
||||||
|
|
||||||
创建一个包含一些短密码的 env 文件:
|
|
||||||
|
|
||||||
<!-- @makeEnvFile @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/foo.env
|
|
||||||
ROUTER_PASSWORD=admin
|
|
||||||
DB_PASSWORD=iloveyou
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
创建一个长密码的文本文件:
|
|
||||||
|
|
||||||
<!-- @makeLongSecretFile @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/longsecret.txt
|
|
||||||
Lorem ipsum dolor sit amet,
|
|
||||||
consectetur adipiscing elit,
|
|
||||||
sed do eiusmod tempor incididunt
|
|
||||||
ut labore et dolore magna aliqua.
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
创建一个kustomization.yaml 文件, 其中包含引用上面文件的 secretGenerator, 并且另外定义一些文字 KV 对:
|
|
||||||
|
|
||||||
<!-- @makeKustomization1 @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/kustomization.yaml
|
|
||||||
secretGenerator:
|
|
||||||
- name: mysecrets
|
|
||||||
envs:
|
|
||||||
- foo.env
|
|
||||||
files:
|
|
||||||
- longsecret.txt
|
|
||||||
literals:
|
|
||||||
- FRUIT=apple
|
|
||||||
- VEGETABLE=carrot
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
生成 Secret :
|
|
||||||
|
|
||||||
<!-- @build1 @test -->
|
|
||||||
```bash
|
|
||||||
result=$(kustomize build $DEMO_HOME)
|
|
||||||
echo "$result"
|
|
||||||
# Spot check the result:
|
|
||||||
test 1 == $(echo "$result" | grep -c "FRUIT: YXBwbGU=")
|
|
||||||
```
|
|
||||||
|
|
||||||
将会得到类似的内容:
|
|
||||||
|
|
||||||
> ```yaml
|
|
||||||
> apiVersion: v1
|
|
||||||
> kind: Secret
|
|
||||||
> metadata:
|
|
||||||
> name: mysecrets-hfb5df789h
|
|
||||||
> type: Opaque
|
|
||||||
> data:
|
|
||||||
> FRUIT: YXBwbGU=
|
|
||||||
> VEGETABLE: Y2Fycm90
|
|
||||||
> ROUTER_PASSWORD: YWRtaW4=
|
|
||||||
> DB_PASSWORD: aWxvdmV5b3U=
|
|
||||||
> longsecret.txt: TG9yZW0gaXBzdW0gZG9sb3Igc2l0I... (elided)
|
|
||||||
> ```
|
|
||||||
|
|
||||||
资源名称的前缀为 `mysecrets`(在 kustomization.yaml 中指定),后跟其内容的哈希值。
|
|
||||||
|
|
||||||
使用 base64 解码器确认这些值的原始版本。
|
|
||||||
|
|
||||||
这三种方法共同的问题是创建 Secret 所使用的敏感数据必须保存磁盘上。
|
|
||||||
|
|
||||||
这会增加额外的安全问题:对本地存储的敏感文件的查看、安装和删除权限的控制等。
|
|
||||||
|
|
||||||
## 来自任何地方的 Secret
|
|
||||||
|
|
||||||
一般的替代方案是在[generator](../../docs/plugins)中生成 secrets 。
|
|
||||||
|
|
||||||
然后,这些值可以通过经过身份验证和授权的 RPC 进入密码保险库服务。
|
|
||||||
|
|
||||||
[sgp]: ../../plugin/someteam.example.com/v1/secretsfromdatabase
|
|
||||||
|
|
||||||
这里有一个[secret 生成器][sgp],它模拟从数据库中拉取 map 中的值。
|
|
||||||
|
|
||||||
下载
|
|
||||||
|
|
||||||
<!-- @copyPlugin @test -->
|
|
||||||
```bash
|
|
||||||
repo=https://raw.githubusercontent.com/kubernetes-sigs/kustomize
|
|
||||||
pPath=plugin/someteam.example.com/v1/secretsfromdatabase
|
|
||||||
dir=$DEMO_HOME/kustomize/$pPath
|
|
||||||
|
|
||||||
mkdir -p $dir
|
|
||||||
|
|
||||||
curl -s -o $dir/SecretsFromDatabase.go \
|
|
||||||
${repo}/master/$pPath/SecretsFromDatabase.go
|
|
||||||
```
|
|
||||||
|
|
||||||
运行 kustomize build 生成结果
|
|
||||||
|
|
||||||
<!-- @compilePlugin @xtest -->
|
|
||||||
```bash
|
|
||||||
go build -buildmode plugin \
|
|
||||||
-o $dir/SecretsFromDatabase.so \
|
|
||||||
$dir/SecretsFromDatabase.go
|
|
||||||
```
|
|
||||||
|
|
||||||
创建一个配置文件:
|
|
||||||
|
|
||||||
<!-- @makeConfiguration @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/secretFromDb.yaml
|
|
||||||
apiVersion: someteam.example.com/v1
|
|
||||||
kind: SecretsFromDatabase
|
|
||||||
metadata:
|
|
||||||
name: mySecretGenerator
|
|
||||||
name: forbiddenValues
|
|
||||||
namespace: production
|
|
||||||
keys:
|
|
||||||
- ROCKET
|
|
||||||
- VEGETABLE
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
创建一个引用此生成器的新 kustomization.yaml 文件:
|
|
||||||
|
|
||||||
<!-- @makeKustomization2 @test -->
|
|
||||||
```bash
|
|
||||||
cat <<'EOF' >$DEMO_HOME/kustomization.yaml
|
|
||||||
generators:
|
|
||||||
- secretFromDb.yaml
|
|
||||||
EOF
|
|
||||||
```
|
|
||||||
|
|
||||||
最终生成 secret ,设置 `XDG_CONFIG_HOME` 以便可以在 `$DEMO_HOME` 中找到该生成器:
|
|
||||||
|
|
||||||
<!-- @build2 @xtest -->
|
|
||||||
```bash
|
|
||||||
result=$( \
|
|
||||||
XDG_CONFIG_HOME=$DEMO_HOME \
|
|
||||||
kustomize build --enable_alpha_plugins $DEMO_HOME )
|
|
||||||
echo "$result"
|
|
||||||
# Spot check the result:
|
|
||||||
test 1 == $(echo "$result" | grep -c "FRUIT: YXBwbGU=")
|
|
||||||
```
|
|
||||||
|
|
||||||
将会得到类似的内容:
|
|
||||||
|
|
||||||
> ```yaml
|
|
||||||
> apiVersion: v1
|
|
||||||
> kind: Secret
|
|
||||||
> metadata:
|
|
||||||
> name: mysecrets-bdt27dbkd6
|
|
||||||
> type: Opaque
|
|
||||||
> data:
|
|
||||||
> FRUIT: YXBwbGU=
|
|
||||||
> VEGETABLE: Y2Fycm90
|
|
||||||
> ```
|
|
||||||
25
go.mod
Normal file
25
go.mod
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
module sigs.k8s.io/kustomize/v3
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/evanphx/json-patch v4.5.0+incompatible
|
||||||
|
github.com/go-openapi/spec v0.19.2
|
||||||
|
github.com/gogo/protobuf v1.3.0 // indirect
|
||||||
|
github.com/golangci/golangci-lint v1.19.1
|
||||||
|
github.com/gorilla/mux v1.7.3 // indirect
|
||||||
|
github.com/gorilla/sessions v1.2.0 // indirect
|
||||||
|
github.com/gorilla/websocket v1.4.1 // indirect
|
||||||
|
github.com/monopole/mdrip v0.2.48
|
||||||
|
github.com/pkg/errors v0.8.1
|
||||||
|
github.com/russross/blackfriday v2.0.0+incompatible // indirect
|
||||||
|
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.5
|
||||||
|
gopkg.in/yaml.v2 v2.2.2
|
||||||
|
k8s.io/api v0.0.0-20190313235455-40a48860b5ab
|
||||||
|
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1
|
||||||
|
k8s.io/client-go v11.0.0+incompatible
|
||||||
|
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208
|
||||||
|
sigs.k8s.io/kustomize/pluginator v1.0.0
|
||||||
|
sigs.k8s.io/yaml v1.1.0
|
||||||
|
)
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||||
|
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
|
github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us=
|
||||||
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
|
github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM=
|
||||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
|
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
@@ -13,7 +17,6 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
|
|||||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
github.com/bombsimon/wsl v1.2.5/go.mod h1:43lEF/i0kpXbLCeDXL9LMT8c92HyBywXb0AsgMHYngM=
|
|
||||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
|
||||||
@@ -30,170 +33,149 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
|||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.2 h1:rp5DGrd63V5c6nHLjF6QEXUpZSvs0+QM3ld7m9VhV2g=
|
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.2/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
|
github.com/emicklei/go-restful v2.9.6+incompatible h1:tfrHha8zJ01ywiOEC1miGY8st1/igzWB8OmvPgoYX7w=
|
||||||
github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
=======
|
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
|
||||||
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
|
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
|
||||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||||
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
|
github.com/go-critic/go-critic v0.3.5-0.20190904082202-d79a9f0c64db h1:GYXWx7Vr3+zv833u+8IoXbNnQY0AdXsxAgI0kX7xcwA=
|
||||||
github.com/go-critic/go-critic v0.3.5-0.20190904082202-d79a9f0c64db/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA=
|
github.com/go-critic/go-critic v0.3.5-0.20190904082202-d79a9f0c64db/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA=
|
||||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
|
||||||
|
github.com/go-lintpack/lintpack v0.5.2 h1:DI5mA3+eKdWeJ40nU4d6Wc26qmdG8RCi/btYq0TuRN0=
|
||||||
github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM=
|
github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM=
|
||||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
|
||||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
|
||||||
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
|
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
|
||||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
||||||
|
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
|
||||||
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
||||||
|
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||||
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/go-openapi/spec v0.19.2 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE=
|
||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
||||||
=======
|
|
||||||
github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo=
|
|
||||||
github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
||||||
|
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
|
github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g=
|
||||||
github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
|
github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
|
||||||
|
github.com/go-toolsmith/astcopy v1.0.0 h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8=
|
||||||
github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ=
|
github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ=
|
||||||
github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
||||||
|
github.com/go-toolsmith/astequal v1.0.0 h1:4zxD8j3JRFNyLN46lodQuqz3xdKSrur7U/sr0SDS/gQ=
|
||||||
github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
||||||
github.com/go-toolsmith/astfmt v0.0.0-20180903215011-8f8ee99c3086/go.mod h1:mP93XdblcopXwlyN4X4uodxXQhldPGZbcEJIimQHrkg=
|
github.com/go-toolsmith/astfmt v0.0.0-20180903215011-8f8ee99c3086/go.mod h1:mP93XdblcopXwlyN4X4uodxXQhldPGZbcEJIimQHrkg=
|
||||||
|
github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k=
|
||||||
github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw=
|
github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw=
|
||||||
github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU=
|
github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU=
|
||||||
github.com/go-toolsmith/astp v0.0.0-20180903215135-0af7e3c24f30/go.mod h1:SV2ur98SGypH1UjcPpCatrV5hPazG6+IfNHbkDXBRrk=
|
github.com/go-toolsmith/astp v0.0.0-20180903215135-0af7e3c24f30/go.mod h1:SV2ur98SGypH1UjcPpCatrV5hPazG6+IfNHbkDXBRrk=
|
||||||
|
github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg=
|
||||||
github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI=
|
github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI=
|
||||||
github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoMrjiy4zvdS+Bg6z9jZH82QXwkcgCBX6nOfnmdaHks=
|
github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoMrjiy4zvdS+Bg6z9jZH82QXwkcgCBX6nOfnmdaHks=
|
||||||
|
github.com/go-toolsmith/pkgload v1.0.0 h1:4DFWWMXVfbcN5So1sBNW9+yeiMqLFGl1wFLTL5R0Tgg=
|
||||||
github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc=
|
github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc=
|
||||||
|
github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4=
|
||||||
github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=
|
github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=
|
||||||
|
github.com/go-toolsmith/typep v1.0.0 h1:zKymWyA1TRYvqYrYDrfEMZULyrhcnGY3x7LDKU2XQaA=
|
||||||
github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
|
github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU=
|
||||||
|
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
|
||||||
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
||||||
github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/gogo/protobuf v1.3.0 h1:G8O7TerXerS4F6sx9OV7/nRfJdnXgHZu/S/7F2SN+UE=
|
||||||
=======
|
github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0=
|
||||||
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4=
|
||||||
|
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=
|
||||||
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
|
||||||
|
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6 h1:YYWNAGTKWhKpcLLt7aSj/odlKrSrelQwlovBpDuf19w=
|
||||||
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0=
|
github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0=
|
||||||
|
github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw=
|
||||||
github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8=
|
github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8=
|
||||||
|
github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3 h1:pe9JHs3cHHDQgOFXJJdYkK6fLz2PWyYtP4hthoCMvs8=
|
||||||
github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o=
|
github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o=
|
||||||
|
github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee h1:J2XAy40+7yz70uaOiMbNnluTg7gyQhtGqLQncQh+4J8=
|
||||||
github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU=
|
github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98 h1:0OkFarm1Zy2CjCiDKfK9XHgmc2wbDlRMD2hD8anAJHU=
|
||||||
github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
|
github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
|
||||||
|
github.com/golangci/golangci-lint v1.19.1 h1:g9xL8KW7UZDCkVlgHYJMA6F4Sj/sRVa0FoCeXI+Z3iM=
|
||||||
github.com/golangci/golangci-lint v1.19.1/go.mod h1:2CEc4Fxx3vxDv7g8DyXkHCBF73AOzAymcJAprs2vCps=
|
github.com/golangci/golangci-lint v1.19.1/go.mod h1:2CEc4Fxx3vxDv7g8DyXkHCBF73AOzAymcJAprs2vCps=
|
||||||
|
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc h1:gLLhTLMk2/SutryVJ6D4VZCU3CUqr8YloG7FPIBWFpI=
|
||||||
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU=
|
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU=
|
||||||
|
github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217 h1:En/tZdwhAn0JNwLuXzP3k2RVtMqMmOEK7Yu/g3tmtJE=
|
||||||
github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
|
github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
|
||||||
=======
|
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA=
|
||||||
github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU=
|
|
||||||
github.com/golangci/golangci-lint v1.21.0/go.mod h1:phxpHK52q7SE+5KpPnti4oZTdFCEsn/tKN+nFvCKXfk=
|
|
||||||
github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU=
|
|
||||||
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
|
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o=
|
||||||
|
github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770 h1:EL/O5HGrF7Jaq0yNhBLucz9hTuRzj2LdwGBOaENgxIk=
|
||||||
github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
|
github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA=
|
||||||
|
github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 h1:leSNB7iYzLYSSx3J/s5sVf4Drkc68W2wm4Ixh/mr0us=
|
||||||
github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI=
|
github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI=
|
||||||
|
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0 h1:HVfrLniijszjS1aiNg8JbBMO2+E1WIQ+j/gL4SQqGPg=
|
||||||
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
||||||
|
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys=
|
||||||
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ=
|
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ=
|
||||||
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
|
||||||
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
|
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
=======
|
|
||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
|
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
|
||||||
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
|
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/googleapis/gnostic v0.3.0 h1:CcQijm0XKekKjP/YCz28LXVSpgguuB+nCxaSjCe09y0=
|
github.com/googleapis/gnostic v0.3.0 h1:CcQijm0XKekKjP/YCz28LXVSpgguuB+nCxaSjCe09y0=
|
||||||
github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
=======
|
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
|
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
|
||||||
github.com/gorilla/mux v1.6.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
|
||||||
github.com/gorilla/securecookie v0.0.0-20160422134519-667fe4e3466a/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||||
github.com/gorilla/sessions v0.0.0-20160922145804-ca9ada445741/go.mod h1:+WVp8kdw6VhyKExm03PAMRn2ZxnPtm58pV0dBVPdhHE=
|
github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ=
|
||||||
github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||||
=======
|
|
||||||
github.com/gorilla/sessions v0.0.0-20160922145804-ca9ada445741/go.mod h1:+WVp8kdw6VhyKExm03PAMRn2ZxnPtm58pV0dBVPdhHE=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
|
||||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||||
|
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
|
||||||
|
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
||||||
|
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3 h1:JVnpOZS+qxli+rgVl98ILOXVNbW+kb5wcxeGx8ShUIw=
|
||||||
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE=
|
||||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
|
|
||||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
|
||||||
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
|
||||||
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
=======
|
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
|
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
|
||||||
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
|
||||||
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs=
|
github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs=
|
||||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||||
=======
|
|
||||||
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
|
|
||||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
|
||||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||||
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
|
||||||
github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
|
||||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
@@ -205,43 +187,36 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
|||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||||
|
github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481 h1:IaSjLMT6WvkoZZjspGxy3rdaTEmWLoRm49WbtVUi9sA=
|
||||||
github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
|
github.com/matoous/godox v0.0.0-20190910121045-032ad8106c86 h1:q6SrfsK4FojRnJ1j8+8OJzyq3g9Y1oSVyL6nYGJXXBk=
|
||||||
github.com/matoous/godox v0.0.0-20190910121045-032ad8106c86/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
|
github.com/matoous/godox v0.0.0-20190910121045-032ad8106c86/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
|
||||||
|
github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
|
||||||
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
||||||
=======
|
github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=
|
|
||||||
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
||||||
|
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
|
||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
=======
|
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/monopole/mdrip v1.0.0/go.mod h1:N1/ppRG9CaPeUKAUHZ3dUlfOT81lTpKZLkyhCvTETwM=
|
github.com/monopole/mdrip v0.2.48 h1:LVXlMzEyJOPouL5MYN9z61rMHwatLV1JZZSN+mmI6zI=
|
||||||
|
github.com/monopole/mdrip v0.2.48/go.mod h1:rzORfdNQ63T/tS95GOFHB+I3OrT+Bjlk8krOc/QiL/8=
|
||||||
github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
|
github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d h1:AREM5mwr4u1ORQBMvzfzBgpsctsbQikCVpvC+tX285E=
|
||||||
=======
|
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU=
|
||||||
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
|
||||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
@@ -255,6 +230,7 @@ github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=
|
|||||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
||||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
|
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
@@ -274,65 +250,62 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T
|
|||||||
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
|
github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI=
|
||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
|
|
||||||
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
|
|
||||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||||
|
github.com/russross/blackfriday v2.0.0+incompatible h1:cBXrhZNUf9C+La9/YpS+UHpUT8YD6Td9ZMSU9APFcsk=
|
||||||
github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||||
|
github.com/securego/gosec v0.0.0-20190912120752-140048b2a218 h1:O0yPHYL49quNL4Oj2wVq+zbGMu4dAM6iLoOQtm49TrQ=
|
||||||
github.com/securego/gosec v0.0.0-20190912120752-140048b2a218/go.mod h1:q6oYAujd2qyeU4cJqIri4LBIgdHXGvxWHZ1E29HNFRE=
|
github.com/securego/gosec v0.0.0-20190912120752-140048b2a218/go.mod h1:q6oYAujd2qyeU4cJqIri4LBIgdHXGvxWHZ1E29HNFRE=
|
||||||
=======
|
|
||||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
|
||||||
github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
|
||||||
github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc=
|
github.com/shirou/gopsutil v0.0.0-20190901111213-e4ec7b275ada/go.mod h1:WWnYX4lzhCH5h/3YBfyVA3VbLYjlMZZAQcW9ojMexNc=
|
||||||
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
|
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
|
||||||
|
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM=
|
||||||
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
|
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
|
||||||
|
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc=
|
||||||
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
|
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
|
||||||
|
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
|
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||||
|
github.com/sourcegraph/go-diff v0.5.1 h1:gO6i5zugwzo1RVTvgvfwCOSVegNuvnNi6bAD1QCmkHs=
|
||||||
github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE=
|
github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE=
|
||||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
|
github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
|
||||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||||
|
github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
|
||||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/spf13/cobra v0.0.2 h1:NfkwRbgViGoyjBKsLI0QMDcuMnhM+SBg3T0cGfpvKDE=
|
||||||
github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
=======
|
github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||||
|
github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
|
||||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
|
||||||
|
github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU=
|
||||||
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||||
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec h1:AmoEvWAO3nDx1MEcMzPh+GzOOIA5Znpv6++c7bePPY0=
|
||||||
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||||
=======
|
|
||||||
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
|
||||||
|
github.com/ultraware/funlen v0.0.2 h1:Av96YVBwwNSe4MLR7iI/BIa3VyI7/djnto/pK3Uxbdo=
|
||||||
github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
github.com/ultraware/whitespace v0.0.3 h1:S5BCRRB5sttNy0bSOhbpw+0mb+cHiCmWfrvxpEzuUk0=
|
||||||
github.com/ultraware/whitespace v0.0.3/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
|
github.com/ultraware/whitespace v0.0.3/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
|
||||||
=======
|
|
||||||
github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA=
|
|
||||||
github.com/uudashr/gocognit v0.0.0-20190926065955-1655d0de0517/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||||
github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
|
github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
|
||||||
github.com/valyala/quicktemplate v1.2.0/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4=
|
github.com/valyala/quicktemplate v1.2.0/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4=
|
||||||
@@ -347,8 +320,9 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf
|
|||||||
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8 h1:1wopBVtVdWnn03fZelqdXTqk7U7zPQCb+T4rbU9ZEoU=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
|
golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||||
@@ -362,17 +336,10 @@ golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn
|
|||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b h1:XfVGCX+0T4WOStkaOsJRllbsiImhB2jgVBGc9L0lPGc=
|
||||||
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190909003024-a7b16738d86b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20191011234655-491137f69257 h1:ry8e2D+cwaV6hk7lb3aRTjjZo24shrbK0e11QEOkTIg=
|
|
||||||
golang.org/x/net v0.0.0-20191011234655-491137f69257/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
=======
|
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g=
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
@@ -390,15 +357,10 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
golang.org/x/sys v0.0.0-20190621203818-d432491b9138 h1:t8BZD9RDjkm9/h7yYN6kE8oaeov5r9aztkB7zKA5Tkg=
|
golang.org/x/sys v0.0.0-20190621203818-d432491b9138 h1:t8BZD9RDjkm9/h7yYN6kE8oaeov5r9aztkB7zKA5Tkg=
|
||||||
golang.org/x/sys v0.0.0-20190621203818-d432491b9138/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190621203818-d432491b9138/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5 h1:SW/0nsKCUaozCUtZTakri5laocGx/5bkDSSLrFUsa5s=
|
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5 h1:SW/0nsKCUaozCUtZTakri5laocGx/5bkDSSLrFUsa5s=
|
||||||
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190911201528-7ad0cfa0b7b5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
=======
|
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69 h1:rOhMmluY6kLMhdnrivzec6lLgaVbMHMn2ISQXJeJ5EM=
|
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||||
@@ -416,74 +378,63 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3
|
|||||||
golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59 h1:QjA/9ArTfVTLfEhClDCG7SGrZkZixxWpwNCDiwJfh88=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
|
golang.org/x/tools v0.0.0-20190719005602-e377ae9d6386/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
|
||||||
golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
golang.org/x/tools v0.0.0-20190911230505-6bfd74cf029c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190911230505-6bfd74cf029c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
|
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678 h1:rM1Udd0CgtYI3KUIhu9ROz0QCqjW+n/ODp/hH7c60Xc=
|
||||||
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190912215617-3720d1ec3678/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20191014141550-5fa5b1782b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
=======
|
|
||||||
golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||||
|
honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678 h1:z/0BV/tMBIvdwZvqBH/f7TWjQX9y3dj1nMNhrSK0h/8=
|
k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR7/Ek/+U1lVZc=
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678/go.mod h1:LZQaT8MvVpl7Bg2lYFcQm7+Mpdxq8p1NFl3yh+5DCwY=
|
k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
|
||||||
k8s.io/apimachinery v0.0.0-20191016225534-b1267f8c42b4/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg=
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5 h1:r3/YL3+t1U46lJF5zUSArskUpnLyWuM28rQDpM1qQPI=
|
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
|
||||||
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
||||||
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
<<<<<<< HEAD:hacks/crawl/go.sum
|
|
||||||
k8s.io/klog v0.3.3 h1:niceAagH1tzskmaie/icWd7ci1wbG7Bf2c6YGcQv+3c=
|
k8s.io/klog v0.3.3 h1:niceAagH1tzskmaie/icWd7ci1wbG7Bf2c6YGcQv+3c=
|
||||||
k8s.io/klog v0.3.3/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.3.3/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208 h1:5sW+fEHvlJI3Ngolx30CmubFulwH28DhKjGf70Xmtco=
|
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208 h1:5sW+fEHvlJI3Ngolx30CmubFulwH28DhKjGf70Xmtco=
|
||||||
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
|
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
|
||||||
=======
|
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I=
|
||||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
|
||||||
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d h1:Xpe6sK+RY4ZgCTyZ3y273UmFmURhjtoJiwOMbQsXitY=
|
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
|
||||||
>>>>>>> Introduce API module.:plugin/someteam.example.com/v1/validator/go.sum
|
|
||||||
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc=
|
||||||
|
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo=
|
||||||
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4=
|
||||||
|
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f h1:Cq7MalBHYACRd6EesksG1Q8EoIAKOsiZviGKbOLIej4=
|
||||||
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw=
|
mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw=
|
||||||
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
|
sigs.k8s.io/kustomize/pluginator v1.0.0 h1:aeLqD8CIaqr++49YrcuRUcXl5vVKYLhCSfwXUi3ifQ4=
|
||||||
sigs.k8s.io/kustomize/pluginator v1.0.0/go.mod h1:i8HdU5FdH1zDjCKiFf5CNl7slsc0QffyKsY2OuPynJ0=
|
sigs.k8s.io/kustomize/pluginator v1.0.0/go.mod h1:i8HdU5FdH1zDjCKiFf5CNl7slsc0QffyKsY2OuPynJ0=
|
||||||
sigs.k8s.io/kustomize/v3 v3.1.1-0.20190826160027-84519c236bac h1:kmfwkekoKBD2cZCiold2zvyTDzycW6ieBstiBo352bk=
|
|
||||||
sigs.k8s.io/kustomize/v3 v3.1.1-0.20190826160027-84519c236bac/go.mod h1:ztX4zYc/QIww3gSripwF7TBOarBTm5BvyAMem0kCzOE=
|
|
||||||
sigs.k8s.io/kustomize/v3 v3.2.0/go.mod h1:ztX4zYc/QIww3gSripwF7TBOarBTm5BvyAMem0kCzOE=
|
sigs.k8s.io/kustomize/v3 v3.2.0/go.mod h1:ztX4zYc/QIww3gSripwF7TBOarBTm5BvyAMem0kCzOE=
|
||||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
||||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||||
|
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 h1:JPJh2pk3+X4lXAkZIk2RuE/7/FoK9maXw+TNPJhVS/c=
|
||||||
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=
|
sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0=
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
function showDeps {
|
|
||||||
echo "==== begin $1 =================================="
|
|
||||||
find $1 -name "*.go" |\
|
|
||||||
xargs grep \"sigs.k8s.io/kustomize/??? |\
|
|
||||||
grep -v "/api/" |\
|
|
||||||
sed 's|"sigs.k8s.io/kustomize/v3/||' |\
|
|
||||||
awk '{ printf "%40s %s\n", $2, $1 }' |\
|
|
||||||
sed 's|" \./| |' |\
|
|
||||||
sed 's|:$||' |\
|
|
||||||
sort | uniq
|
|
||||||
echo "==== end $1 =================================="
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
showDeps ./plugin
|
|
||||||
showDeps ./kustomize
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
module sigs.k8s.io/kustomize/internal/tools
|
|
||||||
|
|
||||||
go 1.13
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/elastic/go-elasticsearch/v6 v6.8.2
|
|
||||||
github.com/emicklei/go-restful v2.9.6+incompatible // indirect
|
|
||||||
github.com/gomodule/redigo v2.0.0+incompatible
|
|
||||||
github.com/google/gofuzz v1.0.0 // indirect
|
|
||||||
github.com/googleapis/gnostic v0.3.0 // indirect
|
|
||||||
github.com/gorilla/mux v1.7.3
|
|
||||||
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
|
|
||||||
github.com/json-iterator/go v1.1.6 // indirect
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481 // indirect
|
|
||||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
|
||||||
github.com/rs/cors v1.7.0
|
|
||||||
k8s.io/klog v0.3.3 // indirect
|
|
||||||
sigs.k8s.io/kustomize/v3 v3.3.1
|
|
||||||
sigs.k8s.io/yaml v1.1.0
|
|
||||||
)
|
|
||||||
|
|
||||||
replace sigs.k8s.io/kustomize/v3 v3.3.1 => ../../
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
for f in $(find ./ -name '*.go'); do
|
|
||||||
echo $f
|
|
||||||
# go run go.coder.com/go-tools/cmd/goimports
|
|
||||||
~/gopath/bin/goimports -w $f
|
|
||||||
done
|
|
||||||
30
internal/kusterr/configmaperror.go
Normal file
30
internal/kusterr/configmaperror.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Package error has contextual error types.
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// ConfigmapError represents error with a configmap.
|
||||||
|
type ConfigmapError struct {
|
||||||
|
Path string
|
||||||
|
ErrorMsg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ConfigmapError) Error() string {
|
||||||
|
return fmt.Sprintf("Kustomization file [%s] encounters a configmap error: %s\n", e.Path, e.ErrorMsg)
|
||||||
|
}
|
||||||
37
internal/kusterr/configmaperror_test.go
Normal file
37
internal/kusterr/configmaperror_test.go
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestConfigmapError_Error(t *testing.T) {
|
||||||
|
errorMsg := "configmap name is missing"
|
||||||
|
me := ConfigmapError{Path: filepath, ErrorMsg: errorMsg}
|
||||||
|
|
||||||
|
if !strings.Contains(me.Error(), filepath) {
|
||||||
|
t.Errorf("Incorrect ConfigmapError.Error() message \n")
|
||||||
|
t.Errorf("Expected filepath %s, but unfound\n", filepath)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(me.Error(), errorMsg) {
|
||||||
|
t.Errorf("Incorrect ConfigmapError.Error() message \n")
|
||||||
|
t.Errorf("Expected errorMsg %s, but unfound\n", errorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
32
internal/kusterr/patcherror.go
Normal file
32
internal/kusterr/patcherror.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PatchError represents error during Patch.
|
||||||
|
type PatchError struct {
|
||||||
|
KustomizationPath string
|
||||||
|
PatchFilepath string
|
||||||
|
ErrorMsg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e PatchError) Error() string {
|
||||||
|
return fmt.Sprintf("Kustomization file [%s] encounters a patch error for [%s]: %s\n", e.KustomizationPath, e.PatchFilepath, e.ErrorMsg)
|
||||||
|
}
|
||||||
40
internal/kusterr/patcherror_test.go
Normal file
40
internal/kusterr/patcherror_test.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPatchError_Error(t *testing.T) {
|
||||||
|
patchfilepath := "/path/to/patch/patch.yaml"
|
||||||
|
errorMsg := "file not found"
|
||||||
|
me := PatchError{KustomizationPath: filepath, PatchFilepath: patchfilepath, ErrorMsg: errorMsg}
|
||||||
|
if !strings.Contains(me.Error(), filepath) {
|
||||||
|
t.Errorf("Incorrect PatchError.Error() message \n")
|
||||||
|
t.Errorf("Expected filepath %s, but unfound\n", filepath)
|
||||||
|
}
|
||||||
|
if !strings.Contains(me.Error(), patchfilepath) {
|
||||||
|
t.Errorf("Incorrect PatchError.Error() message \n")
|
||||||
|
t.Errorf("Expected patchfilepath %s, but unfound\n", patchfilepath)
|
||||||
|
}
|
||||||
|
if !strings.Contains(me.Error(), errorMsg) {
|
||||||
|
t.Errorf("Incorrect PatchError.Error() message \n")
|
||||||
|
t.Errorf("Expected errorMsg %s, but unfound\n", errorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
30
internal/kusterr/resourceerror.go
Normal file
30
internal/kusterr/resourceerror.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// ResourceError represents error in a resource.
|
||||||
|
type ResourceError struct {
|
||||||
|
KustomizationPath string
|
||||||
|
ResourceFilepath string
|
||||||
|
ErrorMsg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e ResourceError) Error() string {
|
||||||
|
return fmt.Sprintf("Kustomization file [%s] encounters a resource error for [%s]: %s\n", e.KustomizationPath, e.ResourceFilepath, e.ErrorMsg)
|
||||||
|
}
|
||||||
40
internal/kusterr/resourceerror_test.go
Normal file
40
internal/kusterr/resourceerror_test.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestResourceError_Error(t *testing.T) {
|
||||||
|
resourcefilepath := "/path/to/resource/deployment.yaml"
|
||||||
|
errorMsg := "file not found"
|
||||||
|
me := ResourceError{KustomizationPath: filepath, ResourceFilepath: resourcefilepath, ErrorMsg: errorMsg}
|
||||||
|
if !strings.Contains(me.Error(), filepath) {
|
||||||
|
t.Errorf("Incorrect ResourceError.Error() message \n")
|
||||||
|
t.Errorf("Expected filepath %s, but unfound\n", filepath)
|
||||||
|
}
|
||||||
|
if !strings.Contains(me.Error(), resourcefilepath) {
|
||||||
|
t.Errorf("Incorrect ResourceError.Error() message \n")
|
||||||
|
t.Errorf("Expected resourcefilepath %s, but unfound\n", resourcefilepath)
|
||||||
|
}
|
||||||
|
if !strings.Contains(me.Error(), errorMsg) {
|
||||||
|
t.Errorf("Incorrect ResourceError.Error() message \n")
|
||||||
|
t.Errorf("Expected errorMsg %s, but unfound\n", errorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
30
internal/kusterr/secreterror.go
Normal file
30
internal/kusterr/secreterror.go
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// SecretError represents error with a secret.
|
||||||
|
type SecretError struct {
|
||||||
|
KustomizationPath string
|
||||||
|
// ErrorMsg is an error message
|
||||||
|
ErrorMsg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e SecretError) Error() string {
|
||||||
|
return fmt.Sprintf("Kustomization file [%s] encounters a secret error: %s\n", e.KustomizationPath, e.ErrorMsg)
|
||||||
|
}
|
||||||
36
internal/kusterr/secreterror_test.go
Normal file
36
internal/kusterr/secreterror_test.go
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kusterr
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSecretError_Error(t *testing.T) {
|
||||||
|
errorMsg := "missing a command"
|
||||||
|
me := SecretError{KustomizationPath: filepath, ErrorMsg: errorMsg}
|
||||||
|
if !strings.Contains(me.Error(), filepath) {
|
||||||
|
t.Errorf("Incorrect SecretError.Error() message \n")
|
||||||
|
t.Errorf("Expected filepath %s, but unfound\n", filepath)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(me.Error(), errorMsg) {
|
||||||
|
t.Errorf("Incorrect SecretError.Error() message \n")
|
||||||
|
t.Errorf("Expected errorMsg %s, but unfound\n", errorMsg)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
/*
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
// Package error has contextual error types.
|
// Package error has contextual error types.
|
||||||
package kusterr
|
package kusterr
|
||||||
@@ -1,5 +1,18 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
/*
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package kusterr
|
package kusterr
|
||||||
|
|
||||||
@@ -7,14 +7,16 @@ package loadertest
|
|||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/filesys"
|
"sigs.k8s.io/kustomize/v3/pkg/fs"
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/v3/pkg/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/loader"
|
"sigs.k8s.io/kustomize/v3/pkg/loader"
|
||||||
|
"sigs.k8s.io/kustomize/v3/pkg/types"
|
||||||
|
"sigs.k8s.io/kustomize/v3/pkg/validators"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FakeLoader encapsulates the delegate Loader and the fake file system.
|
// FakeLoader encapsulates the delegate Loader and the fake file system.
|
||||||
type FakeLoader struct {
|
type FakeLoader struct {
|
||||||
fs filesys.FileSystem
|
fs fs.FileSystem
|
||||||
delegate ifc.Loader
|
delegate ifc.Loader
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,9 +34,10 @@ func NewFakeLoader(initialDir string) FakeLoader {
|
|||||||
func NewFakeLoaderWithRestrictor(
|
func NewFakeLoaderWithRestrictor(
|
||||||
lr loader.LoadRestrictorFunc, initialDir string) FakeLoader {
|
lr loader.LoadRestrictorFunc, initialDir string) FakeLoader {
|
||||||
// Create fake filesystem and inject it into initial Loader.
|
// Create fake filesystem and inject it into initial Loader.
|
||||||
fSys := filesys.MakeFsInMemory()
|
fSys := fs.MakeFsInMemory()
|
||||||
fSys.Mkdir(initialDir)
|
fSys.Mkdir(initialDir)
|
||||||
ldr, err := loader.NewLoader(lr, initialDir, fSys)
|
ldr, err := loader.NewLoader(
|
||||||
|
lr, validators.MakeFakeValidator(), initialDir, fSys)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Unable to make loader: %v", err)
|
log.Fatalf("Unable to make loader: %v", err)
|
||||||
}
|
}
|
||||||
@@ -74,3 +77,13 @@ func (f FakeLoader) Load(location string) ([]byte, error) {
|
|||||||
func (f FakeLoader) Cleanup() error {
|
func (f FakeLoader) Cleanup() error {
|
||||||
return f.delegate.Cleanup()
|
return f.delegate.Cleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validator delegates.
|
||||||
|
func (f FakeLoader) Validator() ifc.Validator {
|
||||||
|
return f.delegate.Validator()
|
||||||
|
}
|
||||||
|
|
||||||
|
// LoadKvPairs delegates.
|
||||||
|
func (f FakeLoader) LoadKvPairs(args types.GeneratorArgs) ([]types.Pair, error) {
|
||||||
|
return f.delegate.LoadKvPairs(args)
|
||||||
|
}
|
||||||
@@ -352,7 +352,7 @@ patchesJson6902:
|
|||||||
```
|
```
|
||||||
|
|
||||||
the following flattened structure would look like:
|
the following flattened structure would look like:
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"identifiers": [
|
"identifiers": [
|
||||||
"resources",
|
"resources",
|
||||||
@@ -70,7 +70,7 @@ Each day, when the crawler finds and indexes these structured documents,
|
|||||||
it should insert aggregate data to a separate index. This data could look like the
|
it should insert aggregate data to a separate index. This data could look like the
|
||||||
following:
|
following:
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"kind": "kustomization",
|
"kind": "kustomization",
|
||||||
"added_identifiers": [
|
"added_identifiers": [
|
||||||
@@ -82,13 +82,13 @@ following:
|
|||||||
"docID45",
|
"docID45",
|
||||||
...
|
...
|
||||||
],
|
],
|
||||||
},
|
}
|
||||||
{
|
{
|
||||||
"identifier": "another:k8s:feature",
|
"identifier": "another:k8s:feature",
|
||||||
"documents": [
|
"documents": [
|
||||||
...
|
...
|
||||||
],
|
],
|
||||||
},
|
}
|
||||||
...
|
...
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ type Crawler interface {
|
|||||||
// Crawl returns when it is done processing. This method does not take
|
// Crawl returns when it is done processing. This method does not take
|
||||||
// ownership of the channel. The channel is write only, and it
|
// ownership of the channel. The channel is write only, and it
|
||||||
// designates where the crawler should forward the documents.
|
// designates where the crawler should forward the documents.
|
||||||
Crawl(ctx context.Context, output chan<- CrawledDocument) error
|
Crawl(ctx context.Context, output chan<- CrawlerDocument) error
|
||||||
|
|
||||||
// Get the document data given the FilePath, Repo, and Ref/Tag/Branch.
|
// Get the document data given the FilePath, Repo, and Ref/Tag/Branch.
|
||||||
FetchDocument(context.Context, *doc.Document) error
|
FetchDocument(context.Context, *doc.Document) error
|
||||||
@@ -37,21 +37,21 @@ type Crawler interface {
|
|||||||
Match(*doc.Document) bool
|
Match(*doc.Document) bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type CrawledDocument interface {
|
type CrawlerDocument interface {
|
||||||
ID() string
|
ID() string
|
||||||
GetDocument() *doc.Document
|
GetDocument() *doc.Document
|
||||||
GetResources() ([]*doc.Document, error)
|
GetResources() ([]*doc.Document, error)
|
||||||
WasCached() bool
|
WasCached() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type CrawlSeed []*doc.Document
|
type CrawlerSeed []*doc.Document
|
||||||
|
|
||||||
type IndexFunc func(CrawledDocument, Crawler) error
|
type IndexFunc func(CrawlerDocument, Crawler) error
|
||||||
type Converter func(*doc.Document) (CrawledDocument, error)
|
type Converter func(*doc.Document) (CrawlerDocument, error)
|
||||||
|
|
||||||
// Cleaner, more efficient, and more extensible crawler implementation.
|
// Cleaner, more efficient, and more extensible crawler implementation.
|
||||||
// The seed must include the ids of each document in the index.
|
// The seed must include the ids of each document in the index.
|
||||||
func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
func CrawlFromSeed(ctx context.Context, seed CrawlerSeed,
|
||||||
crawlers []Crawler, conv Converter, indx IndexFunc) {
|
crawlers []Crawler, conv Converter, indx IndexFunc) {
|
||||||
|
|
||||||
seen := make(map[string]struct{})
|
seen := make(map[string]struct{})
|
||||||
@@ -63,7 +63,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
logger.Println("error: ", err)
|
logger.Println("error: ", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
stack := make(CrawlSeed, 0)
|
stack := make(CrawlerSeed, 0)
|
||||||
|
|
||||||
findMatch := func(d *doc.Document) Crawler {
|
findMatch := func(d *doc.Document) Crawler {
|
||||||
for _, crawl := range crawlers {
|
for _, crawl := range crawlers {
|
||||||
@@ -75,7 +75,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
addBranches := func(cdoc CrawledDocument, match Crawler) {
|
addBranches := func(cdoc CrawlerDocument, match Crawler) {
|
||||||
if _, ok := seen[cdoc.ID()]; ok {
|
if _, ok := seen[cdoc.ID()]; ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -101,7 +101,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
doCrawl := func(docsPtr *CrawlSeed) {
|
doCrawl := func(docsPtr *CrawlerSeed) {
|
||||||
for len(*docsPtr) > 0 {
|
for len(*docsPtr) > 0 {
|
||||||
back := len(*docsPtr) - 1
|
back := len(*docsPtr) - 1
|
||||||
next := (*docsPtr)[back]
|
next := (*docsPtr)[back]
|
||||||
@@ -139,7 +139,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
logger.Printf("crawling %d new documents found in the seed\n", len(stack))
|
logger.Printf("crawling %d new documents found in the seed\n", len(stack))
|
||||||
doCrawl(&stack)
|
doCrawl(&stack)
|
||||||
|
|
||||||
ch := make(chan CrawledDocument, 1<<10)
|
ch := make(chan CrawlerDocument, 1<<10)
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
|
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@@ -160,7 +160,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
// Exploration through APIs.
|
// Exploration through APIs.
|
||||||
errs := CRunner(ctx, ch, crawlers)
|
errs := CrawlerRunner(ctx, ch, crawlers)
|
||||||
if errs != nil {
|
if errs != nil {
|
||||||
for _, err := range errs {
|
for _, err := range errs {
|
||||||
logIfErr(err)
|
logIfErr(err)
|
||||||
@@ -175,7 +175,7 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
doCrawl(&stack)
|
doCrawl(&stack)
|
||||||
}
|
}
|
||||||
|
|
||||||
// CRunner is a blocking function and only returns once all of the
|
// CrawlerRunner is a blocking function and only returns once all of the
|
||||||
// crawlers are finished with execution.
|
// crawlers are finished with execution.
|
||||||
//
|
//
|
||||||
// This function uses the output channel to forward kustomization documents
|
// This function uses the output channel to forward kustomization documents
|
||||||
@@ -186,14 +186,14 @@ func CrawlFromSeed(ctx context.Context, seed CrawlSeed,
|
|||||||
// index of the crawler that emitted the error. Although the errors themselves
|
// index of the crawler that emitted the error. Although the errors themselves
|
||||||
// can be nil, the array will always be exactly the size of the crawlers array.
|
// can be nil, the array will always be exactly the size of the crawlers array.
|
||||||
//
|
//
|
||||||
// CRunner takes in a seed, which represents the documents stored in an
|
// Crawler Runner takes in a seed, which represents the documents stored in an
|
||||||
// index somewhere. The document data is not required to be populated. If there
|
// index somewhere. The document data is not required to be populated. If there
|
||||||
// are many documents, this is preferable. The order of iteration over the seed
|
// are many documents, this is preferable. The order of iteration over the seed
|
||||||
// is not garanteed, but the CRunner does guarantee that every element
|
// is not garanteed, but the CrawlerRunner does guarantee that every element
|
||||||
// from the seed will be processed before any other documents from the
|
// from the seed will be processed before any other documents from the
|
||||||
// crawlers.
|
// crawlers.
|
||||||
func CRunner(ctx context.Context,
|
func CrawlerRunner(ctx context.Context,
|
||||||
output chan<- CrawledDocument, crawlers []Crawler) []error {
|
output chan<- CrawlerDocument, crawlers []Crawler) []error {
|
||||||
|
|
||||||
errs := make([]error, len(crawlers))
|
errs := make([]error, len(crawlers))
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
@@ -201,12 +201,12 @@ func CRunner(ctx context.Context,
|
|||||||
for i, crawler := range crawlers {
|
for i, crawler := range crawlers {
|
||||||
// Crawler implementations get their own channels to prevent a
|
// Crawler implementations get their own channels to prevent a
|
||||||
// crawler from closing the main output channel.
|
// crawler from closing the main output channel.
|
||||||
docs := make(chan CrawledDocument)
|
docs := make(chan CrawlerDocument)
|
||||||
wg.Add(2)
|
wg.Add(2)
|
||||||
|
|
||||||
// Forward all of the documents from this crawler's channel to
|
// Forward all of the documents from this crawler's channel to
|
||||||
// the main output channel.
|
// the main output channel.
|
||||||
go func(docs <-chan CrawledDocument) {
|
go func(docs <-chan CrawlerDocument) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
for doc := range docs {
|
for doc := range docs {
|
||||||
output <- doc
|
output <- doc
|
||||||
@@ -215,7 +215,7 @@ func CRunner(ctx context.Context,
|
|||||||
|
|
||||||
// Run this crawler and capture its returned error.
|
// Run this crawler and capture its returned error.
|
||||||
go func(idx int, crawler Crawler,
|
go func(idx int, crawler Crawler,
|
||||||
docs chan<- CrawledDocument) {
|
docs chan<- CrawlerDocument) {
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
wg.Done()
|
wg.Done()
|
||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/internal/tools/doc"
|
"sigs.k8s.io/kustomize/internal/tools/doc"
|
||||||
"sigs.k8s.io/kustomize/api/pgmconfig"
|
"sigs.k8s.io/kustomize/v3/pkg/pgmconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -47,7 +47,7 @@ func (c testCrawler) FetchDocument(ctx context.Context, d *doc.Document) error {
|
|||||||
d.DocumentData = c.docs[i].DocumentData
|
d.DocumentData = c.docs[i].DocumentData
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return fmt.Errorf("document %v does not exist for matcher: %s",
|
return fmt.Errorf("Document %v does not exist for matcher: %s",
|
||||||
d, c.matchPrefix)
|
d, c.matchPrefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ func newCrawler(matchPrefix string, err error,
|
|||||||
|
|
||||||
// Crawl implements the Crawler interface for testing.
|
// Crawl implements the Crawler interface for testing.
|
||||||
func (c testCrawler) Crawl(ctx context.Context,
|
func (c testCrawler) Crawl(ctx context.Context,
|
||||||
output chan<- CrawledDocument) error {
|
output chan<- CrawlerDocument) error {
|
||||||
|
|
||||||
for i, d := range c.docs {
|
for i, d := range c.docs {
|
||||||
isResource := true
|
isResource := true
|
||||||
@@ -107,7 +107,7 @@ func (s sortableDocs) Len() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCrawlerRunner(t *testing.T) {
|
func TestCrawlerRunner(t *testing.T) {
|
||||||
fmt.Println("testing CRunner")
|
fmt.Println("testing CrawlerRunner")
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
tc []Crawler
|
tc []Crawler
|
||||||
errs []error
|
errs []error
|
||||||
@@ -169,7 +169,7 @@ func TestCrawlerRunner(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
output := make(chan CrawledDocument)
|
output := make(chan CrawlerDocument)
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
|
||||||
@@ -178,7 +178,7 @@ func TestCrawlerRunner(t *testing.T) {
|
|||||||
defer close(output)
|
defer close(output)
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
errs := CRunner(context.Background(),
|
errs := CrawlerRunner(context.Background(),
|
||||||
output, test.tc)
|
output, test.tc)
|
||||||
|
|
||||||
// Check that errors are returned as they should be.
|
// Check that errors are returned as they should be.
|
||||||
@@ -215,12 +215,12 @@ func TestCrawlFromSeed(t *testing.T) {
|
|||||||
fmt.Println("testing CrawlFromSeed")
|
fmt.Println("testing CrawlFromSeed")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
seed CrawlSeed
|
seed CrawlerSeed
|
||||||
matcher string
|
matcher string
|
||||||
corpus []doc.KustomizationDocument
|
corpus []doc.KustomizationDocument
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
seed: CrawlSeed{
|
seed: CrawlerSeed{
|
||||||
{
|
{
|
||||||
RepositoryURL: kustomizeRepo,
|
RepositoryURL: kustomizeRepo,
|
||||||
FilePath: "examples/helloWorld/kustomization.yaml",
|
FilePath: "examples/helloWorld/kustomization.yaml",
|
||||||
@@ -333,13 +333,13 @@ resources:
|
|||||||
cr := newCrawler(tc.matcher, nil, tc.corpus)
|
cr := newCrawler(tc.matcher, nil, tc.corpus)
|
||||||
visited := make(map[string]int)
|
visited := make(map[string]int)
|
||||||
CrawlFromSeed(context.Background(), tc.seed, []Crawler{cr},
|
CrawlFromSeed(context.Background(), tc.seed, []Crawler{cr},
|
||||||
func(d *doc.Document) (CrawledDocument, error) {
|
func(d *doc.Document) (CrawlerDocument, error) {
|
||||||
return &doc.KustomizationDocument{
|
return &doc.KustomizationDocument{
|
||||||
Document: *d,
|
Document: *d,
|
||||||
}, nil
|
}, nil
|
||||||
},
|
},
|
||||||
func(d CrawledDocument, cr Crawler) error {
|
func(d CrawlerDocument, cr Crawler) error {
|
||||||
visited[ID()]++
|
visited[d.ID()]++
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -19,8 +19,8 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/internal/tools/crawler"
|
"sigs.k8s.io/kustomize/internal/tools/crawler"
|
||||||
"sigs.k8s.io/kustomize/internal/tools/doc"
|
"sigs.k8s.io/kustomize/internal/tools/doc"
|
||||||
"sigs.k8s.io/kustomize/internal/tools/httpclient"
|
"sigs.k8s.io/kustomize/internal/tools/httpclient"
|
||||||
"sigs.k8s.io/kustomize/api/git"
|
"sigs.k8s.io/kustomize/v3/pkg/git"
|
||||||
"sigs.k8s.io/kustomize/api/pgmconfig"
|
"sigs.k8s.io/kustomize/v3/pkg/pgmconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
var logger = log.New(os.Stdout, "Github Crawler: ",
|
var logger = log.New(os.Stdout, "Github Crawler: ",
|
||||||
@@ -28,22 +28,32 @@ var logger = log.New(os.Stdout, "Github Crawler: ",
|
|||||||
|
|
||||||
// Implements crawler.Crawler.
|
// Implements crawler.Crawler.
|
||||||
type githubCrawler struct {
|
type githubCrawler struct {
|
||||||
client GhClient
|
client GitHubClient
|
||||||
query Query
|
query Query
|
||||||
}
|
}
|
||||||
|
|
||||||
type GhClient struct {
|
type GitHubClient struct {
|
||||||
RequestConfig
|
RequestConfig
|
||||||
retryCount uint64
|
retryCount uint64
|
||||||
client *http.Client
|
client *http.Client
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
func NewClient(accessToken string, retryCount uint64, client *http.Client) GitHubClient {
|
||||||
|
return GitHubClient{
|
||||||
|
retryCount: retryCount,
|
||||||
|
client: client,
|
||||||
|
RequestConfig: RequestConfig{
|
||||||
|
perPage: githubMaxPageSize,
|
||||||
|
accessToken: accessToken,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func NewCrawler(accessToken string, retryCount uint64, client *http.Client,
|
func NewCrawler(accessToken string, retryCount uint64, client *http.Client,
|
||||||
query Query) githubCrawler {
|
query Query) githubCrawler {
|
||||||
|
|
||||||
return githubCrawler{
|
return githubCrawler{
|
||||||
client: GhClient{
|
client: GitHubClient{
|
||||||
retryCount: retryCount,
|
retryCount: retryCount,
|
||||||
client: client,
|
client: client,
|
||||||
RequestConfig: RequestConfig{
|
RequestConfig: RequestConfig{
|
||||||
@@ -54,13 +64,12 @@ func NewCrawler(accessToken string, retryCount uint64, client *http.Client,
|
|||||||
query: query,
|
query: query,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
// Implements crawler.Crawler.
|
// Implements crawler.Crawler.
|
||||||
func (gc githubCrawler) Crawl(
|
func (gc githubCrawler) Crawl(
|
||||||
ctx context.Context, output chan<- crawler.CrawledDocument) error {
|
ctx context.Context, output chan<- crawler.CrawlerDocument) error {
|
||||||
|
|
||||||
noETagClient := GhClient{
|
noETagClient := GitHubClient{
|
||||||
RequestConfig: gc.client.RequestConfig,
|
RequestConfig: gc.client.RequestConfig,
|
||||||
client: &http.Client{Timeout: gc.client.client.Timeout},
|
client: &http.Client{Timeout: gc.client.client.Timeout},
|
||||||
retryCount: gc.client.retryCount,
|
retryCount: gc.client.retryCount,
|
||||||
@@ -122,18 +131,18 @@ func (gc githubCrawler) FetchDocument(ctx context.Context, d *doc.Document) erro
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, file := range pgmconfig.RecognizedKustomizationFileNames() {
|
for _, file := range pgmconfig.KustomizationFileNames {
|
||||||
resp, err = gc.client.GetRawUserContent(url + "/" + file)
|
resp, err = gc.client.GetRawUserContent(url + "/" + file)
|
||||||
err := handle(resp, err, "/"+file)
|
err := handle(resp, err, "/"+file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return fmt.Errorf("file not found: %s", url)
|
return fmt.Errorf("File Not Found: %s", url)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gc githubCrawler) SetCreated(ctx context.Context, d *doc.Document) error {
|
func (gc githubCrawler) SetCreated(ctx context.Context, d *doc.Document) error {
|
||||||
fs := GhFileSpec{}
|
fs := GithubFileSpec{}
|
||||||
fs.Repository.FullName = d.RepositoryURL + "/" + d.FilePath
|
fs.Repository.FullName = d.RepositoryURL + "/" + d.FilePath
|
||||||
creationTime, err := gc.client.GetFileCreationTime(fs)
|
creationTime, err := gc.client.GetFileCreationTime(fs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -156,10 +165,10 @@ func (gc githubCrawler) Match(d *doc.Document) bool {
|
|||||||
|
|
||||||
// processQuery follows all of the pages in a query, and updates/adds the
|
// processQuery follows all of the pages in a query, and updates/adds the
|
||||||
// documents from the crawl to the datastore/index.
|
// documents from the crawl to the datastore/index.
|
||||||
func processQuery(ctx context.Context, gcl GhClient, query string,
|
func processQuery(ctx context.Context, gcl GitHubClient, query string,
|
||||||
output chan<- crawler.CrawledDocument) error {
|
output chan<- crawler.CrawlerDocument) error {
|
||||||
|
|
||||||
queryPages := make(chan GhResponseInfo)
|
queryPages := make(chan GithubResponseInfo)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
// Forward the document metadata to the retrieval channel.
|
// Forward the document metadata to the retrieval channel.
|
||||||
@@ -200,8 +209,8 @@ func processQuery(ctx context.Context, gcl GhClient, query string,
|
|||||||
return errs
|
return errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func kustomizationResultAdapter(gcl GhClient, k GhFileSpec) (
|
func kustomizationResultAdapter(gcl GitHubClient, k GithubFileSpec) (
|
||||||
crawler.CrawledDocument, error) {
|
crawler.CrawlerDocument, error) {
|
||||||
|
|
||||||
data, err := gcl.GetFileData(k)
|
data, err := gcl.GetFileData(k)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -236,8 +245,8 @@ func kustomizationResultAdapter(gcl GhClient, k GhFileSpec) (
|
|||||||
// ForwardPaginatedQuery follows the links to the next pages and performs all of
|
// ForwardPaginatedQuery follows the links to the next pages and performs all of
|
||||||
// the queries for a given search query, relaying the data from each request
|
// the queries for a given search query, relaying the data from each request
|
||||||
// back to an output channel.
|
// back to an output channel.
|
||||||
func (gcl GhClient) ForwardPaginatedQuery(ctx context.Context, query string,
|
func (gcl GitHubClient) ForwardPaginatedQuery(ctx context.Context, query string,
|
||||||
output chan<- GhResponseInfo) error {
|
output chan<- GithubResponseInfo) error {
|
||||||
|
|
||||||
logger.Println("querying: ", query)
|
logger.Println("querying: ", query)
|
||||||
response := gcl.parseGithubResponse(query)
|
response := gcl.parseGithubResponse(query)
|
||||||
@@ -266,7 +275,7 @@ func (gcl GhClient) ForwardPaginatedQuery(ctx context.Context, query string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetFileData gets the bytes from a file.
|
// GetFileData gets the bytes from a file.
|
||||||
func (gcl GhClient) GetFileData(k GhFileSpec) ([]byte, error) {
|
func (gcl GitHubClient) GetFileData(k GithubFileSpec) ([]byte, error) {
|
||||||
|
|
||||||
url := gcl.ContentsRequest(k.Repository.FullName, k.Path)
|
url := gcl.ContentsRequest(k.Repository.FullName, k.Path)
|
||||||
|
|
||||||
@@ -305,7 +314,7 @@ func (gcl GhClient) GetFileData(k GhFileSpec) ([]byte, error) {
|
|||||||
return data, err
|
return data, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gcl GhClient) GetDefaultBranch(url string) (string, error) {
|
func (gcl GitHubClient) GetDefaultBranch(url string) (string, error) {
|
||||||
resp, err := gcl.GetReposData(url)
|
resp, err := gcl.GetReposData(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf(
|
return "", fmt.Errorf(
|
||||||
@@ -332,8 +341,8 @@ func (gcl GhClient) GetDefaultBranch(url string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetFileCreationTime gets the earliest date of a file.
|
// GetFileCreationTime gets the earliest date of a file.
|
||||||
func (gcl GhClient) GetFileCreationTime(
|
func (gcl GitHubClient) GetFileCreationTime(
|
||||||
k GhFileSpec) (time.Time, error) {
|
k GithubFileSpec) (time.Time, error) {
|
||||||
|
|
||||||
url := gcl.CommitsRequest(k.Repository.FullName, k.Path)
|
url := gcl.CommitsRequest(k.Repository.FullName, k.Path)
|
||||||
|
|
||||||
@@ -369,7 +378,7 @@ func (gcl GhClient) GetFileCreationTime(
|
|||||||
return defaultTime, fmt.Errorf(
|
return defaultTime, fmt.Errorf(
|
||||||
"%+v: failed to read metadata: %v", k, err)
|
"%+v: failed to read metadata: %v", k, err)
|
||||||
}
|
}
|
||||||
var earliestDate []DateSpec
|
earliestDate := []DateSpec{}
|
||||||
err = json.Unmarshal(data, &earliestDate)
|
err = json.Unmarshal(data, &earliestDate)
|
||||||
size := len(earliestDate)
|
size := len(earliestDate)
|
||||||
if err != nil || size == 0 {
|
if err != nil || size == 0 {
|
||||||
@@ -404,18 +413,18 @@ func throttleRepoAPI() {
|
|||||||
|
|
||||||
type multiError []error
|
type multiError []error
|
||||||
|
|
||||||
func (e multiError) Error() string {
|
func (me multiError) Error() string {
|
||||||
size := len(e) + 2
|
size := len(me) + 2
|
||||||
strs := make([]string, size)
|
strs := make([]string, size)
|
||||||
strs[0] = "Errors ["
|
strs[0] = "Errors ["
|
||||||
for i, err := range e {
|
for i, err := range me {
|
||||||
strs[i+1] = "\t" + err.Error()
|
strs[i+1] = "\t" + err.Error()
|
||||||
}
|
}
|
||||||
strs[size-1] = "]"
|
strs[size-1] = "]"
|
||||||
return strings.Join(strs, "\n")
|
return strings.Join(strs, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
type GhFileSpec struct {
|
type GithubFileSpec struct {
|
||||||
Path string `json:"path,omitempty"`
|
Path string `json:"path,omitempty"`
|
||||||
Repository struct {
|
Repository struct {
|
||||||
API string `json:"url,omitempty"`
|
API string `json:"url,omitempty"`
|
||||||
@@ -430,10 +439,10 @@ type githubResponse struct {
|
|||||||
TotalCount uint64 `json:"total_count,omitempty"`
|
TotalCount uint64 `json:"total_count,omitempty"`
|
||||||
|
|
||||||
// Github representation of a file.
|
// Github representation of a file.
|
||||||
Items []GhFileSpec `json:"items,omitempty"`
|
Items []GithubFileSpec `json:"items,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GhResponseInfo struct {
|
type GithubResponseInfo struct {
|
||||||
*http.Response
|
*http.Response
|
||||||
Parsed *githubResponse
|
Parsed *githubResponse
|
||||||
Error error
|
Error error
|
||||||
@@ -471,9 +480,9 @@ func parseGithubLinkFormat(links string) (string, string) {
|
|||||||
return next, last
|
return next, last
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gcl GhClient) parseGithubResponse(getRequest string) GhResponseInfo {
|
func (gcl GitHubClient) parseGithubResponse(getRequest string) GithubResponseInfo {
|
||||||
resp, err := gcl.SearchGithubAPI(getRequest)
|
resp, err := gcl.SearchGithubAPI(getRequest)
|
||||||
requestInfo := GhResponseInfo{
|
requestInfo := GithubResponseInfo{
|
||||||
Response: resp,
|
Response: resp,
|
||||||
Error: err,
|
Error: err,
|
||||||
Parsed: nil,
|
Parsed: nil,
|
||||||
@@ -520,7 +529,7 @@ func (gcl GhClient) parseGithubResponse(getRequest string) GhResponseInfo {
|
|||||||
// SearchGithubAPI performs a search query and handles rate limitting for
|
// SearchGithubAPI performs a search query and handles rate limitting for
|
||||||
// the 'code/search?' endpoint as well as timed retries in the case of abuse
|
// the 'code/search?' endpoint as well as timed retries in the case of abuse
|
||||||
// prevention.
|
// prevention.
|
||||||
func (gcl GhClient) SearchGithubAPI(query string) (*http.Response, error) {
|
func (gcl GitHubClient) SearchGithubAPI(query string) (*http.Response, error) {
|
||||||
throttleSearchAPI()
|
throttleSearchAPI()
|
||||||
return gcl.getWithRetry(query)
|
return gcl.getWithRetry(query)
|
||||||
}
|
}
|
||||||
@@ -528,18 +537,18 @@ func (gcl GhClient) SearchGithubAPI(query string) (*http.Response, error) {
|
|||||||
// GetReposData performs a search query and handles rate limitting for
|
// GetReposData performs a search query and handles rate limitting for
|
||||||
// the '/repos' endpoint as well as timed retries in the case of abuse
|
// the '/repos' endpoint as well as timed retries in the case of abuse
|
||||||
// prevention.
|
// prevention.
|
||||||
func (gcl GhClient) GetReposData(query string) (*http.Response, error) {
|
func (gcl GitHubClient) GetReposData(query string) (*http.Response, error) {
|
||||||
throttleRepoAPI()
|
throttleRepoAPI()
|
||||||
return gcl.getWithRetry(query)
|
return gcl.getWithRetry(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
// User content (file contents) is not API rate limited, so there's no use in
|
// User content (file contents) is not API rate limited, so there's no use in
|
||||||
// throttling this call.
|
// throttling this call.
|
||||||
func (gcl GhClient) GetRawUserContent(query string) (*http.Response, error) {
|
func (gcl GitHubClient) GetRawUserContent(query string) (*http.Response, error) {
|
||||||
return gcl.getWithRetry(query)
|
return gcl.getWithRetry(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gcl GhClient) getWithRetry(
|
func (gcl GitHubClient) getWithRetry(
|
||||||
query string) (resp *http.Response, err error) {
|
query string) (resp *http.Response, err error) {
|
||||||
|
|
||||||
resp, err = gcl.client.Get(query)
|
resp, err = gcl.client.Get(query)
|
||||||
@@ -51,7 +51,7 @@ func (qf queryField) String() string {
|
|||||||
type Query []queryField
|
type Query []queryField
|
||||||
|
|
||||||
func QueryWith(qfs ...queryField) Query {
|
func QueryWith(qfs ...queryField) Query {
|
||||||
return qfs
|
return Query(qfs)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q Query) String() string {
|
func (q Query) String() string {
|
||||||
@@ -147,11 +147,11 @@ type cachedSearch interface {
|
|||||||
// cache's performance.
|
// cache's performance.
|
||||||
type githubCachedSearch struct {
|
type githubCachedSearch struct {
|
||||||
cache map[uint64]uint64
|
cache map[uint64]uint64
|
||||||
gcl GhClient
|
gcl GitHubClient
|
||||||
baseRequest request
|
baseRequest request
|
||||||
}
|
}
|
||||||
|
|
||||||
func newCache(client GhClient, query Query) githubCachedSearch {
|
func newCache(client GitHubClient, query Query) githubCachedSearch {
|
||||||
return githubCachedSearch{
|
return githubCachedSearch{
|
||||||
cache: map[uint64]uint64{
|
cache: map[uint64]uint64{
|
||||||
0: 0,
|
0: 0,
|
||||||
@@ -20,7 +20,7 @@ func (c testCachedSearch) CountResults(upperBound uint64) (uint64, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c testCachedSearch) RequestString(filesize rangeFormatter) string {
|
func (c testCachedSearch) RequestString(filesize rangeFormatter) string {
|
||||||
return RangeString()
|
return filesize.RangeString()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(damienr74) make tests easier to write.. I'm thinking I can make the test
|
// TODO(damienr74) make tests easier to write.. I'm thinking I can make the test
|
||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/v3/k8sdeps/kunstruct"
|
||||||
"sigs.k8s.io/kustomize/api/k8sdeps/kunstruct"
|
"sigs.k8s.io/kustomize/v3/pkg/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/pgmconfig"
|
"sigs.k8s.io/kustomize/v3/pkg/pgmconfig"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/v3/pkg/types"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ type set map[string]struct{}
|
|||||||
// Implements the CrawlerDocument interface.
|
// Implements the CrawlerDocument interface.
|
||||||
func (doc *KustomizationDocument) GetResources() ([]*Document, error) {
|
func (doc *KustomizationDocument) GetResources() ([]*Document, error) {
|
||||||
isResource := true
|
isResource := true
|
||||||
for _, suffix := range pgmconfig.RecognizedKustomizationFileNames() {
|
for _, suffix := range pgmconfig.KustomizationFileNames {
|
||||||
if strings.HasSuffix(doc.FilePath, "/"+suffix) {
|
if strings.HasSuffix(doc.FilePath, "/"+suffix) {
|
||||||
isResource = false
|
isResource = false
|
||||||
}
|
}
|
||||||
@@ -86,7 +86,7 @@ func (doc *KustomizationDocument) GetResources() ([]*Document, error) {
|
|||||||
func (doc *KustomizationDocument) readBytes() ([]map[string]interface{}, error) {
|
func (doc *KustomizationDocument) readBytes() ([]map[string]interface{}, error) {
|
||||||
data := []byte(doc.DocumentData)
|
data := []byte(doc.DocumentData)
|
||||||
|
|
||||||
for _, suffix := range pgmconfig.RecognizedKustomizationFileNames() {
|
for _, suffix := range pgmconfig.KustomizationFileNames {
|
||||||
if !strings.HasSuffix(doc.FilePath, "/"+suffix) {
|
if !strings.HasSuffix(doc.FilePath, "/"+suffix) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/git"
|
"sigs.k8s.io/kustomize/v3/pkg/git"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Document struct {
|
type Document struct {
|
||||||
13
internal/tools/go.mod
Normal file
13
internal/tools/go.mod
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
module sigs.k8s.io/kustomize/internal/tools
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/elastic/go-elasticsearch/v6 v6.8.2
|
||||||
|
github.com/gomodule/redigo v2.0.0+incompatible
|
||||||
|
github.com/gorilla/mux v1.7.3
|
||||||
|
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
|
||||||
|
github.com/rs/cors v1.7.0
|
||||||
|
sigs.k8s.io/kustomize/v3 v3.1.1-0.20190826160027-84519c236bac
|
||||||
|
sigs.k8s.io/yaml v1.1.0
|
||||||
|
)
|
||||||
@@ -1,95 +1,93 @@
|
|||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
github.com/elastic/go-elasticsearch/v6 v6.8.2 h1:rp5DGrd63V5c6nHLjF6QEXUpZSvs0+QM3ld7m9VhV2g=
|
||||||
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elastic/go-elasticsearch/v6 v6.8.2/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw=
|
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/emicklei/go-restful v2.9.6+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
|
||||||
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
|
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
|
||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
|
||||||
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
|
||||||
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
||||||
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
|
||||||
github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo=
|
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
||||||
github.com/go-openapi/spec v0.19.4/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d h1:3PaI8p3seN09VjbTYC/QWlUZdZ1qS1zGjy7LH2Wt07I=
|
|
||||||
github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
|
|
||||||
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
|
||||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
|
github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
|
||||||
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
|
github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
|
||||||
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
|
github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
|
||||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/googleapis/gnostic v0.0.0-20170426233943-68f4ded48ba9/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d h1:7XGaL1e6bYS1yIonGp9761ExpPPV1ui0SAC59Yube9k=
|
github.com/googleapis/gnostic v0.3.0 h1:CcQijm0XKekKjP/YCz28LXVSpgguuB+nCxaSjCe09y0=
|
||||||
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
github.com/googleapis/gnostic v0.3.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
|
||||||
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
|
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
|
||||||
|
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
|
||||||
|
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||||
|
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
|
||||||
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
|
github.com/json-iterator/go v1.1.6 h1:MrUvLMLTMxbqFJ9kzlvat/rYZqZnW3u4wkLzWTaFwKs=
|
||||||
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||||
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
|
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||||
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
github.com/mailru/easyjson v0.0.0-20190620125010-da37f6c1e481/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
|
||||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
|
||||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
|
|
||||||
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w=
|
||||||
|
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||||
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
|
||||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo=
|
||||||
|
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
|
||||||
|
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
|
||||||
|
github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
|
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||||
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@@ -97,10 +95,8 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478 h1:l5EDrHhldLYb3ZRHDUhXF7Om7MvYXnkV9/iQNo1lX6g=
|
|
||||||
golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@@ -108,40 +104,43 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190621203818-d432491b9138 h1:t8BZD9RDjkm9/h7yYN6kE8oaeov5r9aztkB7zKA5Tkg=
|
||||||
|
golang.org/x/sys v0.0.0-20190621203818-d432491b9138/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
|
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
gopkg.in/inf.v0 v0.9.0 h1:3zYtXIO92bvsdS3ggAdA8Gb4Azj0YU+TVY1uGYNFA8o=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
k8s.io/api v0.0.0-20190313235455-40a48860b5ab h1:DG9A67baNpoeweOy2spF1OWHhnVY5KR7/Ek/+U1lVZc=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
k8s.io/api v0.0.0-20190313235455-40a48860b5ab/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678 h1:z/0BV/tMBIvdwZvqBH/f7TWjQX9y3dj1nMNhrSK0h/8=
|
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1 h1:IS7K02iBkQXpCeieSiyJjGoLSdVOv2DbPaWHJ+ZtgKg=
|
||||||
k8s.io/api v0.0.0-20191016225839-816a9b7df678/go.mod h1:LZQaT8MvVpl7Bg2lYFcQm7+Mpdxq8p1NFl3yh+5DCwY=
|
k8s.io/apimachinery v0.0.0-20190313205120-d7deff9243b1/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=
|
||||||
k8s.io/apimachinery v0.0.0-20191016225534-b1267f8c42b4/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5 h1:r3/YL3+t1U46lJF5zUSArskUpnLyWuM28rQDpM1qQPI=
|
|
||||||
k8s.io/apimachinery v0.0.0-20191020214737-6c8691705fc5/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
|
|
||||||
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwnJo9o=
|
||||||
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
||||||
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
k8s.io/klog v0.3.3 h1:niceAagH1tzskmaie/icWd7ci1wbG7Bf2c6YGcQv+3c=
|
||||||
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
|
k8s.io/klog v0.3.3/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208 h1:5sW+fEHvlJI3Ngolx30CmubFulwH28DhKjGf70Xmtco=
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d h1:Xpe6sK+RY4ZgCTyZ3y273UmFmURhjtoJiwOMbQsXitY=
|
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208/go.mod h1:nfDlWeOsu3pUf4yWGL+ERqohP4YsZcBJXWMK+gkzOA4=
|
||||||
k8s.io/kube-openapi v0.0.0-20190918143330-0270cf2f1c1d/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E=
|
sigs.k8s.io/kustomize/v3 v3.1.1-0.20190826160027-84519c236bac h1:kmfwkekoKBD2cZCiold2zvyTDzycW6ieBstiBo352bk=
|
||||||
|
sigs.k8s.io/kustomize/v3 v3.1.1-0.20190826160027-84519c236bac/go.mod h1:ztX4zYc/QIww3gSripwF7TBOarBTm5BvyAMem0kCzOE=
|
||||||
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
||||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||||
@@ -35,7 +35,7 @@ func newIndex(ctx context.Context, name string) (*index, error) {
|
|||||||
|
|
||||||
type readerFunc func(io.Reader) error
|
type readerFunc func(io.Reader) error
|
||||||
|
|
||||||
func ignoreResponseBody(_ io.Reader) error {
|
func ignoreResponseBody(reader io.Reader) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user