osbuild-composer
osbuild-composer copied to clipboard
Image build fails on subscribed system if `sslcacert` is missing
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.