Bug 1782837
| Summary: | Can't install operator unless I install the dependency operator first | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Evan Cordell <ecordell> |
| Component: | OLM | Assignee: | Evan Cordell <ecordell> |
| OLM sub component: | OLM | QA Contact: | Jian Zhang <jiazha> |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | high | ||
| Priority: | high | CC: | bandrade, ecordell, jiazha, jmatthew, jmontleo, lgallett, scolange, tbuskey, xjiang |
| Version: | 4.3.0 | ||
| Target Milestone: | --- | ||
| Target Release: | 4.3.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 1781366 | Environment: | |
| Last Closed: | 2020-01-23 11:18:56 UTC | Type: | --- |
| 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: | 1781366 | ||
| Bug Blocks: | |||
|
Comment 2
Xin jiang
2020-01-09 03:33:56 UTC
Cluster version is 4.3.0-rc.0
mac:manifest jianzhang$ oc exec catalog-operator-6f887bc6fb-pqzrc -- olm --version
OLM version: 0.13.0
git commit: c74333dbe61d92e1a75b09f74c0dc2c99b05405a
1, Create the CatalogSource image.
1) Copy the OCS and CAM operators manifest.
mac:cam jianzhang$ cp -r ocs-operator/deploy/olm-catalog/ocs-operator manifests/
mac:cam jianzhang$ cp -r /Users/jianzhang/cam/mig-operator/deploy/olm-catalog/mig-operator ./manifests
Remove the "replaces" fields from their CSV.
And, remove unnecessary channels. Like below:
mac:cam jianzhang$ cat manifests/mig-operator/mig-operator.package.yaml
packageName: mig-operator
channels:
- name: release-v1
currentCSV: mig-operator.v1.0.1
defaultChannel: release-v1
mac:cam jianzhang$ cat manifests/ocs-operator/ocs-operator.package.yaml
packageName: ocs-operator
channels:
- name: alpha
currentCSV: ocs-operator.v4.3.0
defaultChannel: alpha
2) Add the "required" field in the CAM CSV file. Like below:
mac:manifest jianzhang$ vim v1.0.1/mig-operator.v1.0.1.clusterserviceversion.yaml
...
version: 1.0.1
customresourcedefinitions:
required:
- name: noobaas.noobaa.io
version: v1alpha1
kind: NooBaa
displayName: NooBaa
description: NooBaa System
owned:
...
3) Create a Docker file, like below:
mac:cam jianzhang$ cat Dockerfile
FROM registry.redhat.io/openshift4/ose-operator-registry:v4.2.8 AS builder
COPY manifests manifests
RUN /bin/initializer -o ./bundles.db
FROM openshift/origin-base
COPY --from=builder /registry/bundles.db /bundles.db
COPY --from=builder /usr/bin/registry-server /registry-server
COPY --from=builder /bin/grpc_health_probe /bin/grpc_health_probe
EXPOSE 50051
ENTRYPOINT ["/registry-server"]
CMD ["--database", "bundles.db"]
mac:cam jianzhang$ pwd
/Users/jianzhang/cam
mac:cam jianzhang$ ls
Dockerfile manifestsv
4) Create a new image called "quay.io/aosqe4/cam-catalog:bug2-1782837" and push it to the Quay(make it public).
mac:cam jianzhang$ docker build -t quay.io/aosqe4/cam-catalog:bug2-1782837 .
Sending build context to Docker daemon 153.1kB
Step 1/10 : FROM registry.redhat.io/openshift4/ose-operator-registry AS builder
---> 398b172db5a7
Step 2/10 : COPY manifests manifests
---> bd7b2fc9b4b6
Step 3/10 : RUN /bin/initializer -o ./bundles.db
---> Running in 49c945cf91e8
...
Successfully built 6fd3eb04f5ba
Successfully tagged quay.io/aosqe4/cam-catalog:bugSuccessfully built 6fd3eb04f5ba
Successfully tagged quay.io/aosqe4/cam-catalog:bug
mac:cam jianzhang$ docker push quay.io/aosqe4/cam-catalog:bug2-1782837
...
2, Create a CatalogSource object to consume this image. Like below:
mac:cam jianzhang$ cat cs.yaml
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: cam-operator
namespace: openshift-marketplace
spec:
sourceType: grpc
image: quay.io/aosqe4/cam-catalog:bug2-1782837
displayName: Jian Operators
publisher: jian
mac:cam jianzhang$ oc create -f cs.yaml
catalogsource.operators.coreos.com/cam-operator created
mac:cam jianzhang$ oc get catalogsource
NAME DISPLAY TYPE PUBLISHER AGE
cam-operator Jian Operators grpc jian 3m24s
mac:cam jianzhang$ oc get pods
NAME READY STATUS RESTARTS AGE
cam-operator-jr4jw 1/1 Running 0 6m40s
3, Check the OCS and CAM operators.
mac:cam jianzhang$ oc get packagemanifest |grep mig
mig-operator Jian Operators 8m53s
mac:cam jianzhang$ oc get packagemanifest |grep ocs
ocs-operator Jian Operators 9m24s
4, Subscribe to this CAM operator in the default project. See screenshot: https://user-images.githubusercontent.com/15416633/72060309-af30ef80-330e-11ea-9bb0-f7858768b945.png
5, Check if the dependent OCS can be installed automatically.
mac:cam jianzhang$ oc get sub -n default
NAME PACKAGE SOURCE CHANNEL
mig-operator mig-operator cam-operator release-v1
ocs-operator-alpha-cam-operator-openshift-marketplace ocs-operator cam-operator alpha
mac:cam jianzhang$ oc get csv -n default
NAME DISPLAY VERSION REPLACES PHASE
mig-operator.v1.0.1 Migration Operator 1.0.1 Succeeded
ocs-operator.v4.3.0 OpenShift Container Storage 4.3.0 Succeeded
mac:cam jianzhang$ oc get pods -n default
NAME READY STATUS RESTARTS AGE
aws-s3-provisioner-5c7bd499ff-bfk5r 1/1 Running 0 2m38s
migration-operator-5b87f7fc8f-59ckg 2/2 Running 0 2m43s
noobaa-operator-855bd56d6-x8qxx 1/1 Running 0 2m38s
ocs-operator-67b989cc66-t4kgg 1/1 Running 0 2m38s
rook-ceph-operator-696d8c4f47-98gtp 1/1 Running 0 2m38s
It works! This dependent OCS operator can be installed automatically. Verify it.
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:0062 |