diff --git a/test/cmd/events.sh b/test/cmd/events.sh index 1ada5dae2de..a7c1c952b9a 100755 --- a/test/cmd/events.sh +++ b/test/cmd/events.sh @@ -42,6 +42,62 @@ run_kubectl_events_tests() { kube::test::get_object_assert 'cronjob --namespace=test-events' "{{range.items}}{{ if eq $id_field \"pi\" }}found{{end}}{{end}}:" ':' ### Create a cronjob in a specific namespace kubectl create cronjob pi --schedule="59 23 31 2 *" --namespace=test-events "--image=$IMAGE_PERL" -- perl -Mbignum=bpi -wle 'print bpi(20)' "${kube_flags[@]:?}" + ### Create a crd + kubectl create -f - << __EOF__ +{ + "kind": "CustomResourceDefinition", + "apiVersion": "apiextensions.k8s.io/v1", + "metadata": { + "name": "cronjobs.example.com" + }, + "spec": { + "group": "example.com", + "scope": "Namespaced", + "names": { + "plural": "cronjobs", + "singular": "cronjob", + "kind": "Cronjob", + "shortNames": ["mycj"] + }, + "versions": [ + { + "name": "v1", + "served": true, + "storage": true, + "schema": { + "openAPIV3Schema": { + "type": "object", + "properties": { + "spec": { + "type": "object", + "properties": { + "image": {"type": "string"} + } + } + } + } + } + } + ] + } +} +__EOF__ + + ### Create a example.com/v1 Cronjob in a specific namespace + kubectl create -f - << __EOF__ +{ + "kind": "Cronjob", + "apiVersion": "example.com/v1", + "metadata": { + "name": "pi", + "namespace": "test-events" + }, + "spec": { + "image": "test" + } +} +__EOF__ + # Post-Condition: assertion object exists kube::test::get_object_assert 'cronjob/pi --namespace=test-events' "{{$id_field}}" 'pi' @@ -61,6 +117,10 @@ run_kubectl_events_tests() { output_message=$(kubectl events -n test-events --for Cronjob.v1.batch/pi "${kube_flags[@]:?}" 2>&1) kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi" + # Post-Condition: events not returns event for fully qualified Cronjob.v1.example.com/pi when --for flag is used + output_message=$(kubectl events -n test-events --for Cronjob.v1.example.com/pi "${kube_flags[@]:?}" 2>&1) + kube::test::if_has_not_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi" + # Post-Condition: events returns event for fully qualified without version Cronjob.batch/pi when --for flag is used output_message=$(kubectl events -n test-events --for=Cronjob.batch/pi "${kube_flags[@]:?}" 2>&1) kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi" @@ -92,6 +152,8 @@ run_kubectl_events_tests() { #Clean up kubectl delete cronjob pi --namespace=test-events + kubectl delete mycj pi --namespace=test-events + kubectl delete crd cronjobs.example.com kubectl delete namespace test-events set +o nounset