mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Update kubectl kustomize to kyaml/v0.14.1, cmd/config/v0.11.1, api/v0.13.2, kustomize/v5.0.1
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
= vendor/sigs.k8s.io/kustomize/kustomize/v4 licensed under: =
 | 
					= vendor/sigs.k8s.io/kustomize/kustomize/v5 licensed under: =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                 Apache License
 | 
					                                 Apache License
 | 
				
			||||||
                           Version 2.0, January 2004
 | 
					                           Version 2.0, January 2004
 | 
				
			||||||
@@ -202,4 +202,4 @@
 | 
				
			|||||||
   See the License for the specific language governing permissions and
 | 
					   See the License for the specific language governing permissions and
 | 
				
			||||||
   limitations under the License.
 | 
					   limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
= vendor/sigs.k8s.io/kustomize/kustomize/v4/LICENSE e3fc50a88d0a364313df4b21ef20c29e
 | 
					= vendor/sigs.k8s.io/kustomize/kustomize/v5/LICENSE e3fc50a88d0a364313df4b21ef20c29e
 | 
				
			||||||
							
								
								
									
										8
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								go.mod
									
									
									
									
									
								
							@@ -161,7 +161,7 @@ require (
 | 
				
			|||||||
	github.com/fatih/camelcase v1.0.0 // indirect
 | 
						github.com/fatih/camelcase v1.0.0 // indirect
 | 
				
			||||||
	github.com/felixge/httpsnoop v1.0.3 // indirect
 | 
						github.com/felixge/httpsnoop v1.0.3 // indirect
 | 
				
			||||||
	github.com/fvbommel/sortorder v1.0.1 // indirect
 | 
						github.com/fvbommel/sortorder v1.0.1 // indirect
 | 
				
			||||||
	github.com/go-errors/errors v1.0.1 // indirect
 | 
						github.com/go-errors/errors v1.4.2 // indirect
 | 
				
			||||||
	github.com/go-logr/stdr v1.2.2 // indirect
 | 
						github.com/go-logr/stdr v1.2.2 // indirect
 | 
				
			||||||
	github.com/go-logr/zapr v1.2.3 // indirect
 | 
						github.com/go-logr/zapr v1.2.3 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
						github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
				
			||||||
@@ -237,9 +237,9 @@ require (
 | 
				
			|||||||
	gopkg.in/warnings.v0 v0.1.1 // indirect
 | 
						gopkg.in/warnings.v0 v0.1.1 // indirect
 | 
				
			||||||
	sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1 // indirect
 | 
						sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1 // indirect
 | 
				
			||||||
	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 | 
						sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/api v0.12.1 // indirect
 | 
						sigs.k8s.io/kustomize/api v0.13.2 // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 // indirect
 | 
						sigs.k8s.io/kustomize/kustomize/v5 v5.0.1 // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
 | 
						sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
replace (
 | 
					replace (
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								go.sum
									
									
									
									
									
								
							@@ -247,8 +247,8 @@ github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqF
 | 
				
			|||||||
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
 | 
					github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
 | 
				
			||||||
github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
 | 
					github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
 | 
				
			||||||
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-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
 | 
					github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
 | 
					github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 | 
				
			||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
					github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
@@ -1264,12 +1264,12 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1 h1:MB1zkK+WMOmfLx
 | 
				
			|||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1/go.mod h1:/4NLd21PQY0B+H+X0aDZdwUiVXYJQl/2NXA5KVtDiP4=
 | 
					sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.1/go.mod h1:/4NLd21PQY0B+H+X0aDZdwUiVXYJQl/2NXA5KVtDiP4=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
 | 
					sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
 | 
					sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw=
 | 
				
			||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 h1:cDW6AVMl6t/SLuQaezMET8hgnadZGIAr8tUrxFVOrpg=
 | 
					sigs.k8s.io/kustomize/kustomize/v5 v5.0.1 h1:HWXbyKDNwGqol+s/sMNr/vnfNME/EoMdEraP4ZkUQek=
 | 
				
			||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q=
 | 
					sigs.k8s.io/kustomize/kustomize/v5 v5.0.1/go.mod h1:Q8o+soB41Pn1y26eXzG9cniuECDpTJe2eKOA1fENCU8=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
				
			||||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 | 
					sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,11 +43,6 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "status": {
 | 
					  "status": {
 | 
				
			||||||
    "unwantedReferences": {
 | 
					    "unwantedReferences": {
 | 
				
			||||||
      "github.com/PuerkitoBio/urlesc": [
 | 
					 | 
				
			||||||
        "sigs.k8s.io/kustomize/api",
 | 
					 | 
				
			||||||
        "sigs.k8s.io/kustomize/kustomize/v4",
 | 
					 | 
				
			||||||
        "sigs.k8s.io/kustomize/kyaml"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "github.com/getsentry/raven-go": [
 | 
					      "github.com/getsentry/raven-go": [
 | 
				
			||||||
        "go.etcd.io/etcd/raft/v3"
 | 
					        "go.etcd.io/etcd/raft/v3"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
@@ -72,7 +67,7 @@
 | 
				
			|||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "github.com/google/shlex": [
 | 
					      "github.com/google/shlex": [
 | 
				
			||||||
        "sigs.k8s.io/kustomize/api",
 | 
					        "sigs.k8s.io/kustomize/api",
 | 
				
			||||||
        "sigs.k8s.io/kustomize/kustomize/v4"
 | 
					        "sigs.k8s.io/kustomize/kustomize/v5"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "github.com/gorilla/websocket": [
 | 
					      "github.com/gorilla/websocket": [
 | 
				
			||||||
        "github.com/moby/spdystream",
 | 
					        "github.com/moby/spdystream",
 | 
				
			||||||
@@ -104,8 +99,7 @@
 | 
				
			|||||||
        "gotest.tools/v3",
 | 
					        "gotest.tools/v3",
 | 
				
			||||||
        "k8s.io/system-validators",
 | 
					        "k8s.io/system-validators",
 | 
				
			||||||
        "sigs.k8s.io/kustomize/api",
 | 
					        "sigs.k8s.io/kustomize/api",
 | 
				
			||||||
        "sigs.k8s.io/kustomize/kustomize/v4",
 | 
					        "sigs.k8s.io/kustomize/kustomize/v5"
 | 
				
			||||||
        "sigs.k8s.io/kustomize/kyaml"
 | 
					 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,7 +49,7 @@ fi
 | 
				
			|||||||
./hack/pin-dependency.sh sigs.k8s.io/kustomize/kyaml "$LATEST_KYAML"
 | 
					./hack/pin-dependency.sh sigs.k8s.io/kustomize/kyaml "$LATEST_KYAML"
 | 
				
			||||||
./hack/pin-dependency.sh sigs.k8s.io/kustomize/cmd/config "$LATEST_CONFIG"
 | 
					./hack/pin-dependency.sh sigs.k8s.io/kustomize/cmd/config "$LATEST_CONFIG"
 | 
				
			||||||
./hack/pin-dependency.sh sigs.k8s.io/kustomize/api "$LATEST_API"
 | 
					./hack/pin-dependency.sh sigs.k8s.io/kustomize/api "$LATEST_API"
 | 
				
			||||||
./hack/pin-dependency.sh sigs.k8s.io/kustomize/kustomize/v4 "$LATEST_KUSTOMIZE"
 | 
					./hack/pin-dependency.sh sigs.k8s.io/kustomize/kustomize/v5 "$LATEST_KUSTOMIZE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
./hack/update-vendor.sh
 | 
					./hack/update-vendor.sh
 | 
				
			||||||
./hack/update-internal-modules.sh
 | 
					./hack/update-internal-modules.sh
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,14 +21,14 @@ require (
 | 
				
			|||||||
	k8s.io/klog/v2 v2.90.1
 | 
						k8s.io/klog/v2 v2.90.1
 | 
				
			||||||
	k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a
 | 
						k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a
 | 
				
			||||||
	k8s.io/utils v0.0.0-20230209194617-a36077c30491
 | 
						k8s.io/utils v0.0.0-20230209194617-a36077c30491
 | 
				
			||||||
	sigs.k8s.io/kustomize/api v0.12.1
 | 
						sigs.k8s.io/kustomize/api v0.13.2
 | 
				
			||||||
	sigs.k8s.io/kustomize/kyaml v0.13.9
 | 
						sigs.k8s.io/kustomize/kyaml v0.14.1
 | 
				
			||||||
	sigs.k8s.io/yaml v1.3.0
 | 
						sigs.k8s.io/yaml v1.3.0
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
						github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
				
			||||||
	github.com/go-errors/errors v1.0.1 // indirect
 | 
						github.com/go-errors/errors v1.4.2 // indirect
 | 
				
			||||||
	github.com/go-logr/logr v1.2.3 // indirect
 | 
						github.com/go-logr/logr v1.2.3 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
						github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonreference v0.20.1 // indirect
 | 
						github.com/go-openapi/jsonreference v0.20.1 // indirect
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/cli-runtime/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/cli-runtime/go.sum
									
									
									
										generated
									
									
									
								
							@@ -53,8 +53,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
 | 
				
			|||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
					github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
				
			||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 | 
					github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 | 
				
			||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
					github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
 | 
					github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
 | 
					github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 | 
				
			||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
					github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
@@ -498,10 +498,10 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 | 
				
			|||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
					rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
 | 
					sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
 | 
					sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
				
			||||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
					sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ type KustomizeVisitor struct {
 | 
				
			|||||||
// Visit passes the result of a kustomize build to a StreamVisitor.
 | 
					// Visit passes the result of a kustomize build to a StreamVisitor.
 | 
				
			||||||
func (v *KustomizeVisitor) Visit(fn VisitorFunc) error {
 | 
					func (v *KustomizeVisitor) Visit(fn VisitorFunc) error {
 | 
				
			||||||
	kOpts := krusty.MakeDefaultOptions()
 | 
						kOpts := krusty.MakeDefaultOptions()
 | 
				
			||||||
	kOpts.DoLegacyResourceSort = true
 | 
						kOpts.Reorder = krusty.ReorderOptionLegacy
 | 
				
			||||||
	k := krusty.MakeKustomizer(kOpts)
 | 
						k := krusty.MakeKustomizer(kOpts)
 | 
				
			||||||
	m, err := k.Run(v.fSys, v.dirPath)
 | 
						m, err := k.Run(v.fSys, v.dirPath)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,8 +41,8 @@ require (
 | 
				
			|||||||
	k8s.io/metrics v0.0.0
 | 
						k8s.io/metrics v0.0.0
 | 
				
			||||||
	k8s.io/utils v0.0.0-20230209194617-a36077c30491
 | 
						k8s.io/utils v0.0.0-20230209194617-a36077c30491
 | 
				
			||||||
	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
 | 
						sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
 | 
				
			||||||
	sigs.k8s.io/kustomize/kustomize/v4 v4.5.7
 | 
						sigs.k8s.io/kustomize/kustomize/v5 v5.0.1
 | 
				
			||||||
	sigs.k8s.io/kustomize/kyaml v0.13.9
 | 
						sigs.k8s.io/kustomize/kyaml v0.14.1
 | 
				
			||||||
	sigs.k8s.io/structured-merge-diff/v4 v4.2.3
 | 
						sigs.k8s.io/structured-merge-diff/v4 v4.2.3
 | 
				
			||||||
	sigs.k8s.io/yaml v1.3.0
 | 
						sigs.k8s.io/yaml v1.3.0
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -51,7 +51,7 @@ require (
 | 
				
			|||||||
	github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
 | 
						github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
 | 
				
			||||||
	github.com/davecgh/go-spew v1.1.1 // indirect
 | 
						github.com/davecgh/go-spew v1.1.1 // indirect
 | 
				
			||||||
	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
						github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
				
			||||||
	github.com/go-errors/errors v1.0.1 // indirect
 | 
						github.com/go-errors/errors v1.4.2 // indirect
 | 
				
			||||||
	github.com/go-logr/logr v1.2.3 // indirect
 | 
						github.com/go-logr/logr v1.2.3 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
						github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
				
			||||||
	github.com/go-openapi/swag v0.22.3 // indirect
 | 
						github.com/go-openapi/swag v0.22.3 // indirect
 | 
				
			||||||
@@ -87,7 +87,7 @@ require (
 | 
				
			|||||||
	google.golang.org/protobuf v1.28.1 // indirect
 | 
						google.golang.org/protobuf v1.28.1 // indirect
 | 
				
			||||||
	gopkg.in/inf.v0 v0.9.1 // indirect
 | 
						gopkg.in/inf.v0 v0.9.1 // indirect
 | 
				
			||||||
	gopkg.in/yaml.v3 v3.0.1 // indirect
 | 
						gopkg.in/yaml.v3 v3.0.1 // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/api v0.12.1 // indirect
 | 
						sigs.k8s.io/kustomize/api v0.13.2 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
replace (
 | 
					replace (
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								staging/src/k8s.io/kubectl/go.sum
									
									
									
										generated
									
									
									
								
							@@ -71,8 +71,8 @@ github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8
 | 
				
			|||||||
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
 | 
					github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
 | 
				
			||||||
github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
 | 
					github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
 | 
				
			||||||
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
 | 
					github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
 | 
					github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
 | 
					github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 | 
				
			||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
					github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
@@ -542,12 +542,12 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 | 
				
			|||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
					rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
 | 
					sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
 | 
					sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw=
 | 
				
			||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 h1:cDW6AVMl6t/SLuQaezMET8hgnadZGIAr8tUrxFVOrpg=
 | 
					sigs.k8s.io/kustomize/kustomize/v5 v5.0.1 h1:HWXbyKDNwGqol+s/sMNr/vnfNME/EoMdEraP4ZkUQek=
 | 
				
			||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q=
 | 
					sigs.k8s.io/kustomize/kustomize/v5 v5.0.1/go.mod h1:Q8o+soB41Pn1y26eXzG9cniuECDpTJe2eKOA1fENCU8=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
				
			||||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
					sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ import (
 | 
				
			|||||||
	"k8s.io/cli-runtime/pkg/genericclioptions"
 | 
						"k8s.io/cli-runtime/pkg/genericclioptions"
 | 
				
			||||||
	"k8s.io/kubectl/pkg/util/i18n"
 | 
						"k8s.io/kubectl/pkg/util/i18n"
 | 
				
			||||||
	"k8s.io/kubectl/pkg/util/templates"
 | 
						"k8s.io/kubectl/pkg/util/templates"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kustomize/v4/commands/build"
 | 
						"sigs.k8s.io/kustomize/kustomize/v5/commands/build"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,7 +36,7 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TODO(knverey): remove this hardcoding once kubectl being built with module support makes BuildInfo available.
 | 
					// TODO(knverey): remove this hardcoding once kubectl being built with module support makes BuildInfo available.
 | 
				
			||||||
const kustomizeVersion = "v4.5.7"
 | 
					const kustomizeVersion = "v5.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Version is a struct for version information
 | 
					// Version is a struct for version information
 | 
				
			||||||
type Version struct {
 | 
					type Version struct {
 | 
				
			||||||
@@ -195,7 +195,7 @@ func GetKustomizeModVersion() (string, bool) {
 | 
				
			|||||||
		return "", false
 | 
							return "", false
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for _, dep := range info.Deps {
 | 
						for _, dep := range info.Deps {
 | 
				
			||||||
		if dep.Path == "sigs.k8s.io/kustomize/kustomize/v4" {
 | 
							if dep.Path == "sigs.k8s.io/kustomize/kustomize/v4" || dep.Path == "sigs.k8s.io/kustomize/kustomize/v5" {
 | 
				
			||||||
			return dep.Version, true
 | 
								return dep.Version, true
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@ require (
 | 
				
			|||||||
	github.com/davecgh/go-spew v1.1.1 // indirect
 | 
						github.com/davecgh/go-spew v1.1.1 // indirect
 | 
				
			||||||
	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
						github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 | 
				
			||||||
	github.com/evanphx/json-patch v4.12.0+incompatible // indirect
 | 
						github.com/evanphx/json-patch v4.12.0+incompatible // indirect
 | 
				
			||||||
	github.com/go-errors/errors v1.0.1 // indirect
 | 
						github.com/go-errors/errors v1.4.2 // indirect
 | 
				
			||||||
	github.com/go-logr/logr v1.2.3 // indirect
 | 
						github.com/go-logr/logr v1.2.3 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
						github.com/go-openapi/jsonpointer v0.19.6 // indirect
 | 
				
			||||||
	github.com/go-openapi/jsonreference v0.20.1 // indirect
 | 
						github.com/go-openapi/jsonreference v0.20.1 // indirect
 | 
				
			||||||
@@ -60,8 +60,8 @@ require (
 | 
				
			|||||||
	k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect
 | 
						k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect
 | 
				
			||||||
	k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
 | 
						k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
 | 
				
			||||||
	sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 | 
						sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/api v0.12.1 // indirect
 | 
						sigs.k8s.io/kustomize/api v0.13.2 // indirect
 | 
				
			||||||
	sigs.k8s.io/kustomize/kyaml v0.13.9 // indirect
 | 
						sigs.k8s.io/kustomize/kyaml v0.14.1 // indirect
 | 
				
			||||||
	sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 | 
						sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
 | 
				
			||||||
	sigs.k8s.io/yaml v1.3.0 // indirect
 | 
						sigs.k8s.io/yaml v1.3.0 // indirect
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								staging/src/k8s.io/sample-cli-plugin/go.sum
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								staging/src/k8s.io/sample-cli-plugin/go.sum
									
									
									
										generated
									
									
									
								
							@@ -53,8 +53,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
 | 
				
			|||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
					github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 | 
				
			||||||
github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 | 
					github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84=
 | 
				
			||||||
github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
					github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
 | 
					github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 | 
				
			||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
 | 
					github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 | 
				
			||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
					github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
					github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 | 
				
			||||||
@@ -498,10 +498,10 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 | 
				
			|||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
					rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
 | 
				
			||||||
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
					sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
 | 
					sigs.k8s.io/kustomize/api v0.13.2 h1:kejWfLeJhUsTGioDoFNJET5LQe/ajzXhJGYoU+pJsiA=
 | 
				
			||||||
sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
 | 
					sigs.k8s.io/kustomize/api v0.13.2/go.mod h1:DUp325VVMFVcQSq+ZxyDisA8wtldwHxLZbr1g94UHsw=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1 h1:c8iibius7l24G2wVAGZn/Va2wNys03GXLjYVIcFVxKA=
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
 | 
					sigs.k8s.io/kustomize/kyaml v0.14.1/go.mod h1:AN1/IpawKilWD7V+YvQwRGUvuUOOWpjsHu6uHwonSF4=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
 | 
				
			||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
					sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
 | 
				
			||||||
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
					sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								vendor/github.com/go-errors/errors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/go-errors/errors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,3 +3,6 @@ language: go
 | 
				
			|||||||
go:
 | 
					go:
 | 
				
			||||||
  - "1.8.x"
 | 
					  - "1.8.x"
 | 
				
			||||||
  - "1.10.x"
 | 
					  - "1.10.x"
 | 
				
			||||||
 | 
					  - "1.13.x"
 | 
				
			||||||
 | 
					  - "1.14.x"
 | 
				
			||||||
 | 
					  - "1.16.x"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								vendor/github.com/go-errors/errors/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-errors/errors/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -64,3 +64,19 @@ packages by Facebook and Dropbox, it was moved to one canonical location so
 | 
				
			|||||||
everyone can benefit.
 | 
					everyone can benefit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This package is licensed under the MIT license, see LICENSE.MIT for details.
 | 
					This package is licensed under the MIT license, see LICENSE.MIT for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Changelog
 | 
				
			||||||
 | 
					* v1.1.0 updated to use go1.13's standard-library errors.Is method instead of == in errors.Is
 | 
				
			||||||
 | 
					* v1.2.0 added `errors.As` from the standard library.
 | 
				
			||||||
 | 
					* v1.3.0 *BREAKING* updated error methods to return `error` instead of `*Error`.
 | 
				
			||||||
 | 
					>  Code that needs access to the underlying `*Error` can use the new errors.AsError(e)
 | 
				
			||||||
 | 
					> ```
 | 
				
			||||||
 | 
					>   // before
 | 
				
			||||||
 | 
					>   errors.New(err).ErrorStack()
 | 
				
			||||||
 | 
					>   // after
 | 
				
			||||||
 | 
					>.  errors.AsError(errors.Wrap(err)).ErrorStack()
 | 
				
			||||||
 | 
					> ```
 | 
				
			||||||
 | 
					* v1.4.0 *BREAKING* v1.4.0 reverted all changes from v1.3.0 and is identical to v1.2.0
 | 
				
			||||||
 | 
					* v1.4.1 no code change, but now without an unnecessary cover.out file.
 | 
				
			||||||
 | 
					* v1.4.2 performance improvement to ErrorStack() to avoid unnecessary work https://github.com/go-errors/errors/pull/40
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										89
									
								
								vendor/github.com/go-errors/errors/cover.out
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								vendor/github.com/go-errors/errors/cover.out
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,89 +0,0 @@
 | 
				
			|||||||
mode: set
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:27.51,30.25 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:33.2,38.8 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:30.25,32.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:43.47,44.31 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:47.2,47.48 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:44.31,46.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:52.42,56.16 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:60.2,60.60 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:56.16,58.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:64.55,67.16 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:71.2,72.61 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:76.2,76.66 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:67.16,69.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:72.61,74.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:79.56,91.63 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:95.2,95.53 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:100.2,101.18 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:91.63,94.3 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/stackframe.go:95.53,98.3 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:70.32,73.23 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:80.2,85.3 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:74.2,75.10 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:76.2,77.28 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:92.43,95.23 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:104.2,109.3 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:96.2,97.11 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:98.2,99.10 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:100.2,101.28 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:115.39,117.19 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:121.2,121.29 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:125.2,125.43 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:129.2,129.14 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:117.19,119.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:121.29,123.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:125.43,127.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:135.53,137.2 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:140.34,142.2 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:146.34,149.42 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:153.2,153.20 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:149.42,151.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:158.39,160.2 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:164.46,165.23 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:173.2,173.19 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:165.23,168.32 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:168.32,170.4 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:177.37,178.42 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:181.2,181.41 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/error.go:178.42,180.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:10.39,12.2 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:16.46,24.34 5 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:70.2,70.43 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:73.2,73.55 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:24.34,27.23 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:27.23,28.42 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:28.42,31.5 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:31.6,33.5 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:35.5,35.29 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:35.29,36.86 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:36.86,38.5 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:40.5,40.32 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:40.32,41.18 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:45.4,46.46 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:51.4,53.23 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:57.4,58.18 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:62.4,63.17 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:41.18,43.10 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:46.46,49.5 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:53.23,55.5 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:58.18,60.5 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:63.17,65.10 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:70.43,72.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:80.85,82.29 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:85.2,85.15 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:88.2,90.63 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:94.2,94.53 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:99.2,101.36 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:105.2,106.15 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:109.2,112.49 3 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:116.2,117.16 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:121.2,126.8 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:82.29,84.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:85.15,87.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:90.63,93.3 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:94.53,97.3 2 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:101.36,103.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:106.15,108.3 1 0
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:112.49,114.3 1 1
 | 
					 | 
				
			||||||
github.com/go-errors/errors/parse_panic.go:117.16,119.3 1 0
 | 
					 | 
				
			||||||
							
								
								
									
										32
									
								
								vendor/github.com/go-errors/errors/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										32
									
								
								vendor/github.com/go-errors/errors/error.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -91,6 +91,10 @@ func New(e interface{}) *Error {
 | 
				
			|||||||
// fmt.Errorf("%v"). The skip parameter indicates how far up the stack
 | 
					// fmt.Errorf("%v"). The skip parameter indicates how far up the stack
 | 
				
			||||||
// to start the stacktrace. 0 is from the current call, 1 from its caller, etc.
 | 
					// to start the stacktrace. 0 is from the current call, 1 from its caller, etc.
 | 
				
			||||||
func Wrap(e interface{}, skip int) *Error {
 | 
					func Wrap(e interface{}, skip int) *Error {
 | 
				
			||||||
 | 
						if e == nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var err error
 | 
						var err error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch e := e.(type) {
 | 
						switch e := e.(type) {
 | 
				
			||||||
@@ -117,6 +121,9 @@ func Wrap(e interface{}, skip int) *Error {
 | 
				
			|||||||
// up the stack to start the stacktrace. 0 is from the current call,
 | 
					// up the stack to start the stacktrace. 0 is from the current call,
 | 
				
			||||||
// 1 from its caller, etc.
 | 
					// 1 from its caller, etc.
 | 
				
			||||||
func WrapPrefix(e interface{}, prefix string, skip int) *Error {
 | 
					func WrapPrefix(e interface{}, prefix string, skip int) *Error {
 | 
				
			||||||
 | 
						if e == nil {
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err := Wrap(e, 1+skip)
 | 
						err := Wrap(e, 1+skip)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -132,26 +139,6 @@ func WrapPrefix(e interface{}, prefix string, skip int) *Error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Is detects whether the error is equal to a given error. Errors
 | 
					 | 
				
			||||||
// are considered equal by this function if they are the same object,
 | 
					 | 
				
			||||||
// or if they both contain the same error inside an errors.Error.
 | 
					 | 
				
			||||||
func Is(e error, original error) bool {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if e == original {
 | 
					 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if e, ok := e.(*Error); ok {
 | 
					 | 
				
			||||||
		return Is(e.Err, original)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if original, ok := original.(*Error); ok {
 | 
					 | 
				
			||||||
		return Is(e, original.Err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Errorf creates a new error with the given message. You can use it
 | 
					// Errorf creates a new error with the given message. You can use it
 | 
				
			||||||
// as a drop-in replacement for fmt.Errorf() to provide descriptive
 | 
					// as a drop-in replacement for fmt.Errorf() to provide descriptive
 | 
				
			||||||
// errors in return values.
 | 
					// errors in return values.
 | 
				
			||||||
@@ -215,3 +202,8 @@ func (err *Error) TypeName() string {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return reflect.TypeOf(err.Err).String()
 | 
						return reflect.TypeOf(err.Err).String()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Return the wrapped error (implements api for As function).
 | 
				
			||||||
 | 
					func (err *Error) Unwrap() error {
 | 
				
			||||||
 | 
						return err.Err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										31
									
								
								vendor/github.com/go-errors/errors/error_1_13.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								vendor/github.com/go-errors/errors/error_1_13.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					// +build go1.13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						baseErrors "errors"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// find error in any wrapped error
 | 
				
			||||||
 | 
					func As(err error, target interface{}) bool {
 | 
				
			||||||
 | 
						return baseErrors.As(err, target)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is detects whether the error is equal to a given error. Errors
 | 
				
			||||||
 | 
					// are considered equal by this function if they are matched by errors.Is
 | 
				
			||||||
 | 
					// or if their contained errors are matched through errors.Is
 | 
				
			||||||
 | 
					func Is(e error, original error) bool {
 | 
				
			||||||
 | 
						if baseErrors.Is(e, original) {
 | 
				
			||||||
 | 
							return true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if e, ok := e.(*Error); ok {
 | 
				
			||||||
 | 
							return Is(e.Err, original)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if original, ok := original.(*Error); ok {
 | 
				
			||||||
 | 
							return Is(e, original.Err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										57
									
								
								vendor/github.com/go-errors/errors/error_backward.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								vendor/github.com/go-errors/errors/error_backward.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					// +build !go1.13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"reflect"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type unwrapper interface {
 | 
				
			||||||
 | 
						Unwrap() error
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// As assigns error or any wrapped error to the value target points
 | 
				
			||||||
 | 
					// to. If there is no value of the target type of target As returns
 | 
				
			||||||
 | 
					// false.
 | 
				
			||||||
 | 
					func As(err error, target interface{}) bool {
 | 
				
			||||||
 | 
						targetType := reflect.TypeOf(target)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for {
 | 
				
			||||||
 | 
							errType := reflect.TypeOf(err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if errType == nil {
 | 
				
			||||||
 | 
								return false
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if reflect.PtrTo(errType) == targetType {
 | 
				
			||||||
 | 
								reflect.ValueOf(target).Elem().Set(reflect.ValueOf(err))
 | 
				
			||||||
 | 
								return true
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							wrapped, ok := err.(unwrapper)
 | 
				
			||||||
 | 
							if ok {
 | 
				
			||||||
 | 
								err = wrapped.Unwrap()
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								return false
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is detects whether the error is equal to a given error. Errors
 | 
				
			||||||
 | 
					// are considered equal by this function if they are the same object,
 | 
				
			||||||
 | 
					// or if they both contain the same error inside an errors.Error.
 | 
				
			||||||
 | 
					func Is(e error, original error) bool {
 | 
				
			||||||
 | 
						if e == original {
 | 
				
			||||||
 | 
							return true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if e, ok := e.(*Error); ok {
 | 
				
			||||||
 | 
							return Is(e.Err, original)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if original, ok := original.(*Error); ok {
 | 
				
			||||||
 | 
							return Is(e, original.Err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										38
									
								
								vendor/github.com/go-errors/errors/stackframe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/go-errors/errors/stackframe.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,9 +1,10 @@
 | 
				
			|||||||
package errors
 | 
					package errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"bufio"
 | 
				
			||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
						"os"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -52,7 +53,7 @@ func (frame *StackFrame) Func() *runtime.Func {
 | 
				
			|||||||
func (frame *StackFrame) String() string {
 | 
					func (frame *StackFrame) String() string {
 | 
				
			||||||
	str := fmt.Sprintf("%s:%d (0x%x)\n", frame.File, frame.LineNumber, frame.ProgramCounter)
 | 
						str := fmt.Sprintf("%s:%d (0x%x)\n", frame.File, frame.LineNumber, frame.ProgramCounter)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	source, err := frame.SourceLine()
 | 
						source, err := frame.sourceLine()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return str
 | 
							return str
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -62,18 +63,37 @@ func (frame *StackFrame) String() string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// SourceLine gets the line of code (from File and Line) of the original source if possible.
 | 
					// SourceLine gets the line of code (from File and Line) of the original source if possible.
 | 
				
			||||||
func (frame *StackFrame) SourceLine() (string, error) {
 | 
					func (frame *StackFrame) SourceLine() (string, error) {
 | 
				
			||||||
	data, err := ioutil.ReadFile(frame.File)
 | 
						source, err := frame.sourceLine()
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return "", New(err)
 | 
							return source, New(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						return source, err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	lines := bytes.Split(data, []byte{'\n'})
 | 
					func (frame *StackFrame) sourceLine() (string, error) {
 | 
				
			||||||
	if frame.LineNumber <= 0 || frame.LineNumber >= len(lines) {
 | 
						if frame.LineNumber <= 0 {
 | 
				
			||||||
		return "???", nil
 | 
							return "???", nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// -1 because line-numbers are 1 based, but our array is 0 based
 | 
					
 | 
				
			||||||
	return string(bytes.Trim(lines[frame.LineNumber-1], " \t")), nil
 | 
						file, err := os.Open(frame.File)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return "", err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer file.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						scanner := bufio.NewScanner(file)
 | 
				
			||||||
 | 
						currentLine := 1
 | 
				
			||||||
 | 
						for scanner.Scan() {
 | 
				
			||||||
 | 
							if currentLine == frame.LineNumber {
 | 
				
			||||||
 | 
								return string(bytes.Trim(scanner.Bytes(), " \t")), nil
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							currentLine++
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := scanner.Err(); err != nil {
 | 
				
			||||||
 | 
							return "", err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return "???", nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func packageAndName(fn *runtime.Func) (string, string) {
 | 
					func packageAndName(fn *runtime.Func) (string, string) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							@@ -214,8 +214,8 @@ github.com/fsnotify/fsnotify
 | 
				
			|||||||
# github.com/fvbommel/sortorder v1.0.1
 | 
					# github.com/fvbommel/sortorder v1.0.1
 | 
				
			||||||
## explicit; go 1.13
 | 
					## explicit; go 1.13
 | 
				
			||||||
github.com/fvbommel/sortorder
 | 
					github.com/fvbommel/sortorder
 | 
				
			||||||
# github.com/go-errors/errors v1.0.1
 | 
					# github.com/go-errors/errors v1.4.2
 | 
				
			||||||
## explicit
 | 
					## explicit; go 1.14
 | 
				
			||||||
github.com/go-errors/errors
 | 
					github.com/go-errors/errors
 | 
				
			||||||
# github.com/go-logr/logr v1.2.3
 | 
					# github.com/go-logr/logr v1.2.3
 | 
				
			||||||
## explicit; go 1.16
 | 
					## explicit; go 1.16
 | 
				
			||||||
@@ -2374,8 +2374,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
 | 
				
			|||||||
## explicit; go 1.18
 | 
					## explicit; go 1.18
 | 
				
			||||||
sigs.k8s.io/json
 | 
					sigs.k8s.io/json
 | 
				
			||||||
sigs.k8s.io/json/internal/golang/encoding/json
 | 
					sigs.k8s.io/json/internal/golang/encoding/json
 | 
				
			||||||
# sigs.k8s.io/kustomize/api v0.12.1
 | 
					# sigs.k8s.io/kustomize/api v0.13.2
 | 
				
			||||||
## explicit; go 1.18
 | 
					## explicit; go 1.19
 | 
				
			||||||
sigs.k8s.io/kustomize/api/filters/annotations
 | 
					sigs.k8s.io/kustomize/api/filters/annotations
 | 
				
			||||||
sigs.k8s.io/kustomize/api/filters/fieldspec
 | 
					sigs.k8s.io/kustomize/api/filters/fieldspec
 | 
				
			||||||
sigs.k8s.io/kustomize/api/filters/filtersutil
 | 
					sigs.k8s.io/kustomize/api/filters/filtersutil
 | 
				
			||||||
@@ -2420,11 +2420,11 @@ sigs.k8s.io/kustomize/api/provider
 | 
				
			|||||||
sigs.k8s.io/kustomize/api/resmap
 | 
					sigs.k8s.io/kustomize/api/resmap
 | 
				
			||||||
sigs.k8s.io/kustomize/api/resource
 | 
					sigs.k8s.io/kustomize/api/resource
 | 
				
			||||||
sigs.k8s.io/kustomize/api/types
 | 
					sigs.k8s.io/kustomize/api/types
 | 
				
			||||||
# sigs.k8s.io/kustomize/kustomize/v4 v4.5.7
 | 
					# sigs.k8s.io/kustomize/kustomize/v5 v5.0.1
 | 
				
			||||||
## explicit; go 1.18
 | 
					## explicit; go 1.19
 | 
				
			||||||
sigs.k8s.io/kustomize/kustomize/v4/commands/build
 | 
					sigs.k8s.io/kustomize/kustomize/v5/commands/build
 | 
				
			||||||
# sigs.k8s.io/kustomize/kyaml v0.13.9
 | 
					# sigs.k8s.io/kustomize/kyaml v0.14.1
 | 
				
			||||||
## explicit; go 1.18
 | 
					## explicit; go 1.19
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/comments
 | 
					sigs.k8s.io/kustomize/kyaml/comments
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/errors
 | 
					sigs.k8s.io/kustomize/kyaml/errors
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/ext
 | 
					sigs.k8s.io/kustomize/kyaml/ext
 | 
				
			||||||
@@ -2441,7 +2441,7 @@ sigs.k8s.io/kustomize/kyaml/kio/filters
 | 
				
			|||||||
sigs.k8s.io/kustomize/kyaml/kio/kioutil
 | 
					sigs.k8s.io/kustomize/kyaml/kio/kioutil
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/openapi
 | 
					sigs.k8s.io/kustomize/kyaml/openapi
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi
 | 
					sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1212
 | 
					sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1_21_2
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi
 | 
					sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/order
 | 
					sigs.k8s.io/kustomize/kyaml/order
 | 
				
			||||||
sigs.k8s.io/kustomize/kyaml/resid
 | 
					sigs.k8s.io/kustomize/kyaml/resid
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,11 +7,11 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/filters/fieldspec"
 | 
						"sigs.k8s.io/kustomize/api/filters/fieldspec"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/kio"
 | 
						"sigs.k8s.io/kustomize/kyaml/kio"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
						"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
				
			||||||
@@ -64,7 +64,7 @@ func (f Filter) run(node *yaml.RNode) (*yaml.RNode, error) {
 | 
				
			|||||||
		FieldSpec: f.NameFieldToUpdate,
 | 
							FieldSpec: f.NameFieldToUpdate,
 | 
				
			||||||
		SetValue:  f.set,
 | 
							SetValue:  f.set,
 | 
				
			||||||
	}); err != nil {
 | 
						}); err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "updating name reference in '%s' field of '%s'",
 | 
								err, "updating name reference in '%s' field of '%s'",
 | 
				
			||||||
			f.NameFieldToUpdate.Path, f.Referrer.CurId().String())
 | 
								f.NameFieldToUpdate.Path, f.Referrer.CurId().String())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -104,7 +104,7 @@ func (f Filter) setMapping(node *yaml.RNode) error {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	nameNode, err := node.Pipe(yaml.FieldMatcher{Name: "name"})
 | 
						nameNode, err := node.Pipe(yaml.FieldMatcher{Name: "name"})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrap(err, "trying to match 'name' field")
 | 
							return errors.WrapPrefixf(err, "trying to match 'name' field")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if nameNode == nil {
 | 
						if nameNode == nil {
 | 
				
			||||||
		// This is a _configuration_ error; the field path
 | 
							// This is a _configuration_ error; the field path
 | 
				
			||||||
@@ -153,7 +153,7 @@ func (f Filter) filterMapCandidatesByNamespace(
 | 
				
			|||||||
	node *yaml.RNode) ([]*resource.Resource, error) {
 | 
						node *yaml.RNode) ([]*resource.Resource, error) {
 | 
				
			||||||
	namespaceNode, err := node.Pipe(yaml.FieldMatcher{Name: "namespace"})
 | 
						namespaceNode, err := node.Pipe(yaml.FieldMatcher{Name: "namespace"})
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, "trying to match 'namespace' field")
 | 
							return nil, errors.WrapPrefixf(err, "trying to match 'namespace' field")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if namespaceNode == nil {
 | 
						if namespaceNode == nil {
 | 
				
			||||||
		return f.ReferralCandidates.Resources(), nil
 | 
							return f.ReferralCandidates.Resources(), nil
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -79,7 +79,11 @@ func (ns Filter) run(node *yaml.RNode) (*yaml.RNode, error) {
 | 
				
			|||||||
		CreateKind: yaml.ScalarNode, // Namespace is a ScalarNode
 | 
							CreateKind: yaml.ScalarNode, // Namespace is a ScalarNode
 | 
				
			||||||
		CreateTag:  yaml.NodeTagString,
 | 
							CreateTag:  yaml.NodeTagString,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	return node, err
 | 
						invalidKindErr := &yaml.InvalidNodeKindError{}
 | 
				
			||||||
 | 
						if err != nil && errors.As(err, &invalidKindErr) && invalidKindErr.ActualNodeKind() != yaml.ScalarNode {
 | 
				
			||||||
 | 
							return nil, errors.WrapPrefixf(err, "namespace field specs must target scalar nodes")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return node, errors.WrapPrefixf(err, "namespace transformation failed")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// metaNamespaceHack is a hack for implementing the namespace transform
 | 
					// metaNamespaceHack is a hack for implementing the namespace transform
 | 
				
			||||||
@@ -174,8 +178,7 @@ func setNamespaceField(node *yaml.RNode, setter filtersutil.SetFn) error {
 | 
				
			|||||||
func (ns Filter) removeRoleBindingSubjectFieldSpecs(fs types.FsSlice) types.FsSlice {
 | 
					func (ns Filter) removeRoleBindingSubjectFieldSpecs(fs types.FsSlice) types.FsSlice {
 | 
				
			||||||
	var val types.FsSlice
 | 
						var val types.FsSlice
 | 
				
			||||||
	for i := range fs {
 | 
						for i := range fs {
 | 
				
			||||||
		if isRoleBinding(fs[i].Kind) &&
 | 
							if isRoleBinding(fs[i].Kind) && fs[i].Path == subjectsNamespacePath {
 | 
				
			||||||
			(fs[i].Path == subjectsNamespacePath || fs[i].Path == subjectsField) {
 | 
					 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		val = append(val, fs[i])
 | 
							val = append(val, fs[i])
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										62
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/replacement/replacement.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								vendor/sigs.k8s.io/kustomize/api/filters/replacement/replacement.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,13 +4,13 @@
 | 
				
			|||||||
package replacement
 | 
					package replacement
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/utils"
 | 
						"sigs.k8s.io/kustomize/api/internal/utils"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
	kyaml_utils "sigs.k8s.io/kustomize/kyaml/utils"
 | 
						kyaml_utils "sigs.k8s.io/kustomize/kyaml/utils"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
						"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
				
			||||||
@@ -105,7 +105,7 @@ func getRefinedValue(options *types.FieldOptions, rn *yaml.RNode) (*yaml.RNode,
 | 
				
			|||||||
func applyReplacement(nodes []*yaml.RNode, value *yaml.RNode, targetSelectors []*types.TargetSelector) ([]*yaml.RNode, error) {
 | 
					func applyReplacement(nodes []*yaml.RNode, value *yaml.RNode, targetSelectors []*types.TargetSelector) ([]*yaml.RNode, error) {
 | 
				
			||||||
	for _, selector := range targetSelectors {
 | 
						for _, selector := range targetSelectors {
 | 
				
			||||||
		if selector.Select == nil {
 | 
							if selector.Select == nil {
 | 
				
			||||||
			return nil, errors.New("target must specify resources to select")
 | 
								return nil, errors.Errorf("target must specify resources to select")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if len(selector.FieldPaths) == 0 {
 | 
							if len(selector.FieldPaths) == 0 {
 | 
				
			||||||
			selector.FieldPaths = []string{types.DefaultReplacementFieldPath}
 | 
								selector.FieldPaths = []string{types.DefaultReplacementFieldPath}
 | 
				
			||||||
@@ -179,29 +179,22 @@ func rejectId(rejects []*types.Selector, id *resid.ResId) bool {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func copyValueToTarget(target *yaml.RNode, value *yaml.RNode, selector *types.TargetSelector) error {
 | 
					func copyValueToTarget(target *yaml.RNode, value *yaml.RNode, selector *types.TargetSelector) error {
 | 
				
			||||||
	for _, fp := range selector.FieldPaths {
 | 
						for _, fp := range selector.FieldPaths {
 | 
				
			||||||
		fieldPath := kyaml_utils.SmarterPathSplitter(fp, ".")
 | 
							createKind := yaml.Kind(0) // do not create
 | 
				
			||||||
		create, err := shouldCreateField(selector.Options, fieldPath)
 | 
							if selector.Options != nil && selector.Options.Create {
 | 
				
			||||||
		if err != nil {
 | 
								createKind = value.YNode().Kind
 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							targetFieldList, err := target.Pipe(&yaml.PathMatcher{
 | 
				
			||||||
		var targetFields []*yaml.RNode
 | 
								Path:   kyaml_utils.SmarterPathSplitter(fp, "."),
 | 
				
			||||||
		if create {
 | 
								Create: createKind})
 | 
				
			||||||
			createdField, createErr := target.Pipe(yaml.LookupCreate(value.YNode().Kind, fieldPath...))
 | 
							if err != nil {
 | 
				
			||||||
			if createErr != nil {
 | 
								return errors.WrapPrefixf(err, fieldRetrievalError(fp, createKind != 0))
 | 
				
			||||||
				return fmt.Errorf("error creating replacement node: %w", createErr)
 | 
							}
 | 
				
			||||||
			}
 | 
							targetFields, err := targetFieldList.Elements()
 | 
				
			||||||
			targetFields = append(targetFields, createdField)
 | 
							if err != nil {
 | 
				
			||||||
		} else {
 | 
								return errors.WrapPrefixf(err, fieldRetrievalError(fp, createKind != 0))
 | 
				
			||||||
			// may return multiple fields, always wrapped in a sequence node
 | 
							}
 | 
				
			||||||
			foundFieldSequence, lookupErr := target.Pipe(&yaml.PathMatcher{Path: fieldPath})
 | 
							if len(targetFields) == 0 {
 | 
				
			||||||
			if lookupErr != nil {
 | 
								return errors.Errorf(fieldRetrievalError(fp, createKind != 0))
 | 
				
			||||||
				return fmt.Errorf("error finding field in replacement target: %w", lookupErr)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			targetFields, err = foundFieldSequence.Elements()
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return fmt.Errorf("error fetching elements in replacement target: %w", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for _, t := range targetFields {
 | 
							for _, t := range targetFields {
 | 
				
			||||||
@@ -209,11 +202,17 @@ func copyValueToTarget(target *yaml.RNode, value *yaml.RNode, selector *types.Ta
 | 
				
			|||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func fieldRetrievalError(fieldPath string, isCreate bool) string {
 | 
				
			||||||
 | 
						if isCreate {
 | 
				
			||||||
 | 
							return fmt.Sprintf("unable to find or create field %q in replacement target", fieldPath)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return fmt.Sprintf("unable to find field %q in replacement target", fieldPath)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func setFieldValue(options *types.FieldOptions, targetField *yaml.RNode, value *yaml.RNode) error {
 | 
					func setFieldValue(options *types.FieldOptions, targetField *yaml.RNode, value *yaml.RNode) error {
 | 
				
			||||||
	value = value.Copy()
 | 
						value = value.Copy()
 | 
				
			||||||
	if options != nil && options.Delimiter != "" {
 | 
						if options != nil && options.Delimiter != "" {
 | 
				
			||||||
@@ -243,16 +242,3 @@ func setFieldValue(options *types.FieldOptions, targetField *yaml.RNode, value *
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
func shouldCreateField(options *types.FieldOptions, fieldPath []string) (bool, error) {
 | 
					 | 
				
			||||||
	if options == nil || !options.Create {
 | 
					 | 
				
			||||||
		return false, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	// create option is not supported in a wildcard matching
 | 
					 | 
				
			||||||
	for _, f := range fieldPath {
 | 
					 | 
				
			||||||
		if f == "*" {
 | 
					 | 
				
			||||||
			return false, fmt.Errorf("cannot support create option in a multi-value target")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return true, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/ifc/ifc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/ifc/ifc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -28,12 +28,20 @@ type KvLoader interface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Loader interface exposes methods to read bytes.
 | 
					// Loader interface exposes methods to read bytes.
 | 
				
			||||||
type Loader interface {
 | 
					type Loader interface {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Repo returns the repo location if this Loader was created from a url
 | 
				
			||||||
 | 
						// or the empty string otherwise.
 | 
				
			||||||
 | 
						Repo() string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Root returns the root location for this Loader.
 | 
						// Root returns the root location for this Loader.
 | 
				
			||||||
	Root() string
 | 
						Root() string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// New returns Loader located at newRoot.
 | 
						// New returns Loader located at newRoot.
 | 
				
			||||||
	New(newRoot string) (Loader, error)
 | 
						New(newRoot string) (Loader, error)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Load returns the bytes read from the location or an error.
 | 
						// Load returns the bytes read from the location or an error.
 | 
				
			||||||
	Load(location string) ([]byte, error)
 | 
						Load(location string) ([]byte, error)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Cleanup cleans the loader
 | 
						// Cleanup cleans the loader
 | 
				
			||||||
	Cleanup() error
 | 
						Cleanup() error
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,11 +7,11 @@ import (
 | 
				
			|||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"k8s.io/kube-openapi/pkg/validation/spec"
 | 
						"k8s.io/kube-openapi/pkg/validation/spec"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
@@ -39,7 +39,7 @@ func LoadConfigFromCRDs(
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		m, err := makeNameToApiMap(content)
 | 
							m, err := makeNameToApiMap(content)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, errors.Wrapf(err, "unable to parse open API definition from '%s'", path)
 | 
								return nil, errors.WrapPrefixf(err, "unable to parse open API definition from '%s'", path)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		otherTc, err := makeConfigFromApiMap(m)
 | 
							otherTc, err := makeConfigFromApiMap(m)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/AnnotationsTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/AnnotationsTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on AnnotationsTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on AnnotationsTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ConfigMapGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ConfigMapGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on ConfigMapGenerator; DO NOT EDIT.
 | 
					// Code generated by pluginator on ConfigMapGenerator; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/HashTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/HashTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on HashTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on HashTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										73
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/HelmChartInflationGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/HelmChartInflationGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,12 +1,11 @@
 | 
				
			|||||||
// Code generated by pluginator on HelmChartInflationGenerator; DO NOT EDIT.
 | 
					// Code generated by pluginator on HelmChartInflationGenerator; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
					 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"os/exec"
 | 
						"os/exec"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
@@ -14,14 +13,14 @@ import (
 | 
				
			|||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/imdario/mergo"
 | 
						"github.com/imdario/mergo"
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/kio"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// HelmChartInflationGeneratorPlugin is a plugin to generate resources
 | 
					// Generate resources from a remote or local helm chart.
 | 
				
			||||||
// from a remote or local helm chart.
 | 
					 | 
				
			||||||
type HelmChartInflationGeneratorPlugin struct {
 | 
					type HelmChartInflationGeneratorPlugin struct {
 | 
				
			||||||
	h *resmap.PluginHelpers
 | 
						h *resmap.PluginHelpers
 | 
				
			||||||
	types.HelmGlobals
 | 
						types.HelmGlobals
 | 
				
			||||||
@@ -29,8 +28,6 @@ type HelmChartInflationGeneratorPlugin struct {
 | 
				
			|||||||
	tmpDir string
 | 
						tmpDir string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var KustomizePlugin HelmChartInflationGeneratorPlugin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					const (
 | 
				
			||||||
	valuesMergeOptionMerge    = "merge"
 | 
						valuesMergeOptionMerge    = "merge"
 | 
				
			||||||
	valuesMergeOptionOverride = "override"
 | 
						valuesMergeOptionOverride = "override"
 | 
				
			||||||
@@ -73,7 +70,7 @@ func (p *HelmChartInflationGeneratorPlugin) establishTmpDir() (err error) {
 | 
				
			|||||||
		// already done.
 | 
							// already done.
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	p.tmpDir, err = ioutil.TempDir("", "kustomize-helm-")
 | 
						p.tmpDir, err = os.MkdirTemp("", "kustomize-helm-")
 | 
				
			||||||
	return err
 | 
						return err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -87,15 +84,23 @@ func (p *HelmChartInflationGeneratorPlugin) validateArgs() (err error) {
 | 
				
			|||||||
	// the loader root (unless root restrictions are
 | 
						// the loader root (unless root restrictions are
 | 
				
			||||||
	// disabled, in which case this can be an absolute path).
 | 
						// disabled, in which case this can be an absolute path).
 | 
				
			||||||
	if p.ChartHome == "" {
 | 
						if p.ChartHome == "" {
 | 
				
			||||||
		p.ChartHome = "charts"
 | 
							p.ChartHome = types.HelmDefaultHome
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// The ValuesFile may be consulted by the plugin, so it must
 | 
						// The ValuesFile(s) may be consulted by the plugin, so it must
 | 
				
			||||||
	// be under the loader root (unless root restrictions are
 | 
						// be under the loader root (unless root restrictions are
 | 
				
			||||||
	// disabled).
 | 
						// disabled).
 | 
				
			||||||
	if p.ValuesFile == "" {
 | 
						if p.ValuesFile == "" {
 | 
				
			||||||
		p.ValuesFile = filepath.Join(p.ChartHome, p.Name, "values.yaml")
 | 
							p.ValuesFile = filepath.Join(p.ChartHome, p.Name, "values.yaml")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						for i, file := range p.AdditionalValuesFiles {
 | 
				
			||||||
 | 
							// use Load() to enforce root restrictions
 | 
				
			||||||
 | 
							if _, err := p.h.Loader().Load(file); err != nil {
 | 
				
			||||||
 | 
								return errors.WrapPrefixf(err, "could not load additionalValuesFile")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							// the additional values filepaths must be relative to the kust root
 | 
				
			||||||
 | 
							p.AdditionalValuesFiles[i] = filepath.Join(p.h.Loader().Root(), file)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = p.errIfIllegalValuesMerge(); err != nil {
 | 
						if err = p.errIfIllegalValuesMerge(); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@@ -104,7 +109,7 @@ func (p *HelmChartInflationGeneratorPlugin) validateArgs() (err error) {
 | 
				
			|||||||
	// ConfigHome is not loaded by the plugin, and can be located anywhere.
 | 
						// ConfigHome is not loaded by the plugin, and can be located anywhere.
 | 
				
			||||||
	if p.ConfigHome == "" {
 | 
						if p.ConfigHome == "" {
 | 
				
			||||||
		if err = p.establishTmpDir(); err != nil {
 | 
							if err = p.establishTmpDir(); err != nil {
 | 
				
			||||||
			return errors.Wrap(
 | 
								return errors.WrapPrefixf(
 | 
				
			||||||
				err, "unable to create tmp dir for HELM_CONFIG_HOME")
 | 
									err, "unable to create tmp dir for HELM_CONFIG_HOME")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		p.ConfigHome = filepath.Join(p.tmpDir, "helm")
 | 
							p.ConfigHome = filepath.Join(p.tmpDir, "helm")
 | 
				
			||||||
@@ -148,7 +153,7 @@ func (p *HelmChartInflationGeneratorPlugin) runHelmCommand(
 | 
				
			|||||||
	err := cmd.Run()
 | 
						err := cmd.Run()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		helm := p.h.GeneralConfig().HelmConfig.Command
 | 
							helm := p.h.GeneralConfig().HelmConfig.Command
 | 
				
			||||||
		err = errors.Wrap(
 | 
							err = errors.WrapPrefixf(
 | 
				
			||||||
			fmt.Errorf(
 | 
								fmt.Errorf(
 | 
				
			||||||
				"unable to run: '%s %s' with env=%s (is '%s' installed?)",
 | 
									"unable to run: '%s %s' with env=%s (is '%s' installed?)",
 | 
				
			||||||
				helm, strings.Join(args, " "), env, helm),
 | 
									helm, strings.Join(args, " "), env, helm),
 | 
				
			||||||
@@ -211,7 +216,7 @@ func (p *HelmChartInflationGeneratorPlugin) writeValuesBytes(
 | 
				
			|||||||
		return "", fmt.Errorf("cannot create tmp dir to write helm values")
 | 
							return "", fmt.Errorf("cannot create tmp dir to write helm values")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	path := filepath.Join(p.tmpDir, p.Name+"-kustomize-values.yaml")
 | 
						path := filepath.Join(p.tmpDir, p.Name+"-kustomize-values.yaml")
 | 
				
			||||||
	return path, ioutil.WriteFile(path, b, 0644)
 | 
						return path, errors.WrapPrefixf(os.WriteFile(path, b, 0644), "failed to write values file")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (p *HelmChartInflationGeneratorPlugin) cleanup() {
 | 
					func (p *HelmChartInflationGeneratorPlugin) cleanup() {
 | 
				
			||||||
@@ -244,46 +249,28 @@ func (p *HelmChartInflationGeneratorPlugin) Generate() (rm resmap.ResMap, err er
 | 
				
			|||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var stdout []byte
 | 
						var stdout []byte
 | 
				
			||||||
	stdout, err = p.runHelmCommand(p.templateCommand())
 | 
						stdout, err = p.runHelmCommand(p.AsHelmArgs(p.absChartHome()))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rm, err = p.h.ResmapFactory().NewResMapFromBytes(stdout)
 | 
						rm, resMapErr := p.h.ResmapFactory().NewResMapFromBytes(stdout)
 | 
				
			||||||
	if err == nil {
 | 
						if resMapErr == nil {
 | 
				
			||||||
		return rm, nil
 | 
							return rm, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// try to remove the contents before first "---" because
 | 
						// try to remove the contents before first "---" because
 | 
				
			||||||
	// helm may produce messages to stdout before it
 | 
						// helm may produce messages to stdout before it
 | 
				
			||||||
	stdoutStr := string(stdout)
 | 
						r := &kio.ByteReader{Reader: bytes.NewBufferString(string(stdout)), OmitReaderAnnotations: true}
 | 
				
			||||||
	if idx := strings.Index(stdoutStr, "---"); idx != -1 {
 | 
						nodes, err := r.Read()
 | 
				
			||||||
		return p.h.ResmapFactory().NewResMapFromBytes([]byte(stdoutStr[idx:]))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil, err
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (p *HelmChartInflationGeneratorPlugin) templateCommand() []string {
 | 
						if len(nodes) != 0 {
 | 
				
			||||||
	args := []string{"template"}
 | 
							rm, err = p.h.ResmapFactory().NewResMapFromRNodeSlice(nodes)
 | 
				
			||||||
	if p.ReleaseName != "" {
 | 
							if err != nil {
 | 
				
			||||||
		args = append(args, p.ReleaseName)
 | 
								return nil, fmt.Errorf("could not parse rnode slice into resource map: %w\n", err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return rm, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if p.Namespace != "" {
 | 
						return nil, fmt.Errorf("could not parse bytes into resource map: %w\n", resMapErr)
 | 
				
			||||||
		args = append(args, "--namespace", p.Namespace)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	args = append(args, filepath.Join(p.absChartHome(), p.Name))
 | 
					 | 
				
			||||||
	if p.ValuesFile != "" {
 | 
					 | 
				
			||||||
		args = append(args, "--values", p.ValuesFile)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if p.ReleaseName == "" {
 | 
					 | 
				
			||||||
		// AFAICT, this doesn't work as intended due to a bug in helm.
 | 
					 | 
				
			||||||
		// See https://github.com/helm/helm/issues/6019
 | 
					 | 
				
			||||||
		// I've tried placing the flag before and after the name argument.
 | 
					 | 
				
			||||||
		args = append(args, "--generate-name")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if p.IncludeCRDs {
 | 
					 | 
				
			||||||
		args = append(args, "--include-crds")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return args
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (p *HelmChartInflationGeneratorPlugin) pullCommand() []string {
 | 
					func (p *HelmChartInflationGeneratorPlugin) pullCommand() []string {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/IAMPolicyGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/IAMPolicyGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on IAMPolicyGenerator; DO NOT EDIT.
 | 
					// Code generated by pluginator on IAMPolicyGenerator; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ImageTagTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ImageTagTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on ImageTagTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on ImageTagTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/LabelTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/LabelTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on LabelTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on LabelTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										46
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/LegacyOrderTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/LegacyOrderTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,46 +0,0 @@
 | 
				
			|||||||
// Code generated by pluginator on LegacyOrderTransformer; DO NOT EDIT.
 | 
					 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package builtins
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"sort"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Sort the resources using an ordering defined in the Gvk class.
 | 
					 | 
				
			||||||
// This puts cluster-wide basic resources with no
 | 
					 | 
				
			||||||
// dependencies (like Namespace, StorageClass, etc.)
 | 
					 | 
				
			||||||
// first, and resources with a high number of dependencies
 | 
					 | 
				
			||||||
// (like ValidatingWebhookConfiguration) last.
 | 
					 | 
				
			||||||
type LegacyOrderTransformerPlugin struct{}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Nothing needed for configuration.
 | 
					 | 
				
			||||||
func (p *LegacyOrderTransformerPlugin) Config(
 | 
					 | 
				
			||||||
	_ *resmap.PluginHelpers, _ []byte) (err error) {
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *LegacyOrderTransformerPlugin) Transform(m resmap.ResMap) (err error) {
 | 
					 | 
				
			||||||
	resources := make([]*resource.Resource, m.Size())
 | 
					 | 
				
			||||||
	ids := m.AllIds()
 | 
					 | 
				
			||||||
	sort.Sort(resmap.IdSlice(ids))
 | 
					 | 
				
			||||||
	for i, id := range ids {
 | 
					 | 
				
			||||||
		resources[i], err = m.GetByCurrentId(id)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return errors.Wrap(err, "expected match for sorting")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	m.Clear()
 | 
					 | 
				
			||||||
	for _, r := range resources {
 | 
					 | 
				
			||||||
		m.Append(r)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func NewLegacyOrderTransformerPlugin() resmap.TransformerPlugin {
 | 
					 | 
				
			||||||
	return &LegacyOrderTransformerPlugin{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/NamespaceTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/NamespaceTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on NamespaceTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on NamespaceTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchJson6902Transformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchJson6902Transformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on PatchJson6902Transformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on PatchJson6902Transformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -7,11 +7,11 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	jsonpatch "github.com/evanphx/json-patch"
 | 
						jsonpatch "github.com/evanphx/json-patch"
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/filters/patchjson6902"
 | 
						"sigs.k8s.io/kustomize/api/filters/patchjson6902"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
 | 
						"sigs.k8s.io/kustomize/kyaml/kio/kioutil"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -61,7 +61,7 @@ func (p *PatchJson6902TransformerPlugin) Config(
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	p.decodedPatch, err = jsonpatch.DecodePatch([]byte(p.JsonOp))
 | 
						p.decodedPatch, err = jsonpatch.DecodePatch([]byte(p.JsonOp))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrapf(err, "decoding %s", p.JsonOp)
 | 
							return errors.WrapPrefixf(err, "decoding %s", p.JsonOp)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(p.decodedPatch) == 0 {
 | 
						if len(p.decodedPatch) == 0 {
 | 
				
			||||||
		return fmt.Errorf(
 | 
							return fmt.Errorf(
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchStrategicMergeTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchStrategicMergeTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on PatchStrategicMergeTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on PatchStrategicMergeTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PatchTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on PatchTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on PatchTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PrefixTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/PrefixTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on PrefixTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on PrefixTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ReplacementTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ReplacementTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on ReplacementTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on ReplacementTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ReplicaCountTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ReplicaCountTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on ReplicaCountTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on ReplicaCountTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SecretGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SecretGenerator.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on SecretGenerator; DO NOT EDIT.
 | 
					// Code generated by pluginator on SecretGenerator; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										244
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SortOrderTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										244
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SortOrderTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,244 @@
 | 
				
			|||||||
 | 
					// Code generated by pluginator on SortOrderTransformer; DO NOT EDIT.
 | 
				
			||||||
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"sort"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Sort the resources using a customizable ordering based of Kind.
 | 
				
			||||||
 | 
					// Defaults to the ordering of the GVK struct, which puts cluster-wide basic
 | 
				
			||||||
 | 
					// resources with no dependencies (like Namespace, StorageClass, etc.) first,
 | 
				
			||||||
 | 
					// and resources with a high number of dependencies
 | 
				
			||||||
 | 
					// (like ValidatingWebhookConfiguration) last.
 | 
				
			||||||
 | 
					type SortOrderTransformerPlugin struct {
 | 
				
			||||||
 | 
						SortOptions *types.SortOptions `json:"sortOptions,omitempty" yaml:"sortOptions,omitempty"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (p *SortOrderTransformerPlugin) Config(
 | 
				
			||||||
 | 
						_ *resmap.PluginHelpers, c []byte) error {
 | 
				
			||||||
 | 
						return errors.WrapPrefixf(yaml.Unmarshal(c, p), "Failed to unmarshal SortOrderTransformer config")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (p *SortOrderTransformerPlugin) applyDefaults() {
 | 
				
			||||||
 | 
						// Default to FIFO sort, aka no-op.
 | 
				
			||||||
 | 
						if p.SortOptions == nil {
 | 
				
			||||||
 | 
							p.SortOptions = &types.SortOptions{
 | 
				
			||||||
 | 
								Order: types.FIFOSortOrder,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// If legacy sort is selected and no options are given, default to
 | 
				
			||||||
 | 
						// hardcoded order.
 | 
				
			||||||
 | 
						if p.SortOptions.Order == types.LegacySortOrder && p.SortOptions.LegacySortOptions == nil {
 | 
				
			||||||
 | 
							p.SortOptions.LegacySortOptions = &types.LegacySortOptions{
 | 
				
			||||||
 | 
								OrderFirst: defaultOrderFirst,
 | 
				
			||||||
 | 
								OrderLast:  defaultOrderLast,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (p *SortOrderTransformerPlugin) validate() error {
 | 
				
			||||||
 | 
						// Check valid values for SortOrder
 | 
				
			||||||
 | 
						if p.SortOptions.Order != types.FIFOSortOrder && p.SortOptions.Order != types.LegacySortOrder {
 | 
				
			||||||
 | 
							return errors.Errorf("the field 'sortOptions.order' must be one of [%s, %s]",
 | 
				
			||||||
 | 
								types.FIFOSortOrder, types.LegacySortOrder)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Validate that the only options set are the ones corresponding to the
 | 
				
			||||||
 | 
						// selected sort order.
 | 
				
			||||||
 | 
						if p.SortOptions.Order == types.FIFOSortOrder &&
 | 
				
			||||||
 | 
							p.SortOptions.LegacySortOptions != nil {
 | 
				
			||||||
 | 
							return errors.Errorf("the field 'sortOptions.legacySortOptions' is"+
 | 
				
			||||||
 | 
								" set but the selected sort order is '%v', not 'legacy'",
 | 
				
			||||||
 | 
								p.SortOptions.Order)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (p *SortOrderTransformerPlugin) Transform(m resmap.ResMap) (err error) {
 | 
				
			||||||
 | 
						p.applyDefaults()
 | 
				
			||||||
 | 
						err = p.validate()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Sort
 | 
				
			||||||
 | 
						if p.SortOptions.Order == types.LegacySortOrder {
 | 
				
			||||||
 | 
							s := newLegacyIDSorter(m.AllIds(), p.SortOptions.LegacySortOptions)
 | 
				
			||||||
 | 
							sort.Sort(s)
 | 
				
			||||||
 | 
							err = applyOrdering(m, s.resids)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// applyOrdering takes resources (given in ResMap) and a desired ordering given
 | 
				
			||||||
 | 
					// as a sequence of ResIds, and updates the ResMap's resources to match the
 | 
				
			||||||
 | 
					// ordering.
 | 
				
			||||||
 | 
					func applyOrdering(m resmap.ResMap, ordering []resid.ResId) error {
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
						resources := make([]*resource.Resource, m.Size())
 | 
				
			||||||
 | 
						// Clear and refill with the correct order
 | 
				
			||||||
 | 
						for i, id := range ordering {
 | 
				
			||||||
 | 
							resources[i], err = m.GetByCurrentId(id)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return errors.WrapPrefixf(err, "expected match for sorting")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						m.Clear()
 | 
				
			||||||
 | 
						for _, r := range resources {
 | 
				
			||||||
 | 
							err = m.Append(r)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return errors.WrapPrefixf(err, "SortOrderTransformer: Failed to append to resources")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Code for legacy sorting.
 | 
				
			||||||
 | 
					// Legacy sorting is a "fixed" order sorting maintained for backwards
 | 
				
			||||||
 | 
					// compatibility.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// legacyIDSorter sorts resources based on two priority lists:
 | 
				
			||||||
 | 
					// - orderFirst: Resources that should be placed in the start, in the given order.
 | 
				
			||||||
 | 
					// - orderLast: Resources that should be placed in the end, in the given order.
 | 
				
			||||||
 | 
					type legacyIDSorter struct {
 | 
				
			||||||
 | 
						// resids only stores the metadata of the object. This is an optimization as
 | 
				
			||||||
 | 
						// it's expensive to compute these again and again during ordering.
 | 
				
			||||||
 | 
						resids     []resid.ResId
 | 
				
			||||||
 | 
						typeOrders map[string]int
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func newLegacyIDSorter(
 | 
				
			||||||
 | 
						resids []resid.ResId,
 | 
				
			||||||
 | 
						options *types.LegacySortOptions) *legacyIDSorter {
 | 
				
			||||||
 | 
						// Precalculate a resource ranking based on the priority lists.
 | 
				
			||||||
 | 
						var typeOrders = func() map[string]int {
 | 
				
			||||||
 | 
							m := map[string]int{}
 | 
				
			||||||
 | 
							for i, n := range options.OrderFirst {
 | 
				
			||||||
 | 
								m[n] = -len(options.OrderFirst) + i
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							for i, n := range options.OrderLast {
 | 
				
			||||||
 | 
								m[n] = 1 + i
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return m
 | 
				
			||||||
 | 
						}()
 | 
				
			||||||
 | 
						return &legacyIDSorter{
 | 
				
			||||||
 | 
							resids:     resids,
 | 
				
			||||||
 | 
							typeOrders: typeOrders,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var _ sort.Interface = legacyIDSorter{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (a legacyIDSorter) Len() int { return len(a.resids) }
 | 
				
			||||||
 | 
					func (a legacyIDSorter) Swap(i, j int) {
 | 
				
			||||||
 | 
						a.resids[i], a.resids[j] = a.resids[j], a.resids[i]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					func (a legacyIDSorter) Less(i, j int) bool {
 | 
				
			||||||
 | 
						if !a.resids[i].Gvk.Equals(a.resids[j].Gvk) {
 | 
				
			||||||
 | 
							return gvkLessThan(a.resids[i].Gvk, a.resids[j].Gvk, a.typeOrders)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return legacyResIDSortString(a.resids[i]) < legacyResIDSortString(a.resids[j])
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func gvkLessThan(gvk1, gvk2 resid.Gvk, typeOrders map[string]int) bool {
 | 
				
			||||||
 | 
						index1 := typeOrders[gvk1.Kind]
 | 
				
			||||||
 | 
						index2 := typeOrders[gvk2.Kind]
 | 
				
			||||||
 | 
						if index1 != index2 {
 | 
				
			||||||
 | 
							return index1 < index2
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return legacyGVKSortString(gvk1) < legacyGVKSortString(gvk2)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// legacyGVKSortString returns a string representation of given GVK used for
 | 
				
			||||||
 | 
					// stable sorting.
 | 
				
			||||||
 | 
					func legacyGVKSortString(x resid.Gvk) string {
 | 
				
			||||||
 | 
						legacyNoGroup := "~G"
 | 
				
			||||||
 | 
						legacyNoVersion := "~V"
 | 
				
			||||||
 | 
						legacyNoKind := "~K"
 | 
				
			||||||
 | 
						legacyFieldSeparator := "_"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						g := x.Group
 | 
				
			||||||
 | 
						if g == "" {
 | 
				
			||||||
 | 
							g = legacyNoGroup
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						v := x.Version
 | 
				
			||||||
 | 
						if v == "" {
 | 
				
			||||||
 | 
							v = legacyNoVersion
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						k := x.Kind
 | 
				
			||||||
 | 
						if k == "" {
 | 
				
			||||||
 | 
							k = legacyNoKind
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return strings.Join([]string{g, v, k}, legacyFieldSeparator)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// legacyResIDSortString returns a string representation of given ResID used for
 | 
				
			||||||
 | 
					// stable sorting.
 | 
				
			||||||
 | 
					func legacyResIDSortString(id resid.ResId) string {
 | 
				
			||||||
 | 
						legacyNoNamespace := "~X"
 | 
				
			||||||
 | 
						legacyNoName := "~N"
 | 
				
			||||||
 | 
						legacySeparator := "|"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ns := id.Namespace
 | 
				
			||||||
 | 
						if ns == "" {
 | 
				
			||||||
 | 
							ns = legacyNoNamespace
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						nm := id.Name
 | 
				
			||||||
 | 
						if nm == "" {
 | 
				
			||||||
 | 
							nm = legacyNoName
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return strings.Join(
 | 
				
			||||||
 | 
							[]string{id.Gvk.String(), ns, nm}, legacySeparator)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// DO NOT CHANGE!
 | 
				
			||||||
 | 
					// Final legacy ordering provided as a default by kustomize.
 | 
				
			||||||
 | 
					// Originally an attempt to apply resources in the correct order, an effort
 | 
				
			||||||
 | 
					// which later proved impossible as not all types are known beforehand.
 | 
				
			||||||
 | 
					// See: https://github.com/kubernetes-sigs/kustomize/issues/3913
 | 
				
			||||||
 | 
					var defaultOrderFirst = []string{ //nolint:gochecknoglobals
 | 
				
			||||||
 | 
						"Namespace",
 | 
				
			||||||
 | 
						"ResourceQuota",
 | 
				
			||||||
 | 
						"StorageClass",
 | 
				
			||||||
 | 
						"CustomResourceDefinition",
 | 
				
			||||||
 | 
						"ServiceAccount",
 | 
				
			||||||
 | 
						"PodSecurityPolicy",
 | 
				
			||||||
 | 
						"Role",
 | 
				
			||||||
 | 
						"ClusterRole",
 | 
				
			||||||
 | 
						"RoleBinding",
 | 
				
			||||||
 | 
						"ClusterRoleBinding",
 | 
				
			||||||
 | 
						"ConfigMap",
 | 
				
			||||||
 | 
						"Secret",
 | 
				
			||||||
 | 
						"Endpoints",
 | 
				
			||||||
 | 
						"Service",
 | 
				
			||||||
 | 
						"LimitRange",
 | 
				
			||||||
 | 
						"PriorityClass",
 | 
				
			||||||
 | 
						"PersistentVolume",
 | 
				
			||||||
 | 
						"PersistentVolumeClaim",
 | 
				
			||||||
 | 
						"Deployment",
 | 
				
			||||||
 | 
						"StatefulSet",
 | 
				
			||||||
 | 
						"CronJob",
 | 
				
			||||||
 | 
						"PodDisruptionBudget",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					var defaultOrderLast = []string{ //nolint:gochecknoglobals
 | 
				
			||||||
 | 
						"MutatingWebhookConfiguration",
 | 
				
			||||||
 | 
						"ValidatingWebhookConfiguration",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewSortOrderTransformerPlugin() resmap.TransformerPlugin {
 | 
				
			||||||
 | 
						return &SortOrderTransformerPlugin{}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SuffixTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/SuffixTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on SuffixTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on SuffixTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ValueAddTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/builtins/ValueAddTransformer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
// Code generated by pluginator on ValueAddTransformer; DO NOT EDIT.
 | 
					// Code generated by pluginator on ValueAddTransformer; DO NOT EDIT.
 | 
				
			||||||
// pluginator {unknown  1970-01-01T00:00:00Z  }
 | 
					// pluginator {(devel)  unknown   }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package builtins
 | 
					package builtins
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,6 +5,8 @@ package generators
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"path"
 | 
				
			||||||
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/go-errors/errors"
 | 
						"github.com/go-errors/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
@@ -95,3 +97,28 @@ func setImmutable(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ParseFileSource parses the source given.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Acceptable formats include:
 | 
				
			||||||
 | 
					//  1. source-path: the basename will become the key name
 | 
				
			||||||
 | 
					//  2. source-name=source-path: the source-name will become the key name and
 | 
				
			||||||
 | 
					//     source-path is the path to the key file.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Key names cannot include '='.
 | 
				
			||||||
 | 
					func ParseFileSource(source string) (keyName, filePath string, err error) {
 | 
				
			||||||
 | 
						numSeparators := strings.Count(source, "=")
 | 
				
			||||||
 | 
						switch {
 | 
				
			||||||
 | 
						case numSeparators == 0:
 | 
				
			||||||
 | 
							return path.Base(source), source, nil
 | 
				
			||||||
 | 
						case numSeparators == 1 && strings.HasPrefix(source, "="):
 | 
				
			||||||
 | 
							return "", "", errors.Errorf("missing key name for file path %q in source %q", strings.TrimPrefix(source, "="), source)
 | 
				
			||||||
 | 
						case numSeparators == 1 && strings.HasSuffix(source, "="):
 | 
				
			||||||
 | 
							return "", "", errors.Errorf("missing file path for key name %q in source %q", strings.TrimSuffix(source, "="), source)
 | 
				
			||||||
 | 
						case numSeparators > 1:
 | 
				
			||||||
 | 
							return "", "", errors.Errorf("source %q key name or file path contains '='", source)
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							components := strings.Split(source, "=")
 | 
				
			||||||
 | 
							return components[0], components[1], nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -22,15 +22,11 @@ func ClonerUsingGitExec(repoSpec *RepoSpec) error {
 | 
				
			|||||||
	if err = r.run("init"); err != nil {
 | 
						if err = r.run("init"); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err = r.run(
 | 
					 | 
				
			||||||
		"remote", "add", "origin", repoSpec.CloneSpec()); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	ref := "HEAD"
 | 
						ref := "HEAD"
 | 
				
			||||||
	if repoSpec.Ref != "" {
 | 
						if repoSpec.Ref != "" {
 | 
				
			||||||
		ref = repoSpec.Ref
 | 
							ref = repoSpec.Ref
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err = r.run("fetch", "--depth=1", "origin", ref); err != nil {
 | 
						if err = r.run("fetch", "--depth=1", repoSpec.CloneSpec(), ref); err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err = r.run("checkout", "FETCH_HEAD"); err != nil {
 | 
						if err = r.run("checkout", "FETCH_HEAD"); err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,8 +7,8 @@ import (
 | 
				
			|||||||
	"os/exec"
 | 
						"os/exec"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/utils"
 | 
						"sigs.k8s.io/kustomize/api/internal/utils"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -24,7 +24,7 @@ type gitRunner struct {
 | 
				
			|||||||
func newCmdRunner(timeout time.Duration) (*gitRunner, error) {
 | 
					func newCmdRunner(timeout time.Duration) (*gitRunner, error) {
 | 
				
			||||||
	gitProgram, err := exec.LookPath("git")
 | 
						gitProgram, err := exec.LookPath("git")
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, "no 'git' program on path")
 | 
							return nil, errors.WrapPrefixf(err, "no 'git' program on path")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	dir, err := filesys.NewTmpConfirmedDir()
 | 
						dir, err := filesys.NewTmpConfirmedDir()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -46,9 +46,9 @@ func (r gitRunner) run(args ...string) error {
 | 
				
			|||||||
		cmd.String(),
 | 
							cmd.String(),
 | 
				
			||||||
		r.duration,
 | 
							r.duration,
 | 
				
			||||||
		func() error {
 | 
							func() error {
 | 
				
			||||||
			_, err := cmd.CombinedOutput()
 | 
								out, err := cmd.CombinedOutput()
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return errors.Wrapf(err, "git cmd = '%s'", cmd.String())
 | 
									return errors.WrapPrefixf(err, "failed to run '%s': %s", cmd.String(), string(out))
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										384
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										384
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,12 +5,15 @@ package git
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
 | 
						"regexp"
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,26 +30,23 @@ type RepoSpec struct {
 | 
				
			|||||||
	// TODO(monopole): Drop raw, use processed fields instead.
 | 
						// TODO(monopole): Drop raw, use processed fields instead.
 | 
				
			||||||
	raw string
 | 
						raw string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Host, e.g. github.com
 | 
						// Host, e.g. https://github.com/
 | 
				
			||||||
	Host string
 | 
						Host string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// orgRepo name (organization/repoName),
 | 
						// RepoPath name (Path to repository),
 | 
				
			||||||
	// e.g. kubernetes-sigs/kustomize
 | 
						// e.g. kubernetes-sigs/kustomize
 | 
				
			||||||
	OrgRepo string
 | 
						RepoPath string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Dir where the orgRepo is cloned to.
 | 
						// Dir is where the repository is cloned to.
 | 
				
			||||||
	Dir filesys.ConfirmedDir
 | 
						Dir filesys.ConfirmedDir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Relative path in the repository, and in the cloneDir,
 | 
						// Relative path in the repository, and in the cloneDir,
 | 
				
			||||||
	// to a Kustomization.
 | 
						// to a Kustomization.
 | 
				
			||||||
	Path string
 | 
						KustRootPath string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Branch or tag reference.
 | 
						// Branch or tag reference.
 | 
				
			||||||
	Ref string
 | 
						Ref string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// e.g. .git or empty in case of _git is present
 | 
					 | 
				
			||||||
	GitSuffix string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Submodules indicates whether or not to clone git submodules.
 | 
						// Submodules indicates whether or not to clone git submodules.
 | 
				
			||||||
	Submodules bool
 | 
						Submodules bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -56,10 +56,7 @@ type RepoSpec struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// CloneSpec returns a string suitable for "git clone {spec}".
 | 
					// CloneSpec returns a string suitable for "git clone {spec}".
 | 
				
			||||||
func (x *RepoSpec) CloneSpec() string {
 | 
					func (x *RepoSpec) CloneSpec() string {
 | 
				
			||||||
	if isAzureHost(x.Host) || isAWSHost(x.Host) {
 | 
						return x.Host + x.RepoPath
 | 
				
			||||||
		return x.Host + x.OrgRepo
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return x.Host + x.OrgRepo + x.GitSuffix
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (x *RepoSpec) CloneDir() filesys.ConfirmedDir {
 | 
					func (x *RepoSpec) CloneDir() filesys.ConfirmedDir {
 | 
				
			||||||
@@ -71,81 +68,140 @@ func (x *RepoSpec) Raw() string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (x *RepoSpec) AbsPath() string {
 | 
					func (x *RepoSpec) AbsPath() string {
 | 
				
			||||||
	return x.Dir.Join(x.Path)
 | 
						return x.Dir.Join(x.KustRootPath)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (x *RepoSpec) Cleaner(fSys filesys.FileSystem) func() error {
 | 
					func (x *RepoSpec) Cleaner(fSys filesys.FileSystem) func() error {
 | 
				
			||||||
	return func() error { return fSys.RemoveAll(x.Dir.String()) }
 | 
						return func() error { return fSys.RemoveAll(x.Dir.String()) }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const (
 | 
				
			||||||
 | 
						refQuery         = "?ref="
 | 
				
			||||||
 | 
						gitSuffix        = ".git"
 | 
				
			||||||
 | 
						gitRootDelimiter = "_git/"
 | 
				
			||||||
 | 
						pathSeparator    = "/" // do not use filepath.Separator, as this is a URL
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewRepoSpecFromURL parses git-like urls.
 | 
					// NewRepoSpecFromURL parses git-like urls.
 | 
				
			||||||
// From strings like git@github.com:someOrg/someRepo.git or
 | 
					// From strings like git@github.com:someOrg/someRepo.git or
 | 
				
			||||||
// https://github.com/someOrg/someRepo?ref=someHash, extract
 | 
					// https://github.com/someOrg/someRepo?ref=someHash, extract
 | 
				
			||||||
// the parts.
 | 
					// the different parts of URL, set into a RepoSpec object and return RepoSpec object.
 | 
				
			||||||
 | 
					// It MUST return an error if the input is not a git-like URL, as this is used by some code paths
 | 
				
			||||||
 | 
					// to distinguish between local and remote paths.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// In particular, NewRepoSpecFromURL separates the URL used to clone the repo from the
 | 
				
			||||||
 | 
					// elements Kustomize uses for other purposes (e.g. query params that turn into args, and
 | 
				
			||||||
 | 
					// the path to the kustomization root within the repo).
 | 
				
			||||||
func NewRepoSpecFromURL(n string) (*RepoSpec, error) {
 | 
					func NewRepoSpecFromURL(n string) (*RepoSpec, error) {
 | 
				
			||||||
 | 
						repoSpec := &RepoSpec{raw: n, Dir: notCloned, Timeout: defaultTimeout, Submodules: defaultSubmodules}
 | 
				
			||||||
	if filepath.IsAbs(n) {
 | 
						if filepath.IsAbs(n) {
 | 
				
			||||||
		return nil, fmt.Errorf("uri looks like abs path: %s", n)
 | 
							return nil, fmt.Errorf("uri looks like abs path: %s", n)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	host, orgRepo, path, gitRef, gitSubmodules, suffix, gitTimeout := parseGitURL(n)
 | 
					
 | 
				
			||||||
	if orgRepo == "" {
 | 
						// Parse the query first. This is safe because according to rfc3986 "?" is only allowed in the
 | 
				
			||||||
		return nil, fmt.Errorf("url lacks orgRepo: %s", n)
 | 
						// query and is not recognized %-encoded.
 | 
				
			||||||
 | 
						// Note that parseQuery returns default values for empty parameters.
 | 
				
			||||||
 | 
						n, query, _ := strings.Cut(n, "?")
 | 
				
			||||||
 | 
						repoSpec.Ref, repoSpec.Timeout, repoSpec.Submodules = parseQuery(query)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Parse the host (e.g. scheme, username, domain) segment.
 | 
				
			||||||
 | 
						repoSpec.Host, n, err = extractHost(n)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if host == "" {
 | 
					
 | 
				
			||||||
		return nil, fmt.Errorf("url lacks host: %s", n)
 | 
						// In some cases, we're given a path to a git repo + a path to the kustomization root within
 | 
				
			||||||
 | 
						// that repo. We need to split them so that we can ultimately give the repo only to the cloner.
 | 
				
			||||||
 | 
						repoSpec.RepoPath, repoSpec.KustRootPath, err = parsePathParts(n, defaultRepoPathLength(repoSpec.Host))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return &RepoSpec{
 | 
					
 | 
				
			||||||
		raw: n, Host: host, OrgRepo: orgRepo,
 | 
						return repoSpec, nil
 | 
				
			||||||
		Dir: notCloned, Path: path, Ref: gitRef, GitSuffix: suffix,
 | 
					 | 
				
			||||||
		Submodules: gitSubmodules, Timeout: gitTimeout}, nil
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const (
 | 
					const allSegments = -999999
 | 
				
			||||||
	refQuery     = "?ref="
 | 
					const orgRepoSegments = 2
 | 
				
			||||||
	gitSuffix    = ".git"
 | 
					 | 
				
			||||||
	gitDelimiter = "_git/"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// From strings like git@github.com:someOrg/someRepo.git or
 | 
					func defaultRepoPathLength(host string) int {
 | 
				
			||||||
// https://github.com/someOrg/someRepo?ref=someHash, extract
 | 
						if strings.HasPrefix(host, fileScheme) {
 | 
				
			||||||
// the parts.
 | 
							return allSegments
 | 
				
			||||||
func parseGitURL(n string) (
 | 
					 | 
				
			||||||
	host string, orgRepo string, path string, gitRef string, gitSubmodules bool, gitSuff string, gitTimeout time.Duration) {
 | 
					 | 
				
			||||||
	if strings.Contains(n, gitDelimiter) {
 | 
					 | 
				
			||||||
		index := strings.Index(n, gitDelimiter)
 | 
					 | 
				
			||||||
		// Adding _git/ to host
 | 
					 | 
				
			||||||
		host = normalizeGitHostSpec(n[:index+len(gitDelimiter)])
 | 
					 | 
				
			||||||
		orgRepo = strings.Split(strings.Split(n[index+len(gitDelimiter):], "/")[0], "?")[0]
 | 
					 | 
				
			||||||
		path, gitRef, gitTimeout, gitSubmodules = peelQuery(n[index+len(gitDelimiter)+len(orgRepo):])
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	host, n = parseHostSpec(n)
 | 
						return orgRepoSegments
 | 
				
			||||||
	gitSuff = gitSuffix
 | 
					}
 | 
				
			||||||
	if strings.Contains(n, gitSuffix) {
 | 
					
 | 
				
			||||||
		index := strings.Index(n, gitSuffix)
 | 
					// parsePathParts splits the repo path that will ultimately be passed to git to clone the
 | 
				
			||||||
		orgRepo = n[0:index]
 | 
					// repo from the kustomization root path, which Kustomize will execute the build in after the repo
 | 
				
			||||||
		n = n[index+len(gitSuffix):]
 | 
					// is cloned.
 | 
				
			||||||
		if len(n) > 0 && n[0] == '/' {
 | 
					//
 | 
				
			||||||
			n = n[1:]
 | 
					// We first try to do this based on explicit markers in the URL (e.g. _git, .git or //).
 | 
				
			||||||
		}
 | 
					// If none are present, we try to apply a historical default repo path length that is derived from
 | 
				
			||||||
		path, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
 | 
					// Github URLs. If there aren't enough segments, we have historically considered the URL invalid.
 | 
				
			||||||
		return
 | 
					func parsePathParts(n string, defaultSegmentLength int) (string, string, error) {
 | 
				
			||||||
 | 
						repoPath, kustRootPath, success := tryExplicitMarkerSplit(n)
 | 
				
			||||||
 | 
						if !success {
 | 
				
			||||||
 | 
							repoPath, kustRootPath, success = tryDefaultLengthSplit(n, defaultSegmentLength)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	i := strings.Index(n, "/")
 | 
						// Validate the result
 | 
				
			||||||
	if i < 1 {
 | 
						if !success || len(repoPath) == 0 {
 | 
				
			||||||
		path, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
 | 
							return "", "", fmt.Errorf("failed to parse repo path segment")
 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	j := strings.Index(n[i+1:], "/")
 | 
						if kustRootPathExitsRepo(kustRootPath) {
 | 
				
			||||||
	if j >= 0 {
 | 
							return "", "", fmt.Errorf("url path exits repo: %s", n)
 | 
				
			||||||
		j += i + 1
 | 
					 | 
				
			||||||
		orgRepo = n[:j]
 | 
					 | 
				
			||||||
		path, gitRef, gitTimeout, gitSubmodules = peelQuery(n[j+1:])
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	path = ""
 | 
					
 | 
				
			||||||
	orgRepo, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
 | 
						return repoPath, strings.TrimPrefix(kustRootPath, pathSeparator), nil
 | 
				
			||||||
	return host, orgRepo, path, gitRef, gitSubmodules, gitSuff, gitTimeout
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func tryExplicitMarkerSplit(n string) (string, string, bool) {
 | 
				
			||||||
 | 
						// Look for the _git delimiter, which by convention is expected to be ONE directory above the repo root.
 | 
				
			||||||
 | 
						// If found, split on the NEXT path element, which is the repo root.
 | 
				
			||||||
 | 
						// Example: https://username@dev.azure.com/org/project/_git/repo/path/to/kustomization/root
 | 
				
			||||||
 | 
						if gitRootIdx := strings.Index(n, gitRootDelimiter); gitRootIdx >= 0 {
 | 
				
			||||||
 | 
							gitRootPath := n[:gitRootIdx+len(gitRootDelimiter)]
 | 
				
			||||||
 | 
							subpathSegments := strings.Split(n[gitRootIdx+len(gitRootDelimiter):], pathSeparator)
 | 
				
			||||||
 | 
							return gitRootPath + subpathSegments[0], strings.Join(subpathSegments[1:], pathSeparator), true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Look for a double-slash in the path, which if present separates the repo root from the kust path.
 | 
				
			||||||
 | 
							// It is a convention, not a real path element, so do not preserve it in the returned value.
 | 
				
			||||||
 | 
							// Example: https://github.com/org/repo//path/to/kustomozation/root
 | 
				
			||||||
 | 
						} else if repoRootIdx := strings.Index(n, "//"); repoRootIdx >= 0 {
 | 
				
			||||||
 | 
							return n[:repoRootIdx], n[repoRootIdx+2:], true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Look for .git in the path, which if present is part of the directory name of the git repo.
 | 
				
			||||||
 | 
							// This means we want to grab everything up to and including that suffix
 | 
				
			||||||
 | 
							// Example: https://github.com/org/repo.git/path/to/kustomozation/root
 | 
				
			||||||
 | 
						} else if gitSuffixIdx := strings.Index(n, gitSuffix); gitSuffixIdx >= 0 {
 | 
				
			||||||
 | 
							upToGitSuffix := n[:gitSuffixIdx+len(gitSuffix)]
 | 
				
			||||||
 | 
							afterGitSuffix := n[gitSuffixIdx+len(gitSuffix):]
 | 
				
			||||||
 | 
							return upToGitSuffix, afterGitSuffix, true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return "", "", false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func tryDefaultLengthSplit(n string, defaultSegmentLength int) (string, string, bool) {
 | 
				
			||||||
 | 
						// If the default is to take all segments, do so.
 | 
				
			||||||
 | 
						if defaultSegmentLength == allSegments {
 | 
				
			||||||
 | 
							return n, "", true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// If the default is N segments, make sure we have at least that many and take them if so.
 | 
				
			||||||
 | 
							// If we have less than N, we have historically considered the URL invalid.
 | 
				
			||||||
 | 
						} else if segments := strings.Split(n, pathSeparator); len(segments) >= defaultSegmentLength {
 | 
				
			||||||
 | 
							firstNSegments := strings.Join(segments[:defaultSegmentLength], pathSeparator)
 | 
				
			||||||
 | 
							rest := strings.Join(segments[defaultSegmentLength:], pathSeparator)
 | 
				
			||||||
 | 
							return firstNSegments, rest, true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return "", "", false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func kustRootPathExitsRepo(kustRootPath string) bool {
 | 
				
			||||||
 | 
						cleanedPath := filepath.Clean(strings.TrimPrefix(kustRootPath, string(filepath.Separator)))
 | 
				
			||||||
 | 
						pathElements := strings.Split(cleanedPath, string(filepath.Separator))
 | 
				
			||||||
 | 
						return len(pathElements) > 0 &&
 | 
				
			||||||
 | 
							pathElements[0] == filesys.ParentDir
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Clone git submodules by default.
 | 
					// Clone git submodules by default.
 | 
				
			||||||
@@ -154,14 +210,12 @@ const defaultSubmodules = true
 | 
				
			|||||||
// Arbitrary, but non-infinite, timeout for running commands.
 | 
					// Arbitrary, but non-infinite, timeout for running commands.
 | 
				
			||||||
const defaultTimeout = 27 * time.Second
 | 
					const defaultTimeout = 27 * time.Second
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func peelQuery(arg string) (string, string, time.Duration, bool) {
 | 
					func parseQuery(query string) (string, time.Duration, bool) {
 | 
				
			||||||
	// Parse the given arg into a URL. In the event of a parse failure, return
 | 
						values, err := url.ParseQuery(query)
 | 
				
			||||||
	// our defaults.
 | 
						// in event of parse failure, return defaults
 | 
				
			||||||
	parsed, err := url.Parse(arg)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return arg, "", defaultTimeout, defaultSubmodules
 | 
							return "", defaultTimeout, defaultSubmodules
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	values := parsed.Query()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// ref is the desired git ref to target. Can be specified by in a git URL
 | 
						// ref is the desired git ref to target. Can be specified by in a git URL
 | 
				
			||||||
	// with ?ref=<string> or ?version=<string>, although ref takes precedence.
 | 
						// with ?ref=<string> or ?version=<string>, although ref takes precedence.
 | 
				
			||||||
@@ -192,76 +246,142 @@ func peelQuery(arg string) (string, string, time.Duration, bool) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return parsed.Path, ref, duration, submodules
 | 
						return ref, duration, submodules
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func parseHostSpec(n string) (string, string) {
 | 
					func extractHost(n string) (string, string, error) {
 | 
				
			||||||
	var host string
 | 
						n = ignoreForcedGitProtocol(n)
 | 
				
			||||||
	// Start accumulating the host part.
 | 
						scheme, n := extractScheme(n)
 | 
				
			||||||
	for _, p := range []string{
 | 
						username, n := extractUsername(n)
 | 
				
			||||||
		// Order matters here.
 | 
						stdGithub := isStandardGithubHost(n)
 | 
				
			||||||
		"git::", "gh:", "ssh://", "https://", "http://",
 | 
						acceptSCP := acceptSCPStyle(scheme, username, stdGithub)
 | 
				
			||||||
		"git@", "github.com:", "github.com/"} {
 | 
					
 | 
				
			||||||
		if len(p) < len(n) && strings.ToLower(n[:len(p)]) == p {
 | 
						// Validate the username and scheme before attempting host/path parsing, because if the parsing
 | 
				
			||||||
			n = n[len(p):]
 | 
						// so far has not succeeded, we will not be able to extract the host and path correctly.
 | 
				
			||||||
			host += p
 | 
						if err := validateScheme(scheme, acceptSCP); err != nil {
 | 
				
			||||||
 | 
							return "", "", err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Now that we have extracted a valid scheme+username, we can parse host itself.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// The file protocol specifies an absolute path to a local git repo.
 | 
				
			||||||
 | 
						// Everything after the scheme (including any 'username' we found) is actually part of that path.
 | 
				
			||||||
 | 
						if scheme == fileScheme {
 | 
				
			||||||
 | 
							return scheme, username + n, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var host, rest = n, ""
 | 
				
			||||||
 | 
						if sepIndex := findPathSeparator(n, acceptSCP); sepIndex >= 0 {
 | 
				
			||||||
 | 
							host, rest = n[:sepIndex+1], n[sepIndex+1:]
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Github URLs are strictly normalized in a way that may discard scheme and username components.
 | 
				
			||||||
 | 
						if stdGithub {
 | 
				
			||||||
 | 
							scheme, username, host = normalizeGithubHostParts(scheme, username)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Host is required, so do not concat the scheme and username if we didn't find one.
 | 
				
			||||||
 | 
						if host == "" {
 | 
				
			||||||
 | 
							return "", "", errors.Errorf("failed to parse host segment")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return scheme + username + host, rest, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignoreForcedGitProtocol strips the "git::" prefix from URLs.
 | 
				
			||||||
 | 
					// We used to use go-getter to handle our urls: https://github.com/hashicorp/go-getter.
 | 
				
			||||||
 | 
					// The git:: prefix signaled go-getter to use the git protocol to fetch the url's contents.
 | 
				
			||||||
 | 
					// We silently strip this prefix to allow these go-getter-style urls to continue to work,
 | 
				
			||||||
 | 
					// although the git protocol (which is insecure and unsupported on many platforms, including Github)
 | 
				
			||||||
 | 
					// will not actually be used as intended.
 | 
				
			||||||
 | 
					func ignoreForcedGitProtocol(n string) string {
 | 
				
			||||||
 | 
						n, found := trimPrefixIgnoreCase(n, "git::")
 | 
				
			||||||
 | 
						if found {
 | 
				
			||||||
 | 
							log.Println("Warning: Forcing the git protocol using the 'git::' URL prefix is not supported. " +
 | 
				
			||||||
 | 
								"Kustomize currently strips this invalid prefix, but will stop doing so in a future release. " +
 | 
				
			||||||
 | 
								"Please remove the 'git::' prefix from your configuration.")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return n
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// acceptSCPStyle returns true if the scheme and username indicate potential use of an SCP-style URL.
 | 
				
			||||||
 | 
					// With this style, the scheme is not explicit and the path is delimited by a colon.
 | 
				
			||||||
 | 
					// Strictly speaking the username is optional in SCP-like syntax, but Kustomize has always
 | 
				
			||||||
 | 
					// required it for non-Github URLs.
 | 
				
			||||||
 | 
					// Example: user@host.xz:path/to/repo.git/
 | 
				
			||||||
 | 
					func acceptSCPStyle(scheme, username string, isGithubURL bool) bool {
 | 
				
			||||||
 | 
						return scheme == "" && (username != "" || isGithubURL)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func validateScheme(scheme string, acceptSCPStyle bool) error {
 | 
				
			||||||
 | 
						// see https://git-scm.com/docs/git-fetch#_git_urls for info relevant to these validations
 | 
				
			||||||
 | 
						switch scheme {
 | 
				
			||||||
 | 
						case "":
 | 
				
			||||||
 | 
							// Empty scheme is only ok if it's a Github URL or if it looks like SCP-style syntax
 | 
				
			||||||
 | 
							if !acceptSCPStyle {
 | 
				
			||||||
 | 
								return fmt.Errorf("failed to parse scheme")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						case sshScheme, fileScheme, httpsScheme, httpScheme:
 | 
				
			||||||
 | 
							// These are all supported schemes
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							// At time of writing, we should never end up here because we do not parse out
 | 
				
			||||||
 | 
							// unsupported schemes to begin with.
 | 
				
			||||||
 | 
							return fmt.Errorf("unsupported scheme %q", scheme)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const fileScheme = "file://"
 | 
				
			||||||
 | 
					const httpScheme = "http://"
 | 
				
			||||||
 | 
					const httpsScheme = "https://"
 | 
				
			||||||
 | 
					const sshScheme = "ssh://"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func extractScheme(s string) (string, string) {
 | 
				
			||||||
 | 
						for _, prefix := range []string{sshScheme, httpsScheme, httpScheme, fileScheme} {
 | 
				
			||||||
 | 
							if rest, found := trimPrefixIgnoreCase(s, prefix); found {
 | 
				
			||||||
 | 
								return prefix, rest
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if host == "git@" {
 | 
						return "", s
 | 
				
			||||||
		i := strings.Index(n, "/")
 | 
					}
 | 
				
			||||||
		if i > -1 {
 | 
					 | 
				
			||||||
			host += n[:i+1]
 | 
					 | 
				
			||||||
			n = n[i+1:]
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			i = strings.Index(n, ":")
 | 
					 | 
				
			||||||
			if i > -1 {
 | 
					 | 
				
			||||||
				host += n[:i+1]
 | 
					 | 
				
			||||||
				n = n[i+1:]
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return host, n
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If host is a http(s) or ssh URL, grab the domain part.
 | 
					func extractUsername(s string) (string, string) {
 | 
				
			||||||
	for _, p := range []string{
 | 
						var userRegexp = regexp.MustCompile(`^([a-zA-Z][a-zA-Z0-9-]*)@`)
 | 
				
			||||||
		"ssh://", "https://", "http://"} {
 | 
						if m := userRegexp.FindStringSubmatch(s); m != nil {
 | 
				
			||||||
		if strings.HasSuffix(host, p) {
 | 
							username := m[1] + "@"
 | 
				
			||||||
			i := strings.Index(n, "/")
 | 
							return username, s[len(username):]
 | 
				
			||||||
			if i > -1 {
 | 
						}
 | 
				
			||||||
				host += n[0 : i+1]
 | 
						return "", s
 | 
				
			||||||
				n = n[i+1:]
 | 
					}
 | 
				
			||||||
			}
 | 
					
 | 
				
			||||||
			break
 | 
					func isStandardGithubHost(s string) bool {
 | 
				
			||||||
 | 
						lowerCased := strings.ToLower(s)
 | 
				
			||||||
 | 
						return strings.HasPrefix(lowerCased, "github.com/") ||
 | 
				
			||||||
 | 
							strings.HasPrefix(lowerCased, "github.com:")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// trimPrefixIgnoreCase returns the rest of s and true if prefix, ignoring case, prefixes s.
 | 
				
			||||||
 | 
					// Otherwise, trimPrefixIgnoreCase returns s and false.
 | 
				
			||||||
 | 
					func trimPrefixIgnoreCase(s, prefix string) (string, bool) {
 | 
				
			||||||
 | 
						if len(prefix) <= len(s) && strings.ToLower(s[:len(prefix)]) == prefix {
 | 
				
			||||||
 | 
							return s[len(prefix):], true
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return s, false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func findPathSeparator(hostPath string, acceptSCP bool) int {
 | 
				
			||||||
 | 
						sepIndex := strings.Index(hostPath, pathSeparator)
 | 
				
			||||||
 | 
						if acceptSCP {
 | 
				
			||||||
 | 
							colonIndex := strings.Index(hostPath, ":")
 | 
				
			||||||
 | 
							// The colon acts as a delimiter in scp-style ssh URLs only if not prefixed by '/'.
 | 
				
			||||||
 | 
							if sepIndex == -1 || (colonIndex > 0 && colonIndex < sepIndex) {
 | 
				
			||||||
 | 
								sepIndex = colonIndex
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						return sepIndex
 | 
				
			||||||
	return normalizeGitHostSpec(host), n
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func normalizeGitHostSpec(host string) string {
 | 
					func normalizeGithubHostParts(scheme, username string) (string, string, string) {
 | 
				
			||||||
	s := strings.ToLower(host)
 | 
						if strings.HasPrefix(scheme, sshScheme) || username != "" {
 | 
				
			||||||
	if strings.Contains(s, "github.com") {
 | 
							return "", username, "github.com:"
 | 
				
			||||||
		if strings.Contains(s, "git@") || strings.Contains(s, "ssh:") {
 | 
					 | 
				
			||||||
			host = "git@github.com:"
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			host = "https://github.com/"
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if strings.HasPrefix(s, "git::") {
 | 
						return httpsScheme, "", "github.com/"
 | 
				
			||||||
		host = strings.TrimPrefix(s, "git::")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return host
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// The format of Azure repo URL is documented
 | 
					 | 
				
			||||||
// https://docs.microsoft.com/en-us/azure/devops/repos/git/clone?view=vsts&tabs=visual-studio#clone_url
 | 
					 | 
				
			||||||
func isAzureHost(host string) bool {
 | 
					 | 
				
			||||||
	return strings.Contains(host, "dev.azure.com") ||
 | 
					 | 
				
			||||||
		strings.Contains(host, "visualstudio.com")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// The format of AWS repo URL is documented
 | 
					 | 
				
			||||||
// https://docs.aws.amazon.com/codecommit/latest/userguide/regions.html
 | 
					 | 
				
			||||||
func isAWSHost(host string) bool {
 | 
					 | 
				
			||||||
	return strings.Contains(host, "amazonaws.com")
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
// contains a Pod; Deployment, Job, StatefulSet, etc.
 | 
					// contains a Pod; Deployment, Job, StatefulSet, etc.
 | 
				
			||||||
// The ConfigMap is the ReferralTarget, the others are Referrers.
 | 
					// The ConfigMap is the ReferralTarget, the others are Referrers.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// If the the name of a ConfigMap instance changed from 'alice' to 'bob',
 | 
					// If the name of a ConfigMap instance changed from 'alice' to 'bob',
 | 
				
			||||||
// one must
 | 
					// one must
 | 
				
			||||||
//  - visit all objects that could refer to the ConfigMap (the Referrers)
 | 
					//  - visit all objects that could refer to the ConfigMap (the Referrers)
 | 
				
			||||||
//  - see if they mention 'alice',
 | 
					//  - see if they mention 'alice',
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig/transformerconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -10,6 +10,7 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts"
 | 
						"sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// TransformerConfig holds the data needed to perform transformations.
 | 
					// TransformerConfig holds the data needed to perform transformations.
 | 
				
			||||||
@@ -18,6 +19,7 @@ type TransformerConfig struct {
 | 
				
			|||||||
	NameSuffix        types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`
 | 
						NameSuffix        types.FsSlice `json:"nameSuffix,omitempty" yaml:"nameSuffix,omitempty"`
 | 
				
			||||||
	NameSpace         types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"`
 | 
						NameSpace         types.FsSlice `json:"namespace,omitempty" yaml:"namespace,omitempty"`
 | 
				
			||||||
	CommonLabels      types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`
 | 
						CommonLabels      types.FsSlice `json:"commonLabels,omitempty" yaml:"commonLabels,omitempty"`
 | 
				
			||||||
 | 
						TemplateLabels    types.FsSlice `json:"templateLabels,omitempty" yaml:"templateLabels,omitempty"`
 | 
				
			||||||
	CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
 | 
						CommonAnnotations types.FsSlice `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
 | 
				
			||||||
	NameReference     nbrSlice      `json:"nameReference,omitempty" yaml:"nameReference,omitempty"`
 | 
						NameReference     nbrSlice      `json:"nameReference,omitempty" yaml:"nameReference,omitempty"`
 | 
				
			||||||
	VarReference      types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"`
 | 
						VarReference      types.FsSlice `json:"varReference,omitempty" yaml:"varReference,omitempty"`
 | 
				
			||||||
@@ -58,8 +60,10 @@ func MakeTransformerConfig(
 | 
				
			|||||||
// sortFields provides determinism in logging, tests, etc.
 | 
					// sortFields provides determinism in logging, tests, etc.
 | 
				
			||||||
func (t *TransformerConfig) sortFields() {
 | 
					func (t *TransformerConfig) sortFields() {
 | 
				
			||||||
	sort.Sort(t.NamePrefix)
 | 
						sort.Sort(t.NamePrefix)
 | 
				
			||||||
 | 
						sort.Sort(t.NameSuffix)
 | 
				
			||||||
	sort.Sort(t.NameSpace)
 | 
						sort.Sort(t.NameSpace)
 | 
				
			||||||
	sort.Sort(t.CommonLabels)
 | 
						sort.Sort(t.CommonLabels)
 | 
				
			||||||
 | 
						sort.Sort(t.TemplateLabels)
 | 
				
			||||||
	sort.Sort(t.CommonAnnotations)
 | 
						sort.Sort(t.CommonAnnotations)
 | 
				
			||||||
	sort.Sort(t.NameReference)
 | 
						sort.Sort(t.NameReference)
 | 
				
			||||||
	sort.Sort(t.VarReference)
 | 
						sort.Sort(t.VarReference)
 | 
				
			||||||
@@ -108,40 +112,44 @@ func (t *TransformerConfig) Merge(input *TransformerConfig) (
 | 
				
			|||||||
	merged = &TransformerConfig{}
 | 
						merged = &TransformerConfig{}
 | 
				
			||||||
	merged.NamePrefix, err = t.NamePrefix.MergeAll(input.NamePrefix)
 | 
						merged.NamePrefix, err = t.NamePrefix.MergeAll(input.NamePrefix)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge NamePrefix fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.NameSuffix, err = t.NameSuffix.MergeAll(input.NameSuffix)
 | 
						merged.NameSuffix, err = t.NameSuffix.MergeAll(input.NameSuffix)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge NameSuffix fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.NameSpace, err = t.NameSpace.MergeAll(input.NameSpace)
 | 
						merged.NameSpace, err = t.NameSpace.MergeAll(input.NameSpace)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge NameSpace fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.CommonAnnotations, err = t.CommonAnnotations.MergeAll(
 | 
						merged.CommonAnnotations, err = t.CommonAnnotations.MergeAll(
 | 
				
			||||||
		input.CommonAnnotations)
 | 
							input.CommonAnnotations)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge CommonAnnotations fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.CommonLabels, err = t.CommonLabels.MergeAll(input.CommonLabels)
 | 
						merged.CommonLabels, err = t.CommonLabels.MergeAll(input.CommonLabels)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge CommonLabels fieldSpec")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						merged.TemplateLabels, err = t.TemplateLabels.MergeAll(input.TemplateLabels)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge TemplateLabels fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.VarReference, err = t.VarReference.MergeAll(input.VarReference)
 | 
						merged.VarReference, err = t.VarReference.MergeAll(input.VarReference)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge VarReference fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.NameReference, err = t.NameReference.mergeAll(input.NameReference)
 | 
						merged.NameReference, err = t.NameReference.mergeAll(input.NameReference)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge NameReference fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.Images, err = t.Images.MergeAll(input.Images)
 | 
						merged.Images, err = t.Images.MergeAll(input.Images)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge Images fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.Replicas, err = t.Replicas.MergeAll(input.Replicas)
 | 
						merged.Replicas, err = t.Replicas.MergeAll(input.Replicas)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, errors.WrapPrefixf(err, "failed to merge Replicas fieldSpec")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	merged.sortFields()
 | 
						merged.sortFields()
 | 
				
			||||||
	return merged, nil
 | 
						return merged, nil
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,24 +15,23 @@ func _() {
 | 
				
			|||||||
	_ = x[HashTransformer-4]
 | 
						_ = x[HashTransformer-4]
 | 
				
			||||||
	_ = x[ImageTagTransformer-5]
 | 
						_ = x[ImageTagTransformer-5]
 | 
				
			||||||
	_ = x[LabelTransformer-6]
 | 
						_ = x[LabelTransformer-6]
 | 
				
			||||||
	_ = x[LegacyOrderTransformer-7]
 | 
						_ = x[NamespaceTransformer-7]
 | 
				
			||||||
	_ = x[NamespaceTransformer-8]
 | 
						_ = x[PatchJson6902Transformer-8]
 | 
				
			||||||
	_ = x[PatchJson6902Transformer-9]
 | 
						_ = x[PatchStrategicMergeTransformer-9]
 | 
				
			||||||
	_ = x[PatchStrategicMergeTransformer-10]
 | 
						_ = x[PatchTransformer-10]
 | 
				
			||||||
	_ = x[PatchTransformer-11]
 | 
						_ = x[PrefixSuffixTransformer-11]
 | 
				
			||||||
	_ = x[PrefixSuffixTransformer-12]
 | 
						_ = x[PrefixTransformer-12]
 | 
				
			||||||
	_ = x[PrefixTransformer-13]
 | 
						_ = x[SuffixTransformer-13]
 | 
				
			||||||
	_ = x[SuffixTransformer-14]
 | 
						_ = x[ReplicaCountTransformer-14]
 | 
				
			||||||
	_ = x[ReplicaCountTransformer-15]
 | 
						_ = x[SecretGenerator-15]
 | 
				
			||||||
	_ = x[SecretGenerator-16]
 | 
						_ = x[ValueAddTransformer-16]
 | 
				
			||||||
	_ = x[ValueAddTransformer-17]
 | 
						_ = x[HelmChartInflationGenerator-17]
 | 
				
			||||||
	_ = x[HelmChartInflationGenerator-18]
 | 
						_ = x[ReplacementTransformer-18]
 | 
				
			||||||
	_ = x[ReplacementTransformer-19]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorIAMPolicyGeneratorHashTransformerImageTagTransformerLabelTransformerLegacyOrderTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerPrefixTransformerSuffixTransformerReplicaCountTransformerSecretGeneratorValueAddTransformerHelmChartInflationGeneratorReplacementTransformer"
 | 
					const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorIAMPolicyGeneratorHashTransformerImageTagTransformerLabelTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerPrefixTransformerSuffixTransformerReplicaCountTransformerSecretGeneratorValueAddTransformerHelmChartInflationGeneratorReplacementTransformer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 65, 80, 99, 115, 137, 157, 181, 211, 227, 250, 267, 284, 307, 322, 341, 368, 390}
 | 
					var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 65, 80, 99, 115, 135, 159, 189, 205, 228, 245, 262, 285, 300, 319, 346, 368}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (i BuiltinPluginType) String() string {
 | 
					func (i BuiltinPluginType) String() string {
 | 
				
			||||||
	if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) {
 | 
						if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -19,7 +19,6 @@ const (
 | 
				
			|||||||
	HashTransformer
 | 
						HashTransformer
 | 
				
			||||||
	ImageTagTransformer
 | 
						ImageTagTransformer
 | 
				
			||||||
	LabelTransformer
 | 
						LabelTransformer
 | 
				
			||||||
	LegacyOrderTransformer
 | 
					 | 
				
			||||||
	NamespaceTransformer
 | 
						NamespaceTransformer
 | 
				
			||||||
	PatchJson6902Transformer
 | 
						PatchJson6902Transformer
 | 
				
			||||||
	PatchStrategicMergeTransformer
 | 
						PatchStrategicMergeTransformer
 | 
				
			||||||
@@ -100,7 +99,6 @@ var TransformerFactories = map[BuiltinPluginType]func() resmap.TransformerPlugin
 | 
				
			|||||||
	HashTransformer:                builtins.NewHashTransformerPlugin,
 | 
						HashTransformer:                builtins.NewHashTransformerPlugin,
 | 
				
			||||||
	ImageTagTransformer:            builtins.NewImageTagTransformerPlugin,
 | 
						ImageTagTransformer:            builtins.NewImageTagTransformerPlugin,
 | 
				
			||||||
	LabelTransformer:               builtins.NewLabelTransformerPlugin,
 | 
						LabelTransformer:               builtins.NewLabelTransformerPlugin,
 | 
				
			||||||
	LegacyOrderTransformer:         builtins.NewLegacyOrderTransformerPlugin,
 | 
					 | 
				
			||||||
	NamespaceTransformer:           builtins.NewNamespaceTransformerPlugin,
 | 
						NamespaceTransformer:           builtins.NewNamespaceTransformerPlugin,
 | 
				
			||||||
	PatchJson6902Transformer:       builtins.NewPatchJson6902TransformerPlugin,
 | 
						PatchJson6902Transformer:       builtins.NewPatchJson6902TransformerPlugin,
 | 
				
			||||||
	PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin,
 | 
						PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin,
 | 
				
			||||||
@@ -111,4 +109,7 @@ var TransformerFactories = map[BuiltinPluginType]func() resmap.TransformerPlugin
 | 
				
			|||||||
	ReplacementTransformer:         builtins.NewReplacementTransformerPlugin,
 | 
						ReplacementTransformer:         builtins.NewReplacementTransformerPlugin,
 | 
				
			||||||
	ReplicaCountTransformer:        builtins.NewReplicaCountTransformerPlugin,
 | 
						ReplicaCountTransformer:        builtins.NewReplicaCountTransformerPlugin,
 | 
				
			||||||
	ValueAddTransformer:            builtins.NewValueAddTransformerPlugin,
 | 
						ValueAddTransformer:            builtins.NewValueAddTransformerPlugin,
 | 
				
			||||||
 | 
						// Do not wired SortOrderTransformer as a builtin plugin.
 | 
				
			||||||
 | 
						// We only want it to be available in the top-level kustomization.
 | 
				
			||||||
 | 
						// See: https://github.com/kubernetes-sigs/kustomize/issues/3913
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/execplugin/execplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,7 +6,6 @@ package execplugin
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
					 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"os/exec"
 | 
						"os/exec"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
@@ -14,9 +13,9 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/google/shlex"
 | 
						"github.com/google/shlex"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/utils"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/utils"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -150,19 +149,19 @@ func (p *ExecPlugin) Transform(rm resmap.ResMap) error {
 | 
				
			|||||||
// passes the full temp file path as the first arg to a process
 | 
					// passes the full temp file path as the first arg to a process
 | 
				
			||||||
// running the plugin binary.  Process output is returned.
 | 
					// running the plugin binary.  Process output is returned.
 | 
				
			||||||
func (p *ExecPlugin) invokePlugin(input []byte) ([]byte, error) {
 | 
					func (p *ExecPlugin) invokePlugin(input []byte) ([]byte, error) {
 | 
				
			||||||
	f, err := ioutil.TempFile("", tmpConfigFilePrefix)
 | 
						f, err := os.CreateTemp("", tmpConfigFilePrefix)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "creating tmp plugin config file")
 | 
								err, "creating tmp plugin config file")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	_, err = f.Write(p.cfg)
 | 
						_, err = f.Write(p.cfg)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "writing plugin config to "+f.Name())
 | 
								err, "writing plugin config to "+f.Name())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = f.Close()
 | 
						err = f.Close()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "closing plugin config file "+f.Name())
 | 
								err, "closing plugin config file "+f.Name())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	//nolint:gosec
 | 
						//nolint:gosec
 | 
				
			||||||
@@ -176,7 +175,7 @@ func (p *ExecPlugin) invokePlugin(input []byte) ([]byte, error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	result, err := cmd.Output()
 | 
						result, err := cmd.Output()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "failure in plugin configured via %s; %v",
 | 
								err, "failure in plugin configured via %s; %v",
 | 
				
			||||||
			f.Name(), err.Error())
 | 
								f.Name(), err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/fnplugin/fnplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@ import (
 | 
				
			|||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/utils"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/utils"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
@@ -51,13 +51,16 @@ func resourceToRNode(res *resource.Resource) (*yaml.RNode, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetFunctionSpec return function spec is there is. Otherwise return nil
 | 
					// GetFunctionSpec return function spec is there is. Otherwise return nil
 | 
				
			||||||
func GetFunctionSpec(res *resource.Resource) *runtimeutil.FunctionSpec {
 | 
					func GetFunctionSpec(res *resource.Resource) (*runtimeutil.FunctionSpec, error) {
 | 
				
			||||||
	rnode, err := resourceToRNode(res)
 | 
						rnode, err := resourceToRNode(res)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil
 | 
							return nil, fmt.Errorf("could not convert resource to RNode: %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						functionSpec, err := runtimeutil.GetFunctionSpec(rnode)
 | 
				
			||||||
	return runtimeutil.GetFunctionSpec(rnode)
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("failed to get FunctionSpec: %w", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return functionSpec, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func toStorageMounts(mounts []string) []runtimeutil.StorageMount {
 | 
					func toStorageMounts(mounts []string) []runtimeutil.StorageMount {
 | 
				
			||||||
@@ -191,7 +194,7 @@ func (p *FnPlugin) invokePlugin(input []byte) ([]byte, error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	err = p.runFns.Execute()
 | 
						err = p.runFns.Execute()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "couldn't execute function")
 | 
								err, "couldn't execute function")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										55
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										55
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -12,7 +12,6 @@ import (
 | 
				
			|||||||
	"reflect"
 | 
						"reflect"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/execplugin"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/execplugin"
 | 
				
			||||||
@@ -22,6 +21,7 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -42,27 +42,35 @@ func NewLoader(
 | 
				
			|||||||
	return &Loader{pc: pc, rf: rf, fs: fs}
 | 
						return &Loader{pc: pc, rf: rf, fs: fs}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LoaderWithWorkingDir returns loader after setting its working directory.
 | 
				
			||||||
 | 
					// NOTE: This is not really a new loader since some of the Loader struct fields are pointers.
 | 
				
			||||||
 | 
					func (l *Loader) LoaderWithWorkingDir(wd string) *Loader {
 | 
				
			||||||
 | 
						lpc := &types.PluginConfig{
 | 
				
			||||||
 | 
							PluginRestrictions: l.pc.PluginRestrictions,
 | 
				
			||||||
 | 
							BpLoadingOptions:   l.pc.BpLoadingOptions,
 | 
				
			||||||
 | 
							FnpLoadingOptions:  l.pc.FnpLoadingOptions,
 | 
				
			||||||
 | 
							HelmConfig:         l.pc.HelmConfig,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						lpc.FnpLoadingOptions.WorkingDir = wd
 | 
				
			||||||
 | 
						return &Loader{pc: lpc, rf: l.rf, fs: l.fs}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Config provides the global (not plugin specific) PluginConfig data.
 | 
					// Config provides the global (not plugin specific) PluginConfig data.
 | 
				
			||||||
func (l *Loader) Config() *types.PluginConfig {
 | 
					func (l *Loader) Config() *types.PluginConfig {
 | 
				
			||||||
	return l.pc
 | 
						return l.pc
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SetWorkDir sets the working directory for this loader's plugins
 | 
					 | 
				
			||||||
func (l *Loader) SetWorkDir(wd string) {
 | 
					 | 
				
			||||||
	l.pc.FnpLoadingOptions.WorkingDir = wd
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (l *Loader) LoadGenerators(
 | 
					func (l *Loader) LoadGenerators(
 | 
				
			||||||
	ldr ifc.Loader, v ifc.Validator, rm resmap.ResMap) (
 | 
						ldr ifc.Loader, v ifc.Validator, rm resmap.ResMap) (
 | 
				
			||||||
	result []*resmap.GeneratorWithProperties, err error) {
 | 
						result []*resmap.GeneratorWithProperties, err error) {
 | 
				
			||||||
	for _, res := range rm.Resources() {
 | 
						for _, res := range rm.Resources() {
 | 
				
			||||||
		g, err := l.LoadGenerator(ldr, v, res)
 | 
							g, err := l.LoadGenerator(ldr, v, res)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, fmt.Errorf("failed to load generator: %w", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		generatorOrigin, err := resource.OriginFromCustomPlugin(res)
 | 
							generatorOrigin, err := resource.OriginFromCustomPlugin(res)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, fmt.Errorf("failed to get origin from CustomPlugin: %w", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		result = append(result, &resmap.GeneratorWithProperties{Generator: g, Origin: generatorOrigin})
 | 
							result = append(result, &resmap.GeneratorWithProperties{Generator: g, Origin: generatorOrigin})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -130,15 +138,19 @@ func (l *Loader) AbsolutePluginPath(id resid.ResId) (string, error) {
 | 
				
			|||||||
// absPluginHome is the home of kustomize Exec and Go plugins.
 | 
					// absPluginHome is the home of kustomize Exec and Go plugins.
 | 
				
			||||||
// Kustomize plugin configuration files are k8s-style objects
 | 
					// Kustomize plugin configuration files are k8s-style objects
 | 
				
			||||||
// containing the fields 'apiVersion' and 'kind', e.g.
 | 
					// containing the fields 'apiVersion' and 'kind', e.g.
 | 
				
			||||||
//   apiVersion: apps/v1
 | 
					//
 | 
				
			||||||
//   kind: Deployment
 | 
					//	apiVersion: apps/v1
 | 
				
			||||||
 | 
					//	kind: Deployment
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
// kustomize reads plugin configuration data from a file path
 | 
					// kustomize reads plugin configuration data from a file path
 | 
				
			||||||
// specified in the 'generators:' or 'transformers:' field of a
 | 
					// specified in the 'generators:' or 'transformers:' field of a
 | 
				
			||||||
// kustomization file.  For Exec and Go plugins, kustomize
 | 
					// kustomization file.  For Exec and Go plugins, kustomize
 | 
				
			||||||
// uses this data to both locate the plugin and configure it.
 | 
					// uses this data to both locate the plugin and configure it.
 | 
				
			||||||
// Each Exec or Go plugin (its code, its tests, its supporting data
 | 
					// Each Exec or Go plugin (its code, its tests, its supporting data
 | 
				
			||||||
// files, etc.) must be housed in its own directory at
 | 
					// files, etc.) must be housed in its own directory at
 | 
				
			||||||
//   ${absPluginHome}/${pluginApiVersion}/LOWERCASE(${pluginKind})
 | 
					//
 | 
				
			||||||
 | 
					//	${absPluginHome}/${pluginApiVersion}/LOWERCASE(${pluginKind})
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
// where
 | 
					// where
 | 
				
			||||||
//   - ${absPluginHome} is an absolute path, defined below.
 | 
					//   - ${absPluginHome} is an absolute path, defined below.
 | 
				
			||||||
//   - ${pluginApiVersion} is taken from the plugin config file.
 | 
					//   - ${pluginApiVersion} is taken from the plugin config file.
 | 
				
			||||||
@@ -204,11 +216,11 @@ func (l *Loader) loadAndConfigurePlugin(
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	yaml, err := res.AsYAML()
 | 
						yaml, err := res.AsYAML()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(err, "marshalling yaml from res %s", res.OrgId())
 | 
							return nil, errors.WrapPrefixf(err, "marshalling yaml from res %s", res.OrgId())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = c.Config(resmap.NewPluginHelpers(ldr, v, l.rf, l.pc), yaml)
 | 
						err = c.Config(resmap.NewPluginHelpers(ldr, v, l.rf, l.pc), yaml)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "plugin %s fails configuration", res.OrgId())
 | 
								err, "plugin %s fails configuration", res.OrgId())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return c, nil
 | 
						return c, nil
 | 
				
			||||||
@@ -226,17 +238,20 @@ func (l *Loader) makeBuiltinPlugin(r resid.Gvk) (resmap.Configurable, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (l *Loader) loadPlugin(res *resource.Resource) (resmap.Configurable, error) {
 | 
					func (l *Loader) loadPlugin(res *resource.Resource) (resmap.Configurable, error) {
 | 
				
			||||||
	spec := fnplugin.GetFunctionSpec(res)
 | 
						spec, err := fnplugin.GetFunctionSpec(res)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("loader: %w", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if spec != nil {
 | 
						if spec != nil {
 | 
				
			||||||
		// validation check that function mounts are under the current kustomization directory
 | 
							// validation check that function mounts are under the current kustomization directory
 | 
				
			||||||
		for _, mount := range spec.Container.StorageMounts {
 | 
							for _, mount := range spec.Container.StorageMounts {
 | 
				
			||||||
			if filepath.IsAbs(mount.Src) {
 | 
								if filepath.IsAbs(mount.Src) {
 | 
				
			||||||
				return nil, errors.New(fmt.Sprintf("plugin %s with mount path '%s' is not permitted; "+
 | 
									return nil, errors.Errorf("plugin %s with mount path '%s' is not permitted; "+
 | 
				
			||||||
					"mount paths must be relative to the current kustomization directory", res.OrgId(), mount.Src))
 | 
										"mount paths must be relative to the current kustomization directory", res.OrgId(), mount.Src)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if strings.HasPrefix(filepath.Clean(mount.Src), "../") {
 | 
								if strings.HasPrefix(filepath.Clean(mount.Src), "../") {
 | 
				
			||||||
				return nil, errors.New(fmt.Sprintf("plugin %s with mount path '%s' is not permitted; "+
 | 
									return nil, errors.Errorf("plugin %s with mount path '%s' is not permitted; "+
 | 
				
			||||||
					"mount paths must be under the current kustomization directory", res.OrgId(), mount.Src))
 | 
										"mount paths must be under the current kustomization directory", res.OrgId(), mount.Src)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return fnplugin.NewFnPlugin(&l.pc.FnpLoadingOptions), nil
 | 
							return fnplugin.NewFnPlugin(&l.pc.FnpLoadingOptions), nil
 | 
				
			||||||
@@ -292,11 +307,11 @@ func (l *Loader) loadGoPlugin(id resid.ResId, absPath string) (resmap.Configurab
 | 
				
			|||||||
	log.Printf("Attempting plugin load from '%s'", absPath)
 | 
						log.Printf("Attempting plugin load from '%s'", absPath)
 | 
				
			||||||
	p, err := plugin.Open(absPath)
 | 
						p, err := plugin.Open(absPath)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(err, "plugin %s fails to load", absPath)
 | 
							return nil, errors.WrapPrefixf(err, "plugin %s fails to load", absPath)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	symbol, err := p.Lookup(konfig.PluginSymbol)
 | 
						symbol, err := p.Lookup(konfig.PluginSymbol)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "plugin %s doesn't have symbol %s",
 | 
								err, "plugin %s doesn't have symbol %s",
 | 
				
			||||||
			regId, konfig.PluginSymbol)
 | 
								regId, konfig.PluginSymbol)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/errmissingkustomization.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/errmissingkustomization.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,8 +7,8 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/konfig"
 | 
						"sigs.k8s.io/kustomize/api/konfig"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type errMissingKustomization struct {
 | 
					type errMissingKustomization struct {
 | 
				
			||||||
@@ -23,12 +23,8 @@ func (e *errMissingKustomization) Error() string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsMissingKustomizationFileError(err error) bool {
 | 
					func IsMissingKustomizationFileError(err error) bool {
 | 
				
			||||||
	_, ok := err.(*errMissingKustomization)
 | 
						e := &errMissingKustomization{}
 | 
				
			||||||
	if ok {
 | 
						return errors.As(err, &e)
 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, ok = errors.Cause(err).(*errMissingKustomization)
 | 
					 | 
				
			||||||
	return ok
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewErrMissingKustomization(p string) *errMissingKustomization {
 | 
					func NewErrMissingKustomization(p string) *errMissingKustomization {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										84
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										84
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,10 +6,9 @@ package target
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"os"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/accumulator"
 | 
						"sigs.k8s.io/kustomize/api/internal/accumulator"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/builtins"
 | 
						"sigs.k8s.io/kustomize/api/internal/builtins"
 | 
				
			||||||
@@ -23,6 +22,7 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/openapi"
 | 
						"sigs.k8s.io/kustomize/kyaml/openapi"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -44,32 +44,35 @@ func NewKustTarget(
 | 
				
			|||||||
	validator ifc.Validator,
 | 
						validator ifc.Validator,
 | 
				
			||||||
	rFactory *resmap.Factory,
 | 
						rFactory *resmap.Factory,
 | 
				
			||||||
	pLdr *loader.Loader) *KustTarget {
 | 
						pLdr *loader.Loader) *KustTarget {
 | 
				
			||||||
	pLdrCopy := *pLdr
 | 
					 | 
				
			||||||
	pLdrCopy.SetWorkDir(ldr.Root())
 | 
					 | 
				
			||||||
	return &KustTarget{
 | 
						return &KustTarget{
 | 
				
			||||||
		ldr:       ldr,
 | 
							ldr:       ldr,
 | 
				
			||||||
		validator: validator,
 | 
							validator: validator,
 | 
				
			||||||
		rFactory:  rFactory,
 | 
							rFactory:  rFactory,
 | 
				
			||||||
		pLdr:      &pLdrCopy,
 | 
							pLdr:      pLdr.LoaderWithWorkingDir(ldr.Root()),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Load attempts to load the target's kustomization file.
 | 
					// Load attempts to load the target's kustomization file.
 | 
				
			||||||
func (kt *KustTarget) Load() error {
 | 
					func (kt *KustTarget) Load() error {
 | 
				
			||||||
	content, kustFileName, err := loadKustFile(kt.ldr)
 | 
						content, kustFileName, err := LoadKustFile(kt.ldr)
 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	content, err = types.FixKustomizationPreUnmarshalling(content)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var k types.Kustomization
 | 
						var k types.Kustomization
 | 
				
			||||||
	err = k.Unmarshal(content)
 | 
						if err := k.Unmarshal(content); err != nil {
 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	k.FixKustomizationPostUnmarshalling()
 | 
					
 | 
				
			||||||
 | 
						// show warning message when using deprecated fields.
 | 
				
			||||||
 | 
						if warningMessages := k.CheckDeprecatedFields(); warningMessages != nil {
 | 
				
			||||||
 | 
							for _, msg := range *warningMessages {
 | 
				
			||||||
 | 
								fmt.Fprintf(os.Stderr, "%v\n", msg)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						k.FixKustomization()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	errs := k.EnforceFields()
 | 
						errs := k.EnforceFields()
 | 
				
			||||||
	if len(errs) > 0 {
 | 
						if len(errs) > 0 {
 | 
				
			||||||
		return fmt.Errorf(
 | 
							return fmt.Errorf(
 | 
				
			||||||
@@ -89,7 +92,7 @@ func (kt *KustTarget) Kustomization() types.Kustomization {
 | 
				
			|||||||
	return result
 | 
						return result
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func loadKustFile(ldr ifc.Loader) ([]byte, string, error) {
 | 
					func LoadKustFile(ldr ifc.Loader) ([]byte, string, error) {
 | 
				
			||||||
	var content []byte
 | 
						var content []byte
 | 
				
			||||||
	match := 0
 | 
						match := 0
 | 
				
			||||||
	var kustFileName string
 | 
						var kustFileName string
 | 
				
			||||||
@@ -150,6 +153,11 @@ func (kt *KustTarget) makeCustomizedResMap() (resmap.ResMap, error) {
 | 
				
			|||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						err = kt.IgnoreLocal(ra)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return ra.ResMap(), nil
 | 
						return ra.ResMap(), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -187,11 +195,11 @@ func (kt *KustTarget) accumulateTarget(ra *accumulator.ResAccumulator) (
 | 
				
			|||||||
	resRa *accumulator.ResAccumulator, err error) {
 | 
						resRa *accumulator.ResAccumulator, err error) {
 | 
				
			||||||
	ra, err = kt.accumulateResources(ra, kt.kustomization.Resources)
 | 
						ra, err = kt.accumulateResources(ra, kt.kustomization.Resources)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, "accumulating resources")
 | 
							return nil, errors.WrapPrefixf(err, "accumulating resources")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ra, err = kt.accumulateComponents(ra, kt.kustomization.Components)
 | 
						ra, err = kt.accumulateComponents(ra, kt.kustomization.Components)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, "accumulating components")
 | 
							return nil, errors.WrapPrefixf(err, "accumulating components")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	tConfig, err := builtinconfig.MakeTransformerConfig(
 | 
						tConfig, err := builtinconfig.MakeTransformerConfig(
 | 
				
			||||||
		kt.ldr, kt.kustomization.Configurations)
 | 
							kt.ldr, kt.kustomization.Configurations)
 | 
				
			||||||
@@ -200,17 +208,17 @@ func (kt *KustTarget) accumulateTarget(ra *accumulator.ResAccumulator) (
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	err = ra.MergeConfig(tConfig)
 | 
						err = ra.MergeConfig(tConfig)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "merging config %v", tConfig)
 | 
								err, "merging config %v", tConfig)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	crdTc, err := accumulator.LoadConfigFromCRDs(kt.ldr, kt.kustomization.Crds)
 | 
						crdTc, err := accumulator.LoadConfigFromCRDs(kt.ldr, kt.kustomization.Crds)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "loading CRDs %v", kt.kustomization.Crds)
 | 
								err, "loading CRDs %v", kt.kustomization.Crds)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = ra.MergeConfig(crdTc)
 | 
						err = ra.MergeConfig(crdTc)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "merging CRDs %v", crdTc)
 | 
								err, "merging CRDs %v", crdTc)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = kt.runGenerators(ra)
 | 
						err = kt.runGenerators(ra)
 | 
				
			||||||
@@ -227,13 +235,9 @@ func (kt *KustTarget) accumulateTarget(ra *accumulator.ResAccumulator) (
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	err = ra.MergeVars(kt.kustomization.Vars)
 | 
						err = ra.MergeVars(kt.kustomization.Vars)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "merging vars %v", kt.kustomization.Vars)
 | 
								err, "merging vars %v", kt.kustomization.Vars)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = kt.IgnoreLocal(ra)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return ra, nil
 | 
						return ra, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -261,7 +265,7 @@ func (kt *KustTarget) runGenerators(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	gs, err = kt.configureExternalGenerators()
 | 
						gs, err = kt.configureExternalGenerators()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrap(err, "loading generator plugins")
 | 
							return errors.WrapPrefixf(err, "loading generator plugins")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	generators = append(generators, gs...)
 | 
						generators = append(generators, gs...)
 | 
				
			||||||
	for i, g := range generators {
 | 
						for i, g := range generators {
 | 
				
			||||||
@@ -272,12 +276,12 @@ func (kt *KustTarget) runGenerators(
 | 
				
			|||||||
		if resMap != nil {
 | 
							if resMap != nil {
 | 
				
			||||||
			err = resMap.AddOriginAnnotation(generators[i].Origin)
 | 
								err = resMap.AddOriginAnnotation(generators[i].Origin)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return errors.Wrapf(err, "adding origin annotations for generator %v", g)
 | 
									return errors.WrapPrefixf(err, "adding origin annotations for generator %v", g)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		err = ra.AbsorbAll(resMap)
 | 
							err = ra.AbsorbAll(resMap)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return errors.Wrapf(err, "merging from generator %v", g)
 | 
								return errors.WrapPrefixf(err, "merging from generator %v", g)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
@@ -304,7 +308,7 @@ func (kt *KustTarget) configureExternalGenerators() (
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err = ra.AppendAll(rm); err != nil {
 | 
							if err = ra.AppendAll(rm); err != nil {
 | 
				
			||||||
			return nil, errors.Wrapf(err, "configuring external generator")
 | 
								return nil, errors.WrapPrefixf(err, "configuring external generator")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ra, err := kt.accumulateResources(ra, generatorPaths)
 | 
						ra, err := kt.accumulateResources(ra, generatorPaths)
 | 
				
			||||||
@@ -351,7 +355,7 @@ func (kt *KustTarget) configureExternalTransformers(transformers []string) ([]*r
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if err = ra.AppendAll(rm); err != nil {
 | 
							if err = ra.AppendAll(rm); err != nil {
 | 
				
			||||||
			return nil, errors.Wrapf(err, "configuring external transformer")
 | 
								return nil, errors.WrapPrefixf(err, "configuring external transformer")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ra, err := kt.accumulateResources(ra, transformerPaths)
 | 
						ra, err := kt.accumulateResources(ra, transformerPaths)
 | 
				
			||||||
@@ -415,7 +419,7 @@ func (kt *KustTarget) accumulateResources(
 | 
				
			|||||||
				if kusterr.IsMalformedYAMLError(errF) { // Some error occurred while tyring to decode YAML file
 | 
									if kusterr.IsMalformedYAMLError(errF) { // Some error occurred while tyring to decode YAML file
 | 
				
			||||||
					return nil, errF
 | 
										return nil, errF
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return nil, errors.Wrapf(
 | 
									return nil, errors.WrapPrefixf(
 | 
				
			||||||
					err, "accumulation err='%s'", errF.Error())
 | 
										err, "accumulation err='%s'", errF.Error())
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// store the origin, we'll need it later
 | 
								// store the origin, we'll need it later
 | 
				
			||||||
@@ -432,7 +436,7 @@ func (kt *KustTarget) accumulateResources(
 | 
				
			|||||||
				if kusterr.IsMalformedYAMLError(errF) { // Some error occurred while tyring to decode YAML file
 | 
									if kusterr.IsMalformedYAMLError(errF) { // Some error occurred while tyring to decode YAML file
 | 
				
			||||||
					return nil, errF
 | 
										return nil, errF
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				return nil, errors.Wrapf(
 | 
									return nil, errors.WrapPrefixf(
 | 
				
			||||||
					err, "accumulation err='%s'", errF.Error())
 | 
										err, "accumulation err='%s'", errF.Error())
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -474,7 +478,7 @@ func (kt *KustTarget) accumulateDirectory(
 | 
				
			|||||||
	subKt := NewKustTarget(ldr, kt.validator, kt.rFactory, kt.pLdr)
 | 
						subKt := NewKustTarget(ldr, kt.validator, kt.rFactory, kt.pLdr)
 | 
				
			||||||
	err := subKt.Load()
 | 
						err := subKt.Load()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "couldn't make target for path '%s'", ldr.Root())
 | 
								err, "couldn't make target for path '%s'", ldr.Root())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	subKt.kustomization.BuildMetadata = kt.kustomization.BuildMetadata
 | 
						subKt.kustomization.BuildMetadata = kt.kustomization.BuildMetadata
 | 
				
			||||||
@@ -509,12 +513,12 @@ func (kt *KustTarget) accumulateDirectory(
 | 
				
			|||||||
		subRa, err = subKt.AccumulateTarget()
 | 
							subRa, err = subKt.AccumulateTarget()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "recursed accumulation of path '%s'", ldr.Root())
 | 
								err, "recursed accumulation of path '%s'", ldr.Root())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = ra.MergeAccumulator(subRa)
 | 
						err = ra.MergeAccumulator(subRa)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrapf(
 | 
							return nil, errors.WrapPrefixf(
 | 
				
			||||||
			err, "recursed merging from path '%s'", ldr.Root())
 | 
								err, "recursed merging from path '%s'", ldr.Root())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return ra, nil
 | 
						return ra, nil
 | 
				
			||||||
@@ -524,21 +528,21 @@ func (kt *KustTarget) accumulateFile(
 | 
				
			|||||||
	ra *accumulator.ResAccumulator, path string) error {
 | 
						ra *accumulator.ResAccumulator, path string) error {
 | 
				
			||||||
	resources, err := kt.rFactory.FromFile(kt.ldr, path)
 | 
						resources, err := kt.rFactory.FromFile(kt.ldr, path)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrapf(err, "accumulating resources from '%s'", path)
 | 
							return errors.WrapPrefixf(err, "accumulating resources from '%s'", path)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if kt.origin != nil {
 | 
						if kt.origin != nil {
 | 
				
			||||||
		originAnno, err := kt.origin.Append(path).String()
 | 
							originAnno, err := kt.origin.Append(path).String()
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return errors.Wrapf(err, "cannot add path annotation for '%s'", path)
 | 
								return errors.WrapPrefixf(err, "cannot add path annotation for '%s'", path)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		err = resources.AnnotateAll(utils.OriginAnnotationKey, originAnno)
 | 
							err = resources.AnnotateAll(utils.OriginAnnotationKey, originAnno)
 | 
				
			||||||
		if err != nil || originAnno == "" {
 | 
							if err != nil || originAnno == "" {
 | 
				
			||||||
			return errors.Wrapf(err, "cannot add path annotation for '%s'", path)
 | 
								return errors.WrapPrefixf(err, "cannot add path annotation for '%s'", path)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err = ra.AppendAll(resources)
 | 
						err = ra.AppendAll(resources)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrapf(err, "merging resources from '%s'", path)
 | 
							return errors.WrapPrefixf(err, "merging resources from '%s'", path)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -549,7 +553,7 @@ func (kt *KustTarget) configureBuiltinPlugin(
 | 
				
			|||||||
	if c != nil {
 | 
						if c != nil {
 | 
				
			||||||
		y, err = yaml.Marshal(c)
 | 
							y, err = yaml.Marshal(c)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return errors.Wrapf(
 | 
								return errors.WrapPrefixf(
 | 
				
			||||||
				err, "builtin %s marshal", bpt)
 | 
									err, "builtin %s marshal", bpt)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -558,7 +562,7 @@ func (kt *KustTarget) configureBuiltinPlugin(
 | 
				
			|||||||
			kt.ldr, kt.validator, kt.rFactory, kt.pLdr.Config()),
 | 
								kt.ldr, kt.validator, kt.rFactory, kt.pLdr.Config()),
 | 
				
			||||||
		y)
 | 
							y)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return errors.Wrapf(
 | 
							return errors.WrapPrefixf(
 | 
				
			||||||
			err, "trouble configuring builtin %s with config: `\n%s`", bpt, string(y))
 | 
								err, "trouble configuring builtin %s with config: `\n%s`", bpt, string(y))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,12 +7,12 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers"
 | 
						"sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
						"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -286,11 +286,11 @@ var transformerConfigurators = map[builtinhelpers.BuiltinPluginType]func(
 | 
				
			|||||||
			if label.IncludeSelectors {
 | 
								if label.IncludeSelectors {
 | 
				
			||||||
				fss, err = fss.MergeAll(tc.CommonLabels)
 | 
									fss, err = fss.MergeAll(tc.CommonLabels)
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				// merge spec/template/metadata fieldSpec if includeTemplate flag is true
 | 
									// merge spec/template/metadata fieldSpecs if includeTemplate flag is true
 | 
				
			||||||
				if label.IncludeTemplates {
 | 
									if label.IncludeTemplates {
 | 
				
			||||||
					fss, err = fss.MergeOne(types.FieldSpec{Path: "spec/template/metadata/labels", CreateIfNotPresent: false})
 | 
										fss, err = fss.MergeAll(tc.TemplateLabels)
 | 
				
			||||||
					if err != nil {
 | 
										if err != nil {
 | 
				
			||||||
						return nil, errors.Wrap(err, "failed to merge template fieldSpec")
 | 
											return nil, errors.WrapPrefixf(err, "failed to merge template fieldSpec")
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				// only add to metadata by default
 | 
									// only add to metadata by default
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/utils/errtimeout.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type errTimeOut struct {
 | 
					type errTimeOut struct {
 | 
				
			||||||
@@ -24,13 +24,6 @@ func (e errTimeOut) Error() string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsErrTimeout(err error) bool {
 | 
					func IsErrTimeout(err error) bool {
 | 
				
			||||||
	if err == nil {
 | 
						e := &errTimeOut{}
 | 
				
			||||||
		return false
 | 
						return errors.As(err, &e)
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, ok := err.(errTimeOut)
 | 
					 | 
				
			||||||
	if ok {
 | 
					 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, ok = errors.Cause(err).(errTimeOut)
 | 
					 | 
				
			||||||
	return ok
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/utils/makeResIds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/sigs.k8s.io/kustomize/api/internal/utils/makeResIds.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -35,7 +35,10 @@ func PrevIds(n *yaml.RNode) ([]resid.ResId, error) {
 | 
				
			|||||||
	var ids []resid.ResId
 | 
						var ids []resid.ResId
 | 
				
			||||||
	// TODO: merge previous names and namespaces into one list of
 | 
						// TODO: merge previous names and namespaces into one list of
 | 
				
			||||||
	//     pairs on one annotation so there is no chance of error
 | 
						//     pairs on one annotation so there is no chance of error
 | 
				
			||||||
	annotations := n.GetAnnotations()
 | 
						annotations := n.GetAnnotations(
 | 
				
			||||||
 | 
							BuildAnnotationPreviousNames,
 | 
				
			||||||
 | 
							BuildAnnotationPreviousNamespaces,
 | 
				
			||||||
 | 
							BuildAnnotationPreviousKinds)
 | 
				
			||||||
	if _, ok := annotations[BuildAnnotationPreviousNames]; !ok {
 | 
						if _, ok := annotations[BuildAnnotationPreviousNames]; !ok {
 | 
				
			||||||
		return nil, nil
 | 
							return nil, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -49,12 +52,10 @@ func PrevIds(n *yaml.RNode) ([]resid.ResId, error) {
 | 
				
			|||||||
				"number of previous namespaces, " +
 | 
									"number of previous namespaces, " +
 | 
				
			||||||
				"number of previous kinds not equal")
 | 
									"number of previous kinds not equal")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						apiVersion := n.GetApiVersion()
 | 
				
			||||||
 | 
						group, version := resid.ParseGroupVersion(apiVersion)
 | 
				
			||||||
 | 
						ids = make([]resid.ResId, 0, len(names))
 | 
				
			||||||
	for i := range names {
 | 
						for i := range names {
 | 
				
			||||||
		meta, err := n.GetMeta()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		group, version := resid.ParseGroupVersion(meta.APIVersion)
 | 
					 | 
				
			||||||
		gvk := resid.Gvk{
 | 
							gvk := resid.Gvk{
 | 
				
			||||||
			Group:   group,
 | 
								Group:   group,
 | 
				
			||||||
			Version: version,
 | 
								Version: version,
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										48
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonlabels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/commonlabels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,9 +5,6 @@ package builtinpluginconsts
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const commonLabelFieldSpecs = `
 | 
					const commonLabelFieldSpecs = `
 | 
				
			||||||
commonLabels:
 | 
					commonLabels:
 | 
				
			||||||
- path: metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector
 | 
					- path: spec/selector
 | 
				
			||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  version: v1
 | 
					  version: v1
 | 
				
			||||||
@@ -17,20 +14,10 @@ commonLabels:
 | 
				
			|||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  version: v1
 | 
					  version: v1
 | 
				
			||||||
  kind: ReplicationController
 | 
					  kind: ReplicationController
 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  version: v1
 | 
					 | 
				
			||||||
  kind: ReplicationController
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector/matchLabels
 | 
					- path: spec/selector/matchLabels
 | 
				
			||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  kind: Deployment
 | 
					  kind: Deployment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  kind: Deployment
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/template/spec/affinity/podAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels
 | 
					- path: spec/template/spec/affinity/podAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels
 | 
				
			||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: apps
 | 
					  group: apps
 | 
				
			||||||
@@ -60,28 +47,15 @@ commonLabels:
 | 
				
			|||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  kind: ReplicaSet
 | 
					  kind: ReplicaSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  kind: ReplicaSet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector/matchLabels
 | 
					- path: spec/selector/matchLabels
 | 
				
			||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  kind: DaemonSet
 | 
					  kind: DaemonSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  kind: DaemonSet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector/matchLabels
 | 
					- path: spec/selector/matchLabels
 | 
				
			||||||
  create: true
 | 
					  create: true
 | 
				
			||||||
  group: apps
 | 
					  group: apps
 | 
				
			||||||
  kind: StatefulSet
 | 
					  kind: StatefulSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  group: apps
 | 
					 | 
				
			||||||
  kind: StatefulSet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/template/spec/affinity/podAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels
 | 
					- path: spec/template/spec/affinity/podAffinity/preferredDuringSchedulingIgnoredDuringExecution/podAffinityTerm/labelSelector/matchLabels
 | 
				
			||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: apps
 | 
					  group: apps
 | 
				
			||||||
@@ -107,36 +81,16 @@ commonLabels:
 | 
				
			|||||||
  group: apps
 | 
					  group: apps
 | 
				
			||||||
  kind: StatefulSet
 | 
					  kind: StatefulSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/volumeClaimTemplates[]/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  group: apps
 | 
					 | 
				
			||||||
  kind: StatefulSet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector/matchLabels
 | 
					- path: spec/selector/matchLabels
 | 
				
			||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: batch
 | 
					  group: batch
 | 
				
			||||||
  kind: Job
 | 
					  kind: Job
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  group: batch
 | 
					 | 
				
			||||||
  kind: Job
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/jobTemplate/spec/selector/matchLabels
 | 
					- path: spec/jobTemplate/spec/selector/matchLabels
 | 
				
			||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: batch
 | 
					  group: batch
 | 
				
			||||||
  kind: CronJob
 | 
					  kind: CronJob
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- path: spec/jobTemplate/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  group: batch
 | 
					 | 
				
			||||||
  kind: CronJob
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/jobTemplate/spec/template/metadata/labels
 | 
					 | 
				
			||||||
  create: true
 | 
					 | 
				
			||||||
  group: batch
 | 
					 | 
				
			||||||
  kind: CronJob
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- path: spec/selector/matchLabels
 | 
					- path: spec/selector/matchLabels
 | 
				
			||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: policy
 | 
					  group: policy
 | 
				
			||||||
@@ -156,4 +110,4 @@ commonLabels:
 | 
				
			|||||||
  create: false
 | 
					  create: false
 | 
				
			||||||
  group: networking.k8s.io
 | 
					  group: networking.k8s.io
 | 
				
			||||||
  kind: NetworkPolicy
 | 
					  kind: NetworkPolicy
 | 
				
			||||||
`
 | 
					` + metadataLabelsFieldSpecs
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/defaultconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/defaultconfig.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -13,6 +13,7 @@ func GetDefaultFieldSpecs() []byte {
 | 
				
			|||||||
		[]byte(namePrefixFieldSpecs),
 | 
							[]byte(namePrefixFieldSpecs),
 | 
				
			||||||
		[]byte(nameSuffixFieldSpecs),
 | 
							[]byte(nameSuffixFieldSpecs),
 | 
				
			||||||
		[]byte(commonLabelFieldSpecs),
 | 
							[]byte(commonLabelFieldSpecs),
 | 
				
			||||||
 | 
							[]byte(templateLabelFieldSpecs),
 | 
				
			||||||
		[]byte(commonAnnotationFieldSpecs),
 | 
							[]byte(commonAnnotationFieldSpecs),
 | 
				
			||||||
		[]byte(namespaceFieldSpecs),
 | 
							[]byte(namespaceFieldSpecs),
 | 
				
			||||||
		[]byte(varReferenceFieldSpecs),
 | 
							[]byte(varReferenceFieldSpecs),
 | 
				
			||||||
@@ -30,6 +31,7 @@ func GetDefaultFieldSpecsAsMap() map[string]string {
 | 
				
			|||||||
	result["nameprefix"] = namePrefixFieldSpecs
 | 
						result["nameprefix"] = namePrefixFieldSpecs
 | 
				
			||||||
	result["namesuffix"] = nameSuffixFieldSpecs
 | 
						result["namesuffix"] = nameSuffixFieldSpecs
 | 
				
			||||||
	result["commonlabels"] = commonLabelFieldSpecs
 | 
						result["commonlabels"] = commonLabelFieldSpecs
 | 
				
			||||||
 | 
						result["templatelabels"] = templateLabelFieldSpecs
 | 
				
			||||||
	result["commonannotations"] = commonAnnotationFieldSpecs
 | 
						result["commonannotations"] = commonAnnotationFieldSpecs
 | 
				
			||||||
	result["namespace"] = namespaceFieldSpecs
 | 
						result["namespace"] = namespaceFieldSpecs
 | 
				
			||||||
	result["varreference"] = varReferenceFieldSpecs
 | 
						result["varreference"] = varReferenceFieldSpecs
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										51
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/metadatalabels.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/metadatalabels.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					// Copyright 2019 The Kubernetes Authors.
 | 
				
			||||||
 | 
					// SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package builtinpluginconsts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const metadataLabelsFieldSpecs = `
 | 
				
			||||||
 | 
					- path: metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  version: v1
 | 
				
			||||||
 | 
					  kind: ReplicationController
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  kind: Deployment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  kind: ReplicaSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  kind: DaemonSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  group: apps
 | 
				
			||||||
 | 
					  kind: StatefulSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/volumeClaimTemplates[]/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  group: apps
 | 
				
			||||||
 | 
					  kind: StatefulSet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  group: batch
 | 
				
			||||||
 | 
					  kind: Job
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/jobTemplate/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  group: batch
 | 
				
			||||||
 | 
					  kind: CronJob
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- path: spec/jobTemplate/spec/template/metadata/labels
 | 
				
			||||||
 | 
					  create: true
 | 
				
			||||||
 | 
					  group: batch
 | 
				
			||||||
 | 
					  kind: CronJob
 | 
				
			||||||
 | 
					`
 | 
				
			||||||
							
								
								
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/templatelabels.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								vendor/sigs.k8s.io/kustomize/api/konfig/builtinpluginconsts/templatelabels.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					// Copyright 2019 The Kubernetes Authors.
 | 
				
			||||||
 | 
					// SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package builtinpluginconsts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const templateLabelFieldSpecs = `
 | 
				
			||||||
 | 
					templateLabels:
 | 
				
			||||||
 | 
					` + metadataLabelsFieldSpecs
 | 
				
			||||||
							
								
								
									
										56
									
								
								vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								vendor/sigs.k8s.io/kustomize/api/krusty/kustomizer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,6 +5,7 @@ package krusty
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/builtins"
 | 
						"sigs.k8s.io/kustomize/api/internal/builtins"
 | 
				
			||||||
	pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
 | 
						pLdr "sigs.k8s.io/kustomize/api/internal/plugins/loader"
 | 
				
			||||||
@@ -16,6 +17,7 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/api/provider"
 | 
						"sigs.k8s.io/kustomize/api/provider"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resmap"
 | 
						"sigs.k8s.io/kustomize/api/resmap"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/openapi"
 | 
						"sigs.k8s.io/kustomize/kyaml/openapi"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -89,11 +91,9 @@ func (b *Kustomizer) Run(
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if b.options.DoLegacyResourceSort {
 | 
						err = b.applySortOrder(m, kt)
 | 
				
			||||||
		err = builtins.NewLegacyOrderTransformerPlugin().Transform(m)
 | 
						if err != nil {
 | 
				
			||||||
		if err != nil {
 | 
							return nil, err
 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if b.options.AddManagedbyLabel || utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.ManagedByLabelOption) {
 | 
						if b.options.AddManagedbyLabel || utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.ManagedByLabelOption) {
 | 
				
			||||||
		t := builtins.LabelTransformerPlugin{
 | 
							t := builtins.LabelTransformerPlugin{
 | 
				
			||||||
@@ -112,10 +112,52 @@ func (b *Kustomizer) Run(
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	m.RemoveBuildAnnotations()
 | 
						m.RemoveBuildAnnotations()
 | 
				
			||||||
	if !utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.OriginAnnotations) {
 | 
						if !utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.OriginAnnotations) {
 | 
				
			||||||
		m.RemoveOriginAnnotations()
 | 
							err = m.RemoveOriginAnnotations()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, errors.WrapPrefixf(err, "failed to clean up origin tracking annotations")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if !utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.TransformerAnnotations) {
 | 
						if !utils.StringSliceContains(kt.Kustomization().BuildMetadata, types.TransformerAnnotations) {
 | 
				
			||||||
		m.RemoveTransformerAnnotations()
 | 
							err = m.RemoveTransformerAnnotations()
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return nil, errors.WrapPrefixf(err, "failed to clean up transformer annotations")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return m, nil
 | 
						return m, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (b *Kustomizer) applySortOrder(m resmap.ResMap, kt *target.KustTarget) error {
 | 
				
			||||||
 | 
						// Sort order can be defined in two places:
 | 
				
			||||||
 | 
						// - (new) kustomization file
 | 
				
			||||||
 | 
						// - (old) CLI flag
 | 
				
			||||||
 | 
						//
 | 
				
			||||||
 | 
						// We want the kustomization file to take precedence over the CLI flag.
 | 
				
			||||||
 | 
						// Eventually, we may want to move away from having a CLI flag altogether:
 | 
				
			||||||
 | 
						// https://github.com/kubernetes-sigs/kustomize/issues/3947
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Case 1: Sort order set in kustomization file.
 | 
				
			||||||
 | 
						if kt.Kustomization().SortOptions != nil {
 | 
				
			||||||
 | 
							// If set in CLI flag too, warn the user.
 | 
				
			||||||
 | 
							if b.options.Reorder != ReorderOptionUnspecified {
 | 
				
			||||||
 | 
								log.Println("Warning: Sorting order is set both in 'kustomization.yaml'" +
 | 
				
			||||||
 | 
									" ('sortOptions') and in a CLI flag ('--reorder'). Using the" +
 | 
				
			||||||
 | 
									" kustomization file over the CLI flag.")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							pl := &builtins.SortOrderTransformerPlugin{
 | 
				
			||||||
 | 
								SortOptions: kt.Kustomization().SortOptions,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err := pl.Transform(m)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return errors.Wrap(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else if b.options.Reorder == ReorderOptionLegacy || b.options.Reorder == ReorderOptionUnspecified {
 | 
				
			||||||
 | 
							// Case 2: Sort order set in CLI flag only or not at all.
 | 
				
			||||||
 | 
							pl := &builtins.SortOrderTransformerPlugin{
 | 
				
			||||||
 | 
								SortOptions: &types.SortOptions{
 | 
				
			||||||
 | 
									Order: types.LegacySortOrder,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return errors.Wrap(pl.Transform(m))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										30
									
								
								vendor/sigs.k8s.io/kustomize/api/krusty/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/sigs.k8s.io/kustomize/api/krusty/options.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,6 +8,14 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type ReorderOption string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const (
 | 
				
			||||||
 | 
						ReorderOptionLegacy      ReorderOption = "legacy"
 | 
				
			||||||
 | 
						ReorderOptionNone        ReorderOption = "none"
 | 
				
			||||||
 | 
						ReorderOptionUnspecified ReorderOption = "unspecified"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Options holds high-level kustomize configuration options,
 | 
					// Options holds high-level kustomize configuration options,
 | 
				
			||||||
// e.g. are plugins enabled, should the loader be restricted
 | 
					// e.g. are plugins enabled, should the loader be restricted
 | 
				
			||||||
// to the kustomization root, etc.
 | 
					// to the kustomization root, etc.
 | 
				
			||||||
@@ -16,7 +24,15 @@ type Options struct {
 | 
				
			|||||||
	// per a particular sort order.  When false, don't do the
 | 
						// per a particular sort order.  When false, don't do the
 | 
				
			||||||
	// sort, and instead respect the depth-first resource input
 | 
						// sort, and instead respect the depth-first resource input
 | 
				
			||||||
	// order as specified by the kustomization file(s).
 | 
						// order as specified by the kustomization file(s).
 | 
				
			||||||
	DoLegacyResourceSort bool
 | 
					
 | 
				
			||||||
 | 
						// Sort the resources before emitting them. Possible values:
 | 
				
			||||||
 | 
						// - "legacy": Use a fixed order that kustomize provides for backwards
 | 
				
			||||||
 | 
						//   compatibility.
 | 
				
			||||||
 | 
						// - "none": Respect the depth-first resource input order as specified by the
 | 
				
			||||||
 | 
						//   kustomization file.
 | 
				
			||||||
 | 
						// - "unspecified": The user didn't specify any preference. Kustomize will
 | 
				
			||||||
 | 
						//   select the appropriate default.
 | 
				
			||||||
 | 
						Reorder ReorderOption
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// When true, a label
 | 
						// When true, a label
 | 
				
			||||||
	//     app.kubernetes.io/managed-by: kustomize-<version>
 | 
						//     app.kubernetes.io/managed-by: kustomize-<version>
 | 
				
			||||||
@@ -27,9 +43,6 @@ type Options struct {
 | 
				
			|||||||
	// See type definition.
 | 
						// See type definition.
 | 
				
			||||||
	LoadRestrictions types.LoadRestrictions
 | 
						LoadRestrictions types.LoadRestrictions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Create an inventory object for pruning.
 | 
					 | 
				
			||||||
	DoPrune bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Options related to kustomize plugins.
 | 
						// Options related to kustomize plugins.
 | 
				
			||||||
	PluginConfig *types.PluginConfig
 | 
						PluginConfig *types.PluginConfig
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -37,11 +50,10 @@ type Options struct {
 | 
				
			|||||||
// MakeDefaultOptions returns a default instance of Options.
 | 
					// MakeDefaultOptions returns a default instance of Options.
 | 
				
			||||||
func MakeDefaultOptions() *Options {
 | 
					func MakeDefaultOptions() *Options {
 | 
				
			||||||
	return &Options{
 | 
						return &Options{
 | 
				
			||||||
		DoLegacyResourceSort: false,
 | 
							Reorder:           ReorderOptionNone,
 | 
				
			||||||
		AddManagedbyLabel:    false,
 | 
							AddManagedbyLabel: false,
 | 
				
			||||||
		LoadRestrictions:     types.LoadRestrictionsRootOnly,
 | 
							LoadRestrictions:  types.LoadRestrictionsRootOnly,
 | 
				
			||||||
		DoPrune:              false,
 | 
							PluginConfig:      types.DisabledPluginConfig(),
 | 
				
			||||||
		PluginConfig:         types.DisabledPluginConfig(),
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/api/kv/kv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/api/kv/kv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,15 +7,14 @@ import (
 | 
				
			|||||||
	"bufio"
 | 
						"bufio"
 | 
				
			||||||
	"bytes"
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"os"
 | 
					 | 
				
			||||||
	"path"
 | 
					 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
	"unicode"
 | 
						"unicode"
 | 
				
			||||||
	"unicode/utf8"
 | 
						"unicode/utf8"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/api/internal/generators"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var utf8bom = []byte{0xEF, 0xBB, 0xBF}
 | 
					var utf8bom = []byte{0xEF, 0xBB, 0xBF}
 | 
				
			||||||
@@ -41,23 +40,23 @@ func (kvl *loader) Load(
 | 
				
			|||||||
	args types.KvPairSources) (all []types.Pair, err error) {
 | 
						args types.KvPairSources) (all []types.Pair, err error) {
 | 
				
			||||||
	pairs, err := kvl.keyValuesFromEnvFiles(args.EnvSources)
 | 
						pairs, err := kvl.keyValuesFromEnvFiles(args.EnvSources)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, fmt.Sprintf(
 | 
							return nil, errors.WrapPrefixf(err,
 | 
				
			||||||
			"env source files: %v",
 | 
								"env source files: %v",
 | 
				
			||||||
			args.EnvSources))
 | 
								args.EnvSources)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	all = append(all, pairs...)
 | 
						all = append(all, pairs...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pairs, err = keyValuesFromLiteralSources(args.LiteralSources)
 | 
						pairs, err = keyValuesFromLiteralSources(args.LiteralSources)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, fmt.Sprintf(
 | 
							return nil, errors.WrapPrefixf(err,
 | 
				
			||||||
			"literal sources %v", args.LiteralSources))
 | 
								"literal sources %v", args.LiteralSources)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	all = append(all, pairs...)
 | 
						all = append(all, pairs...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pairs, err = kvl.keyValuesFromFileSources(args.FileSources)
 | 
						pairs, err = kvl.keyValuesFromFileSources(args.FileSources)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.Wrap(err, fmt.Sprintf(
 | 
							return nil, errors.WrapPrefixf(err,
 | 
				
			||||||
			"file sources: %v", args.FileSources))
 | 
								"file sources: %v", args.FileSources)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return append(all, pairs...), nil
 | 
						return append(all, pairs...), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -77,7 +76,7 @@ func keyValuesFromLiteralSources(sources []string) ([]types.Pair, error) {
 | 
				
			|||||||
func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, error) {
 | 
					func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, error) {
 | 
				
			||||||
	var kvs []types.Pair
 | 
						var kvs []types.Pair
 | 
				
			||||||
	for _, s := range sources {
 | 
						for _, s := range sources {
 | 
				
			||||||
		k, fPath, err := parseFileSource(s)
 | 
							k, fPath, err := generators.ParseFileSource(s)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -162,44 +161,13 @@ func (kvl *loader) keyValuesFromLine(line []byte, currentLine int) (types.Pair,
 | 
				
			|||||||
	if len(data) == 2 {
 | 
						if len(data) == 2 {
 | 
				
			||||||
		kv.Value = data[1]
 | 
							kv.Value = data[1]
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		// No value (no `=` in the line) is a signal to obtain the value
 | 
							// If there is no value (no `=` in the line), we set the value to an empty string
 | 
				
			||||||
		// from the environment. This behaviour was accidentally imported from kubectl code, and
 | 
							kv.Value = ""
 | 
				
			||||||
		// will be removed in the next major release of Kustomize.
 | 
					 | 
				
			||||||
		_, _ = fmt.Fprintln(os.Stderr, "WARNING: "+
 | 
					 | 
				
			||||||
			"This Kustomization is relying on a bug that loads values from the environment "+
 | 
					 | 
				
			||||||
			"when they are omitted from an env file. "+
 | 
					 | 
				
			||||||
			"This behaviour will be removed in the next major release of Kustomize.")
 | 
					 | 
				
			||||||
		kv.Value = os.Getenv(key)
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	kv.Key = key
 | 
						kv.Key = key
 | 
				
			||||||
	return kv, nil
 | 
						return kv, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ParseFileSource parses the source given.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//  Acceptable formats include:
 | 
					 | 
				
			||||||
//   1.  source-path: the basename will become the key name
 | 
					 | 
				
			||||||
//   2.  source-name=source-path: the source-name will become the key name and
 | 
					 | 
				
			||||||
//       source-path is the path to the key file.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Key names cannot include '='.
 | 
					 | 
				
			||||||
func parseFileSource(source string) (keyName, filePath string, err error) {
 | 
					 | 
				
			||||||
	numSeparators := strings.Count(source, "=")
 | 
					 | 
				
			||||||
	switch {
 | 
					 | 
				
			||||||
	case numSeparators == 0:
 | 
					 | 
				
			||||||
		return path.Base(source), source, nil
 | 
					 | 
				
			||||||
	case numSeparators == 1 && strings.HasPrefix(source, "="):
 | 
					 | 
				
			||||||
		return "", "", fmt.Errorf("key name for file path %v missing", strings.TrimPrefix(source, "="))
 | 
					 | 
				
			||||||
	case numSeparators == 1 && strings.HasSuffix(source, "="):
 | 
					 | 
				
			||||||
		return "", "", fmt.Errorf("file path for key name %v missing", strings.TrimSuffix(source, "="))
 | 
					 | 
				
			||||||
	case numSeparators > 1:
 | 
					 | 
				
			||||||
		return "", "", errors.New("key names or file paths cannot contain '='")
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		components := strings.Split(source, "=")
 | 
					 | 
				
			||||||
		return components[0], components[1], nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParseLiteralSource parses the source key=val pair into its component pieces.
 | 
					// ParseLiteralSource parses the source key=val pair into its component pieces.
 | 
				
			||||||
// This functionality is distinguished from strings.SplitN(source, "=", 2) since
 | 
					// This functionality is distinguished from strings.SplitN(source, "=", 2) since
 | 
				
			||||||
// it returns an error in the case of empty keys, values, or a missing equals sign.
 | 
					// it returns an error in the case of empty keys, values, or a missing equals sign.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										75
									
								
								vendor/sigs.k8s.io/kustomize/api/loader/fileloader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										75
									
								
								vendor/sigs.k8s.io/kustomize/api/loader/fileloader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,7 +5,7 @@ package loader
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
						"io"
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
	"net/http"
 | 
						"net/http"
 | 
				
			||||||
	"net/url"
 | 
						"net/url"
 | 
				
			||||||
@@ -18,6 +18,13 @@ import (
 | 
				
			|||||||
	"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// IsRemoteFile returns whether path has a url scheme that kustomize allows for
 | 
				
			||||||
 | 
					// remote files. See https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md
 | 
				
			||||||
 | 
					func IsRemoteFile(path string) bool {
 | 
				
			||||||
 | 
						u, err := url.Parse(path)
 | 
				
			||||||
 | 
						return err == nil && (u.Scheme == "http" || u.Scheme == "https")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// fileLoader is a kustomization's interface to files.
 | 
					// fileLoader is a kustomization's interface to files.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// The directory in which a kustomization file sits
 | 
					// The directory in which a kustomization file sits
 | 
				
			||||||
@@ -114,6 +121,15 @@ func NewFileLoaderAtRoot(fSys filesys.FileSystem) *fileLoader {
 | 
				
			|||||||
		RestrictionRootOnly, fSys, filesys.Separator)
 | 
							RestrictionRootOnly, fSys, filesys.Separator)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Repo returns the absolute path to the repo that contains Root if this fileLoader was created from a url
 | 
				
			||||||
 | 
					// or the empty string otherwise.
 | 
				
			||||||
 | 
					func (fl *fileLoader) Repo() string {
 | 
				
			||||||
 | 
						if fl.repoSpec != nil {
 | 
				
			||||||
 | 
							return fl.repoSpec.Dir.String()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Root returns the absolute path that is prepended to any
 | 
					// Root returns the absolute path that is prepended to any
 | 
				
			||||||
// relative paths used in Load.
 | 
					// relative paths used in Load.
 | 
				
			||||||
func (fl *fileLoader) Root() string {
 | 
					func (fl *fileLoader) Root() string {
 | 
				
			||||||
@@ -206,6 +222,13 @@ func newLoaderAtGitClone(
 | 
				
			|||||||
			"'%s' refers to file '%s'; expecting directory",
 | 
								"'%s' refers to file '%s'; expecting directory",
 | 
				
			||||||
			repoSpec.AbsPath(), f)
 | 
								repoSpec.AbsPath(), f)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						// Path in repo can contain symlinks that exit repo. We can only
 | 
				
			||||||
 | 
						// check for this after cloning repo.
 | 
				
			||||||
 | 
						if !root.HasPrefix(repoSpec.CloneDir()) {
 | 
				
			||||||
 | 
							_ = cleaner()
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("%q refers to directory outside of repo %q", repoSpec.AbsPath(),
 | 
				
			||||||
 | 
								repoSpec.CloneDir())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return &fileLoader{
 | 
						return &fileLoader{
 | 
				
			||||||
		// Clones never allowed to escape root.
 | 
							// Clones never allowed to escape root.
 | 
				
			||||||
		loadRestrictor: RestrictionRootOnly,
 | 
							loadRestrictor: RestrictionRootOnly,
 | 
				
			||||||
@@ -283,30 +306,8 @@ func (fl *fileLoader) errIfRepoCycle(newRepoSpec *git.RepoSpec) error {
 | 
				
			|||||||
// else an error. Relative paths are taken relative
 | 
					// else an error. Relative paths are taken relative
 | 
				
			||||||
// to the root.
 | 
					// to the root.
 | 
				
			||||||
func (fl *fileLoader) Load(path string) ([]byte, error) {
 | 
					func (fl *fileLoader) Load(path string) ([]byte, error) {
 | 
				
			||||||
	if u, err := url.Parse(path); err == nil && (u.Scheme == "http" || u.Scheme == "https") {
 | 
						if IsRemoteFile(path) {
 | 
				
			||||||
		var hc *http.Client
 | 
							return fl.httpClientGetContent(path)
 | 
				
			||||||
		if fl.http != nil {
 | 
					 | 
				
			||||||
			hc = fl.http
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			hc = &http.Client{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		resp, err := hc.Get(path)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		defer resp.Body.Close()
 | 
					 | 
				
			||||||
		if resp.StatusCode < 200 || resp.StatusCode > 299 {
 | 
					 | 
				
			||||||
			_, err := git.NewRepoSpecFromURL(path)
 | 
					 | 
				
			||||||
			if err == nil {
 | 
					 | 
				
			||||||
				return nil, errors.Errorf("URL is a git repository")
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			return nil, fmt.Errorf("%w: status code %d (%s)", ErrHTTP, resp.StatusCode, http.StatusText(resp.StatusCode))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		body, err := ioutil.ReadAll(resp.Body)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return nil, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return body, nil
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if !filepath.IsAbs(path) {
 | 
						if !filepath.IsAbs(path) {
 | 
				
			||||||
		path = fl.root.Join(path)
 | 
							path = fl.root.Join(path)
 | 
				
			||||||
@@ -318,6 +319,30 @@ func (fl *fileLoader) Load(path string) ([]byte, error) {
 | 
				
			|||||||
	return fl.fSys.ReadFile(path)
 | 
						return fl.fSys.ReadFile(path)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (fl *fileLoader) httpClientGetContent(path string) ([]byte, error) {
 | 
				
			||||||
 | 
						var hc *http.Client
 | 
				
			||||||
 | 
						if fl.http != nil {
 | 
				
			||||||
 | 
							hc = fl.http
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							hc = &http.Client{}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						resp, err := hc.Get(path)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, errors.Wrap(err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer resp.Body.Close()
 | 
				
			||||||
 | 
						// response unsuccessful
 | 
				
			||||||
 | 
						if resp.StatusCode < 200 || resp.StatusCode > 299 {
 | 
				
			||||||
 | 
							_, err = git.NewRepoSpecFromURL(path)
 | 
				
			||||||
 | 
							if err == nil {
 | 
				
			||||||
 | 
								return nil, errors.Errorf("URL is a git repository")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return nil, fmt.Errorf("%w: status code %d (%s)", ErrHTTP, resp.StatusCode, http.StatusText(resp.StatusCode))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						content, err := io.ReadAll(resp.Body)
 | 
				
			||||||
 | 
						return content, errors.Wrap(err)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Cleanup runs the cleaner.
 | 
					// Cleanup runs the cleaner.
 | 
				
			||||||
func (fl *fileLoader) Cleanup() error {
 | 
					func (fl *fileLoader) Cleanup() error {
 | 
				
			||||||
	return fl.cleaner()
 | 
						return fl.cleaner()
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										58
									
								
								vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								vendor/sigs.k8s.io/kustomize/api/provenance/provenance.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,47 +6,63 @@ package provenance
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"runtime"
 | 
						"runtime"
 | 
				
			||||||
 | 
						"runtime/debug"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// These variables are set at build time using ldflags.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//nolint:gochecknoglobals
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	version = "unknown"
 | 
						// During a release, this will be set to the release tag, e.g. "kustomize/v4.5.7"
 | 
				
			||||||
	// sha1 from git, output of $(git rev-parse HEAD)
 | 
						version = developmentVersion
 | 
				
			||||||
	gitCommit = "$Format:%H$"
 | 
					 | 
				
			||||||
	// build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')
 | 
						// build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')
 | 
				
			||||||
	buildDate = "1970-01-01T00:00:00Z"
 | 
						buildDate = "unknown"
 | 
				
			||||||
	goos      = runtime.GOOS
 | 
					 | 
				
			||||||
	goarch    = runtime.GOARCH
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This default value, (devel), matches
 | 
				
			||||||
 | 
					// the value debug.BuildInfo uses for an unset main module version.
 | 
				
			||||||
 | 
					const developmentVersion = "(devel)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Provenance holds information about the build of an executable.
 | 
					// Provenance holds information about the build of an executable.
 | 
				
			||||||
type Provenance struct {
 | 
					type Provenance struct {
 | 
				
			||||||
	// Version of the kustomize binary.
 | 
						// Version of the kustomize binary.
 | 
				
			||||||
	Version string `json:"version,omitempty"`
 | 
						Version string `json:"version,omitempty" yaml:"version,omitempty"`
 | 
				
			||||||
	// GitCommit is a git commit
 | 
						// GitCommit is a git commit
 | 
				
			||||||
	GitCommit string `json:"gitCommit,omitempty"`
 | 
						GitCommit string `json:"gitCommit,omitempty" yaml:"gitCommit,omitempty"`
 | 
				
			||||||
	// BuildDate is date of the build.
 | 
						// BuildDate is date of the build.
 | 
				
			||||||
	BuildDate string `json:"buildDate,omitempty"`
 | 
						BuildDate string `json:"buildDate,omitempty" yaml:"buildDate,omitempty"`
 | 
				
			||||||
	// GoOs holds OS name.
 | 
						// GoOs holds OS name.
 | 
				
			||||||
	GoOs string `json:"goOs,omitempty"`
 | 
						GoOs string `json:"goOs,omitempty" yaml:"goOs,omitempty"`
 | 
				
			||||||
	// GoArch holds architecture name.
 | 
						// GoArch holds architecture name.
 | 
				
			||||||
	GoArch string `json:"goArch,omitempty"`
 | 
						GoArch string `json:"goArch,omitempty" yaml:"goArch,omitempty"`
 | 
				
			||||||
 | 
						// GoVersion holds Go version.
 | 
				
			||||||
 | 
						GoVersion string `json:"goVersion,omitempty" yaml:"goVersion,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetProvenance returns an instance of Provenance.
 | 
					// GetProvenance returns an instance of Provenance.
 | 
				
			||||||
func GetProvenance() Provenance {
 | 
					func GetProvenance() Provenance {
 | 
				
			||||||
	return Provenance{
 | 
						p := Provenance{
 | 
				
			||||||
		version,
 | 
							BuildDate: buildDate,
 | 
				
			||||||
		gitCommit,
 | 
							Version:   version,
 | 
				
			||||||
		buildDate,
 | 
							GitCommit: "unknown",
 | 
				
			||||||
		goos,
 | 
							GoOs:      runtime.GOOS,
 | 
				
			||||||
		goarch,
 | 
							GoArch:    runtime.GOARCH,
 | 
				
			||||||
 | 
							GoVersion: runtime.Version(),
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						info, ok := debug.ReadBuildInfo()
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							return p
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Full returns the full provenance stamp.
 | 
						for _, setting := range info.Settings {
 | 
				
			||||||
func (v Provenance) Full() string {
 | 
							// For now, the git commit is the only information of interest.
 | 
				
			||||||
	return fmt.Sprintf("%+v", v)
 | 
							// We could consider adding other info such as the commit date in the future.
 | 
				
			||||||
 | 
							if setting.Key == "vcs.revision" {
 | 
				
			||||||
 | 
								p.GitCommit = setting.Value
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return p
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Short returns the shortened provenance stamp.
 | 
					// Short returns the shortened provenance stamp.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/factory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/factory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,11 +4,11 @@
 | 
				
			|||||||
package resmap
 | 
					package resmap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/ifc"
 | 
						"sigs.k8s.io/kustomize/api/ifc"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/internal/kusterr"
 | 
						"sigs.k8s.io/kustomize/api/internal/kusterr"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
						"sigs.k8s.io/kustomize/kyaml/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,7 +81,7 @@ func (rmF *Factory) NewResMapFromConfigMapArgs(
 | 
				
			|||||||
	for i := range argList {
 | 
						for i := range argList {
 | 
				
			||||||
		res, err := rmF.resF.MakeConfigMap(kvLdr, &argList[i])
 | 
							res, err := rmF.resF.MakeConfigMap(kvLdr, &argList[i])
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, errors.Wrap(err, "NewResMapFromConfigMapArgs")
 | 
								return nil, errors.WrapPrefixf(err, "NewResMapFromConfigMapArgs")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		resources = append(resources, res)
 | 
							resources = append(resources, res)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -106,7 +106,7 @@ func (rmF *Factory) NewResMapFromSecretArgs(
 | 
				
			|||||||
	for i := range argsList {
 | 
						for i := range argsList {
 | 
				
			||||||
		res, err := rmF.resF.MakeSecret(kvLdr, &argsList[i])
 | 
							res, err := rmF.resF.MakeSecret(kvLdr, &argsList[i])
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, errors.Wrap(err, "NewResMapFromSecretArgs")
 | 
								return nil, errors.WrapPrefixf(err, "NewResMapFromSecretArgs")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		resources = append(resources, res)
 | 
							resources = append(resources, res)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										37
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,37 +0,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 resmap
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"sort"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IdSlice implements the sort interface.
 | 
					 | 
				
			||||||
type IdSlice []resid.ResId
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var _ sort.Interface = IdSlice{}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a IdSlice) Len() int      { return len(a) }
 | 
					 | 
				
			||||||
func (a IdSlice) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
 | 
					 | 
				
			||||||
func (a IdSlice) Less(i, j int) bool {
 | 
					 | 
				
			||||||
	if !a[i].Gvk.Equals(a[j].Gvk) {
 | 
					 | 
				
			||||||
		return a[i].Gvk.IsLessThan(a[j].Gvk)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return a[i].LegacySortString() < a[j].LegacySortString()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,10 +8,10 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"reflect"
 | 
						"reflect"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
					 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/filters/annotations"
 | 
						"sigs.k8s.io/kustomize/api/filters/annotations"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/resource"
 | 
						"sigs.k8s.io/kustomize/api/resource"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/kio"
 | 
						"sigs.k8s.io/kustomize/kyaml/kio"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/kyaml/resid"
 | 
						"sigs.k8s.io/kustomize/kyaml/resid"
 | 
				
			||||||
	kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
 | 
						kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
 | 
				
			||||||
@@ -108,7 +108,7 @@ func (m *resWrangler) Replace(res *resource.Resource) (int, error) {
 | 
				
			|||||||
	id := res.CurId()
 | 
						id := res.CurId()
 | 
				
			||||||
	i, err := m.GetIndexOfCurrentId(id)
 | 
						i, err := m.GetIndexOfCurrentId(id)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return -1, errors.Wrap(err, "in Replace")
 | 
							return -1, errors.WrapPrefixf(err, "in Replace")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if i < 0 {
 | 
						if i < 0 {
 | 
				
			||||||
		return -1, fmt.Errorf("cannot find resource with id %s to replace", id)
 | 
							return -1, fmt.Errorf("cannot find resource with id %s to replace", id)
 | 
				
			||||||
@@ -286,7 +286,7 @@ func (m *resWrangler) AsYaml() ([]byte, error) {
 | 
				
			|||||||
		out, err := res.AsYAML()
 | 
							out, err := res.AsYAML()
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			m, _ := res.Map()
 | 
								m, _ := res.Map()
 | 
				
			||||||
			return nil, errors.Wrapf(err, "%#v", m)
 | 
								return nil, errors.WrapPrefixf(err, "%#v", m)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if firstObj {
 | 
							if firstObj {
 | 
				
			||||||
			firstObj = false
 | 
								firstObj = false
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/resource/origin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/api/resource/origin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -52,7 +52,7 @@ func (origin *Origin) Append(path string) *Origin {
 | 
				
			|||||||
	originCopy := origin.Copy()
 | 
						originCopy := origin.Copy()
 | 
				
			||||||
	repoSpec, err := git.NewRepoSpecFromURL(path)
 | 
						repoSpec, err := git.NewRepoSpecFromURL(path)
 | 
				
			||||||
	if err == nil {
 | 
						if err == nil {
 | 
				
			||||||
		originCopy.Repo = repoSpec.Host + repoSpec.OrgRepo
 | 
							originCopy.Repo = repoSpec.CloneSpec()
 | 
				
			||||||
		absPath := repoSpec.AbsPath()
 | 
							absPath := repoSpec.AbsPath()
 | 
				
			||||||
		path = absPath[strings.Index(absPath[1:], "/")+1:][1:]
 | 
							path = absPath[strings.Index(absPath[1:], "/")+1:][1:]
 | 
				
			||||||
		originCopy.Path = ""
 | 
							originCopy.Path = ""
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								vendor/sigs.k8s.io/kustomize/api/resource/resource.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/sigs.k8s.io/kustomize/api/resource/resource.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -164,10 +164,17 @@ func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error {
 | 
				
			|||||||
		mergeStringMaps(other.GetLabels(), r.GetLabels())); err != nil {
 | 
							mergeStringMaps(other.GetLabels(), r.GetLabels())); err != nil {
 | 
				
			||||||
		return fmt.Errorf("copyMerge cannot set labels - %w", err)
 | 
							return fmt.Errorf("copyMerge cannot set labels - %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err := r.SetAnnotations(
 | 
					
 | 
				
			||||||
		mergeStringMapsWithBuildAnnotations(other.GetAnnotations(), r.GetAnnotations())); err != nil {
 | 
						ra := r.GetAnnotations()
 | 
				
			||||||
 | 
						_, enableNameSuffixHash := ra[utils.BuildAnnotationsGenAddHashSuffix]
 | 
				
			||||||
 | 
						merged := mergeStringMapsWithBuildAnnotations(other.GetAnnotations(), ra)
 | 
				
			||||||
 | 
						if !enableNameSuffixHash {
 | 
				
			||||||
 | 
							delete(merged, utils.BuildAnnotationsGenAddHashSuffix)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if err := r.SetAnnotations(merged); err != nil {
 | 
				
			||||||
		return fmt.Errorf("copyMerge cannot set annotations - %w", err)
 | 
							return fmt.Errorf("copyMerge cannot set annotations - %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err := r.SetName(other.GetName()); err != nil {
 | 
						if err := r.SetName(other.GetName()); err != nil {
 | 
				
			||||||
		return fmt.Errorf("copyMerge cannot set name - %w", err)
 | 
							return fmt.Errorf("copyMerge cannot set name - %w", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/types/erronlybuiltinpluginsallowed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/types/erronlybuiltinpluginsallowed.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -6,7 +6,7 @@ package types
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type errOnlyBuiltinPluginsAllowed struct {
 | 
					type errOnlyBuiltinPluginsAllowed struct {
 | 
				
			||||||
@@ -24,10 +24,6 @@ func NewErrOnlyBuiltinPluginsAllowed(n string) *errOnlyBuiltinPluginsAllowed {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsErrOnlyBuiltinPluginsAllowed(err error) bool {
 | 
					func IsErrOnlyBuiltinPluginsAllowed(err error) bool {
 | 
				
			||||||
	_, ok := err.(*errOnlyBuiltinPluginsAllowed)
 | 
						e := &errOnlyBuiltinPluginsAllowed{}
 | 
				
			||||||
	if ok {
 | 
						return errors.As(err, &e)
 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, ok = errors.Cause(err).(*errOnlyBuiltinPluginsAllowed)
 | 
					 | 
				
			||||||
	return ok
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/api/types/errunabletofind.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -7,7 +7,7 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/pkg/errors"
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type errUnableToFind struct {
 | 
					type errUnableToFind struct {
 | 
				
			||||||
@@ -31,10 +31,6 @@ func NewErrUnableToFind(w string, a []Pair) *errUnableToFind {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsErrUnableToFind(err error) bool {
 | 
					func IsErrUnableToFind(err error) bool {
 | 
				
			||||||
	_, ok := err.(*errUnableToFind)
 | 
						e := &errUnableToFind{}
 | 
				
			||||||
	if ok {
 | 
						return errors.As(err, &e)
 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	_, ok = errors.Cause(err).(*errUnableToFind)
 | 
					 | 
				
			||||||
	return ok
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/api/types/fix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/api/types/fix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,54 +0,0 @@
 | 
				
			|||||||
// Copyright 2019 The Kubernetes Authors.
 | 
					 | 
				
			||||||
// SPDX-License-Identifier: Apache-2.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package types
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"regexp"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FixKustomizationPreUnmarshalling modifies the raw data
 | 
					 | 
				
			||||||
// before marshalling - e.g. changes old field names to
 | 
					 | 
				
			||||||
// new field names.
 | 
					 | 
				
			||||||
func FixKustomizationPreUnmarshalling(data []byte) ([]byte, error) {
 | 
					 | 
				
			||||||
	deprecatedFieldsMap := map[string]string{
 | 
					 | 
				
			||||||
		"imageTags:": "images:",
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for oldname, newname := range deprecatedFieldsMap {
 | 
					 | 
				
			||||||
		pattern := regexp.MustCompile(oldname)
 | 
					 | 
				
			||||||
		data = pattern.ReplaceAll(data, []byte(newname))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	doLegacy, err := useLegacyPatch(data)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if doLegacy {
 | 
					 | 
				
			||||||
		pattern := regexp.MustCompile("patches:")
 | 
					 | 
				
			||||||
		data = pattern.ReplaceAll(data, []byte("patchesStrategicMerge:"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return data, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func useLegacyPatch(data []byte) (bool, error) {
 | 
					 | 
				
			||||||
	found := false
 | 
					 | 
				
			||||||
	var object map[string]interface{}
 | 
					 | 
				
			||||||
	err := yaml.Unmarshal(data, &object)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return false, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if rawPatches, ok := object["patches"]; ok {
 | 
					 | 
				
			||||||
		patches, ok := rawPatches.([]interface{})
 | 
					 | 
				
			||||||
		if !ok {
 | 
					 | 
				
			||||||
			return false, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		for _, p := range patches {
 | 
					 | 
				
			||||||
			_, ok := p.(string)
 | 
					 | 
				
			||||||
			if ok {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return found, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										67
									
								
								vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										67
									
								
								vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -3,6 +3,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package types
 | 
					package types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import "path/filepath"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const HelmDefaultHome = "charts"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type HelmGlobals struct {
 | 
					type HelmGlobals struct {
 | 
				
			||||||
	// ChartHome is a file path, relative to the kustomization root,
 | 
						// ChartHome is a file path, relative to the kustomization root,
 | 
				
			||||||
	// to a directory containing a subdirectory for each chart to be
 | 
						// to a directory containing a subdirectory for each chart to be
 | 
				
			||||||
@@ -55,7 +59,11 @@ type HelmChart struct {
 | 
				
			|||||||
	// in the helm template
 | 
						// in the helm template
 | 
				
			||||||
	Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
 | 
						Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// ValuesFile is local file path to a values file to use _instead of_
 | 
						// AdditionalValuesFiles are local file paths to values files to be used in
 | 
				
			||||||
 | 
						// addition to either the default values file or the values specified in ValuesFile.
 | 
				
			||||||
 | 
						AdditionalValuesFiles []string `json:"additionalValuesFiles,omitempty" yaml:"additionalValuesFiles,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// ValuesFile is a local file path to a values file to use _instead of_
 | 
				
			||||||
	// the default values that accompanied the chart.
 | 
						// the default values that accompanied the chart.
 | 
				
			||||||
	// The default values are in '{ChartHome}/{Name}/values.yaml'.
 | 
						// The default values are in '{ChartHome}/{Name}/values.yaml'.
 | 
				
			||||||
	ValuesFile string `json:"valuesFile,omitempty" yaml:"valuesFile,omitempty"`
 | 
						ValuesFile string `json:"valuesFile,omitempty" yaml:"valuesFile,omitempty"`
 | 
				
			||||||
@@ -71,7 +79,20 @@ type HelmChart struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// IncludeCRDs specifies if Helm should also generate CustomResourceDefinitions.
 | 
						// IncludeCRDs specifies if Helm should also generate CustomResourceDefinitions.
 | 
				
			||||||
	// Defaults to 'false'.
 | 
						// Defaults to 'false'.
 | 
				
			||||||
	IncludeCRDs bool `json:"includeCRDs,omitempty" yaml:"includeCRDs,omitempty"` // nolint: tagliatelle
 | 
						IncludeCRDs bool `json:"includeCRDs,omitempty" yaml:"includeCRDs,omitempty"` //nolint: tagliatelle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// SkipHooks sets the --no-hooks flag when calling helm template. This prevents
 | 
				
			||||||
 | 
						// helm from erroneously rendering test templates.
 | 
				
			||||||
 | 
						SkipHooks bool `json:"skipHooks,omitempty" yaml:"skipHooks,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// ApiVersions is the kubernetes apiversions used for Capabilities.APIVersions
 | 
				
			||||||
 | 
						ApiVersions []string `json:"apiVersions,omitempty" yaml:"apiVersions,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// NameTemplate is for specifying the name template used to name the release.
 | 
				
			||||||
 | 
						NameTemplate string `json:"nameTemplate,omitempty" yaml:"nameTemplate,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// SkipTests skips tests from templated output.
 | 
				
			||||||
 | 
						SkipTests bool `json:"skipTests,omitempty" yaml:"skipTests,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// HelmChartArgs contains arguments to helm.
 | 
					// HelmChartArgs contains arguments to helm.
 | 
				
			||||||
@@ -120,3 +141,45 @@ func makeHelmChartFromHca(old *HelmChartArgs) (c HelmChart) {
 | 
				
			|||||||
	c.ReleaseName = old.ReleaseName
 | 
						c.ReleaseName = old.ReleaseName
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (h HelmChart) AsHelmArgs(absChartHome string) []string {
 | 
				
			||||||
 | 
						args := []string{"template"}
 | 
				
			||||||
 | 
						if h.ReleaseName != "" {
 | 
				
			||||||
 | 
							args = append(args, h.ReleaseName)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							// AFAICT, this doesn't work as intended due to a bug in helm.
 | 
				
			||||||
 | 
							// See https://github.com/helm/helm/issues/6019
 | 
				
			||||||
 | 
							// I've tried placing the flag before and after the name argument.
 | 
				
			||||||
 | 
							args = append(args, "--generate-name")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.Name != "" {
 | 
				
			||||||
 | 
							args = append(args, filepath.Join(absChartHome, h.Name))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.Namespace != "" {
 | 
				
			||||||
 | 
							args = append(args, "--namespace", h.Namespace)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.NameTemplate != "" {
 | 
				
			||||||
 | 
							args = append(args, "--name-template", h.NameTemplate)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if h.ValuesFile != "" {
 | 
				
			||||||
 | 
							args = append(args, "-f", h.ValuesFile)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, valuesFile := range h.AdditionalValuesFiles {
 | 
				
			||||||
 | 
							args = append(args, "-f", valuesFile)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for _, apiVer := range h.ApiVersions {
 | 
				
			||||||
 | 
							args = append(args, "--api-versions", apiVer)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.IncludeCRDs {
 | 
				
			||||||
 | 
							args = append(args, "--include-crds")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.SkipTests {
 | 
				
			||||||
 | 
							args = append(args, "--skip-tests")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if h.SkipHooks {
 | 
				
			||||||
 | 
							args = append(args, "--no-hooks")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return args
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								vendor/sigs.k8s.io/kustomize/api/types/inventory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/sigs.k8s.io/kustomize/api/types/inventory.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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"`
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										84
									
								
								vendor/sigs.k8s.io/kustomize/api/types/kustomization.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										84
									
								
								vendor/sigs.k8s.io/kustomize/api/types/kustomization.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -8,6 +8,8 @@ import (
 | 
				
			|||||||
	"encoding/json"
 | 
						"encoding/json"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/errors"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/kyaml/filesys"
 | 
				
			||||||
	"sigs.k8s.io/yaml"
 | 
						"sigs.k8s.io/yaml"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -59,12 +61,14 @@ type Kustomization struct {
 | 
				
			|||||||
	// CommonAnnotations to add to all objects.
 | 
						// CommonAnnotations to add to all objects.
 | 
				
			||||||
	CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
 | 
						CommonAnnotations map[string]string `json:"commonAnnotations,omitempty" yaml:"commonAnnotations,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Deprecated: Use the Patches field instead, which provides a superset of the functionality of PatchesStrategicMerge.
 | 
				
			||||||
	// PatchesStrategicMerge specifies the relative path to a file
 | 
						// PatchesStrategicMerge specifies the relative path to a file
 | 
				
			||||||
	// containing a strategic merge patch.  Format documented at
 | 
						// containing a strategic merge patch.  Format documented at
 | 
				
			||||||
	// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md
 | 
						// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md
 | 
				
			||||||
	// URLs and globs are not supported.
 | 
						// URLs and globs are not supported.
 | 
				
			||||||
	PatchesStrategicMerge []PatchStrategicMerge `json:"patchesStrategicMerge,omitempty" yaml:"patchesStrategicMerge,omitempty"`
 | 
						PatchesStrategicMerge []PatchStrategicMerge `json:"patchesStrategicMerge,omitempty" yaml:"patchesStrategicMerge,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Deprecated: Use the Patches field instead, which provides a superset of the functionality of JSONPatches.
 | 
				
			||||||
	// JSONPatches is a list of JSONPatch for applying JSON patch.
 | 
						// JSONPatches is a list of JSONPatch for applying JSON patch.
 | 
				
			||||||
	// Format documented at https://tools.ietf.org/html/rfc6902
 | 
						// Format documented at https://tools.ietf.org/html/rfc6902
 | 
				
			||||||
	// and http://jsonpatch.com
 | 
						// and http://jsonpatch.com
 | 
				
			||||||
@@ -80,6 +84,9 @@ type Kustomization struct {
 | 
				
			|||||||
	// patch, but this operator is simpler to specify.
 | 
						// patch, but this operator is simpler to specify.
 | 
				
			||||||
	Images []Image `json:"images,omitempty" yaml:"images,omitempty"`
 | 
						Images []Image `json:"images,omitempty" yaml:"images,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Deprecated: Use the Images field instead.
 | 
				
			||||||
 | 
						ImageTags []Image `json:"imageTags,omitempty" yaml:"imageTags,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Replacements is a list of replacements, which will copy nodes from a
 | 
						// Replacements is a list of replacements, which will copy nodes from a
 | 
				
			||||||
	// specified source to N specified targets.
 | 
						// specified source to N specified targets.
 | 
				
			||||||
	Replacements []ReplacementField `json:"replacements,omitempty" yaml:"replacements,omitempty"`
 | 
						Replacements []ReplacementField `json:"replacements,omitempty" yaml:"replacements,omitempty"`
 | 
				
			||||||
@@ -88,6 +95,7 @@ type Kustomization struct {
 | 
				
			|||||||
	// specification. This can also be done with a patch.
 | 
						// specification. This can also be done with a patch.
 | 
				
			||||||
	Replicas []Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`
 | 
						Replicas []Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Deprecated: Vars will be removed in future release. Migrate to Replacements instead.
 | 
				
			||||||
	// Vars allow things modified by kustomize to be injected into a
 | 
						// Vars allow things modified by kustomize to be injected into a
 | 
				
			||||||
	// kubernetes object specification. A var is a name (e.g. FOO) associated
 | 
						// kubernetes object specification. A var is a name (e.g. FOO) associated
 | 
				
			||||||
	// with a field in a specific resource instance.  The field must
 | 
						// with a field in a specific resource instance.  The field must
 | 
				
			||||||
@@ -97,6 +105,9 @@ type Kustomization struct {
 | 
				
			|||||||
	// value of the specified field has been determined.
 | 
						// value of the specified field has been determined.
 | 
				
			||||||
	Vars []Var `json:"vars,omitempty" yaml:"vars,omitempty"`
 | 
						Vars []Var `json:"vars,omitempty" yaml:"vars,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// SortOptions change the order that kustomize outputs resources.
 | 
				
			||||||
 | 
						SortOptions *SortOptions `json:"sortOptions,omitempty" yaml:"sortOptions,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//
 | 
						//
 | 
				
			||||||
	// Operands - what kustomize operates on.
 | 
						// Operands - what kustomize operates on.
 | 
				
			||||||
	//
 | 
						//
 | 
				
			||||||
@@ -116,9 +127,7 @@ type Kustomization struct {
 | 
				
			|||||||
	// CRDs themselves are not modified.
 | 
						// CRDs themselves are not modified.
 | 
				
			||||||
	Crds []string `json:"crds,omitempty" yaml:"crds,omitempty"`
 | 
						Crds []string `json:"crds,omitempty" yaml:"crds,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Deprecated.
 | 
						// Deprecated: Anything that would have been specified here should be specified in the Resources field instead.
 | 
				
			||||||
	// Anything that would have been specified here should
 | 
					 | 
				
			||||||
	// be specified in the Resources field instead.
 | 
					 | 
				
			||||||
	Bases []string `json:"bases,omitempty" yaml:"bases,omitempty"`
 | 
						Bases []string `json:"bases,omitempty" yaml:"bases,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//
 | 
						//
 | 
				
			||||||
@@ -164,19 +173,46 @@ type Kustomization struct {
 | 
				
			|||||||
	// Validators is a list of files containing validators
 | 
						// Validators is a list of files containing validators
 | 
				
			||||||
	Validators []string `json:"validators,omitempty" yaml:"validators,omitempty"`
 | 
						Validators []string `json:"validators,omitempty" yaml:"validators,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Inventory appends an object that contains the record
 | 
					 | 
				
			||||||
	// of all other objects, which can be used in apply, prune and delete
 | 
					 | 
				
			||||||
	Inventory *Inventory `json:"inventory,omitempty" yaml:"inventory,omitempty"`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// BuildMetadata is a list of strings used to toggle different build options
 | 
						// BuildMetadata is a list of strings used to toggle different build options
 | 
				
			||||||
	BuildMetadata []string `json:"buildMetadata,omitempty" yaml:"buildMetadata,omitempty"`
 | 
						BuildMetadata []string `json:"buildMetadata,omitempty" yaml:"buildMetadata,omitempty"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// FixKustomizationPostUnmarshalling fixes things
 | 
					const (
 | 
				
			||||||
 | 
						deprecatedWarningToRunEditFix              = "Run 'kustomize edit fix' to update your Kustomization automatically."
 | 
				
			||||||
 | 
						deprecatedWarningToRunEditFixExperimential = "[EXPERIMENTAL] Run 'kustomize edit fix' to update your Kustomization automatically."
 | 
				
			||||||
 | 
						deprecatedBaseWarningMessage               = "# Warning: 'bases' is deprecated. Please use 'resources' instead." + " " + deprecatedWarningToRunEditFix
 | 
				
			||||||
 | 
						deprecatedImageTagsWarningMessage          = "# Warning: 'imageTags' is deprecated. Please use 'images' instead." + " " + deprecatedWarningToRunEditFix
 | 
				
			||||||
 | 
						deprecatedPatchesJson6902Message           = "# Warning: 'patchesJson6902' is deprecated. Please use 'patches' instead." + " " + deprecatedWarningToRunEditFix
 | 
				
			||||||
 | 
						deprecatedPatchesStrategicMergeMessage     = "# Warning: 'patchesStrategicMerge' is deprecated. Please use 'patches' instead." + " " + deprecatedWarningToRunEditFix
 | 
				
			||||||
 | 
						deprecatedVarsMessage                      = "# Warning: 'vars' is deprecated. Please use 'replacements' instead." + " " + deprecatedWarningToRunEditFixExperimential
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// CheckDeprecatedFields check deprecated field is used or not.
 | 
				
			||||||
 | 
					func (k *Kustomization) CheckDeprecatedFields() *[]string {
 | 
				
			||||||
 | 
						var warningMessages []string
 | 
				
			||||||
 | 
						if k.Bases != nil {
 | 
				
			||||||
 | 
							warningMessages = append(warningMessages, deprecatedBaseWarningMessage)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if k.ImageTags != nil {
 | 
				
			||||||
 | 
							warningMessages = append(warningMessages, deprecatedImageTagsWarningMessage)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if k.PatchesJson6902 != nil {
 | 
				
			||||||
 | 
							warningMessages = append(warningMessages, deprecatedPatchesJson6902Message)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if k.PatchesStrategicMerge != nil {
 | 
				
			||||||
 | 
							warningMessages = append(warningMessages, deprecatedPatchesStrategicMergeMessage)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if k.Vars != nil {
 | 
				
			||||||
 | 
							warningMessages = append(warningMessages, deprecatedVarsMessage)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return &warningMessages
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// FixKustomization fixes things
 | 
				
			||||||
// like empty fields that should not be empty, or
 | 
					// like empty fields that should not be empty, or
 | 
				
			||||||
// moving content of deprecated fields to newer
 | 
					// moving content of deprecated fields to newer
 | 
				
			||||||
// fields.
 | 
					// fields.
 | 
				
			||||||
func (k *Kustomization) FixKustomizationPostUnmarshalling() {
 | 
					func (k *Kustomization) FixKustomization() {
 | 
				
			||||||
	if k.Kind == "" {
 | 
						if k.Kind == "" {
 | 
				
			||||||
		k.Kind = KustomizationKind
 | 
							k.Kind = KustomizationKind
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -187,8 +223,15 @@ func (k *Kustomization) FixKustomizationPostUnmarshalling() {
 | 
				
			|||||||
			k.APIVersion = KustomizationVersion
 | 
								k.APIVersion = KustomizationVersion
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 'bases' field was deprecated in favor of the 'resources' field.
 | 
				
			||||||
	k.Resources = append(k.Resources, k.Bases...)
 | 
						k.Resources = append(k.Resources, k.Bases...)
 | 
				
			||||||
	k.Bases = nil
 | 
						k.Bases = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 'imageTags' field was deprecated in favor of the 'images' field.
 | 
				
			||||||
 | 
						k.Images = append(k.Images, k.ImageTags...)
 | 
				
			||||||
 | 
						k.ImageTags = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for i, g := range k.ConfigMapGenerator {
 | 
						for i, g := range k.ConfigMapGenerator {
 | 
				
			||||||
		if g.EnvSource != "" {
 | 
							if g.EnvSource != "" {
 | 
				
			||||||
			k.ConfigMapGenerator[i].EnvSources =
 | 
								k.ConfigMapGenerator[i].EnvSources =
 | 
				
			||||||
@@ -217,11 +260,25 @@ func (k *Kustomization) FixKustomizationPostUnmarshalling() {
 | 
				
			|||||||
// FixKustomizationPreMarshalling fixes things
 | 
					// FixKustomizationPreMarshalling fixes things
 | 
				
			||||||
// that should occur after the kustomization file
 | 
					// that should occur after the kustomization file
 | 
				
			||||||
// has been processed.
 | 
					// has been processed.
 | 
				
			||||||
func (k *Kustomization) FixKustomizationPreMarshalling() error {
 | 
					func (k *Kustomization) FixKustomizationPreMarshalling(fSys filesys.FileSystem) error {
 | 
				
			||||||
	// PatchesJson6902 should be under the Patches field.
 | 
						// PatchesJson6902 should be under the Patches field.
 | 
				
			||||||
	k.Patches = append(k.Patches, k.PatchesJson6902...)
 | 
						k.Patches = append(k.Patches, k.PatchesJson6902...)
 | 
				
			||||||
	k.PatchesJson6902 = nil
 | 
						k.PatchesJson6902 = nil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if k.PatchesStrategicMerge != nil {
 | 
				
			||||||
 | 
							for _, patchStrategicMerge := range k.PatchesStrategicMerge {
 | 
				
			||||||
 | 
								// check this patch is file path select.
 | 
				
			||||||
 | 
								if _, err := fSys.ReadFile(string(patchStrategicMerge)); err == nil {
 | 
				
			||||||
 | 
									// path patch
 | 
				
			||||||
 | 
									k.Patches = append(k.Patches, Patch{Path: string(patchStrategicMerge)})
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									// inline string patch
 | 
				
			||||||
 | 
									k.Patches = append(k.Patches, Patch{Patch: string(patchStrategicMerge)})
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							k.PatchesStrategicMerge = nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// this fix is not in FixKustomizationPostUnmarshalling because
 | 
						// this fix is not in FixKustomizationPostUnmarshalling because
 | 
				
			||||||
	// it will break some commands like `create` and `add`. those
 | 
						// it will break some commands like `create` and `add`. those
 | 
				
			||||||
	// commands depend on 'commonLabels' field
 | 
						// commands depend on 'commonLabels' field
 | 
				
			||||||
@@ -258,16 +315,19 @@ func (k *Kustomization) EnforceFields() []string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Unmarshal replace k with the content in YAML input y
 | 
					// Unmarshal replace k with the content in YAML input y
 | 
				
			||||||
func (k *Kustomization) Unmarshal(y []byte) error {
 | 
					func (k *Kustomization) Unmarshal(y []byte) error {
 | 
				
			||||||
 | 
						// TODO: switch to strict decoding to catch duplicate keys.
 | 
				
			||||||
 | 
						// We can't do so until there is a yaml decoder that supports anchors AND case-insensitive keys.
 | 
				
			||||||
 | 
						// See https://github.com/kubernetes-sigs/kustomize/issues/5061
 | 
				
			||||||
	j, err := yaml.YAMLToJSON(y)
 | 
						j, err := yaml.YAMLToJSON(y)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return errors.WrapPrefixf(err, "invalid Kustomization")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	dec := json.NewDecoder(bytes.NewReader(j))
 | 
						dec := json.NewDecoder(bytes.NewReader(j))
 | 
				
			||||||
	dec.DisallowUnknownFields()
 | 
						dec.DisallowUnknownFields()
 | 
				
			||||||
	var nk Kustomization
 | 
						var nk Kustomization
 | 
				
			||||||
	err = dec.Decode(&nk)
 | 
						err = dec.Decode(&nk)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return errors.WrapPrefixf(err, "invalid Kustomization")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	*k = nk
 | 
						*k = nk
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								vendor/sigs.k8s.io/kustomize/api/types/sortoptions.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								vendor/sigs.k8s.io/kustomize/api/types/sortoptions.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					// Copyright 2021 The Kubernetes Authors.
 | 
				
			||||||
 | 
					// SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package types
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SortOptions defines the order that kustomize outputs resources.
 | 
				
			||||||
 | 
					type SortOptions struct {
 | 
				
			||||||
 | 
						// Order selects the ordering strategy.
 | 
				
			||||||
 | 
						Order SortOrder `json:"order,omitempty" yaml:"order,omitempty"`
 | 
				
			||||||
 | 
						// LegacySortOptions tweaks the sorting for the "legacy" sort ordering
 | 
				
			||||||
 | 
						// strategy.
 | 
				
			||||||
 | 
						LegacySortOptions *LegacySortOptions `json:"legacySortOptions,omitempty" yaml:"legacySortOptions,omitempty"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// SortOrder defines different ordering strategies.
 | 
				
			||||||
 | 
					type SortOrder string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const LegacySortOrder SortOrder = "legacy"
 | 
				
			||||||
 | 
					const FIFOSortOrder SortOrder = "fifo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// LegacySortOptions define various options for tweaking the "legacy" ordering
 | 
				
			||||||
 | 
					// strategy.
 | 
				
			||||||
 | 
					type LegacySortOptions struct {
 | 
				
			||||||
 | 
						// OrderFirst selects the resource kinds to order first.
 | 
				
			||||||
 | 
						OrderFirst []string `json:"orderFirst" yaml:"orderFirst"`
 | 
				
			||||||
 | 
						// OrderLast selects the resource kinds to order last.
 | 
				
			||||||
 | 
						OrderLast []string `json:"orderLast" yaml:"orderLast"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,54 +0,0 @@
 | 
				
			|||||||
// Copyright 2019 The Kubernetes Authors.
 | 
					 | 
				
			||||||
// SPDX-License-Identifier: Apache-2.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/spf13/pflag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//go:generate stringer -type=reorderOutput
 | 
					 | 
				
			||||||
type reorderOutput int
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	unspecified reorderOutput = iota
 | 
					 | 
				
			||||||
	none
 | 
					 | 
				
			||||||
	legacy
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const flagReorderOutputName = "reorder"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func AddFlagReorderOutput(set *pflag.FlagSet) {
 | 
					 | 
				
			||||||
	set.StringVar(
 | 
					 | 
				
			||||||
		&theFlags.reorderOutput, flagReorderOutputName,
 | 
					 | 
				
			||||||
		legacy.String(),
 | 
					 | 
				
			||||||
		"Reorder the resources just before output. "+
 | 
					 | 
				
			||||||
			"Use '"+legacy.String()+"' to apply a legacy reordering "+
 | 
					 | 
				
			||||||
			"(Namespaces first, Webhooks last, etc). "+
 | 
					 | 
				
			||||||
			"Use '"+none.String()+"' to suppress a final reordering.")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func validateFlagReorderOutput() error {
 | 
					 | 
				
			||||||
	switch theFlags.reorderOutput {
 | 
					 | 
				
			||||||
	case none.String(), legacy.String():
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return fmt.Errorf(
 | 
					 | 
				
			||||||
			"illegal flag value --%s %s; legal values: %v",
 | 
					 | 
				
			||||||
			flagReorderOutputName, theFlags.reorderOutput,
 | 
					 | 
				
			||||||
			[]string{legacy.String(), none.String()})
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func getFlagReorderOutput() reorderOutput {
 | 
					 | 
				
			||||||
	switch theFlags.reorderOutput {
 | 
					 | 
				
			||||||
	case none.String():
 | 
					 | 
				
			||||||
		return none
 | 
					 | 
				
			||||||
	case legacy.String():
 | 
					 | 
				
			||||||
		return legacy
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return unspecified
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/reorderoutput_string.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,25 +0,0 @@
 | 
				
			|||||||
// Code generated by "stringer -type=reorderOutput"; DO NOT EDIT.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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[unspecified-0]
 | 
					 | 
				
			||||||
	_ = x[none-1]
 | 
					 | 
				
			||||||
	_ = x[legacy-2]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const _reorderOutput_name = "unspecifiednonelegacy"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var _reorderOutput_index = [...]uint8{0, 11, 15, 21}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (i reorderOutput) String() string {
 | 
					 | 
				
			||||||
	if i < 0 || i >= reorderOutput(len(_reorderOutput_index)-1) {
 | 
					 | 
				
			||||||
		return "reorderOutput(" + strconv.FormatInt(int64(i), 10) + ")"
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return _reorderOutput_name[_reorderOutput_index[i]:_reorderOutput_index[i+1]]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -6,8 +6,10 @@ package build
 | 
				
			|||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
						"log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/spf13/cobra"
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
 | 
						flag "github.com/spf13/pflag"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/konfig"
 | 
						"sigs.k8s.io/kustomize/api/konfig"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/krusty"
 | 
						"sigs.k8s.io/kustomize/api/krusty"
 | 
				
			||||||
	"sigs.k8s.io/kustomize/api/types"
 | 
						"sigs.k8s.io/kustomize/api/types"
 | 
				
			||||||
@@ -42,7 +44,7 @@ func MakeHelp(pgmName, cmdName string) *Help {
 | 
				
			|||||||
	fN := konfig.DefaultKustomizationFileName()
 | 
						fN := konfig.DefaultKustomizationFileName()
 | 
				
			||||||
	return &Help{
 | 
						return &Help{
 | 
				
			||||||
		Use:   cmdName + " DIR",
 | 
							Use:   cmdName + " DIR",
 | 
				
			||||||
		Short: "Build a kustomization target from a directory or URL.",
 | 
							Short: "Build a kustomization target from a directory or URL",
 | 
				
			||||||
		Long: fmt.Sprintf(`Build a set of KRM resources using a '%s' file.
 | 
							Long: fmt.Sprintf(`Build a set of KRM resources using a '%s' file.
 | 
				
			||||||
The DIR argument must be a path to a directory containing
 | 
					The DIR argument must be a path to a directory containing
 | 
				
			||||||
'%s', or a git repository URL with a path suffix
 | 
					'%s', or a git repository URL with a path suffix
 | 
				
			||||||
@@ -75,7 +77,7 @@ func NewCmdBuild(
 | 
				
			|||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			k := krusty.MakeKustomizer(
 | 
								k := krusty.MakeKustomizer(
 | 
				
			||||||
				HonorKustomizeFlags(krusty.MakeDefaultOptions()),
 | 
									HonorKustomizeFlags(krusty.MakeDefaultOptions(), cmd.Flags()),
 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
			m, err := k.Run(fSys, theArgs.kustomizationPath)
 | 
								m, err := k.Run(fSys, theArgs.kustomizationPath)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
@@ -104,8 +106,18 @@ func NewCmdBuild(
 | 
				
			|||||||
	AddFlagEnablePlugins(cmd.Flags())
 | 
						AddFlagEnablePlugins(cmd.Flags())
 | 
				
			||||||
	AddFlagReorderOutput(cmd.Flags())
 | 
						AddFlagReorderOutput(cmd.Flags())
 | 
				
			||||||
	AddFlagEnableManagedbyLabel(cmd.Flags())
 | 
						AddFlagEnableManagedbyLabel(cmd.Flags())
 | 
				
			||||||
	cmd.Flags().MarkDeprecated(managedByFlag,
 | 
						msg := "Error marking flag '%s' as deprecated: %v"
 | 
				
			||||||
 | 
						err := cmd.Flags().MarkDeprecated(flagReorderOutputName,
 | 
				
			||||||
 | 
							"use the new 'sortOptions' field in kustomization.yaml instead.")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatalf(msg, flagReorderOutputName, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						err = cmd.Flags().MarkDeprecated(managedByFlag,
 | 
				
			||||||
		"The flag `enable-managedby-label` has been deprecated. Use the `managedByLabel` option in the `buildMetadata` field instead.")
 | 
							"The flag `enable-managedby-label` has been deprecated. Use the `managedByLabel` option in the `buildMetadata` field instead.")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							log.Fatalf(msg, managedByFlag, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	AddFlagEnableHelm(cmd.Flags())
 | 
						AddFlagEnableHelm(cmd.Flags())
 | 
				
			||||||
	return cmd
 | 
						return cmd
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -130,8 +142,8 @@ func Validate(args []string) error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// HonorKustomizeFlags feeds command line data to the krusty options.
 | 
					// HonorKustomizeFlags feeds command line data to the krusty options.
 | 
				
			||||||
// Flags and such are held in private package variables.
 | 
					// Flags and such are held in private package variables.
 | 
				
			||||||
func HonorKustomizeFlags(kOpts *krusty.Options) *krusty.Options {
 | 
					func HonorKustomizeFlags(kOpts *krusty.Options, flags *flag.FlagSet) *krusty.Options {
 | 
				
			||||||
	kOpts.DoLegacyResourceSort = getFlagReorderOutput() == legacy
 | 
						kOpts.Reorder = getFlagReorderOutput(flags)
 | 
				
			||||||
	kOpts.LoadRestrictions = getFlagLoadRestrictorValue()
 | 
						kOpts.LoadRestrictions = getFlagLoadRestrictorValue()
 | 
				
			||||||
	if theFlags.enable.plugins {
 | 
						if theFlags.enable.plugins {
 | 
				
			||||||
		c := types.EnabledPluginConfig(types.BploUseStaticallyLinked)
 | 
							c := types.EnabledPluginConfig(types.BploUseStaticallyLinked)
 | 
				
			||||||
							
								
								
									
										50
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/build/reorderoutput.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								vendor/sigs.k8s.io/kustomize/kustomize/v5/commands/build/reorderoutput.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					// Copyright 2019 The Kubernetes Authors.
 | 
				
			||||||
 | 
					// SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/spf13/pflag"
 | 
				
			||||||
 | 
						flag "github.com/spf13/pflag"
 | 
				
			||||||
 | 
						"sigs.k8s.io/kustomize/api/krusty"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const flagReorderOutputName = "reorder"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func AddFlagReorderOutput(set *pflag.FlagSet) {
 | 
				
			||||||
 | 
						set.StringVar(
 | 
				
			||||||
 | 
							&theFlags.reorderOutput, flagReorderOutputName,
 | 
				
			||||||
 | 
							string(krusty.ReorderOptionLegacy),
 | 
				
			||||||
 | 
							"Reorder the resources just before output. Use '"+string(krusty.ReorderOptionLegacy)+"' to"+
 | 
				
			||||||
 | 
								" apply a legacy reordering (Namespaces first, Webhooks last, etc)."+
 | 
				
			||||||
 | 
								" Use '"+string(krusty.ReorderOptionNone)+"' to suppress a final reordering.")
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func validateFlagReorderOutput() error {
 | 
				
			||||||
 | 
						switch theFlags.reorderOutput {
 | 
				
			||||||
 | 
						case string(krusty.ReorderOptionNone), string(krusty.ReorderOptionLegacy):
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							return fmt.Errorf(
 | 
				
			||||||
 | 
								"illegal flag value --%s %s; legal values: %v",
 | 
				
			||||||
 | 
								flagReorderOutputName, theFlags.reorderOutput,
 | 
				
			||||||
 | 
								[]string{string(krusty.ReorderOptionLegacy), string(krusty.ReorderOptionNone)})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func getFlagReorderOutput(flags *flag.FlagSet) krusty.ReorderOption {
 | 
				
			||||||
 | 
						isReorderSet := flags.Changed(flagReorderOutputName)
 | 
				
			||||||
 | 
						if !isReorderSet {
 | 
				
			||||||
 | 
							return krusty.ReorderOptionUnspecified
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						switch theFlags.reorderOutput {
 | 
				
			||||||
 | 
						case string(krusty.ReorderOptionNone):
 | 
				
			||||||
 | 
							return krusty.ReorderOptionNone
 | 
				
			||||||
 | 
						case string(krusty.ReorderOptionLegacy):
 | 
				
			||||||
 | 
							return krusty.ReorderOptionLegacy
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							return krusty.ReorderOptionUnspecified
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/errors/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/errors/errors.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -31,6 +31,16 @@ func Errorf(msg string, args ...interface{}) error {
 | 
				
			|||||||
	return goerrors.Wrap(fmt.Errorf(msg, args...), 1)
 | 
						return goerrors.Wrap(fmt.Errorf(msg, args...), 1)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// As finds the targeted error in any wrapped error.
 | 
				
			||||||
 | 
					func As(err error, target interface{}) bool {
 | 
				
			||||||
 | 
						return goerrors.As(err, target)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Is detects whether the error is equal to a given error.
 | 
				
			||||||
 | 
					func Is(err error, target error) bool {
 | 
				
			||||||
 | 
						return goerrors.Is(err, target)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetStack returns a stack trace for the error if it has one
 | 
					// GetStack returns a stack trace for the error if it has one
 | 
				
			||||||
func GetStack(err error) string {
 | 
					func GetStack(err error) string {
 | 
				
			||||||
	if e, ok := err.(*goerrors.Error); ok {
 | 
						if e, ok := err.(*goerrors.Error); ok {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/confirmeddir.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/confirmeddir.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
package filesys
 | 
					package filesys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"io/ioutil"
 | 
						"os"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,12 +17,12 @@ type ConfirmedDir string
 | 
				
			|||||||
// The directory is cleaned, no symlinks, etc. so it's
 | 
					// The directory is cleaned, no symlinks, etc. so it's
 | 
				
			||||||
// returned as a ConfirmedDir.
 | 
					// returned as a ConfirmedDir.
 | 
				
			||||||
func NewTmpConfirmedDir() (ConfirmedDir, error) {
 | 
					func NewTmpConfirmedDir() (ConfirmedDir, error) {
 | 
				
			||||||
	n, err := ioutil.TempDir("", "kustomize-")
 | 
						n, err := os.MkdirTemp("", "kustomize-")
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return "", err
 | 
							return "", err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// In MacOs `ioutil.TempDir` creates a directory
 | 
						// In MacOs `os.MkdirTemp` creates a directory
 | 
				
			||||||
	// with root in the `/var` folder, which is in turn
 | 
						// with root in the `/var` folder, which is in turn
 | 
				
			||||||
	// a symlinked path to `/private/var`.
 | 
						// a symlinked path to `/private/var`.
 | 
				
			||||||
	// Function `filepath.EvalSymlinks`is used to
 | 
						// Function `filepath.EvalSymlinks`is used to
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/fsondisk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/fsondisk.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,7 +5,6 @@ package filesys
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io/ioutil"
 | 
					 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
	"os"
 | 
						"os"
 | 
				
			||||||
	"path/filepath"
 | 
						"path/filepath"
 | 
				
			||||||
@@ -125,12 +124,15 @@ func (fsOnDisk) ReadDir(name string) ([]string, error) {
 | 
				
			|||||||
	return result, nil
 | 
						return result, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ReadFile delegates to ioutil.ReadFile.
 | 
					// ReadFile delegates to os.ReadFile.
 | 
				
			||||||
func (fsOnDisk) ReadFile(name string) ([]byte, error) { return ioutil.ReadFile(name) }
 | 
					func (fsOnDisk) ReadFile(name string) ([]byte, error) {
 | 
				
			||||||
 | 
						content, err := os.ReadFile(name)
 | 
				
			||||||
 | 
						return content, errors.Wrap(err)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WriteFile delegates to ioutil.WriteFile with read/write permissions.
 | 
					// WriteFile delegates to os.WriteFile with read/write permissions.
 | 
				
			||||||
func (fsOnDisk) WriteFile(name string, c []byte) error {
 | 
					func (fsOnDisk) WriteFile(name string, c []byte) error {
 | 
				
			||||||
	return errors.Wrap(ioutil.WriteFile(name, c, 0666)) //nolint:gosec
 | 
						return errors.Wrap(os.WriteFile(name, c, 0666)) //nolint:gosec
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Walk delegates to filepath.Walk.
 | 
					// Walk delegates to filepath.Walk.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										42
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/util.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/filesys/util.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -74,30 +74,30 @@ func PathJoin(incoming []string) string {
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
// E.g. if part == 'PEACH'
 | 
					// E.g. if part == 'PEACH'
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
//                  OLD : NEW                    : POS
 | 
					//	             OLD : NEW                    : POS
 | 
				
			||||||
//      --------------------------------------------------------
 | 
					//	 --------------------------------------------------------
 | 
				
			||||||
//              {empty} : PEACH                  : irrelevant
 | 
					//	         {empty} : PEACH                  : irrelevant
 | 
				
			||||||
//                    / : /PEACH                 : irrelevant
 | 
					//	               / : /PEACH                 : irrelevant
 | 
				
			||||||
//                  pie : PEACH/pie              : 0 (or negative)
 | 
					//	             pie : PEACH/pie              : 0 (or negative)
 | 
				
			||||||
//                 /pie : /PEACH/pie             : 0 (or negative)
 | 
					//	            /pie : /PEACH/pie             : 0 (or negative)
 | 
				
			||||||
//                  raw : raw/PEACH              : 1 (or larger)
 | 
					//	             raw : raw/PEACH              : 1 (or larger)
 | 
				
			||||||
//                 /raw : /raw/PEACH             : 1 (or larger)
 | 
					//	            /raw : /raw/PEACH             : 1 (or larger)
 | 
				
			||||||
//      a/nice/warm/pie : a/nice/warm/PEACH/pie  : 3
 | 
					//	 a/nice/warm/pie : a/nice/warm/PEACH/pie  : 3
 | 
				
			||||||
//     /a/nice/warm/pie : /a/nice/warm/PEACH/pie : 3
 | 
					//	/a/nice/warm/pie : /a/nice/warm/PEACH/pie : 3
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// * An empty part results in no change.
 | 
					// * An empty part results in no change.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// * Absolute paths get their leading '/' stripped, treated like
 | 
					//   - Absolute paths get their leading '/' stripped, treated like
 | 
				
			||||||
//   relative paths, and the leading '/' is re-added on output.
 | 
					//     relative paths, and the leading '/' is re-added on output.
 | 
				
			||||||
//   The meaning of pos is intentionally the same in either absolute or
 | 
					//     The meaning of pos is intentionally the same in either absolute or
 | 
				
			||||||
//   relative paths; if it weren't, this function could convert absolute
 | 
					//     relative paths; if it weren't, this function could convert absolute
 | 
				
			||||||
//   paths to relative paths, which is not desirable.
 | 
					//     paths to relative paths, which is not desirable.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// * For robustness (liberal input, conservative output) Pos values that
 | 
					//   - For robustness (liberal input, conservative output) Pos values
 | 
				
			||||||
//   that are too small (large) to index the split filepath result in a
 | 
					//     that are too small (large) to index the split filepath result in a
 | 
				
			||||||
//   prefix (postfix) rather than an error.  Use extreme position values
 | 
					//     prefix (postfix) rather than an error.  Use extreme position values
 | 
				
			||||||
//   to assure a prefix or postfix (e.g. 0 will always prefix, and
 | 
					//     to assure a prefix or postfix (e.g. 0 will always prefix, and
 | 
				
			||||||
//   9999 will presumably always postfix).
 | 
					//     9999 will presumably always postfix).
 | 
				
			||||||
func InsertPathPart(path string, pos int, part string) string {
 | 
					func InsertPathPart(path string, pos int, part string) string {
 | 
				
			||||||
	if part == "" {
 | 
						if part == "" {
 | 
				
			||||||
		return path
 | 
							return path
 | 
				
			||||||
@@ -121,7 +121,7 @@ func InsertPathPart(path string, pos int, part string) string {
 | 
				
			|||||||
	result := make([]string, len(parts)+1)
 | 
						result := make([]string, len(parts)+1)
 | 
				
			||||||
	copy(result, parts[0:pos])
 | 
						copy(result, parts[0:pos])
 | 
				
			||||||
	result[pos] = part
 | 
						result[pos] = part
 | 
				
			||||||
	return PathJoin(append(result, parts[pos:]...)) // nolint: makezero
 | 
						return PathJoin(append(result, parts[pos:]...)) //nolint: makezero
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func IsHiddenFilePath(pattern string) bool {
 | 
					func IsHiddenFilePath(pattern string) bool {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/exec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/exec/exec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -34,7 +34,7 @@ func (c *Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c *Filter) Run(reader io.Reader, writer io.Writer) error {
 | 
					func (c *Filter) Run(reader io.Reader, writer io.Writer) error {
 | 
				
			||||||
	cmd := exec.Command(c.Path, c.Args...) // nolint:gosec
 | 
						cmd := exec.Command(c.Path, c.Args...) //nolint:gosec
 | 
				
			||||||
	cmd.Stdin = reader
 | 
						cmd.Stdin = reader
 | 
				
			||||||
	cmd.Stdout = writer
 | 
						cmd.Stdout = writer
 | 
				
			||||||
	cmd.Stderr = os.Stderr
 | 
						cmd.Stderr = os.Stderr
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user