Bug 1808113 - Namespaced Dynamic Resources should not have the installPlan as their owner
Summary: Namespaced Dynamic Resources should not have the installPlan as their owner
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.4
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 4.5.0
Assignee: Nick Hale
QA Contact: Bruno Andrade
URL:
Whiteboard:
Depends On:
Blocks: 1808465
TreeView+ depends on / blocked
 
Reported: 2020-02-27 20:29 UTC by Alexander Greene
Modified: 2020-07-13 17:22 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: Custom resources installed by OLM are given OwnerReferences to the InstallPlan they were applied from. Consequence: Deleting an InstallPlan deletes the custom resources that were applied from it. Fix: Point OwnerReferences for custom resources to the CSV that they were installed for. Result: Deleting an InstallPlan no longer deletes the custom resources that were applied from it.
Clone Of:
Environment:
Last Closed: 2020-07-13 17:21:52 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github operator-framework operator-lifecycle-manager pull 1341 0 None closed Bug 1808113: Fix OwnerReferences for bundled CRs 2020-07-14 08:28:47 UTC
Red Hat Product Errata RHBA-2020:2409 0 None None None 2020-07-13 17:22:13 UTC

Description Alexander Greene 2020-02-27 20:29:46 UTC
Description of problem:
Dynamic Resources (I.E. The PrometheusRule and ServiceMonitor resources) stored in the bundle have the installPlan as their Owner.The owner should be the CSV.

This bug was introduced at [1] in the code.

Version-Release number of selected component (if applicable):
4.4 and beyond

How reproducible:
Always

Steps to Reproduce:
1. Install an operator whose bundle includes a Prometheus Resource
2. Delete the CSV

Actual results:
The Prometheus resource still exists.

Expected results:
The Prometheus resource should no longer exist.

Additional info:
[1] https://github.com/operator-framework/operator-lifecycle-manager/blob/master/pkg/controller/operators/catalog/operator.go#L1725

Comment 3 Bruno Andrade 2020-03-09 13:24:28 UTC
OwnerReferences were added to PrometheusRule and ServiceMonitor objects as expected. Marking as VERIFIED.

Cluster Version: 4.5.0-0.nightly-2020-03-06-190457

Steps used to reproduce:

1. Install an operator whose bundle includes a Prometheus Resource

oc get csv -n test-operators                                     
NAME                        DISPLAY               VERSION   REPLACES   PHASE
etcdoperator.v0.9.4         etcd                  0.9.4                Succeeded
prometheusoperator.0.32.0   Prometheus Operator   0.32.0               Succeeded

2. Check OwnerReferences for ServiceMonitor and PrometheusRule objects:

 oc get ServiceMonitor my-servicemonitor -o yaml -n test-operators
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  creationTimestamp: "2020-03-09T04:03:41Z"
  generation: 1
  labels:
    app: olm-operator
  name: my-servicemonitor
  namespace: test-operators
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: etcdoperator.v0.9.4
    uid: 2fcbb9c5-d4ce-4fb1-b212-6a3f4c49e26b
  resourceVersion: "33125"
  selfLink: /apis/monitoring.coreos.com/v1/namespaces/test-operators/servicemonitors/my-servicemonitor
  uid: a771eb68-afbe-46f9-8043-a3039ed377b5

oc get PrometheusRule my-prometheusrule -n test-operators -o yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  creationTimestamp: "2020-03-09T04:03:41Z"
  generation: 1
  labels:
    prometheus: alert-rules
    role: alert-rules
  name: my-prometheusrule
  namespace: test-operators
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: etcdoperator.v0.9.4
    uid: 2fcbb9c5-d4ce-4fb1-b212-6a3f4c49e26b
  resourceVersion: "33124"
  selfLink: /apis/monitoring.coreos.com/v1/namespaces/test-operators/prometheusrules/my-prometheusrule
  uid: a3c09f94-d1f7-42ad-9be9-ecab0365a053

3. Delete csv and check if PrometheusRule and ServiceMonitor objects are deleted.

clusterserviceversion.operators.coreos.com "etcdoperator.v0.9.4" deleted

oc get ServiceMonitor,PrometheusRule -n test-operators 
No resources found in test-operators namespace

Comment 5 errata-xmlrpc 2020-07-13 17:21:52 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, 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


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