Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-18025

MachineConfig with ignition version 3.4 fail with ocp4-pci-dss scans on api-collector

XMLWordPrintable

    • +
    • No
    • 2
    • CMP Sprint 69, CMP Sprint 70
    • 2
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      The MC has a 3.4 ignition file which causes the parse to fail, such as: 
      ```
      apiVersion: machineconfiguration.openshift.io/v1kind: MachineConfigmetadata:... labels: machineconfiguration.openshift.io/role: master name: 00-masterspec: baseOSExtensionsContainerImage: "" config: ignition: version: 3.4.0 storage: files: - contents:```
      ```oc logs ocp4-pci-dss-api-checks-pod -c api-resource-collector...Fetching URI: '"/api/v1/nodes/NODE_NAME/proxy/configz"'Fetching URI: '/apis/machineconfiguration.openshift.io/v1/machineconfigs'FATAL:Error fetching resources: streaming URIs failed: failed to filter machine configs: cannot parse MC 00-master: failed to parse Ignition config: parsing Ignition config failed: unknown version. Supported spec versions: 2.2, 3.0, 3.1, 3.2````

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

      4.14 nightly

      How reproducible:

      Every time

      Steps to Reproduce:

      1. Upgrade 4.13.0 to 4.14 nightly
      2. Install Compliance Operator 1.2.0
      3. Configure ocp4-pci-dss and ocp4-pci-dss-node 
      4. Pods fail with CrashBackOffLoop

      Actual results:

      CrashBackOffLoop

      Expected results:

      Successful Scan

      Additional info:

      The api-resource-collector calls ignition parse and convert. https://github.com/ComplianceAsCode/compliance-operator/blob/master/cmd/manager/scap.go#L499
      The failure is at this line:
      ```https://github.com/ComplianceAsCode/compliance-operator/blob/master/cmd/manager/scap.go#L532C1-L532C68            ign, err := mcfgcommon.ParseAndConvertConfig(mc.Spec.Config.Raw)```
      it's due to an out of date dependency with machine-config-operator.
      https://github.com/ComplianceAsCode/compliance-operator/blob/master/go.mod#L48C1-L48C83`github.com/openshift/machine-config-operator v0.0.1-0.20230124070108-2d92b8d47e80`
      
      The helper now supports 3_4 ignition too.- https://github.com/openshift/machine-config-operator/blob/master/pkg/controller/common/helpers.go#L41- https://github.com/openshift/machine-config-operator/blob/master/pkg/controller/common/helpers.go#L630
      

              wenshen@redhat.com Vincent Shen
              pbastide_rh Paul Bastide
              Xiaojie Yuan Xiaojie Yuan
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: