Skip to content

Commit 3835e62

Browse files
committed
fix(stapel-to-buildah): added missing ssh-auth-sock and commit related envs, labels and volumes
Mount ssh-auth-sock and set commit info environment variables when building stapel stage with buildah builder. Signed-off-by: Timofey Kirillov <timofey.kirillov@flant.com>
1 parent 8e8e5df commit 3835e62

File tree

1 file changed

+37
-21
lines changed

1 file changed

+37
-21
lines changed

pkg/build/build_phase.go

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -638,34 +638,50 @@ func (phase *BuildPhase) prepareStageInstructions(ctx context.Context, img *Imag
638638
})
639639

640640
default:
641-
imageServiceCommitChangeOptions := stageImage.Image.Container().ServiceCommitChangeOptions()
642-
imageServiceCommitChangeOptions.AddLabel(serviceLabels)
641+
if phase.Conveyor.UseLegacyStapelBuilder(phase.Conveyor.ContainerBackend) {
642+
stageImage.Builder.LegacyStapelStageBuilder().Container().ServiceCommitChangeOptions().AddLabel(serviceLabels)
643+
} else {
644+
stageImage.Builder.StapelStageBuilder().AddLabels(serviceLabels)
645+
}
643646

644647
if phase.Conveyor.sshAuthSock != "" {
645-
imageRunOptions := stageImage.Image.Container().RunOptions()
646-
647648
if runtime.GOOS == "darwin" {
648-
imageRunOptions.AddVolume("/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock")
649-
imageRunOptions.AddEnv(map[string]string{"SSH_AUTH_SOCK": "/run/host-services/ssh-auth.sock"})
649+
if phase.Conveyor.UseLegacyStapelBuilder(phase.Conveyor.ContainerBackend) {
650+
stageImage.Builder.LegacyStapelStageBuilder().Container().RunOptions().AddVolume("/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock")
651+
stageImage.Builder.LegacyStapelStageBuilder().Container().RunOptions().AddEnv(map[string]string{"SSH_AUTH_SOCK": "/run/host-services/ssh-auth.sock"})
652+
} else {
653+
stageImage.Builder.StapelStageBuilder().AddBuildVolumes("/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock")
654+
stageImage.Builder.StapelStageBuilder().AddEnvs(map[string]string{"SSH_AUTH_SOCK": "/run/host-services/ssh-auth.sock"})
655+
}
650656
} else {
651-
imageRunOptions.AddVolume(fmt.Sprintf("%s:/.werf/tmp/ssh-auth-sock", phase.Conveyor.sshAuthSock))
652-
imageRunOptions.AddEnv(map[string]string{"SSH_AUTH_SOCK": "/.werf/tmp/ssh-auth-sock"})
657+
if phase.Conveyor.UseLegacyStapelBuilder(phase.Conveyor.ContainerBackend) {
658+
stageImage.Builder.LegacyStapelStageBuilder().Container().RunOptions().AddVolume(fmt.Sprintf("%s:/.werf/tmp/ssh-auth-sock", phase.Conveyor.sshAuthSock))
659+
stageImage.Builder.LegacyStapelStageBuilder().Container().RunOptions().AddEnv(map[string]string{"SSH_AUTH_SOCK": "/.werf/tmp/ssh-auth-sock"})
660+
} else {
661+
stageImage.Builder.StapelStageBuilder().AddBuildVolumes(fmt.Sprintf("%s:/.werf/tmp/ssh-auth-sock", phase.Conveyor.sshAuthSock))
662+
stageImage.Builder.StapelStageBuilder().AddEnvs(map[string]string{"SSH_AUTH_SOCK": "/.werf/tmp/ssh-auth-sock"})
663+
}
653664
}
665+
}
654666

655-
headHash, err := phase.Conveyor.GiterminismManager().LocalGitRepo().HeadCommitHash(ctx)
656-
if err != nil {
657-
return fmt.Errorf("error getting HEAD commit hash: %w", err)
658-
}
659-
imageRunOptions.AddEnv(map[string]string{"WERF_COMMIT_HASH": headHash})
667+
headHash, err := phase.Conveyor.GiterminismManager().LocalGitRepo().HeadCommitHash(ctx)
668+
if err != nil {
669+
return fmt.Errorf("error getting HEAD commit hash: %w", err)
670+
}
671+
headTime, err := phase.Conveyor.GiterminismManager().LocalGitRepo().HeadCommitTime(ctx)
672+
if err != nil {
673+
return fmt.Errorf("error getting HEAD commit time: %w", err)
674+
}
675+
commitEnvs := map[string]string{
676+
"WERF_COMMIT_HASH": headHash,
677+
"WERF_COMMIT_TIME_HUMAN": headTime.String(),
678+
"WERF_COMMIT_TIME_UNIX": strconv.FormatInt(headTime.Unix(), 10),
679+
}
660680

661-
headTime, err := phase.Conveyor.GiterminismManager().LocalGitRepo().HeadCommitTime(ctx)
662-
if err != nil {
663-
return fmt.Errorf("error getting HEAD commit time: %w", err)
664-
}
665-
imageRunOptions.AddEnv(map[string]string{
666-
"WERF_COMMIT_TIME_HUMAN": headTime.String(),
667-
"WERF_COMMIT_TIME_UNIX": strconv.FormatInt(headTime.Unix(), 10),
668-
})
681+
if phase.Conveyor.UseLegacyStapelBuilder(phase.Conveyor.ContainerBackend) {
682+
stageImage.Builder.LegacyStapelStageBuilder().Container().RunOptions().AddEnv(commitEnvs)
683+
} else {
684+
stageImage.Builder.StapelStageBuilder().AddEnvs(commitEnvs)
669685
}
670686
}
671687

0 commit comments

Comments
 (0)