Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 1860035: Fix SubscriptionConfig NodeSelector field #1716

Merged

Conversation

awgreene
Copy link
Member

@awgreene awgreene commented Aug 7, 2020

Problem: OLM's Subscription CRD allows cluster admins to set
nodeSelectors on Operators they deploy. Currently this API is exposed
but performs no action.

Solution: Wire the NodeSelector specified in the SubscriptionConfig into
the pods deployed when installing the operator.

@awgreene awgreene changed the title Bug: Fix SubscriptionConfig NodeSelector field Bug 1860035: Fix SubscriptionConfig NodeSelector field Aug 7, 2020
@openshift-ci-robot openshift-ci-robot added the bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. label Aug 7, 2020
@openshift-ci-robot
Copy link
Collaborator

@awgreene: This pull request references Bugzilla bug 1860035, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.6.0) matches configured target release for branch (4.6.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

In response to this:

Bug 1860035: Fix SubscriptionConfig NodeSelector field

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci-robot openshift-ci-robot added the bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. label Aug 7, 2020
Copy link
Member

@exdx exdx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just some nits
/lgtm


### NodeSelector

The `nodeSelector` field defines a [NodeSelector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/) for the Pod created by OLM.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this is a bit vague. Could we say "for the pods associated with the operator deployment" instead?

This also future-proofs it a bit where in the future OLM supports more than just deploying operators, something we discussed recently

Copy link
Member Author

@awgreene awgreene Aug 7, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this is a bit vague. Could we say "for the pods associated with the operator deployment" instead?

Technically this config is applied to all deployments created by OLM.

This also future-proofs it a bit where in the future OLM supports more than just deploying operators, something we discussed recently

OLM also creates deployments for webhooks, which could be stored in the same deployment as the operator but isn't guaranteed, so I don't know how OLM could only create deployments for operators.

//
// If any Container in PodSpec already defines a NodeSelector it will
// be overwritten.
func InjectNodeSelectorIntoDeployment(podSpec *corev1.PodSpec, nodeSelector map[string]string) error {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: this function is called InjectNodeSelectorIntoDeployment but injects the nodeselector into a PodSpec

maybe calling it InjectNodeSelectorIntoPodSpec makes it a little clearer?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense, but none of the other methods in this file distinguish injecting into the deployment or podSpec. I suspect this was either an oversight when the code was written or assuming its fine given that the podspec is part of the deployment. Should we change the distinction in all places or follow convention.

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Aug 7, 2020
@of-deploy-bot
Copy link

This PR failed tests for 1 times with 3 individual failed tests and 4 skipped tests. A test is considered flaky if failed on multiple commits.

totaltestcount: 1
flaketestcount: 3
skippedtestcount: 4
flaketests:

  • classname: End-to-end
    name: 'Subscription creation with pod config'
    counts: 3
    details:
    • count: 3
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/subscription_e2e_test.go:1041
      
      	Error Trace:	subscription_e2e_test.go:1187
      	            				runner.go:113
      	            				runner.go:64
      	            				it_node.go:26
      	            				spec.go:215
      	            				spec.go:138
      	            				spec_runner.go:200
      	            				spec_runner.go:170
      	            				spec_runner.go:66
      	            				suite.go:62
      	            				ginkgo_dsl.go:226
      	            				ginkgo_dsl.go:214
      	            				e2e_test.go:54
      	Error:      	Received unexpected error:
      	            	timed out waiting for the condition
      
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/vendor/github.com/stretchr/testify/require/require.go:1005
      
    meandurationsec: 330.616282
  • classname: End-to-end
    name: 'Garbage collection for dependent resources when a bundle with configmap
    and secret objects is installed when the CSV is deleted OLM should delete
    the associated configmap and secret
    '
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/gc_e2e_test.go:296
      could not get installplan at complete phase
      Unexpected error:
          <*errors.errorString | 0xc0001782a0>: {
              s: "timed out waiting for the condition",
          }
          timed out waiting for the condition
      occurred
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/gc_e2e_test.go:341
      
    meandurationsec: 313.178593
  • classname: End-to-end
    name: 'CSV create requirements met CRD'
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/csv_e2e_test.go:459
      
      	Error Trace:	csv_e2e_test.go:701
      	            				runner.go:113
      	            				runner.go:64
      	            				it_node.go:26
      	            				spec.go:215
      	            				spec.go:138
      	            				spec_runner.go:200
      	            				spec_runner.go:170
      	            				spec_runner.go:66
      	            				suite.go:62
      	            				ginkgo_dsl.go:226
      	            				ginkgo_dsl.go:214
      	            				e2e_test.go:54
      	Error:      	Received unexpected error:
      	            	timed out waiting for the condition
      
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/vendor/github.com/stretchr/testify/require/require.go:1005
      
    meandurationsec: 328.260173
    skippedtests:
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should have created the expected
    prometheus objects
    '
    counts: 1
    details: []
    meandurationsec: 24.124069
  • classname: End-to-end
    name: 'Catalog image update'
    counts: 1
    details: []
    meandurationsec: 0.366264
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should install the operator
    successfully
    '
    counts: 1
    details: []
    meandurationsec: 21.094421
  • classname: End-to-end
    name: 'Subscription updates existing install plan'
    counts: 1
    details: []
    meandurationsec: 0.413831

@ecordell
Copy link
Member

ecordell commented Aug 7, 2020

/approve

@openshift-ci-robot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: awgreene, ecordell

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 7, 2020
@awgreene
Copy link
Member Author

awgreene commented Aug 7, 2020

/retest

@of-deploy-bot
Copy link

This PR failed tests for 1 times with 6 individual failed tests and 4 skipped tests. A test is considered flaky if failed on multiple commits.

totaltestcount: 1
flaketestcount: 6
skippedtestcount: 4
flaketests:

  • classname: End-to-end
    name: 'Subscription creation with pod config'
    counts: 3
    details:
    • count: 3
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/subscription_e2e_test.go:1041
      
      	Error Trace:	subscription_e2e_test.go:1187
      	            				runner.go:113
      	            				runner.go:64
      	            				it_node.go:26
      	            				spec.go:215
      	            				spec.go:138
      	            				spec_runner.go:200
      	            				spec_runner.go:170
      	            				spec_runner.go:66
      	            				suite.go:62
      	            				ginkgo_dsl.go:226
      	            				ginkgo_dsl.go:214
      	            				e2e_test.go:54
      	Error:      	Received unexpected error:
      	            	timed out waiting for the condition
      
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/vendor/github.com/stretchr/testify/require/require.go:1005
      
    meandurationsec: 318.4868383333333
  • classname: End-to-end
    name: 'Install Plan with CSVs across multiple catalog sources'
    counts: 2
    details:
    • count: 2
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/installplan_e2e_test.go:45
      Resource does not match expected value:   &v1alpha1.InstallPlan{
        	TypeMeta: {},
        	ObjectMeta: v1.ObjectMeta{
        		... // 3 identical fields
        		SelfLink:                   "/apis/operators.coreos.com/v1alpha1/namespaces/operators/install"...,
        		UID:                        "590c586d-3155-4da7-a8a5-deb0f6878baf",
      - 		ResourceVersion:            "13442",
      + 		ResourceVersion:            "13449",
        		Generation:                 1,
        		CreationTimestamp:          {Time: s"2020-08-07 23:55:25 +0000 UTC"},
        		DeletionTimestamp:          nil,
        		DeletionGracePeriodSeconds: nil,
        		Labels: map[string]string{
        			"operators.coreos.com/nginx-tdtr7.operators":    "",
      + 			"operators.coreos.com/nginxdep-s6ccq.operators": "",
        		},
        		Annotations:     nil,
        		OwnerReferences: {{APIVersion: "operators.coreos.com/v1alpha1", Kind: "Subscription", Name: "sub-nginx-tvlvj", UID: "670ef166-e345-485d-ae4a-cb4c0f4c150d", ...}},
        		... // 3 identical fields
        	},
        	Spec:   {ClusterServiceVersionNames: {"nginxdep-s6ccq-stable", "nginx-tdtr7-stable"}, Approval: "Automatic", Approved: true, Generation: 1},
        	Status: {Phase: "Complete", Conditions: {{Type: "Installed", Status: "True", LastUpdateTime: s"2020-08-07 23:55:28 +0000 UTC", LastTransitionTime: s"2020-08-07 23:55:28 +0000 UTC", ...}}, CatalogSources: {"mock-ocs-dependent-mgfmv", "mock-ocs-main-ql8lp"}, Plan: {&{Resolving: "nginxdep-s6ccq-stable", Resource: {CatalogSource: "mock-ocs-dependent-mgfmv", CatalogSourceNamespace: "operators", Version: "v1alpha1", Kind: "ClusterServiceVersion", ...}, Status: "Present"}, &{Resolving: "nginx-tdtr7-stable", Resource: {CatalogSource: "mock-ocs-main-ql8lp", CatalogSourceNamespace: "operators", Version: "v1alpha1", Kind: "ClusterServiceVersion", ...}, Status: "Present"}, &{Resolving: "nginxdep-s6ccq-stable", Resource: {CatalogSource: "mock-ocs-dependent-mgfmv", CatalogSourceNamespace: "operators", Group: "apiextensions.k8s.io", Version: "v1beta1", ...}, Status: "Present"}, &{Resolving: "nginxdep-s6ccq-stable", Resource: {CatalogSource: "mock-ocs-dependent-mgfmv", CatalogSourceNamespace: "operators", Group: "operators.coreos.com", Version: "v1alpha1", ...}, Status: "Present"}}, ...},
        }
      
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/installplan_e2e_test.go:2700
      
    meandurationsec: 189.2262245
  • classname: End-to-end
    name: 'CRD Versions blocks a CRD upgrade that could cause data loss'
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/crd_e2e_test.go:178
      Unexpected error:
          <*errors.errorString | 0xc0001f4280>: {
              s: "timed out waiting for the condition",
          }
          timed out waiting for the condition
      occurred
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/crd_e2e_test.go:286
      
    meandurationsec: 320.09633
  • classname: End-to-end
    name: 'Garbage collection for dependent resources when a bundle with configmap
    and secret objects is installed when the CSV is deleted OLM should delete
    the associated configmap and secret
    '
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/gc_e2e_test.go:296
      could not get installplan at complete phase
      Unexpected error:
          <*errors.errorString | 0xc0001f4280>: {
              s: "timed out waiting for the condition",
          }
          timed out waiting for the condition
      occurred
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/gc_e2e_test.go:341
      
    meandurationsec: 311.08044
  • classname: End-to-end
    name: 'CRD Versions creates v1 CRDs with a v1 schema successfully'
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/crd_e2e_test.go:106
      Unexpected error:
          <*errors.errorString | 0xc0001f4280>: {
              s: "timed out waiting for the condition",
          }
          timed out waiting for the condition
      occurred
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/crd_e2e_test.go:164
      
    meandurationsec: 322.140323
  • classname: End-to-end
    name: 'Subscription creation in case of transferring providedAPIs'
    counts: 1
    details:
    • count: 1
      error: |4-

      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/test/e2e/subscription_e2e_test.go:1781
      
      	Error Trace:	subscription_e2e_test.go:1921
      	            				runner.go:113
      	            				runner.go:64
      	            				it_node.go:26
      	            				spec.go:215
      	            				spec.go:138
      	            				spec_runner.go:200
      	            				spec_runner.go:170
      	            				spec_runner.go:66
      	            				suite.go:62
      	            				ginkgo_dsl.go:226
      	            				ginkgo_dsl.go:214
      	            				e2e_test.go:54
      	Error:      	Received unexpected error:
      	            	clusterserviceversions.operators.coreos.com "nginx-new-a" not found
      
      /home/runner/work/operator-lifecycle-manager/operator-lifecycle-manager/vendor/github.com/stretchr/testify/require/require.go:1005
      
    meandurationsec: 67.779862
    skippedtests:
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should install the operator
    successfully
    '
    counts: 1
    details: []
    meandurationsec: 23.093505
  • classname: End-to-end
    name: 'Catalog image update'
    counts: 1
    details: []
    meandurationsec: 0.279937
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should have created the expected
    prometheus objects
    '
    counts: 1
    details: []
    meandurationsec: 11.284437
  • classname: End-to-end
    name: 'Subscription updates existing install plan'
    counts: 1
    details: []
    meandurationsec: 0.018524

@awgreene
Copy link
Member Author

awgreene commented Aug 8, 2020

/retest

2 similar comments
@awgreene
Copy link
Member Author

awgreene commented Aug 8, 2020

/retest

@awgreene
Copy link
Member Author

awgreene commented Aug 8, 2020

/retest

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

11 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

18 similar comments
@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-bot
Copy link
Contributor

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Aug 10, 2020
@awgreene
Copy link
Member Author

The e2e test was failing because the CSV never reached the suceeded state. The pod associated with the operator was never assigned to a node that had the nodeSelector specified in the subscription config because no node had the labels. I have created a new e2e test that checks that the deployment has the nodeSelector instead.

@of-deploy-bot
Copy link

This PR failed 0 out of 1 times with 0 individual failed tests and 131 skipped tests. A test is considered flaky if failed on multiple commits.

totaltestcount: 1
failedtestcount: 0
flaketestcount: 0
skippedtestcount: 131
flaketests: []
skippedtests:

  • classname: End-to-end
    name: 'Subscription puppeting CatalogSource health status when the target catalog''s
    sourceType is unknown should surface catalog health
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create requirements met CRD'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog config map update triggers registry pod rollout'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should have created the expected
    prometheus objects
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CRD Versions allows a CRD upgrade that doesn''t cause data loss'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet requirements CRD'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'User defined service account with permission'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update multiple version CRD'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources when a bundle with a new configmap
    is installed when the subscription is updated to a later CSV with a configmap
    with a new name should have removed the old configmap and put the new configmap
    in place
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with CRD schema change Test all existing versions are present,
    different (backwards incompatible) schema
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'User defined service account with retry'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Given an OperatorGroup
    that supports all namespaces when a CSV spec does not include Install Mode
    when the failed CSV is deleted deletes its associated CSV metrics
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update with owned API service'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when WebhookDescription has conversionCRDs field
    The CSV is not created when dealing with conversionCRD and multiple installModes
    support exists
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with owned API service'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when WebhookDescription has conversionCRDs field
    The conversion CRD is updated via webhook when CSV owns this CRD
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation manual approval'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group intersection'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Scoped Client Test ServiceAccountHasPermission'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create same CSV with owned API service multi namespace'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Package Manifest API lists available Operators from Catalog Sources Given
    a CatalogSource created using gRPC catalog source type when the display name
    for catalog source is updated should successfully update the CatalogSource
    field
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription skip range'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription with starting CSV'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group role aggregation'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan creation with permissions'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV multiple API services on a single pod'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group Given a set of Namespaces when an OperatorGroup is created
    having above Namespaces defined under targetNamespaces field OLM applies labels
    to Namespaces that are associated with an OperatorGroup
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Package Manifest API lists available Operators from Catalog Sources Given
    a CatalogSource created using the ConfigMap as catalog source type gets the
    icon from the default channel
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Given an OperatorGroup
    that supports all namespaces when a CSV spec does not include Install Mode
    generates csv_abnormal metric for OLM pod
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog global update triggers subscription sync'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Scoped Client Test ServiceAccountDoesNotHaveAnyPermission'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet requirements API service'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation with pod config'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources Given a dependent resource
    associated with multiple owners when removing one of the owner using ''Foreground''
    deletion policy should not have deleted the dependent since ownerB CSV is
    still present
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group insufficient permissions resolve via service account removal'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog Dependency has correct replaces field'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription updates multiple intermediates'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group static provider'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription to an operator with dependencies from different CatalogSources
    with priorities creating CatalogSources providing the same dependency with
    different names when creating subscription for the main package choose the
    dependency from the right CatalogSource based on lexicographical name ordering
    of catalogs
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan update catalog for subscription StopOnCSVModifications'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with CRD schema change Test all existing versions are present,
    different (backwards compatible) schema
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet requirements native API'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in an OperatorGroup that defines a
    selector The webhook is scoped to the selector
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation in case of transferring providedAPIs'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with CSVs across multiple catalog sources'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV orphaned API service clean up'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when WebhookDescription has conversionCRDs field
    The conversion CRD is not updated via webhook when CSV does not own this CRD
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with CRD schema change Test missing existing versions in
    new CRD
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Fails if the webhook intercepts OLM resources
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan unpacks bundle image'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan without an operatorgroup'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources when a bundle with configmap
    and secret objects is installed when the CSV is deleted OLM should delete
    the associated configmap and secret
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan update catalog for subscription UpdatePreexistingCRDFailed'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a Global OperatorGroup The webhook
    is scoped to all namespaces
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan update catalog for subscription AttenuatePermissions'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription updates existing install plan'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog delete gRPC registry pod triggers recreation'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription can reconcile InstallPlan status'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Succeeds if the webhook intercepts non Admission Webhook resources in admissionregistration
    group
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'User defined service account with no permission'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV api service resource migrated if adoptable'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan update catalog for subscription UpdateSingleExistingCRDOwner'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources Given a dependent resource
    associated with multiple owners when removing both the owners using ''Foreground''
    deletion policy should have deleted the dependent since both the owners were
    deleted
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CRD Versions blocks a CRD upgrade that could cause data loss'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Is updated when the CAs expire
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources Given a ClusterRole owned
    by a CustomResourceDefinition when CustomResourceDefinition is deleted should
    delete the associated ClusterRole
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan consistent generation'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update different deployment name'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Fails to install a CSV if multiple Webhooks share the same name
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Metrics emitted by objects
    during operator installation when A subscription object is updated after emitting
    metrics when The subscription object is updated again deletes the old subscription
    metric and emits the new metric(there is only one metric for the subscription)
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group e2e functionality'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan creation with pre existing CRD owners PreExistingCRDOwnerIsReplaced'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan CRD validation'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Creates Webhooks scoped to a single namespace
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group CSV copy watching all namespaces'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog gRPC address catalog source'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update in place'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group cleanup csvs with bad owner operator groups'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog image update'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator when a subscription to a package exists should automatically
    adopt components
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CRD Versions creates v1beta1 crds with a v1beta1 schema successfully'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Fails if the webhooks intercepts all resources
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation if not installed'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Package Manifest API lists available Operators from Catalog Sources Given
    a CatalogSource created using the ConfigMap as catalog source type lists PackageManifest
    and ensures it has valid PackageManifest item
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with deprecated version CRD Test upgrade CRD with deprecated
    version
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet permissions API service'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Can be installed and upgraded successfully
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet permissions CRD'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription to an operator with dependencies from different CatalogSources
    with priorities creating the main and an arbitrary CatalogSources providing
    the same dependency when creating subscription for the main package choose
    the dependent package from the same catsrc as the installing operator
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV API service resource not migrated if not adoptable'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog config map replace triggers registry pod rollout'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription puppeting CatalogSource health status when the target catalog''s
    sourceType is internal and its spec is missing the configmap reference should
    surface catalog health
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan update catalog for subscription AmplifyPermissions'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV status invalid CSV'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog loading between restarts'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV emits CSV requirement events'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group OperatorGroupLabels'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan with CRD schema change Test existing version is present
    in new CRD (deprecated field)
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation with dependencies'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription puppeting CatalogSource health status when the target catalog''s
    sourceType is grpc and its spec is missing the address and image fields should
    surface catalog health
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CRD Versions creates v1 CRDs with a v1 schema successfully'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Package Manifest API lists available Operators from Catalog Sources Given
    a CatalogSource created using the ConfigMap as catalog source type retrieves
    the PackageManifest by package name and validates its fields
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Catalog delete internal registry pod triggers recreation'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update modify deployment name'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources when a bundle with a configmap
    is installed when the subscription is updated to a later CSV with a configmap
    with the same name but new data OLM should have upgraded associated configmap
    in place
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscriptions create required objects from Catalogs Given a Namespace
    when a CatalogSource is created with a bundle that contains prometheus objects
    creating a subscription using the CatalogSource should install the operator
    successfully
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Package Manifest API lists available Operators from Catalog Sources Given
    a CatalogSource created using gRPC catalog source type lists the CatalogSource
    contents using the PackageManifest API
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription to an operator with dependencies from different CatalogSources
    with priorities creating CatalogSources providing the same dependency with
    different priority value when creating subscription for the main package choose
    the dependent package from the catsrc with higher priority
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group CleanupDeletedOperatorGroupLabels'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Metrics emitted by objects
    during operator installation when A subscription object is created generates
    subscription_sync_total metric
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook when Installed in a SingleNamespace OperatorGroup
    Fails if webhook intercepts Admission Webhook resources
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription to an operator with dependencies from different CatalogSources
    with priorities creating CatalogSources providing the same dependency under
    test and global namespaces when creating subscription for the main package
    choose the dependent package from the catsrc in the same namespace as the
    installing operator
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group insufficient permissions resolve via RBAC'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation with dependencies required and provided in different
    versions of an operator in the same package
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription puppeting CatalogSource health status when missing target
    catalog should surface the missing catalog
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Install Plan creation with pre existing CRD owners OnePreExistingCRDOwner'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription creation using existing CSV'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create requirements met API service'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group install mode support'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Metrics emitted by objects
    during operator installation when A subscription object is created generates
    dependency_resolution metric
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Metrics emitted by objects
    during operator installation when A subscription object is updated after emitting
    metrics deletes the old Subscription metric and emits the new metric
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Installing bundles with new object types when a bundle with a pdb, priorityclass,
    and VPA object is installed should create the additional bundle objects
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Metrics are generated for OLM managed resources Metrics emitted by objects
    during operator installation when A subscription object is deleted after emitting
    metrics deletes the Subscription metric
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator Group Given a set of Namespaces Associating these Namespaces
    with a label when an OperatorGroup is created having matching label selector
    defined OLM applies labels to Namespaces that are associated with an OperatorGroup
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSVs with a Webhook Allows multiple installs of the same webhook'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update multiple intermediates'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Garbage collection for dependent resources Given a ClusterRole owned
    by a APIService when APIService is deleted should delete the associated ClusterRole
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Subscription puppeting CatalogSource health status when the target catalog''s
    sourceType is configmap and its spec is missing the configmap reference should
    surface catalog health
    '
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV update same deployment name'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'Operator should surface components in its status'
    counts: 1
    details: []
    meandurationsec: 0
  • classname: End-to-end
    name: 'CSV create with unmet requirements mini kube version'
    counts: 1
    details: []
    meandurationsec: 0

@awgreene
Copy link
Member Author

/retest

Problem: OLM's Subscription CRD allows cluster admins to set the
nodeSelector on Operators they deploy. Currently this API is exposed
but performs no action.

Solution: Wire the NodeSelector specified in the SubscriptionConfig into
the pods deployed when installing the operator.
@exdx
Copy link
Member

exdx commented Aug 11, 2020

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Aug 11, 2020
@openshift-merge-robot openshift-merge-robot merged commit a5de023 into operator-framework:master Aug 11, 2020
@openshift-ci-robot
Copy link
Collaborator

@awgreene: All pull requests linked via external trackers have merged: operator-framework/operator-lifecycle-manager#1716. Bugzilla bug 1860035 has been moved to the MODIFIED state.

In response to this:

Bug 1860035: Fix SubscriptionConfig NodeSelector field

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants