Write DefaultEnvironment proxy values to /etc/systemd/user.conf.d/default-env.conf

Otherwise, the proxy values aren't passed to rootless podman.

Signed-off-by: Gregor Dschung <gregor@chkpnt.de>
This commit is contained in:
Gregor Dschung
2026-02-02 15:49:05 +01:00
committed by Matt Heon
parent 0e4dc26c05
commit 4ea22f1b29
2 changed files with 16 additions and 10 deletions

View File

@@ -15,16 +15,19 @@ import (
const proxySetupScriptTemplate = `#!/bin/bash
SYSTEMD_CONF=/etc/systemd/system.conf.d/default-env.conf
SYSTEMD_SYSTEM_CONF=/etc/systemd/system.conf.d/default-env.conf
SYSTEMD_USER_CONF=/etc/systemd/user.conf.d/default-env.conf
ENVD_CONF=/etc/environment.d/default-env.conf
PROFILE_CONF=/etc/profile.d/default-env.sh
mkdir -p /etc/profile.d /etc/environment.d /etc/systemd/system.conf.d/
rm -f $SYSTEMD_CONF $ENVD_CONF $PROFILE_CONF
mkdir -p /etc/profile.d /etc/environment.d /etc/systemd/system.conf.d/ /etc/systemd/user.conf.d/
rm -f $SYSTEMD_SYSTEM_CONF $SYSTEMD_USER_CONF $ENVD_CONF $PROFILE_CONF
echo "[Manager]" >> $SYSTEMD_CONF
echo "[Manager]" >> $SYSTEMD_SYSTEM_CONF
echo "[Manager]" >> $SYSTEMD_USER_CONF
for proxy in %s; do
printf "DefaultEnvironment=\"%%s\"\n" "$proxy" >> $SYSTEMD_CONF
printf "DefaultEnvironment=\"%%s\"\n" "$proxy" >> $SYSTEMD_SYSTEM_CONF
printf "DefaultEnvironment=\"%%s\"\n" "$proxy" >> $SYSTEMD_USER_CONF
printf "%%q\n" "$proxy" >> $ENVD_CONF
printf "export %%q\n" "$proxy" >> $PROFILE_CONF
done

View File

@@ -44,16 +44,19 @@ func Test_getProxyScript(t *testing.T) {
},
want: `#!/bin/bash
SYSTEMD_CONF=/etc/systemd/system.conf.d/default-env.conf
SYSTEMD_SYSTEM_CONF=/etc/systemd/system.conf.d/default-env.conf
SYSTEMD_USER_CONF=/etc/systemd/user.conf.d/default-env.conf
ENVD_CONF=/etc/environment.d/default-env.conf
PROFILE_CONF=/etc/profile.d/default-env.sh
mkdir -p /etc/profile.d /etc/environment.d /etc/systemd/system.conf.d/
rm -f $SYSTEMD_CONF $ENVD_CONF $PROFILE_CONF
mkdir -p /etc/profile.d /etc/environment.d /etc/systemd/system.conf.d/ /etc/systemd/user.conf.d/
rm -f $SYSTEMD_SYSTEM_CONF $SYSTEMD_USER_CONF $ENVD_CONF $PROFILE_CONF
echo "[Manager]" >> $SYSTEMD_CONF
echo "[Manager]" >> $SYSTEMD_SYSTEM_CONF
echo "[Manager]" >> $SYSTEMD_USER_CONF
for proxy in "http_proxy=proxy1" "https_proxy=sproxy1" "no_proxy=no1,no2"; do
printf "DefaultEnvironment=\"%s\"\n" "$proxy" >> $SYSTEMD_CONF
printf "DefaultEnvironment=\"%s\"\n" "$proxy" >> $SYSTEMD_SYSTEM_CONF
printf "DefaultEnvironment=\"%s\"\n" "$proxy" >> $SYSTEMD_USER_CONF
printf "%q\n" "$proxy" >> $ENVD_CONF
printf "export %q\n" "$proxy" >> $PROFILE_CONF
done