Bug 1955803 - OperatorHub - console accepts any value for "Infrastructure features" annotation
Summary: OperatorHub - console accepts any value for "Infrastructure features" annotation
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Management Console
Version: 4.8
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
: 4.8.0
Assignee: Bryan Florkiewicz
QA Contact: Xiyun Zhao
URL:
Whiteboard:
Depends On:
Blocks: 1957499
TreeView+ depends on / blocked
 
Reported: 2021-04-30 20:12 UTC by tony.wu
Modified: 2021-07-27 23:05 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1957499 (view as bug list)
Environment:
Last Closed: 2021-07-27 23:05:33 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
1_bacon-bundle.png (6.57 KB, image/png)
2021-04-30 20:12 UTC, tony.wu
no flags Details
2_old_vs_new.png (29.29 KB, image/png)
2021-04-30 20:13 UTC, tony.wu
no flags Details
2_old_vs_new.png (29.29 KB, image/png)
2021-04-30 20:13 UTC, tony.wu
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github openshift console pull 8844 0 None open Bug 1955803: OperatorHub - console accepts any value for infraFeatures 2021-05-03 17:17:03 UTC
Github openshift console pull 9006 0 None open Bug 1955803: OperatorHub duplicate item details and empty infraFeatures 2021-05-21 19:51:45 UTC
Red Hat Product Errata RHSA-2021:2438 0 None None None 2021-07-27 23:05:56 UTC

Description tony.wu 2021-04-30 20:12:34 UTC
Created attachment 1777920 [details]
1_bacon-bundle.png

Description of problem:

Currently, console accepts any value for `operators.openshift.io/infrastructure-features` and shows it in the UI (see attached: 1_bacon-bundle.png).
The console could/should restrict what we allow to a "well-defined" list.

There's been a few changes in the annotations for "Infrastructure features" documented in OCP doc:
https://docs.openshift.com/container-platform/4.7/operators/operator_sdk/osdk-generating-csvs.html#osdk-csv-manual-annotations_osdk-generating-csvs

We want to make sure the console handles both values as in "the latest doc" + "what those were before" as we are about to push Operator fleets to adopt these.

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

How reproducible:
100%

Steps to Reproduce:
1. Go to OperatorHub, check "Infrastructure features"

2. Create a custom CatalogSource:
---
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: tonywu-catsrc
  namespace: openshift-marketplace
spec:
  displayName: TW’s CatalogSource
  sourceType: grpc
  image: quay.io/tlwu2013/tw-index:latest

---

That includes a test version Portworx using the annotation following OCP doc:
https://docs.openshift.com/container-platform/4.7/operators/operator_sdk/osdk-generating-csvs.html#osdk-csv-manual-annotations_osdk-generating-csvs

3. Wait until "TW’s CatalogSource(1)" shows up under "Source" filer in the OperatorHub page.

4. Check "Infrastructure features" filter section again and check the filer options.


Actual results:
"Infrastructure features" filter shows:

- Disconnected(20)
- Proxy(2)
- disconnected(1)
- proxy-aware(1)


Expected results:
The "Infrastructure features" filter option maps annotations in both "old" and "new" format to a unified "Display format" string.

(UXD will follow up in finalizing the "Display format" string)


Additional info:
(UXD will follow up in finalizing the "Display format" string)

Comment 1 tony.wu 2021-04-30 20:13:19 UTC
Created attachment 1777921 [details]
2_old_vs_new.png

Comment 2 tony.wu 2021-04-30 20:13:47 UTC
Created attachment 1777922 [details]
2_old_vs_new.png

Comment 4 Peter Kreuser 2021-05-03 17:52:36 UTC
For the infrastructure features filter lets go with the following facet terminology for the display strings:
- Cloud-Native Network Function
- Container Network Interface
- Container Storage Interface
- Disconnected
- FIPS Mode
- Proxy-aware

Comment 6 Xiyun Zhao 2021-05-07 08:25:35 UTC
This bug has been fixed on payload 4.8.0-0.nightly-2021-05-06-162549

Step for verify:
1. Create a CatalogSource on Administration -> cluster Settings -> Tab of 'Global configuration' -> choose OperatorHub -> Tab of 'Sources'
2. Provide the necessary information, and create the catalogsource
   apiVersion: operators.coreos.com/v1alpha1
   kind: CatalogSource
   metadata:
      name: test1955803
      namespace: openshift-marketplace
   spec:
      displayName: TW’s CatalogSource
      sourceType: grpc
      image: quay.io/tlwu2013/tw-index:latest
3. Wait until "TW’s CatalogSource(1)" shows up under "Source" filer in the OperatorHub page.
4. Check "Infrastructure features" filter section again and check the filer options.

Result:
Only two option 'Disconnected' and 'Proxy' can be found under filter of 'infrastructure features' on Operator Hub and Operator detail page

Additional info:
The image that used for create CatalogSource is comes from the repository of 'quay.io/tlwu2013/tw-index:latest'.
This image is include a test version of Portworx, and using the annotation following OCP doc:
https://docs.openshift.com/container-platform/4.7/operators/operator_sdk/osdk-generating-csvs.html#osdk-csv-manual-annotations_osdk-generating-csvs

Comment 7 Yadan Pei 2021-05-12 05:38:36 UTC
based on comments in https://github.com/openshift/console/pull/8859#issuecomment-839410741, moving back to fix the issues on operator modal

Comment 9 Xiyun Zhao 2021-05-27 08:28:34 UTC
This bug has been verified on payload 4.8.0-0.nightly-2021-05-26-172234

Pre_condition:
Build an operator image who has operators.openshift.io/infrastructure-features annotation with multiple values(valid and invalid)
    operators.openshift.io/infrastructure-features: >-
      ["disconnected", "cni", "cnf", "csi", "fips", "proxy-aware",
      "Disconnected", "FipsMode", "Proxy", "Unknown", "TestBacon"]

Step for verify:
1. Create a CatalogSource on Administration -> cluster Settings -> Tab of 'Global configuration' -> choose OperatorHub -> Tab of 'Sources'
2. Provide the necessary information, and create the catalogsource
   apiVersion: operators.coreos.com/v1alpha1
   kind: CatalogSource
   metadata:
      name: test1955803
      namespace: openshift-marketplace
   spec:
      displayName: TW’s CatalogSource
      sourceType: grpc
      image: quay.io/yapei/operatorinfras:latest
3. Wait until "TW’s CatalogSource(1)" shows up under "Source" filer in the OperatorHub page.
4. Check "Infrastructure features" filter section again and check the filter options.
5. Click on the installed operator
6. Verify if the "Infrastructure features" information is shown on the operator detail page
7. Go back to OperatorHub page, use 'Kubestone' as a example who hasn't have operators.openshift.io/infrastructure-features annotation setting on image
8. Verify if infrastructure features with empty value will shown on operator modal

Result:
4,6. All setting for infrastructure-features on image is shown on Operator Hub and Operator detail page correctly
8. No 'Infrastructure feature' shown on operator modal if the operator doesn't have operators.openshift.io/infrastructure-features annotation defined

Comment 12 errata-xmlrpc 2021-07-27 23:05:33 UTC
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 (Moderate: OpenShift Container Platform 4.8.2 bug fix and security update), 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/RHSA-2021:2438


Note You need to log in before you can comment on or make changes to this bug.