Bug 1808102 - Ansible Operator Base image has python dependency conflict between requests-unixsocket, requests, and urllib3
Summary: Ansible Operator Base image has python dependency conflict between requests-u...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Operator SDK
Version: 4.4
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
: 4.5.0
Assignee: Fabian von Feilitzsch
QA Contact: Fan Jia
URL:
Whiteboard:
Depends On:
Blocks: 1808103
TreeView+ depends on / blocked
 
Reported: 2020-02-27 19:49 UTC by Fabian von Feilitzsch
Modified: 2020-07-13 17:22 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 1808103 (view as bug list)
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 openshift ocp-release-operator-sdk pull 44 0 None closed Bug 1808102: Pin requests library to compatible version 2021-01-20 19:24:33 UTC
Red Hat Product Errata RHBA-2020:2409 0 None None None 2020-07-13 17:22:13 UTC

Description Fabian von Feilitzsch 2020-02-27 19:49:25 UTC
Description of problem:
Dependency mismatch in Ansible Operator base image prevents reconciliation from occurring, because ansible-runner-http cannot communicate events over the socket.

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

How reproducible:
100%

Steps to Reproduce:
1. Install and run any ansible-based operator (for example, the template-service-broker-operator)
2. Create the proper Custom Resource to kick off reconciliation

Actual results:
$ oc logs -f openshift-template-service-broker-operator-d4bd6b6c7-qk5wv 
{"level":"info","ts":1582190464.3036518,"logger":"cmd","msg":"Go Version: go1.13.4"}
{"level":"info","ts":1582190464.3037083,"logger":"cmd","msg":"Go OS/Arch: linux/amd64"}
{"level":"info","ts":1582190464.3037162,"logger":"cmd","msg":"Version of operator-sdk: v0.12.0+git"}
{"level":"info","ts":1582190464.3037367,"logger":"cmd","msg":"Watching namespace.","Namespace":"openshift-template-service-broker"}
{"level":"info","ts":1582190466.6216123,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":"0.0.0.0:8383"}
{"level":"info","ts":1582190466.6221745,"logger":"watches","msg":"Failed to parse %v from environment. Using default %v","WORKER_TEMPLATESERVICEBROKER_OSB_OPENSHIFT_IO":1}
{"level":"info","ts":1582190466.6221993,"logger":"watches","msg":"Failed to parse %v from environment. Using default %v","ANSIBLE_VERBOSITY_TEMPLATESERVICEBROKER_OSB_OPENSHIFT_IO":2}
{"level":"info","ts":1582190466.6222587,"logger":"ansible-controller","msg":"Watching resource","Options.Group":"osb.openshift.io","Options.Version":"v1","Options.Kind":"TemplateServiceBroker"}
{"level":"info","ts":1582190466.6225896,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"templateservicebroker-controller","source":"kind source: osb.openshift.io/v1, Kind=TemplateServiceBroker"}
{"level":"info","ts":1582190466.6228318,"logger":"leader","msg":"Trying to become the leader."}
{"level":"info","ts":1582190468.9473782,"logger":"leader","msg":"No pre-existing lock was found."}
{"level":"info","ts":1582190468.9583323,"logger":"leader","msg":"Became the leader."}
{"level":"info","ts":1582190473.652566,"logger":"metrics","msg":"Metrics Service object created","Service.Name":"openshift-template-service-broker-operator-metrics","Service.Namespace":"openshift-template-service-broker"}
{"level":"info","ts":1582190473.6562455,"logger":"proxy","msg":"Starting to serve","Address":"127.0.0.1:8888"}
{"level":"info","ts":1582190473.6565778,"logger":"controller-runtime.manager","msg":"starting metrics server","path":"/metrics"}
{"level":"info","ts":1582190473.757262,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"templateservicebroker-controller"}
{"level":"info","ts":1582190473.8574772,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"templateservicebroker-controller","worker count":1}
{"level":"error","ts":1582190782.8844702,"logger":"runner","msg":"Traceback (most recent call last):\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/__main__.py\", line 329, in main\n    res = run(**run_options)\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/interface.py\", line 162, in run\n    r.run()\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/runner.py\", line 93, in run\n    self.status_callback('starting')\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/runner.py\", line 84, in status_callback\n    ansible_runner.plugins[plugin].status_handler(self.config, status_data)\n  File \"/usr/lib/python2.7/site-packages/ansible_runner_http/events.py\", line 38, in status_handler\n    urlpath=plugin_config['runner_path'])\n  File \"/usr/lib/python2.7/site-packages/ansible_runner_http/events.py\", line 18, in send_request\n    return session.post(url_actual, headers=headers, json=(data))\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 529, in post\n    return self.request('POST', url, data=data, json=json, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 486, in request\n    resp = self.send(prep, **send_kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 598, in send\n    r = adapter.send(request, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/adapters.py\", line 370, in send\n    timeout=timeout\n  File \"/usr/lib/python2.7/site-packages/urllib3/connectionpool.py\", line 587, in urlopen\n    timeout_obj = self._get_timeout(timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/connectionpool.py\", line 302, in _get_timeout\n    return Timeout.from_float(timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 154, in from_float\n    return Timeout(read=timeout, connect=timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 94, in __init__\n    self._connect = self._validate_timeout(connect, 'connect')\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 127, in _validate_timeout\n    \"int, float or None.\" % (name, value))\nValueError: Timeout value connect was Timeout(connect=None, read=None, total=None), but it must be an int, float or None.\n","job":"6129484611666145821","name":"template-service-broker","namespace":"openshift-template-service-broker","error":"exit status 1","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tsrc/github.com/operator-framework/operator-sdk/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/operator-framework/operator-sdk/pkg/ansible/runner.(*runner).Run.func1\n\tsrc/github.com/operator-framework/operator-sdk/pkg/ansible/runner/runner.go:199"}
{"level":"error","ts":1582190782.8848586,"logger":"reconciler","msg":"Failed to get ansible-runner stdout","job":"6129484611666145821","name":"template-service-broker","namespace":"openshift-template-service-broker","error":"open /tmp/ansible-operator/runner/osb.openshift.io/v1/TemplateServiceBroker/openshift-template-service-broker/template-service-broker/artifacts/6129484611666145821/stdout: no such file or directory","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tsrc/github.com/operator-framework/operator-sdk/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/operator-framework/operator-sdk/pkg/ansible/controller.(*AnsibleOperatorReconciler).Reconcile\n\tsrc/github.com/operator-framework/operator-sdk/pkg/ansible/controller/reconcile.go:183\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:216\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:192\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:171\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153\nk8s.io/apimachinery/pkg/util/wait.Until\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88"}
{"level":"error","ts":1582190782.8850884,"logger":"controller-runtime.controller","msg":"Reconciler error","controller":"templateservicebroker-controller","request":"openshift-template-service-broker/template-service-broker","error":"open /tmp/ansible-operator/runner/osb.openshift.io/v1/TemplateServiceBroker/openshift-template-service-broker/template-service-broker/artifacts/6129484611666145821/stdout: no such file or directory","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tsrc/github.com/operator-framework/operator-sdk/vendor/github.com/go-logr/zapr/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:218\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:192\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:171\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153\nk8s.io/apimachinery/pkg/util/wait.Until\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88"}
{"level":"error","ts":1582190784.2685933,"logger":"runner","msg":"Traceback (most recent call last):\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/__main__.py\", line 329, in main\n    res = run(**run_options)\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/interface.py\", line 162, in run\n    r.run()\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/runner.py\", line 93, in run\n    self.status_callback('starting')\n  File \"/usr/lib/python2.7/site-packages/ansible_runner/runner.py\", line 84, in status_callback\n    ansible_runner.plugins[plugin].status_handler(self.config, status_data)\n  File \"/usr/lib/python2.7/site-packages/ansible_runner_http/events.py\", line 38, in status_handler\n    urlpath=plugin_config['runner_path'])\n  File \"/usr/lib/python2.7/site-packages/ansible_runner_http/events.py\", line 18, in send_request\n    return session.post(url_actual, headers=headers, json=(data))\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 529, in post\n    return self.request('POST', url, data=data, json=json, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 486, in request\n    resp = self.send(prep, **send_kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/sessions.py\", line 598, in send\n    r = adapter.send(request, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/requests/adapters.py\", line 370, in send\n    timeout=timeout\n  File \"/usr/lib/python2.7/site-packages/urllib3/connectionpool.py\", line 587, in urlopen\n    timeout_obj = self._get_timeout(timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/connectionpool.py\", line 302, in _get_timeout\n    return Timeout.from_float(timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 154, in from_float\n    return Timeout(read=timeout, connect=timeout)\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 94, in __init__\n    self._connect = self._validate_timeout(connect, 'connect')\n  File \"/usr/lib/python2.7/site-packages/urllib3/util/timeout.py\", line 127, in _validate_timeout\n    \"int, float or None.\" % (name, value))\nValueError: Timeout value connect was Timeout(connect=None, read=None, total=None), but it must be an int, float or None.\n","job":"4037200794235010051","name":"template-service-broker","namespace":"openshift-template-service-broker","error":"exit status 1","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tsrc/github.com/operator-framework/operator-sdk/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/operator-framework/operator-sdk/pkg/ansible/runner.(*runner).Run.func1\n\tsrc/github.com/operator-framework/operator-sdk/pkg/ansible/runner/runner.go:199"}
{"level":"error","ts":1582190784.2689536,"logger":"reconciler","msg":"Failed to get ansible-runner stdout","job":"4037200794235010051","name":"template-service-broker","namespace":"openshift-template-service-broker","error":"open /tmp/ansible-operator/runner/osb.openshift.io/v1/TemplateServiceBroker/openshift-template-service-broker/template-service-broker/artifacts/4037200794235010051/stdout: no such file or directory","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\tsrc/github.com/operator-framework/operator-sdk/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/operator-framework/operator-sdk/pkg/ansible/controller.(*AnsibleOperatorReconciler).Reconcile\n\tsrc/github.com/operator-framework/operator-sdk/pkg/ansible/controller/reconcile.go:183\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:216\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:192\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\tsrc/github.com/operator-framework/operator-sdk/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:171\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\tsrc/github.com/operator-framework/operator-sdk/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\tsrc/github.com/operator-framework/operator-

Expected results:
Operator successfully runs

Additional info:

Comment 8 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.