Add -- flag in hack/e2e.go documentation
This commit is contained in:
parent
6dd6275336
commit
ea155e2286
|
@ -79,26 +79,26 @@ changing the `KUBERNETES_PROVIDER` environment variable to something other than
|
||||||
To build Kubernetes, up a cluster, run tests, and tear everything down, use:
|
To build Kubernetes, up a cluster, run tests, and tear everything down, use:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go run hack/e2e.go -v --build --up --test --down
|
go run hack/e2e.go -- -v --build --up --test --down
|
||||||
```
|
```
|
||||||
|
|
||||||
If you'd like to just perform one of these steps, here are some examples:
|
If you'd like to just perform one of these steps, here are some examples:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Build binaries for testing
|
# Build binaries for testing
|
||||||
go run hack/e2e.go -v --build
|
go run hack/e2e.go -- -v --build
|
||||||
|
|
||||||
# Create a fresh cluster. Deletes a cluster first, if it exists
|
# Create a fresh cluster. Deletes a cluster first, if it exists
|
||||||
go run hack/e2e.go -v --up
|
go run hack/e2e.go -- -v --up
|
||||||
|
|
||||||
# Run all tests
|
# Run all tests
|
||||||
go run hack/e2e.go -v --test
|
go run hack/e2e.go -- -v --test
|
||||||
|
|
||||||
# Run tests matching the regex "\[Feature:Performance\]"
|
# Run tests matching the regex "\[Feature:Performance\]"
|
||||||
go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Feature:Performance\]"
|
go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\[Feature:Performance\]"
|
||||||
|
|
||||||
# Conversely, exclude tests that match the regex "Pods.*env"
|
# Conversely, exclude tests that match the regex "Pods.*env"
|
||||||
go run hack/e2e.go -v --test --test_args="--ginkgo.skip=Pods.*env"
|
go run hack/e2e.go -- -v --test --test_args="--ginkgo.skip=Pods.*env"
|
||||||
|
|
||||||
# Run tests in parallel, skip any that must be run serially
|
# Run tests in parallel, skip any that must be run serially
|
||||||
GINKGO_PARALLEL=y go run hack/e2e.go --v --test --test_args="--ginkgo.skip=\[Serial\]"
|
GINKGO_PARALLEL=y go run hack/e2e.go --v --test --test_args="--ginkgo.skip=\[Serial\]"
|
||||||
|
@ -112,13 +112,13 @@ GINKGO_PARALLEL=y go run hack/e2e.go --v --test --test_args="--ginkgo.skip=\[Ser
|
||||||
# You can also specify an alternative provider, such as 'aws'
|
# You can also specify an alternative provider, such as 'aws'
|
||||||
#
|
#
|
||||||
# e.g.:
|
# e.g.:
|
||||||
KUBERNETES_PROVIDER=aws go run hack/e2e.go -v --build --up --test --down
|
KUBERNETES_PROVIDER=aws go run hack/e2e.go -- -v --build --up --test --down
|
||||||
|
|
||||||
# -ctl can be used to quickly call kubectl against your e2e cluster. Useful for
|
# -ctl can be used to quickly call kubectl against your e2e cluster. Useful for
|
||||||
# cleaning up after a failed test or viewing logs. Use -v to avoid suppressing
|
# cleaning up after a failed test or viewing logs. Use -v to avoid suppressing
|
||||||
# kubectl output.
|
# kubectl output.
|
||||||
go run hack/e2e.go -v -ctl='get events'
|
go run hack/e2e.go -- -v -ctl='get events'
|
||||||
go run hack/e2e.go -v -ctl='delete pod foobar'
|
go run hack/e2e.go -- -v -ctl='delete pod foobar'
|
||||||
```
|
```
|
||||||
|
|
||||||
The tests are built into a single binary which can be run used to deploy a
|
The tests are built into a single binary which can be run used to deploy a
|
||||||
|
@ -133,11 +133,27 @@ something goes wrong and you still have some VMs running you can force a cleanup
|
||||||
with this command:
|
with this command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go run hack/e2e.go -v --down
|
go run hack/e2e.go -- -v --down
|
||||||
```
|
```
|
||||||
|
|
||||||
## Advanced testing
|
## Advanced testing
|
||||||
|
|
||||||
|
### Installing/updating kubetest
|
||||||
|
|
||||||
|
The logic in `e2e.go` moved out of the main kubernetes repo to test-infra.
|
||||||
|
The remaining code in `hack/e2e.go` installs `kubetest` and sends it flags.
|
||||||
|
It now lives in [kubernetes/test-infra/kubetest](https://github.com/kubernetes/test-infra/tree/master/kubetest).
|
||||||
|
By default `hack/e2e.go` updates and installs `kubetest` once per day.
|
||||||
|
Control the updater behavior with the `--get` and `--old` flags:
|
||||||
|
The `--` flag separates updater and kubetest flags (kubetest flags on the right).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
go run hack/e2e.go --get=true --old=1h -- # Update every hour
|
||||||
|
go run hack/e2e.go --get=false -- # Never attempt to install/update.
|
||||||
|
go install k8s.io/test-infra/kubetest # Manually install
|
||||||
|
go get -u k8s.io/test-infra/kubetest # Manually update installation
|
||||||
|
```
|
||||||
|
|
||||||
### Bringing up a cluster for testing
|
### Bringing up a cluster for testing
|
||||||
|
|
||||||
If you want, you may bring up a cluster in some other manner and run tests
|
If you want, you may bring up a cluster in some other manner and run tests
|
||||||
|
@ -265,7 +281,7 @@ Next, specify the docker repository where your ci images will be pushed.
|
||||||
* Compile the binaries and build container images:
|
* Compile the binaries and build container images:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ KUBE_RELEASE_RUN_TESTS=n KUBE_FASTBUILD=true go run hack/e2e.go -v -build
|
$ KUBE_RELEASE_RUN_TESTS=n KUBE_FASTBUILD=true go run hack/e2e.go -- -v -build
|
||||||
```
|
```
|
||||||
|
|
||||||
* Push the federation container images
|
* Push the federation container images
|
||||||
|
@ -280,7 +296,7 @@ The following command will create the underlying Kubernetes clusters in each of
|
||||||
federation control plane in the cluster occupying the last zone in the `E2E_ZONES` list.
|
federation control plane in the cluster occupying the last zone in the `E2E_ZONES` list.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ go run hack/e2e.go -v --up
|
$ go run hack/e2e.go -- -v --up
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Run the Tests
|
#### Run the Tests
|
||||||
|
@ -288,13 +304,13 @@ $ go run hack/e2e.go -v --up
|
||||||
This will run only the `Feature:Federation` e2e tests. You can omit the `ginkgo.focus` argument to run the entire e2e suite.
|
This will run only the `Feature:Federation` e2e tests. You can omit the `ginkgo.focus` argument to run the entire e2e suite.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Feature:Federation\]"
|
$ go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\[Feature:Federation\]"
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Teardown
|
#### Teardown
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ go run hack/e2e.go -v --down
|
$ go run hack/e2e.go -- -v --down
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Shortcuts for test developers
|
#### Shortcuts for test developers
|
||||||
|
@ -364,13 +380,13 @@ at a custom host directly:
|
||||||
export KUBECONFIG=/path/to/kubeconfig
|
export KUBECONFIG=/path/to/kubeconfig
|
||||||
export KUBE_MASTER_IP="http://127.0.0.1:<PORT>"
|
export KUBE_MASTER_IP="http://127.0.0.1:<PORT>"
|
||||||
export KUBE_MASTER=local
|
export KUBE_MASTER=local
|
||||||
go run hack/e2e.go -v --test
|
go run hack/e2e.go -- -v --test
|
||||||
```
|
```
|
||||||
|
|
||||||
To control the tests that are run:
|
To control the tests that are run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\"Secrets\""
|
go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\"Secrets\""
|
||||||
```
|
```
|
||||||
|
|
||||||
### Version-skewed and upgrade testing
|
### Version-skewed and upgrade testing
|
||||||
|
@ -403,7 +419,7 @@ export CLUSTER_API_VERSION=${OLD_VERSION}
|
||||||
|
|
||||||
# Deploy a cluster at the old version; see above for more details
|
# Deploy a cluster at the old version; see above for more details
|
||||||
cd ./kubernetes_old
|
cd ./kubernetes_old
|
||||||
go run ./hack/e2e.go -v --up
|
go run ./hack/e2e.go -- -v --up
|
||||||
|
|
||||||
# Upgrade the cluster to the new version
|
# Upgrade the cluster to the new version
|
||||||
#
|
#
|
||||||
|
@ -411,11 +427,11 @@ go run ./hack/e2e.go -v --up
|
||||||
#
|
#
|
||||||
# You can target Feature:MasterUpgrade or Feature:ClusterUpgrade
|
# You can target Feature:MasterUpgrade or Feature:ClusterUpgrade
|
||||||
cd ../kubernetes
|
cd ../kubernetes
|
||||||
go run ./hack/e2e.go -v --test --check_version_skew=false --test_args="--ginkgo.focus=\[Feature:MasterUpgrade\]"
|
go run ./hack/e2e.go -- -v --test --check_version_skew=false --test_args="--ginkgo.focus=\[Feature:MasterUpgrade\]"
|
||||||
|
|
||||||
# Run old tests with new kubectl
|
# Run old tests with new kubectl
|
||||||
cd ../kubernetes_old
|
cd ../kubernetes_old
|
||||||
go run ./hack/e2e.go -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes/cluster/kubectl.sh"
|
go run ./hack/e2e.go -- -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes/cluster/kubectl.sh"
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are just testing version-skew, you may want to just deploy at one
|
If you are just testing version-skew, you may want to just deploy at one
|
||||||
|
@ -427,14 +443,14 @@ upgrade process:
|
||||||
|
|
||||||
# Deploy a cluster at the new version
|
# Deploy a cluster at the new version
|
||||||
cd ./kubernetes
|
cd ./kubernetes
|
||||||
go run ./hack/e2e.go -v --up
|
go run ./hack/e2e.go -- -v --up
|
||||||
|
|
||||||
# Run new tests with old kubectl
|
# Run new tests with old kubectl
|
||||||
go run ./hack/e2e.go -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes_old/cluster/kubectl.sh"
|
go run ./hack/e2e.go -- -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes_old/cluster/kubectl.sh"
|
||||||
|
|
||||||
# Run old tests with new kubectl
|
# Run old tests with new kubectl
|
||||||
cd ../kubernetes_old
|
cd ../kubernetes_old
|
||||||
go run ./hack/e2e.go -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes/cluster/kubectl.sh"
|
go run ./hack/e2e.go -- -v --test --test_args="--kubectl-path=$(pwd)/../kubernetes/cluster/kubectl.sh"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Kinds of tests
|
## Kinds of tests
|
||||||
|
@ -536,13 +552,13 @@ export KUBERNETES_CONFORMANCE_TEST=y
|
||||||
export KUBERNETES_PROVIDER=skeleton
|
export KUBERNETES_PROVIDER=skeleton
|
||||||
|
|
||||||
# run all conformance tests
|
# run all conformance tests
|
||||||
go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Conformance\]"
|
go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\[Conformance\]"
|
||||||
|
|
||||||
# run all parallel-safe conformance tests in parallel
|
# run all parallel-safe conformance tests in parallel
|
||||||
GINKGO_PARALLEL=y go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Conformance\] --ginkgo.skip=\[Serial\]"
|
GINKGO_PARALLEL=y go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\[Conformance\] --ginkgo.skip=\[Serial\]"
|
||||||
|
|
||||||
# ... and finish up with remaining tests in serial
|
# ... and finish up with remaining tests in serial
|
||||||
go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Serial\].*\[Conformance\]"
|
go run hack/e2e.go -- -v --test --test_args="--ginkgo.focus=\[Serial\].*\[Conformance\]"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Defining Conformance Subset
|
### Defining Conformance Subset
|
||||||
|
|
|
@ -59,9 +59,9 @@ sampling.
|
||||||
There is an end-to-end test for collecting overall resource usage of node
|
There is an end-to-end test for collecting overall resource usage of node
|
||||||
components: [kubelet_perf.go](../../test/e2e/kubelet_perf.go). To
|
components: [kubelet_perf.go](../../test/e2e/kubelet_perf.go). To
|
||||||
run the test, simply make sure you have an e2e cluster running (`go run
|
run the test, simply make sure you have an e2e cluster running (`go run
|
||||||
hack/e2e.go -up`) and [set up](#cluster-set-up) correctly.
|
hack/e2e.go -- -up`) and [set up](#cluster-set-up) correctly.
|
||||||
|
|
||||||
Run the test with `go run hack/e2e.go -v -test
|
Run the test with `go run hack/e2e.go -- -v -test
|
||||||
--test_args="--ginkgo.focus=resource\susage\stracking"`. You may also wish to
|
--test_args="--ginkgo.focus=resource\susage\stracking"`. You may also wish to
|
||||||
customise the number of pods or other parameters of the test (remember to rerun
|
customise the number of pods or other parameters of the test (remember to rerun
|
||||||
`make WHAT=test/e2e/e2e.test` after you do).
|
`make WHAT=test/e2e/e2e.test` after you do).
|
||||||
|
|
Loading…
Reference in New Issue