kubernetes/test/cmd
Abu Kashem 01619cfaf6
Add impersonated user to system:authenticated group
Currently if a group is specified for an impersonated user,
'system:authenticated' is not added to the 'Groups' list inside the
request context.
This causes priority and fairness match to fail. The catch-all flow
schema needs the user to be in the 'system:authenticated' or in the
'system:unauthenticated' group. An impersonated user with a specified
group is in neither.

As a general rule, if an impersonated user has passed authorization
checks, we should consider him authenticated.
2020-08-25 14:53:01 -04:00
..
apply.sh test(kubectl): deflake run_kubectl_apply_tests 2020-08-14 11:12:42 +08:00
apps.sh Refactor create deployment and add --port flag 2020-05-26 17:33:28 +02:00
authentication.sh Move kube_flags_without_token creation 2020-07-06 21:55:23 +02:00
authorization.sh Add impersonated user to system:authenticated group 2020-08-25 14:53:01 -04:00
batch.sh Use --dry-run=client,server in kubectl. 2020-02-12 20:46:54 -05:00
BUILD Removes test-cmd inappropriate dependency on kubectl 2019-06-27 10:49:42 -07:00
certificate.sh Fix shellchecks in test/cmd/{b,c}.*.sh 2019-06-04 14:42:01 +08:00
core.sh s/master/primary in agnhost guestbook usage 2020-06-24 12:14:33 -07:00
crd.sh wait for pruned CR to be invisible from API 2020-02-19 17:41:13 -08:00
create.sh Use --dry-run=client,server in kubectl. 2020-02-12 20:46:54 -05:00
delete.sh Add --dry-run to more kubectl commands. 2020-02-19 17:53:21 -05:00
diff.sh Set kubectl field manager names 2020-05-09 13:24:39 -04:00
discovery.sh Replaced 4 kube::test::get_object_assert() calls with 1 call using regex to match all combinations 2020-06-09 08:35:54 -04:00
exec.sh Wire --filename flag to exec 2020-03-03 12:16:52 +01:00
generic-resources.sh Fix shellcheck failures SC2251 2019-10-23 22:47:47 +02:00
get.sh Fix assert methods 2019-11-07 02:26:45 -05:00
kubeconfig.sh Changed kubectl config set-cluster and set-credentials to support process substitution for filenames 2020-05-15 09:22:59 -04:00
legacy-script.sh Move kube_flags_without_token creation 2020-07-06 21:55:23 +02:00
node-management.sh Set kubectl field manager names 2020-05-09 13:24:39 -04:00
OWNERS Updated OWNERS files to include link to docs 2019-02-04 22:33:12 +01:00
plugins.sh Isolate kubectl test-cmd plugin tests 2019-12-19 01:35:36 -05:00
proxy.sh Fix of review comments. Will squash later. 2019-07-18 09:12:28 +08:00
rbac.sh cmd: silence warnings in kube-controller-manager/kube-apiserver, dedupe/color warnings in kubectl 2020-06-11 16:04:19 -04:00
README.md Fix typo test/cmd/README 2020-06-02 14:50:55 +03:00
request-timeout.sh go1.14: fix test/cmd timeout message check 2020-06-23 19:04:43 -04:00
run.sh Use --dry-run=client,server in kubectl. 2020-02-12 20:46:54 -05:00
save-config.sh Remove kubectl run generators 2020-01-22 16:44:00 +01:00
storage.sh Merge pull request #74635 from xychu/fix-with-assert 2019-06-13 19:12:45 -07:00
template-output.sh Clean up --dry-run values. 2020-02-15 00:43:30 -05:00
version.sh Merge pull request #74635 from xychu/fix-with-assert 2019-06-13 19:12:45 -07:00
wait.sh Add support for waiting by label selector or on all resources 2019-02-02 16:26:00 +01: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_test and run_impersonation_test), 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_*_test so they can 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.