mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-29 21:29:24 +00:00
Merge pull request #24806 from jayunit100/kubectl-stdin
Automatic merge from submit-queue [e2e] kubectl stdin Problem: Currently kubectl heavily relies on files which have to be (for lack of a better word :):):)) "written" to the file system. This hinders adoption of something like gobindata, by forcing an intermediary generated-assets directory type thing. Solution: Lets migrate `kubectl.go` testing over to using standard input streams. cc @kubernetes/sig-testing @timothysc
This commit is contained in:
41
test/e2e/framework/gobindata_util.go
Normal file
41
test/e2e/framework/gobindata_util.go
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||
|
||||
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 framework
|
||||
|
||||
import "k8s.io/kubernetes/test/e2e/generated"
|
||||
|
||||
// ReadOrDie reads a file from gobindata. To generate gobindata, run
|
||||
//
|
||||
// # Install the program
|
||||
// go get -u github.com/jteeuwen/go-bindata/...
|
||||
//
|
||||
// # Generate the bindata file.
|
||||
// go-bindata \
|
||||
// -pkg generated -ignore .jpg -ignore .png -ignore .md \
|
||||
// ./examples/* ./docs/user-guide/* test/e2e/testing-manifests/kubectl/* test/images/*
|
||||
//
|
||||
// # Copy it into the generated directory if the results are what you expected.
|
||||
// cp bindata.go test/e2e/generated
|
||||
func ReadOrDie(filePath string) []byte {
|
||||
fileBytes, err := generated.Asset(filePath)
|
||||
if err != nil {
|
||||
gobindata_msg := "An error occured, possibly gobindata doesn't know about the file you're opening. For questions on maintaining gobindata, contact the sig-testing group."
|
||||
Logf("Available gobindata files: %v ", generated.AssetNames())
|
||||
Failf("Failed opening %v , with error %v. %v.", filePath, err, gobindata_msg)
|
||||
}
|
||||
return fileBytes
|
||||
}
|
||||
@@ -1372,14 +1372,22 @@ func ExpectNoError(err error, explain ...interface{}) {
|
||||
}
|
||||
|
||||
// Stops everything from filePath from namespace ns and checks if everything matching selectors from the given namespace is correctly stopped.
|
||||
func Cleanup(filePath string, ns string, selectors ...string) {
|
||||
func Cleanup(filePath, ns string, selectors ...string) {
|
||||
By("using delete to clean up resources")
|
||||
var nsArg string
|
||||
if ns != "" {
|
||||
nsArg = fmt.Sprintf("--namespace=%s", ns)
|
||||
}
|
||||
RunKubectlOrDie("delete", "--grace-period=0", "-f", filePath, nsArg)
|
||||
AssertCleanup(ns, selectors...)
|
||||
}
|
||||
|
||||
// Asserts that cleanup of a namespace wrt selectors occured.
|
||||
func AssertCleanup(ns string, selectors ...string) {
|
||||
var nsArg string
|
||||
if ns != "" {
|
||||
nsArg = fmt.Sprintf("--namespace=%s", ns)
|
||||
}
|
||||
for _, selector := range selectors {
|
||||
resources := RunKubectlOrDie("get", "rc,svc", "-l", selector, "--no-headers", nsArg)
|
||||
if resources != "" {
|
||||
@@ -1564,8 +1572,8 @@ func RunKubectl(args ...string) (string, error) {
|
||||
return NewKubectlCommand(args...).Exec()
|
||||
}
|
||||
|
||||
// runKubectlOrDieInput is a convenience wrapper over kubectlBuilder that takes input to stdin
|
||||
func runKubectlOrDieInput(data string, args ...string) string {
|
||||
// RunKubectlOrDieInput is a convenience wrapper over kubectlBuilder that takes input to stdin
|
||||
func RunKubectlOrDieInput(data string, args ...string) string {
|
||||
return NewKubectlCommand(args...).WithStdinData(data).ExecOrDie()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user