mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 19:23:40 +00:00
Merge pull request #120119 from Ithrael/fix/kubectl-events-doesnt-filter-events-by-GroupVersion-for-resource-with-full-name
fix(kubectl): kubectl events doesn't filter events by GroupVersion fo…
This commit is contained in:
commit
294bde0079
@ -229,6 +229,7 @@ func (o *EventsOptions) Run() error {
|
|||||||
if o.forName != "" {
|
if o.forName != "" {
|
||||||
listOptions.FieldSelector = fields.AndSelectors(
|
listOptions.FieldSelector = fields.AndSelectors(
|
||||||
fields.OneTermEqualSelector("involvedObject.kind", o.forGVK.Kind),
|
fields.OneTermEqualSelector("involvedObject.kind", o.forGVK.Kind),
|
||||||
|
fields.OneTermEqualSelector("involvedObject.apiVersion", o.forGVK.GroupVersion().String()),
|
||||||
fields.OneTermEqualSelector("involvedObject.name", o.forName)).String()
|
fields.OneTermEqualSelector("involvedObject.name", o.forName)).String()
|
||||||
}
|
}
|
||||||
if o.Watch {
|
if o.Watch {
|
||||||
|
@ -42,6 +42,61 @@ run_kubectl_events_tests() {
|
|||||||
kube::test::get_object_assert 'cronjob --namespace=test-events' "{{range.items}}{{ if eq $id_field \"pi\" }}found{{end}}{{end}}:" ':'
|
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
|
### 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[@]:?}"
|
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"
|
||||||
|
},
|
||||||
|
"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
|
# Post-Condition: assertion object exists
|
||||||
kube::test::get_object_assert 'cronjob/pi --namespace=test-events' "{{$id_field}}" 'pi'
|
kube::test::get_object_assert 'cronjob/pi --namespace=test-events' "{{$id_field}}" 'pi'
|
||||||
|
|
||||||
@ -61,6 +116,10 @@ run_kubectl_events_tests() {
|
|||||||
output_message=$(kubectl events -n test-events --for Cronjob.v1.batch/pi "${kube_flags[@]:?}" 2>&1)
|
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"
|
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
|
# 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)
|
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"
|
kube::test::if_has_string "${output_message}" "Warning" "InvalidSchedule" "Cronjob/pi"
|
||||||
@ -92,6 +151,8 @@ run_kubectl_events_tests() {
|
|||||||
|
|
||||||
#Clean up
|
#Clean up
|
||||||
kubectl delete cronjob pi --namespace=test-events
|
kubectl delete cronjob pi --namespace=test-events
|
||||||
|
kubectl delete cronjobs.v1.example.com pi --namespace=test-events
|
||||||
|
kubectl delete crd cronjobs.example.com
|
||||||
kubectl delete namespace test-events
|
kubectl delete namespace test-events
|
||||||
|
|
||||||
set +o nounset
|
set +o nounset
|
||||||
|
Loading…
Reference in New Issue
Block a user