Merge pull request #26322 from NotSoFancyName/issue-26247

quadlet: handle generate environment params that inherit from host
This commit is contained in:
openshift-merge-bot[bot]
2025-06-30 11:44:33 +00:00
committed by GitHub
4 changed files with 14 additions and 9 deletions

View File

@ -839,9 +839,9 @@ func (f *UnitFile) LookupLastArgs(groupName string, key string) ([]string, bool)
}
// Look up 'Environment' style key-value keys
func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]string, error) {
func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]*string, error) {
var warnings error
res := make(map[string]string)
res := make(map[string]*string)
allKeyvals := f.LookupAll(groupName, key)
for _, keyvals := range allKeyvals {
assigns, err := splitString(keyvals, WhitespaceSeparators, SplitRelax|SplitUnquote|SplitCUnescape)
@ -852,9 +852,9 @@ func (f *UnitFile) LookupAllKeyVal(groupName string, key string) (map[string]str
for _, assign := range assigns {
key, value, found := strings.Cut(assign, "=")
if found {
res[key] = value
res[key] = &value
} else {
warnings = errors.Join(warnings, fmt.Errorf("separator was not found for %s", assign))
res[key] = nil
}
}
}

View File

@ -33,7 +33,7 @@ func (c *PodmanCmdline) addf(format string, a ...interface{}) {
c.add(fmt.Sprintf(format, a...))
}
func (c *PodmanCmdline) addKeys(arg string, keys map[string]string) {
func (c *PodmanCmdline) addKeys(arg string, keys map[string]*string) {
ks := make([]string, 0, len(keys))
for k := range keys {
ks = append(ks, k)
@ -41,7 +41,11 @@ func (c *PodmanCmdline) addKeys(arg string, keys map[string]string) {
sort.Strings(ks)
for _, k := range ks {
c.add(arg, fmt.Sprintf("%s=%s", k, keys[k]))
if keys[k] != nil {
c.add(arg, fmt.Sprintf("%s=%s", k, *keys[k]))
} else {
c.add(arg, k)
}
}
}

View File

@ -811,8 +811,8 @@ func ConvertContainer(container *parser.UnitFile, isUser bool, unitsInfoMap map[
if ok && len(update) > 0 {
podman.addKeys(
"--label",
map[string]string{
autoUpdateLabel: update,
map[string]*string{
autoUpdateLabel: &update,
},
)
}

View File

@ -4,9 +4,10 @@
## assert-podman-args --env "FOO3=foo3"
## assert-podman-args --env "REPLACE=replaced"
## assert-podman-args --env "FOO4=foo\\nfoo"
## assert-podman-args --env "FOO5"
[Container]
Image=localhost/imagename
Environment=FOO1=foo1 "FOO2=foo2 " \
FOO3=foo3 REPLACE=replace
Environment=REPLACE=replaced 'FOO4=foo\nfoo'
Environment=REPLACE=replaced 'FOO4=foo\nfoo' FOO5