Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-40693

[DPDK Checkup] `spec.status` in checkup ConfigMap not updated when VM disk image is invalid

XMLWordPrintable

    • 0.42
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • No
    • ---
    • ---

      Description of problem:

      When the user specifies an invalid spec.param.trafficGenContainerDiskImage and/or spec.param.vmUnderTestContainerDiskImage in the checkup's ConfigMap (or doesn't specify these parameters at all), the checkup is aborted with failure.
      In this case, no spec.status.* is updated in the ConfigMap. The user must check the job's pod log to see the failure reason.

      Version-Release number of selected component (if applicable):

      CNV 4.16.0
      kubevirt-dpdk-checkup-rhel9:v4.16.0-120

      How reproducible:

      100%

      Steps to Reproduce:

      1.
      The cluster should be configured for DPDK checkup, including MCP, PerformanceProfile and permissions. If needed - follow the D/S instructions in https://docs.openshift.com/container-platform/4.15/virt/vm_networking/virt-using-dpdk-with-sriov.html#virt-configuring-cluster-dpdk_virt-using-dpdk-with-sriov
      
      2.
      Apply a DPDK checkup ConfigMap without specifying the traffic-gen VM and the VM under-test images:
      
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: dpdk-checkup-config
      data:
        spec.timeout: 20m
        spec.param.networkAttachmentDefinitionName: default/sriov-network
        spec.param.verbose: "true"
        spec.param.trafficGenPacketsPerSecond: 7m
      
      3.
      Start the job by applying the Job resource:
      
      apiVersion: batch/v1
      kind: Job
      metadata:
        name: dpdk-checkup
      spec:
        backoffLimit: 0
        template:
          spec:
            serviceAccountName: dpdk-checkup-sa
            restartPolicy: Never
            containers:
              - name: dpdk-checkup
                image: registry-proxy.engineering.redhat.com/rh-osbs/container-native-virtualization-kubevirt-dpdk-checkup-rhel9@sha256:08d9ae188c7ec703f59b62cc3cea77d91fe0935cf5da208b5766727199cf865d
                imagePullPolicy: Always
                securityContext:
                  allowPrivilegeEscalation: false
                  capabilities:
                    drop: ["ALL"]
                  runAsNonRoot: true
                  seccompProfile:
                    type: "RuntimeDefault"
                env:
                  - name: CONFIGMAP_NAMESPACE
                    value: dpdk-checkup-ns
                  - name: CONFIGMAP_NAME
                    value: dpdk-checkup-config
                  - name: POD_UID
                    valueFrom:
                      fieldRef:
                        fieldPath: metadata.uid

      Actual results:

      No spec.status.* is updated in the ConfigMap, hence no clear failure indication to the user.

      Expected results:

      Reflect then failure via the ConfigMap's `spec.status.*` fields:
      
      spec.status.succeeded: "false"
      spec.status.failureReason: "invalid [ VM Under Test | Traffic Generator ] container disk image"

      Additional info:

      The user must check the job's pod log to see the failure reason:
      
      $ oc logs dpdk-checkup-mxv9p 
      2024/04/11 12:27:16 kubevirt-dpdk-checkup starting...
      2024/04/11 12:27:16 kubevirt-dpdk-checkup failed: invalid Traffic Generator container disk image

       

            phoracek@redhat.com Petr Horacek
            ysegev@redhat.com Yossi Segev
            Nir Rozen Nir Rozen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: