Skip to content

Commit b0ade70

Browse files
committed
Only allow arg substitution in Labels field
Earlier commits allowed substitution in various places in the Image Config. This commit reverts most of those changes and allows arg substitution only in the `Labels` field of the image config. Signed-off-by: Peter Engelbert <[email protected]>
1 parent c0a7cea commit b0ade70

File tree

2 files changed

+7
-46
lines changed

2 files changed

+7
-46
lines changed

load.go

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,8 @@ func (s *Spec) SubstituteArgs(env map[string]string, opts ...SubstituteOpt) erro
199199
}
200200
}
201201

202-
if s.Image != nil {
203-
if err := s.Image.processBuildArgs(lex, args, cfg.AllowArg); err != nil {
204-
appendErr(errors.Wrap(err, "package config"))
205-
}
202+
if err := s.Image.processBuildArgs(lex, args, cfg.AllowArg); err != nil {
203+
appendErr(errors.Wrap(err, "package config"))
206204
}
207205

208206
if err := s.Dependencies.processBuildArgs(args, cfg.AllowArg); err != nil {
@@ -460,23 +458,11 @@ func (b *ArtifactBuild) processBuildArgs(lex *shell.Lex, args map[string]string,
460458
}
461459

462460
func (img *ImageConfig) processBuildArgs(lex *shell.Lex, args map[string]string, allowArg func(string) bool) error {
463-
var errs error
464-
for _, p := range []*string{&img.Base, &img.Cmd, &img.User, &img.Entrypoint, &img.StopSignal, &img.WorkingDir} {
465-
updated, err := expandArgs(lex, *p, args, allowArg)
466-
if err != nil {
467-
errs = goerrors.Join(errs, errors.Wrap(err, "imgconfig"))
468-
}
469-
*p = updated
461+
if img == nil {
462+
return nil
470463
}
471464

472-
for i, s := range img.Env {
473-
updated, err := expandArgs(lex, s, args, allowArg)
474-
if err != nil {
475-
errs = goerrors.Join(errs, errors.Wrapf(err, "env %s", s))
476-
continue
477-
}
478-
img.Env[i] = updated
479-
}
465+
var errs error
480466

481467
for k, v := range img.Labels {
482468
updated, err := expandArgs(lex, v, args, allowArg)
@@ -487,28 +473,5 @@ func (img *ImageConfig) processBuildArgs(lex *shell.Lex, args map[string]string,
487473
img.Labels[k] = updated
488474
}
489475

490-
if img.Post != nil {
491-
for k, sl := range img.Post.Symlinks {
492-
updatedK, err := expandArgs(lex, k, args, allowArg)
493-
if err != nil {
494-
errs = goerrors.Join(errs, errors.Wrapf(err, "symlink oldpath"))
495-
continue
496-
}
497-
498-
updatedV, err := expandArgs(lex, sl.Path, args, allowArg)
499-
if err != nil {
500-
errs = goerrors.Join(errs, errors.Wrapf(err, "symlink newpath"))
501-
continue
502-
}
503-
504-
sl.Path = updatedV
505-
img.Post.Symlinks[updatedK] = sl
506-
// remove the old key if a substitution happened
507-
if updatedK != k {
508-
delete(img.Post.Symlinks, k)
509-
}
510-
}
511-
}
512-
513476
return errs
514477
}

target.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,8 @@ func (t *Target) processBuildArgs(lex *shell.Lex, args map[string]string, allowA
6363
}
6464
}
6565

66-
if t.Image != nil {
67-
if err := t.Image.processBuildArgs(lex, args, allowArg); err != nil {
68-
errs = append(errs, errors.Wrap(err, "package config"))
69-
}
66+
if err := t.Image.processBuildArgs(lex, args, allowArg); err != nil {
67+
errs = append(errs, errors.Wrap(err, "package config"))
7068
}
7169

7270
if err := t.Dependencies.processBuildArgs(args, allowArg); err != nil {

0 commit comments

Comments
 (0)