diff --git a/pkg/virt-api/webhooks/validating-webhook/admitters/pod-eviction-admitter.go b/pkg/virt-api/webhooks/validating-webhook/admitters/pod-eviction-admitter.go index 7c9727fbff42..7e3580edb2e7 100644 --- a/pkg/virt-api/webhooks/validating-webhook/admitters/pod-eviction-admitter.go +++ b/pkg/virt-api/webhooks/validating-webhook/admitters/pod-eviction-admitter.go @@ -8,6 +8,7 @@ import ( "k8s.io/apimachinery/pkg/types" admissionv1 "k8s.io/api/admission/v1" + k8scorev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" virtv1 "kubevirt.io/api/core/v1" @@ -29,16 +30,16 @@ func (admitter *PodEvictionAdmitter) Admit(ar *admissionv1.AdmissionReview) *adm return validating_webhooks.NewPassingAdmissionResponse() } - if value, exists := launcher.GetLabels()[virtv1.AppLabel]; !exists || value != "virt-launcher" { + if !isVirtLauncher(launcher) { return validating_webhooks.NewPassingAdmissionResponse() } - domainName, exists := launcher.GetAnnotations()[virtv1.DomainAnnotation] + vmiName, exists := launcher.GetAnnotations()[virtv1.DomainAnnotation] if !exists { return validating_webhooks.NewPassingAdmissionResponse() } - vmi, err := admitter.VirtClient.VirtualMachineInstance(ar.Request.Namespace).Get(context.Background(), domainName, metav1.GetOptions{}) + vmi, err := admitter.VirtClient.VirtualMachineInstance(ar.Request.Namespace).Get(context.Background(), vmiName, metav1.GetOptions{}) if err != nil { return denied(fmt.Sprintf("kubevirt failed getting the vmi: %s", err.Error())) } @@ -105,3 +106,7 @@ func denied(message string) *admissionv1.AdmissionResponse { }, } } + +func isVirtLauncher(pod *k8scorev1.Pod) bool { + return pod.Labels[virtv1.AppLabel] == "virt-launcher" +}