Description of problem: Add operators.openshift.io/infrastructure-features annotation to operator CSV and create catalog source with customized image, it will break Operator Hub Version-Release number of selected component (if applicable): 4.5.0-0.nightly-2020-04-06-184201 How reproducible: Always Steps to Reproduce: 1. Build a custom image containing 3 operators with annotation operators.openshift.io/infrastructure-features [yapei@New_Mac manifests]$ grep -nr 'operators.openshift.io/infrastructure-features' * cockroachdb/2.1.11/cockroachdb.v2.1.11.clusterserviceversion.yaml:26: operators.openshift.io/infrastructure-features: Disconnected hawtio/0.2.0/hawtio-operator.v0.2.0.clusterserviceversion.yaml:7: operators.openshift.io/infrastructure-features: Proxy keda/1.3.0/keda.v1.3.0.clusterserviceversion.yaml:17: operators.openshift.io/infrastructure-features: FIPS Mode [yapei@New_Mac operator-registry]$ docker build -f upstream-example.Dockerfile -t quay.io/yapei/console-2124:infras . Sending build context to Docker daemon 85.38MB Step 1/10 : FROM quay.io/operator-framework/upstream-registry-builder as builder ---> 53136ea017f3 Step 2/10 : COPY manifests manifests ---> 4d7d1c932e2a Step 3/10 : RUN /bin/initializer -o ./bundles.db ---> Running in 27825876e32f time="2020-04-07T06:10:35Z" level=info msg="loading Bundles" dir=manifests time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=manifests load=bundles time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=cockroachdb load=bundles time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.0.9 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=cockroachdb.v2.0.9.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.0.9 file=cockroachdb.v2.0.9.clusterserviceversion.yaml load=bundle name=cockroachdb.v2.0.9 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.0.9 file=cockroachdbs.charts.helm.k8s.io.crd.yaml load=bundle name=cockroachdb.v2.0.9 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.1.1 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=cockroachdb.v2.1.1.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.1.1 file=cockroachdb.v2.1.1.clusterserviceversion.yaml load=bundle name=cockroachdb.v2.1.1 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.1.1 file=cockroachdbs.charts.helm.k8s.io.crd.yaml load=bundle name=cockroachdb.v2.1.1 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.1.11 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=cockroachdb.v2.1.11.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.1.11 file=cockroachdb.v2.1.11.clusterserviceversion.yaml load=bundle name=cockroachdb.v2.1.11 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/cockroachdb/2.1.11 file=cockroachdbs.charts.helm.k8s.io.crd.yaml load=bundle name=cockroachdb.v2.1.11 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=hawtio load=bundles time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=0.1.0 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=hawtio-operator.v0.1.0.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/hawtio/0.1.0 file=hawtio-operator.v0.1.0.clusterserviceversion.yaml load=bundle name=hawtio-operator.v0.1.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/hawtio/0.1.0 file=hawtios.hawt.io.crd.yaml load=bundle name=hawtio-operator.v0.1.0 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=0.2.0 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=hawtio-operator.v0.2.0.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/hawtio/0.2.0 file=hawtio-operator.v0.2.0.clusterserviceversion.yaml load=bundle name=hawtio-operator.v0.2.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/hawtio/0.2.0 file=hawtios.hawt.io.crd.yaml load=bundle name=hawtio-operator.v0.2.0 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=keda load=bundles time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=1.2.0 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=keda.v1.2.0.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.2.0 file=keda.v1.2.0.clusterserviceversion.yaml load=bundle name=keda.v1.2.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.2.0 file=kedacontrollers.keda.k8s.io.crd.yaml load=bundle name=keda.v1.2.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.2.0 file=scaledobjects.keda.k8s.io.crd.yaml load=bundle name=keda.v1.2.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.2.0 file=triggerauthentications.keda.k8s.io.crd.yaml load=bundle name=keda.v1.2.0 time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=1.3.0 load=bundles time="2020-04-07T06:10:35Z" level=info msg="found csv, loading bundle" dir=manifests file=keda.v1.3.0.clusterserviceversion.yaml load=bundles time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.3.0 file=keda.v1.3.0.clusterserviceversion.yaml load=bundle name=keda.v1.3.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.3.0 file=kedacontrollers.keda.k8s.io.crd.yaml load=bundle name=keda.v1.3.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.3.0 file=scaledobjects.keda.k8s.io.crd.yaml load=bundle name=keda.v1.3.0 time="2020-04-07T06:10:35Z" level=info msg="loading bundle file" dir=manifests/keda/1.3.0 file=triggerauthentications.keda.k8s.io.crd.yaml load=bundle name=keda.v1.3.0 time="2020-04-07T06:10:35Z" level=info msg="loading Packages and Entries" dir=manifests time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=manifests load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=cockroachdb load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.0.9 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.1.1 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=2.1.11 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=hawtio load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=0.1.0 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=0.2.0 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=keda load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=1.2.0 load=package time="2020-04-07T06:10:35Z" level=info msg=directory dir=manifests file=1.3.0 load=package Removing intermediate container 27825876e32f ---> 88020be36d80 Step 4/10 : FROM scratch ---> Step 5/10 : COPY --from=builder /build/bundles.db /bundles.db ---> fc66d4b672e7 Step 6/10 : COPY --from=builder /bin/registry-server /registry-server ---> ce9bd8ceb0c0 Step 7/10 : COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe ---> a1e9a0620be1 Step 8/10 : EXPOSE 50051 ---> Running in 4bbb158da0f8 Removing intermediate container 4bbb158da0f8 ---> f9c72749ea51 Step 9/10 : ENTRYPOINT ["/registry-server"] ---> Running in 4e235816aeb7 Removing intermediate container 4e235816aeb7 ---> 583230841ea5 Step 10/10 : CMD ["--database", "bundles.db"] ---> Running in 2fd5c7375179 Removing intermediate container 2fd5c7375179 ---> 186a6b8c7582 Successfully built 186a6b8c7582 Successfully tagged quay.io/yapei/console-2124:infras [yapei@New_Mac operator-registry]$ docker push quay.io/yapei/console-2124:infras The push refers to repository [quay.io/yapei/console-2124] d4deb1c69484: Pushed 8158ff97c4d8: Layer already exists d0270e976ab0: Pushed infras: digest: sha256:ef9c8d16eae6cf20d86f0ef20452af53eef424b4ebf73f79d3b77a8197ded273 size: 949 2. Create Custom Catalog Source from web console, Administration -> Cluster Settings -> Global Configuration -> OperatorHub -> Sources tab -> click 'Create Catalog Source' button -> set all required fields, set Image (URL of container image) with value quay.io/yapei/console-2124:infras 3. Visit Operator Hub 4. Check status in CLI # oc get packagemanifests -n openshift-marketplace | grep 'Custom 2124 Testing' cockroachdb Custom 2124 Testing 14m keda Custom 2124 Testing 14m hawtio-operator Custom 2124 Testing 14m # oc logs -f custom-2124-testing-hcfqw -n openshift-marketplace time="2020-04-07T06:49:25Z" level=info msg="serving registry" database=bundles.db port=50051 Actual results: 3. Operator Hub is totally broken JSON.parse: unexpected character at line 1 column 1 of the JSON data Component Trace: in OperatorHubList in Unknown in Unknown in x in Unknown in x in div in div in div in Unknown in o in OperatorHubPage in c in t in R in t in div in div in section in d in Unknown in x in x in div in f in div in f in NotificationDrawer in Unknown in x in Unknown in Unknown in x in Unknown in x in main in div in y in component in t in t in t y/y<@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/operator-hub-chunk-dabb23d73251dff31ae8.min.js:1:18054 y@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/operator-hub-chunk-dabb23d73251dff31ae8.min.js:1:16556 Ni@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:55337 ha@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:62378 Ku@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:99519 Bu@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:84010 Lu@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:81035 Du@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:79608 ho/<@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:41759 t.unstable_runWithPriority@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:163:3878 co@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:41488 ho@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:41707 po@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:41640 Mu@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:155:79935 notify@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:18:65175 a</t.notifyNestedSubs@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:18:64744 f</n.notifySubscribers@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:35:196890 a</t.handleChangeWrapper@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:18:64812 v@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:12:251026 f/</</<@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/main-chunk-a25f1e3a133c0f8c7996.min.js:1:88233 dispatch@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/vendors~main-chunk-728d5ab5dafb9076d848.min.js:12:254513 i/</<@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/main-chunk-a25f1e3a133c0f8c7996.min.js:1:95228 i/<@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/main-chunk-a25f1e3a133c0f8c7996.min.js:1:95214 s@https://console-openshift-console.apps.qe-groupd-0407.qe.devcluster.openshift.com/static/main-chunk-a25f1e3a133c0f8c7996.min.js:1:92906 Expected results: Operator Hub should not broken Additional info: Also I added annotation as following, it will also break Operator Hub cockroachdb/2.1.11/cockroachdb.v2.1.11.clusterserviceversion.yaml:26: operators.openshift.io/infrastructure-features: 'Disconnected' hawtio/0.2.0/hawtio-operator.v0.2.0.clusterserviceversion.yaml:7: operators.openshift.io/infrastructure-features: 'Proxy' keda/1.3.0/keda.v1.3.0.clusterserviceversion.yaml:17: operators.openshift.io/infrastructure-features: 'FIPS Mode'
1. Create custom catalog source # cat yapei-custom-catalog-source.yaml apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: yapei-custom-catalogsource namespace: openshift-marketplace spec: sourceType: grpc image: quay.io/yapei/console-2124:infras displayName: Customized Catalog Source YAPEI publisher: yapei # oc create -f yapei-custom-catalog-source.yaml catalogsource.operators.coreos.com/yapei-custom-catalogsource created # oc get pods -n openshift-marketplace | grep yapei yapei-custom-catalogsource-cpnxf 1/1 Running 0 41s 2. Visit Operators -> OperatorHub, OperatorHub does not break Verified on 4.5.0-0.nightly-2020-04-15-194358
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:2409