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
apps.sh Add given namespace in dryrun=client output of HPA 2025-11-03 18:35:45 +03:00
auth_whoami.sh
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
certificate.sh
convert.sh
core.sh Clean up service account print and describe 2025-08-05 17:51:10 -04:00
crd.sh
create.sh
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
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
get.sh
help.sh
kubeconfig.sh
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
OWNERS
plugins.sh
proxy.sh
rbac.sh
README.md
request-timeout.sh
results.sh cleanup: remove suggestfor from wait command (#137266) 2026-03-04 20:08:27 +05:30
run.sh
save-config.sh
scale.sh Reflect expected replica count to the output of kubectl scale 2026-02-11 17:44:36 +03:00
storage.sh
template-output.sh
version.sh
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.