kubernetes/test/cmd
Peter Engelbert b4220f8b08
Add credential pluginkubectl kuberc set options (#137300)
* Add <...> kuberc set --section=credentialplugin

The requirement that the `--command` option be provided is no longer
valid; a solution will need to be found.

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Remove required mark on `--command` flag

Move the validation logic to the Validate() function

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Remove requirement for `--command`

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Add cmd test cases for kuberc

- Verify all error messages added/changed by this PR
- Verify changes are effected by at least one valid `kubectl kuberc
  set` invocation with --section=credentialplugin

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Add unit tests for --section=credentialplugin

Additionally:
- Update allowlist-entry validation logic to check for empty string in
  value of k/v pairs
- Update kuberc cmd test with this case as well

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Address linter complaints

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Update staging/src/k8s.io/kubectl/pkg/cmd/kuberc/set.go

Co-authored-by: Maciej Szulik <soltysh@gmail.com>

* Add two new test cases

Additionally:
- update error message when policy is invalid
- use utilerrors.NewAggregate instead of custom code
- add --section=credentialplugin example to cli help
- fix copypasted doc comments
- use more descriptive variable names in for loops
- avoid confusion due to variable shadowing
- fix capitalization typo
- check both validate and run errors in credentialplugin tests

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

* Improve cli help for policy flag

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>

---------

Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Co-authored-by: Maciej Szulik <soltysh@gmail.com>
2026-03-12 22:49:41 +05:30
..
apply.sh add --subresource to kubectl apply 2024-10-02 13:28:29 -04:00
apps.sh Add given namespace in dryrun=client output of HPA 2025-11-03 18:35:45 +03:00
auth_whoami.sh Fix cmd, integration, and conformance tests 2023-05-03 01:29:37 +02:00
authentication.sh Add client-go credential plugin to kuberc 2025-11-09 14:24:53 -05:00
authorization.sh Introduce --as-user-extra persistent flag in kubectl (#134378) 2025-11-04 07:14:09 -08:00
batch.sh Update shellcheck version (0.7.2 -> 0.8.0) and fix findings 2022-11-08 11:53:57 +01: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 Clean up service account print and describe 2025-08-05 17:51:10 -04:00
crd.sh remove PruneWhitelist, use prune-allowlist instead 2023-12-15 11:51:14 +08:00
create.sh Merge pull request #109850 from ardaguclu/validate-nooptdefval 2022-06-13 08:04:11 -07:00
debug.sh make general profile default 2025-12-24 15:35:31 +00:00
delete.sh kubectl config set-context: Add -n flag 2025-10-06 11:31:26 +02:00
diff.sh update pause version to 3.10.1 2025-07-09 16:38:14 +05:30
discovery.sh Fix kubectl explain bug when additionalProperties in schema defines as boolean. (#124506) 2024-05-21 04:40:32 -07:00
events.sh Improve cmd tests for kubectl events 2025-10-24 16:37:03 +02:00
exec.sh List containers when given container is not found 2026-02-12 09:47:30 +03:00
generic-resources.sh tests: adding integration test for rollout status 2022-04-21 11:21:13 -04:00
get.sh client-go/transport: structured, contextual logging 2025-01-27 09:45:04 +01:00
help.sh Optimize usage message of commands which have subcommands. 2023-05-26 10:07:43 +08:00
kubeconfig.sh Clarify, document KUBE_OUTPUT_* variables 2024-02-29 22:05:42 -08:00
kuberc.sh Add credential pluginkubectl kuberc set options (#137300) 2026-03-12 22:49:41 +05:30
legacy-script.sh Reflect expected replica count to the output of kubectl scale 2026-02-11 17:44:36 +03:00
node-management.sh client-go/transport: structured, contextual logging 2025-01-27 09:45:04 +01:00
OWNERS Update sig-cli OWNERS 2022-02-14 10:55:35 -07:00
plugins.sh KEP-3638: Promote plugin resolution to beta (#120663) 2023-10-23 13:41:38 +02: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 flake(kubectl): fix run_kubectl_request_timeout_tests in integration test 2024-10-16 20:44:25 +08:00
results.sh cleanup: remove suggestfor from wait command (#137266) 2026-03-04 20:08:27 +05:30
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
scale.sh Reflect expected replica count to the output of kubectl scale 2026-02-11 17:44:36 +03: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 Update version.sh 2023-11-04 17:22:30 +08:00
wait.sh kubectl wait: Support multiple conditions (#136855) 2026-03-04 23:30:27 +05:30

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.