mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Test generic operations with thirdpartyresources
This commit is contained in:
parent
408a978f26
commit
17168aaacc
@ -1202,6 +1202,73 @@ __EOF__
|
|||||||
# Test that we can list this new third party resource
|
# Test that we can list this new third party resource
|
||||||
kube::test::get_object_assert foos "{{range.items}}{{$id_field}}:{{end}}" 'test:'
|
kube::test::get_object_assert foos "{{range.items}}{{$id_field}}:{{end}}" 'test:'
|
||||||
|
|
||||||
|
# Test alternate forms
|
||||||
|
kube::test::get_object_assert foo "{{range.items}}{{$id_field}}:{{end}}" 'test:'
|
||||||
|
kube::test::get_object_assert foos.company.com "{{range.items}}{{$id_field}}:{{end}}" 'test:'
|
||||||
|
kube::test::get_object_assert foos.v1.company.com "{{range.items}}{{$id_field}}:{{end}}" 'test:'
|
||||||
|
|
||||||
|
# Test all printers, with lists and individual items
|
||||||
|
kube::log::status "Testing ThirdPartyResource printing"
|
||||||
|
kubectl "${kube_flags[@]}" get foos
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o name
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o name
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o wide
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o wide
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o json
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o json
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o yaml
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o yaml
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o "jsonpath={.items[*].some-field}" --allow-missing-template-keys=false
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o "jsonpath={.some-field}" --allow-missing-template-keys=false
|
||||||
|
kubectl "${kube_flags[@]}" get foos -o "go-template={{range .items}}{{index . \"some-field\"}}{{end}}" --allow-missing-template-keys=false
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o "go-template={{index . \"some-field\"}}" --allow-missing-template-keys=false
|
||||||
|
|
||||||
|
# Test patching
|
||||||
|
kube::log::status "Testing ThirdPartyResource patching"
|
||||||
|
kubectl "${kube_flags[@]}" patch foos/test -p '{"patched":"value1"}' --type=merge
|
||||||
|
kube::test::get_object_assert foos/test "{{.patched}}" 'value1'
|
||||||
|
kubectl "${kube_flags[@]}" patch foos/test -p '{"patched":"value2"}' --type=merge --record
|
||||||
|
kube::test::get_object_assert foos/test "{{.patched}}" 'value2'
|
||||||
|
kubectl "${kube_flags[@]}" patch foos/test -p '{"patched":null}' --type=merge --record
|
||||||
|
kube::test::get_object_assert foos/test "{{.patched}}" '<no value>'
|
||||||
|
# Get local version
|
||||||
|
TPR_RESOURCE_FILE="${KUBE_TEMP}/tpr-foos-test.json"
|
||||||
|
kubectl "${kube_flags[@]}" get foos/test -o json > "${TPR_RESOURCE_FILE}"
|
||||||
|
# cannot apply strategic patch locally
|
||||||
|
TPR_PATCH_ERROR_FILE="${KUBE_TEMP}/tpr-foos-test-error"
|
||||||
|
! kubectl "${kube_flags[@]}" patch --local -f "${TPR_RESOURCE_FILE}" -p '{"patched":"value3"}' 2> "${TPR_PATCH_ERROR_FILE}"
|
||||||
|
if grep -q "try --type merge" "${TPR_PATCH_ERROR_FILE}"; then
|
||||||
|
kube::log::status "\"kubectl patch --local\" returns error as expected for ThirdPartyResource: $(cat ${TPR_PATCH_ERROR_FILE})"
|
||||||
|
else
|
||||||
|
kube::log::status "\"kubectl patch --local\" returns unexpected error or non-error: $(cat ${TPR_PATCH_ERROR_FILE})"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# can apply merge patch locally
|
||||||
|
kubectl "${kube_flags[@]}" patch --local -f "${TPR_RESOURCE_FILE}" -p '{"patched":"value3"}' --type=merge -o json
|
||||||
|
# can apply merge patch remotely
|
||||||
|
kubectl "${kube_flags[@]}" patch --record -f "${TPR_RESOURCE_FILE}" -p '{"patched":"value3"}' --type=merge -o json
|
||||||
|
kube::test::get_object_assert foos/test "{{.patched}}" 'value3'
|
||||||
|
rm "${TPR_RESOURCE_FILE}"
|
||||||
|
rm "${TPR_PATCH_ERROR_FILE}"
|
||||||
|
|
||||||
|
# Test labeling
|
||||||
|
kube::log::status "Testing ThirdPartyResource labeling"
|
||||||
|
kubectl "${kube_flags[@]}" label foos --all listlabel=true
|
||||||
|
kubectl "${kube_flags[@]}" label foo/test itemlabel=true
|
||||||
|
|
||||||
|
# Test annotating
|
||||||
|
kube::log::status "Testing ThirdPartyResource annotating"
|
||||||
|
kubectl "${kube_flags[@]}" annotate foos --all listannotation=true
|
||||||
|
kubectl "${kube_flags[@]}" annotate foo/test itemannotation=true
|
||||||
|
|
||||||
|
# Test describing
|
||||||
|
kube::log::status "Testing ThirdPartyResource describing"
|
||||||
|
kubectl "${kube_flags[@]}" describe foos
|
||||||
|
kubectl "${kube_flags[@]}" describe foos/test
|
||||||
|
kubectl "${kube_flags[@]}" describe foos | grep listlabel=true
|
||||||
|
kubectl "${kube_flags[@]}" describe foos | grep itemlabel=true
|
||||||
|
|
||||||
# Delete the resource
|
# Delete the resource
|
||||||
kubectl "${kube_flags[@]}" delete foos test
|
kubectl "${kube_flags[@]}" delete foos test
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user