mirror of
https://github.com/systemd/systemd.git
synced 2026-06-24 08:47:49 +00:00
This service's job is to talk to a VM associated IMDS service provided by the local Cloud. It tries to abstract the protocol differences various IMDS implementations implement, but does *not* really try to abstract more than a few basic fields of the actual IMDS metadata. IMDS access is wrapped in a Varlink API that local clients can talk to. If possible this makes use of the IMDS endpoint information that has been added to hwdb in the preceeding commit. However, endpoint info can also be provided via kernel command line and credentials. For debugging purposes we also accept them via environment variables and command line arguments. This adds a concept of early-boot networking, just enough to be able to talk to the IMDS service. It is minimally configurable via a kernel cmdline option (and a build-time option): the user may choose between "locked" and "unlocked" mode. In the former mode direct access to IMDS via HTTPS is blocked via a prohibit route (and thus all IMDS communication has to be done via systemd-imdsd@.service). In the latter case no such lockdown takes place, and IMDS may be acquired both via this new service and directly. The latter is typically a good idea for compatibility with current systems, the former is preferable for secure installations. Access to IMDS fields is controlled via PK.
30 lines
1.2 KiB
Meson
30 lines
1.2 KiB
Meson
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
files = [['README', true],
|
|
['systemd-coredump.conf', conf.get('ENABLE_COREDUMP') == 1],
|
|
['systemd-oom.conf', conf.get('ENABLE_OOMD') == 1],
|
|
['systemd-remote.conf', conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1]]
|
|
|
|
foreach tuple : files
|
|
if enable_sysusers and tuple[1]
|
|
install_data(tuple[0], install_dir : sysusersdir)
|
|
endif
|
|
endforeach
|
|
|
|
in_files = [['basic.conf', true],
|
|
['systemd-journal.conf', true],
|
|
['systemd-network.conf', conf.get('ENABLE_NETWORKD') == 1],
|
|
['systemd-resolve.conf', conf.get('ENABLE_RESOLVE') == 1],
|
|
['systemd-timesync.conf', conf.get('ENABLE_TIMESYNCD') == 1],
|
|
['systemd-imds.conf', conf.get('ENABLE_IMDS') == 1]]
|
|
|
|
foreach tuple : in_files
|
|
file = tuple[0]
|
|
custom_target(
|
|
input : file + '.in',
|
|
output: file,
|
|
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
|
|
install : enable_sysusers and tuple[1],
|
|
install_dir : sysusersdir)
|
|
endforeach
|