Skip to content

Commit f45f3a7

Browse files
committed
Make sure worker images have gpg installed
gpg is a pretty big dependency, so we don't implicitly install this as part of the base worker image. This makes sure that in the cases where we do need to setup keys that gpg is actually installed. There's probably some room for optimization here, but I'll leave that for future work. Signed-off-by: Brian Goff <[email protected]>
1 parent 0772f0b commit f45f3a7

File tree

4 files changed

+19
-4
lines changed

4 files changed

+19
-4
lines changed

frontend/azlinux/handle_container.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func specToContainerLLB(w worker, spec *dalec.Spec, targetKey string, rpmDir llb
5656
}
5757

5858
installTimeRepos := spec.GetInstallRepos(targetKey)
59-
importRepos, err := repoMountInstallOpts(builderImg, installTimeRepos, sOpt, opts...)
59+
importRepos, err := repoMountInstallOpts(w, builderImg, installTimeRepos, sOpt, opts...)
6060
if err != nil {
6161
return llb.Scratch(), err
6262
}

frontend/azlinux/handle_rpm.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,15 @@ var azLinuxRepoConfig = dalec.RepoPlatformConfig{
102102
GPGKeyRoot: "/etc/pki/rpm-gpg",
103103
}
104104

105-
func repoMountInstallOpts(worker llb.State, repos []dalec.PackageRepositoryConfig, sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) ([]installOpt, error) {
105+
func repoMountInstallOpts(w worker, base llb.State, repos []dalec.PackageRepositoryConfig, sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) ([]installOpt, error) {
106+
worker := base.Run(
107+
w.Install(
108+
[]string{"gnupg2"},
109+
installWithConstraints(opts),
110+
),
111+
dalec.WithConstraints(opts...),
112+
).Root()
113+
106114
withRepos, err := dalec.WithRepoConfigs(repos, &azLinuxRepoConfig, sOpt, opts...)
107115
if err != nil {
108116
return nil, err
@@ -129,7 +137,7 @@ func withTestDeps(w worker, spec *dalec.Spec, sOpt dalec.SourceOpts, targetKey s
129137
}
130138

131139
testRepos := spec.GetTestRepos(targetKey)
132-
importRepos, err := repoMountInstallOpts(base, testRepos, sOpt, opts...)
140+
importRepos, err := repoMountInstallOpts(w, base, testRepos, sOpt, opts...)
133141
if err != nil {
134142
return nil, err
135143
}
@@ -207,7 +215,7 @@ func installBuildDeps(ctx context.Context, w worker, client gwclient.Client, spe
207215
return nil, err
208216
}
209217

210-
importRepos, err := repoMountInstallOpts(base, repos, sOpt, opts...)
218+
importRepos, err := repoMountInstallOpts(w, base, repos, sOpt, opts...)
211219
if err != nil {
212220
return nil, err
213221
}

frontend/jammy/handle_deb.go

+1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ var jammyRepoPlatformCfg = dalec.RepoPlatformConfig{
126126
}
127127

128128
func customRepoMounts(worker llb.State, repos []dalec.PackageRepositoryConfig, sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) (llb.RunOption, error) {
129+
worker = worker.Run(installPackages([]string{"gnupg2"}, opts...), dalec.WithConstraints(opts...)).Root() // make sure we have gpg installed
129130
withRepos, err := dalec.WithRepoConfigs(repos, &jammyRepoPlatformCfg, sOpt, opts...)
130131
if err != nil {
131132
return nil, err

frontend/windows/handle_zip.go

+6
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,12 @@ var jammyRepoPlatformCfg = dalec.RepoPlatformConfig{
316316
}
317317

318318
func customRepoMounts(worker llb.State, repos []dalec.PackageRepositoryConfig, sOpt dalec.SourceOpts, opts ...llb.ConstraintsOpt) (llb.RunOption, error) {
319+
worker = worker.Run(
320+
dalec.ShArgs("apt update && apt install -y gnupg2"),
321+
dalec.WithMountedAptCache(aptCachePrefix),
322+
dalec.WithConstraints(opts...),
323+
).Root() // make sure we have gpg installed
324+
319325
withRepos, err := dalec.WithRepoConfigs(repos, &jammyRepoPlatformCfg, sOpt, opts...)
320326
if err != nil {
321327
return nil, err

0 commit comments

Comments
 (0)