-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
bugSomething isn't working correctlySomething isn't working correctly
Description
Bug report
I'd like to validate a static cloud-init config file using cloud-init schema --config-file filename without having root privileges, but it fails with the following backtrace:
nobody@f1d64ba0f772:/$ cloud-init schema
Traceback (most recent call last):
File "/usr/bin/cloud-init", line 33, in <module>
sys.exit(load_entry_point('cloud-init==25.1.4', 'console_scripts', 'cloud-init')())
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/cloudinit/cmd/main.py", line 1256, in main
schema_parser(parser_schema)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cloudinit/config/schema.py", line 1235, in get_parser
f"{read_cfg_paths().get_runpath('instance_data')}"
~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/cloudinit/cmd/devel/__init__.py", line 22, in read_cfg_paths
init.read_cfg()
~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 278, in read_cfg
self._cfg = self._read_cfg(extra_fns)
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 288, in _read_cfg
initial_config = self._read_bootstrap_cfg(extra_fns, {})
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 308, in _read_bootstrap_cfg
base_cfg=fetch_base_config(
~~~~~~~~~~~~~~~~~^
no_cfg_paths.run_dir, instance_data_file=instance_data_file
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
),
^
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 1154, in fetch_base_config
read_runtime_config(run_dir),
~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/lib/python3/dist-packages/cloudinit/stages.py", line 1141, in read_runtime_config
return util.read_conf(os.path.join(run_dir, "cloud.cfg"))
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 324, in read_conf
config_file = load_text_file(fname)
File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1583, in load_text_file
return decode_binary(load_binary_file(fname, read_cb=read_cb, quiet=quiet))
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/cloudinit/util.py", line 1567, in load_binary_file
with open(fname, "rb") as ifh:
~~~~^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/run/cloud-init/cloud.cfg'This only happens if
/run/cloud-initexists/run/cloud-initis not readable by the user callingcloud-init schema(like deployed by the Fedora packages)
I guess it is related, but not the same as #6592
Steps to reproduce the problem
- sudo apt install cloud-init
- sudo mkdir -p /run/cloud-init
- sudo chmod 700 /run/cloud-init
- cloud-init schema
Environment details
- Cloud-init version: 23.2, 24.4, 25.1.4, 25.2
- Operating System Distribution: Debian, Ubuntu, Fedora
Thanks to snapshot.debian.org I know that 22.4.2 works fine, while 23.2 and newer does not.
Debian doesn't have any versions between those two in the archive to test.
cloud-init logs
N/A
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't working correctlySomething isn't working correctly