osbuild-composer icon indicating copy to clipboard operation
osbuild-composer copied to clipboard

Image build fails on subscribed system if `sslcacert` is missing

Open jrusz opened this issue 2 years ago • 0 comments

Describe the bug IT would appear that If you have some repo definitions in your redhat.repo file that are the same as compose source repositories, (eg. baseos) and don't have the sslcacert path specified there, the image build fails with

Apr 28 13:20:47 jrusz-rhel-9-testing osbuild-worker[54638]: time="2022-04-28T13:20:47-04:00" level=info msg="Running job 'a464fe93-ba45-40f2-84ac-b205bd1f44e6' (osbuild)\n"
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]: Traceback (most recent call last):
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/bin/osbuild", line 33, in <module>
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     sys.exit(load_entry_point('osbuild==56', 'console_scripts', 'osbuild')())
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/main_cli.py", line 158, in osbuild_cli
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     manifest.download(object_store, monitor, args.libdir)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/pipeline.py", line 397, in download
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     source.download(mgr, store, libdir)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/sources.py", line 38, in download
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     reply = client.call_with_fds("download", args, fds)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 375, in call_with_fds
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     raise error
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]: osbuild.host.RemoteError: NoOptionError: No option 'sslcacert' in section: 'baseos'
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:    File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 268, in serve
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     reply, reply_fds = self._handle_message(msg, fds)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 301, in _handle_message
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     ret, fds = self.dispatch(name, args, fds)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/sources.py", line 62, in dispatch
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     r = self.download(items,
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/osbuild/sources/org.osbuild.curl", line 172, in download
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     download(items, cache)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/osbuild/sources/org.osbuild.curl", line 154, in download
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     subscriptions = Subscriptions.from_host_system()
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/util/rhsm.py", line 47, in from_host_system
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     ret = cls.parse_repo_file(fp)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib/python3.9/site-packages/osbuild/util/rhsm.py", line 88, in parse_repo_file
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     current[parameter] = parser.get(section, parameter)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:   File "/usr/lib64/python3.9/configparser.py", line 792, in get
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54692]:     raise NoOptionError(option, section)
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54638]: time="2022-04-28T13:20:48-04:00" level=error msg="osbuild job failed: osbuild build failed" jobId=a464fe93-ba45-40f2-84ac-b205bd1f44e6
Apr 28 13:20:48 jrusz-rhel-9-testing osbuild-worker[54638]: time="2022-04-28T13:20:48-04:00" level=warning msg="Job 'a464fe93-ba45-40f2-84ac-b205bd1f44e6' (osbuild) failed: error decoding osbuild output: unexpected end of JSON input\nthe raw output:\n"

Environment RHEL-9.0 osbuild-composer-51-1.20220428gite3f812f.el9.x86_64

To Reproduce 1 ) Install a RHEL-9.0 system (or proabbly any system) 2 ) Install osbuild-composer (I built from source and used nightly repos for deps) 3) Subscribe your system and attach subscription (Have baseos repo definition in redhat.repo file without sslcacert path specified first or more repos too) 4) Try to build an image

Expected behavior osbuild-composer fallbacks to using global certificates in /etc/pki/entitlement and image build succeeds

Additional context I guess osbuild-composer goes looking for the certificates specified in redhat.repo since it's supposed to be using rhsm and fails on the sslcacert because it won't find any instead of using the fallback mechanism and go look for global certificates.

I suppose this is not too critical, opening for tracking purposes. This will probably cause problems only if a user messes with repo definitions incorrectly.

jrusz avatar Apr 28 '22 17:04 jrusz