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

OLM PackageServer Broken OpenAPI Schema - ArgoCD Cluster Cache Failure

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Undefined Undefined
    • None
    • 4.22.0
    • OLM
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • Rejected
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

      The OLM `packageserver` in OCP 4.22.0-ec.3 publishes a broken OpenAPI v2 schemathat prevents ArgoCD (OpenShift GitOps v3.1.12) from building its cluster cache.This causes all ArgoCD applications to fail with `ComparisonError` and`UnknownError` conditions, blocking sync operations entirely.
      

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

      - **OpenShift**: 4.22.0-ec.3
      - **OpenShift GitOps Operator**: v1.19.2 (bundles upstream ArgoCD v3.1.12)
      - **Cluster Type**: Single Node OpenShift (SNO), but likely affects all topologies

      How reproducible:

          100%

      Steps to Reproduce:

      ArgoCD applications show the following error:
      ```SchemaError(com.github.operator-framework.operator-lifecycle-manager.pkg.package-server.apis.operators.v1.PackageManifest.spec):unknown model in reference: "github.com~1operator-framework~1operator-lifecycle-manager~1pkg~1package-server~1apis~1operators~1v1.PackageManifestSpec"```
      Application conditions report:
      - `ComparisonError`: Failed to load live state / target state- `UnknownError`: error synchronizing cache state
      All ArgoCD applications targeting the affected cluster are unable to sync.
      

      Actual results:

       The `packageserver` registers an aggregated APIService (`v1.packages.operators.coreos.com`)that serves an OpenAPI v2 schema with an inconsistent `$ref` reference:
      - The `PackageManifest` model is keyed as:  `com.github.operator-framework.operator-lifecycle-manager.pkg.package-server.apis.operators.v1.PackageManifest`  (dot-separated, standard OpenAPI v2 naming)
      - The `spec` field contains a `$ref` pointing to:  `#/definitions/github.com~1operator-framework~1...~1v1.PackageManifestSpec`  (slash-based with JSON Pointer `~1` encoding)
      - The target model does **not** exist in `#/definitions/` under either the  `~1`-encoded name or the unescaped name. The model is simply missing from  the OpenAPI v2 definitions.
      ArgoCD (via `kube-openapi`) fails hard when it cannot resolve this reference,which prevents the entire cluster cache from being built.

      Expected results:

          

      Additional info:

          

              rh-ee-cchantse Catherine Chan-Tse
              midu@redhat.com Mihai IDU
              Yurii Prokulevych
              Jian Zhang Jian Zhang
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: