Bug 1955803

Summary: OperatorHub - console accepts any value for "Infrastructure features" annotation
Product: OpenShift Container Platform Reporter: tony.wu
Component: Management ConsoleAssignee: Bryan Florkiewicz <bflorkie>
Status: CLOSED ERRATA QA Contact: Xiyun Zhao <xiyuzhao>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 4.8CC: aos-bugs, jokerman, pkreuser, spadgett, yanpzhan, yapei
Target Milestone: ---   
Target Release: 4.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1957499 (view as bug list) Environment:
Last Closed: 2021-07-27 23:05:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1957499    
Attachments:
Description Flags
1_bacon-bundle.png
none
2_old_vs_new.png
none
2_old_vs_new.png none

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