When CRDs are deleted, discovery local cache is not invalidated. This brings about `resource not found` error when new CRD with same name is created with different fields(ie. changing scope from cluster-wide to namespaced). Because this already deleted CRD still stays in serverresources.json and kubectl tries to use it. This local cached files have 10 minutes TTL. After deletion, if user waits 10 minutes, files will be expired and deleted and there will be no errors. However, 10 minutes is a long time and cache needs to be invalidated after deletion occurs. This PR adds a document into delete command by noting that there might be a need to invalidate discovery cache when CRD is deleted. In addition to that this PR adds a test to catch this behavior.
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 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.