operator-framework / operator-courier

Build, verify and push operators
Apache License 2.0
41 stars 53 forks source link

[regression?] operator-courier 2.1.8 falsely(?) fails --ui_validate_io check #188

Closed leifmadsen closed 3 years ago

leifmadsen commented 4 years ago

My CI started failing today on the operator-courier verify --ui_validate_io check for my Ansible Operators (probably not related to Ansible).

Version 2.1.7 does not result in a failure. When running 2.1.8 I get the following error on my checks:

operator-courier verify --ui_validate_io deploy/olm-catalog/service-telemetry-operator/
ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [0.1.1/service-telemetry-operator.v0.1.1.clusterserviceversion.yaml]
ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [1.0.0/service-telemetry-operator.v1.0.0.clusterserviceversion.yaml]
ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [1.0.1/service-telemetry-operator.v1.0.1.clusterserviceversion.yaml]
ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [1.0.2/service-telemetry-operator.v1.0.2.clusterserviceversion.yaml]
ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [1.0.3/service-telemetry-operator.v1.0.3.clusterserviceversion.yaml]
Resulting bundle is invalid, input yaml is improperly defined.

CSVs are available here: https://github.com/infrawatch/service-telemetry-operator/tree/master/deploy/olm-catalog/service-telemetry-operator/1.0.2 (version 1.0.2 as an example).

Looking at what the error is telling me, it seems like everything is fine?

CSV --> spec --> CRD --> owned --> version == https://github.com/infrawatch/service-telemetry-operator/blob/master/deploy/olm-catalog/service-telemetry-operator/1.0.2/service-telemetry-operator.v1.0.2.clusterserviceversion.yaml#L93

CRD --> spec --> versions == https://github.com/infrawatch/service-telemetry-operator/blob/master/deploy/olm-catalog/service-telemetry-operator/1.0.2/infra.watch_servicetelemetrys_crd.yaml#L16-L19

jmazzitelli commented 4 years ago

I'm seeing the same - I haven't changed the community metadata for my operator in a while - and just today when an unrelated PR got submitted and travis ran the CI tests, I get this:

ERROR: CSV.spec.crd.owned.version isnot in CRD.spec.versions list [1.15.1/kiali.v1.15.1.clusterserviceversion.yaml]

See Kiali community metadata: https://github.com/operator-framework/community-operators/tree/master/community-operators/kiali/1.15.1

tiraboschi commented 4 years ago

We are also facing this on CI on https://github.com/kubevirt/hyperconverged-cluster-operator

leifmadsen commented 4 years ago

FYI the workaround is to pin operator-courier==2.1.7

tiraboschi commented 3 years ago

Yes, I think this is definitively a regression introduced with https://github.com/operator-framework/operator-courier/pull/165 It affects all the bundles that include a CRD with spec.versions.

https://github.com/operator-framework/operator-courier/pull/189 should fix it.

Kaitou786 commented 3 years ago

I believe the latest quay.io/operator-framework/operator-testing:latest has been updated with this version of operator-courier. We are facing the same issue in our CI: https://github.com/kiegroup/kogito-cloud-operator

J0zi commented 3 years ago

all of the sudden, not only 2.1.8, but also older versions (2.1.7 and 2.1.6) are failing on the stuff which was green in the past.