kubernetes/test/cmd
Alexander Zielenski 33b9552e70 add kubectl server-side apply migrate managedfields
in discussion with SIG, there is a strong interest in keeping the last-applied-configuration around for a bit longer as other tools transition for of it. This is OK since SSA maintains the annotation on kubectl's behalf on the server-side if it exists

migrate client-side-apply fields to SSA when --serverside-side is used

https://github.com/kubernetes/kubernetes/issues/107980

https://github.com/kubernetes/kubernetes/issues/108081

https://github.com/kubernetes/kubernetes/issues/107417

https://github.com/kubernetes/kubernetes/issues/112826

add test to make sure only one apply is needed after migration
2022-11-04 14:09:29 -07:00
..
apply.sh add kubectl server-side apply migrate managedfields 2022-11-04 14:09:29 -07:00
apps.sh Fix rollout history bug 2022-07-13 18:27:05 -04:00
authentication.sh Check whether static cert is already configured in UpdateTransportConfig 2022-03-07 13:54:32 -08:00
authorization.sh --as-uid flag in kubectl and kubeconfigs. 2021-11-05 13:23:49 -07:00
batch.sh Re-introduce removed kubectl --dry-run values. 2021-12-13 15:04:49 -05:00
certificate.sh Add --chunk-size support to kubectl describe 2021-04-21 11:44:15 -07:00
convert.sh Add kubectl-convert tests 2021-02-22 17:01:34 +01:00
core.sh Switching everything to use pause:3.8 2022-07-21 14:53:15 -07:00
crd.sh Expand cmd tests of modifying schema-declaring custom resources 2022-04-04 13:51:15 -04:00
create.sh Merge pull request #109850 from ardaguclu/validate-nooptdefval 2022-06-13 08:04:11 -07:00
debug.sh Remove alpha from kubectl debug 2020-11-04 17:45:28 +01:00
delete.sh separate RootCAConfigMap from BoundServiceAccountTokenVolume 2020-11-04 17:10:39 -08:00
diff.sh Move from k8s.gcr.io to registry.k8s.io 2022-05-31 10:16:53 -04:00
discovery.sh fix typos in pkg/validation and test/cmd 2022-09-20 19:12:17 +05:30
events.sh Add new flags into alpha events 2022-07-28 15:16:58 +03:00
exec.sh Wire --filename flag to exec 2020-03-03 12:16:52 +01:00
generic-resources.sh tests: adding integration test for rollout status 2022-04-21 11:21:13 -04:00
get.sh Integration test for kubectl --disable-compression flag 2022-09-20 16:09:52 -07:00
kubeconfig.sh --as-uid flag in kubectl and kubeconfigs. 2021-11-05 13:23:49 -07:00
legacy-script.sh (kubectl events): Add integration tests 2022-06-27 09:32:32 +03:00
node-management.sh Add --chunk-size flag to kubectl drain 2021-04-12 08:10:52 -07:00
OWNERS Update sig-cli OWNERS 2022-02-14 10:55:35 -07:00
plugins.sh Isolate kubectl test-cmd plugin tests 2019-12-19 01:35:36 -05:00
proxy.sh use a non-deprecated API to check kube-proxy 2021-03-25 12:41:50 -04:00
rbac.sh add a warning printer in cli-runtime to coordinate warning style 2022-05-23 19:10:15 +08:00
README.md Change legacy-script.sh to produce junit output in location set by the 2022-02-02 21:51:15 -05:00
request-timeout.sh go1.14: fix test/cmd timeout message check 2020-06-23 19:04:43 -04:00
results.sh kubectl: add integration test for result reporting 2022-01-11 09:04:56 +01:00
run.sh Use --dry-run=client,server in kubectl. 2020-02-12 20:46:54 -05:00
save-config.sh rename v2beta2 to v2 2021-11-09 10:34:54 +08:00
storage.sh add a warning printer in cli-runtime to coordinate warning style 2022-05-23 19:10:15 +08:00
template-output.sh fix typos in pkg/validation and test/cmd 2022-09-20 19:12:17 +05:30
version.sh kubectl version should include bundled kustomize version 2022-03-24 13:31:57 -04:00
wait.sh feat: make jsonpath wait logics consistent with condition 2022-06-29 12:28:24 +08:00

Kubernetes Command-Line Integration Test Suite

This document describes how you can use the Kubernetes command-line integration test-suite.

Running Tests

All Tests

To run this entire suite, execute make test-cmd from the top level. This will import each file containing tests functions

Specific Tests

To run a subset of tests (e.g. run_deployment_tests and run_impersonation_tests), execute make test-cmd WHAT="deployment impersonation". Running specific tests will not try and validate any required resources are available on the server.

Adding Tests

Test functions need to have the format run_*_tests so they can be executed individually. Once a test has been added, insert a section in legacy-script.sh like

######################
# Replica Sets       #
######################

if kube::test::if_supports_resource "${replicasets}" ; then
    record_command run_rs_tests
fi

Be sure to validate any supported resources required for the test by using the kube::test::if_supports_resource function.

New File

If the test resides in a new file, source the file in the top of the legacy-script.sh file by adding a new line in

source "${KUBE_ROOT}/test/cmd/apply.sh"
source "${KUBE_ROOT}/test/cmd/apps.sh"
source "${KUBE_ROOT}/test/cmd/authorization.sh"
source "${KUBE_ROOT}/test/cmd/batch.sh"
...

Please keep the order of the source list alphabetical.