Skip to content

Commit acf12c8

Browse files
chore(core): fix distroless imports (#806)
Fix imports dvcr images and cdi images to distroless Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
1 parent a8ca40a commit acf12c8

7 files changed

Lines changed: 110 additions & 54 deletions

File tree

images/cdi-cloner/werf.inc.yaml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,10 @@
22
image: {{ $.ImageName }}
33
fromImage: distroless
44
import:
5-
- image: {{ $.ImageName }}-bins
6-
add: /relocate/usr/bin
7-
to: /bin
8-
before: setup
9-
- image: {{ $.ImageName }}-bins
10-
add: /relocate/usr/sbin
11-
to: /sbin
12-
before: setup
135
- image: {{ $.ImageName }}-bins
146
add: /relocate
157
to: /
168
before: setup
17-
excludePaths:
18-
- usr/sbin
19-
- usr/bin
209
- image: cdi-artifact
2110
add: /cdi-binaries
2211
to: /usr/bin

images/cdi-controller/werf.inc.yaml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,32 @@
22
image: {{ $.ImageName }}
33
fromImage: distroless
44
import:
5-
- image: {{ $.ImageName }}-bins
6-
add: /tmp
7-
to: /tmp
8-
before: setup
95
- image: {{ $.ImageName }}-bins
106
add: /relocate
117
to: /
128
before: setup
13-
- image: cdi-artifact
14-
add: /cdi-binaries
15-
to: /usr/bin
16-
includePaths:
17-
- cdi-controller
18-
before: setup
19-
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-controller/BUILD.bazel
209
docker:
2110
ENTRYPOINT: ["/usr/bin/cdi-controller", "-alsologtostderr"]
2211
USER: 64535
2312
---
24-
{{- $binaries := "/usr/bin/cat /usr/bin/bash /usr/bin/echo" }}
13+
{{- $binaries := "/usr/bin/cat /usr/bin/bash /usr/bin/echo /usr/bin/cdi-controller" }}
2514

2615
image: {{ $.ImageName }}-bins
2716
final: false
2817
fromImage: base-alt-p11-binaries
18+
import:
19+
- image: cdi-artifact
20+
add: /cdi-binaries
21+
to: /usr/bin
22+
includePaths:
23+
- cdi-controller
24+
before: setup
25+
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-controller/BUILD.bazel
2926
shell:
30-
beforeInstall:
27+
setup:
28+
- /relocate_binaries.sh -i "{{ $binaries }}" -o /relocate
29+
# tmp folder need for ready file
30+
# https://github.com/kubevirt/containerized-data-importer/blob/v1.60.3/pkg/operator/resources/namespaced/controller.go#L243
3131
- |
32-
/relocate_binaries.sh -i "{{ $binaries }}" -o /relocate
32+
mkdir -p /relocate/tmp
33+
chown 64535:64535 /relocate/tmp

images/cdi-importer/werf.inc.yaml

Lines changed: 47 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,64 @@
11
---
22
image: {{ $.ImageName }}
3-
fromImage: base-alt-p11
3+
fromImage: distroless
4+
import:
5+
- image: {{ $.ImageName }}-bins
6+
add: /relocate
7+
to: /
8+
before: setup
9+
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-importer/BUILD.bazel
10+
docker:
11+
ENTRYPOINT: ["/usr/bin/cdi-importer", "-alsologtostderr"]
12+
USER: 64535
13+
14+
---
15+
{{- define "cdi-importer-deps" -}}
16+
packages:
17+
- qemu-img
18+
- sqlite3
19+
- libnbd
20+
- nbd-client
21+
- nbd-server
22+
binaries:
23+
- /usr/bin/sh
24+
- /usr/bin/rm
25+
- /usr/bin/grep
26+
# Qemu-img
27+
- /usr/bin/qemu-img
28+
- /usr/bin/qemu-io
29+
- /usr/bin/qemu-nbd
30+
# All nbd bins
31+
- /usr/bin/nbd*
32+
# Mount
33+
- /usr/bin/mount /usr/bin/umount
34+
# Sqlite3
35+
- /usr/bin/sqldiff /usr/bin/sqlite3 /usr/bin/sqlite3_analyzer
36+
# CDI bind
37+
- /usr/bin/cdi-containerimage-server /usr/bin/cdi-image-size-detection /usr/bin/cdi-importer /usr/bin/cdi-source-update-poller
38+
{{- end -}}
39+
40+
{{ $cdiImporterDependencies := include "cdi-importer-deps" . | fromYaml }}
41+
42+
image: {{ $.ImageName }}-bins
43+
final: false
44+
fromImage: base-alt-p11-binaries
445
import:
546
- image: cdi-artifact
647
add: /cdi-binaries
748
to: /usr/bin
49+
before: setup
850
includePaths:
951
- cdi-containerimage-server
1052
- cdi-image-size-detection
1153
- cdi-importer
1254
- cdi-source-update-poller
13-
before: setup
1455
shell:
1556
install:
1657
- |
1758
apt-get update && apt-get install --yes \
18-
qemu-img==9.1.2-alt1 \
19-
sqlite3==3.46.0-alt1 \
20-
libnbd==1.19.11-alt1 \
21-
nbd-client==3.26.1-alt1 \
22-
nbd-server==3.26.1-alt1
59+
{{ $cdiImporterDependencies.packages | join " " }}
2360
- apt-get clean
2461
- rm --recursive --force /var/lib/apt/lists/ftp.altlinux.org* /var/cache/apt/*.bin
25-
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-importer/BUILD.bazel
26-
docker:
27-
ENTRYPOINT: ["/usr/bin/cdi-importer", "-alsologtostderr"]
28-
USER: 64535
62+
setup:
63+
- |
64+
/relocate_binaries.sh -i "{{ $cdiImporterDependencies.binaries | join " " }}" -o /relocate

images/cdi-uploadserver/werf.inc.yaml

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,50 @@
22
image: {{ $.ImageName }}
33
fromImage: base-alt-p11
44
import:
5+
- image: {{ $.ImageName }}-bins
6+
add: /relocate
7+
to: /
8+
before: setup
9+
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-uploadserver/BUILD.bazel
10+
docker:
11+
ENTRYPOINT: ["/usr/bin/cdi-uploadserver", "-alsologtostderr"]
12+
USER: 64535
13+
14+
---
15+
{{- define "cdi-uploadserver-deps" -}}
16+
packages:
17+
- qemu-img
18+
- libnbd
19+
binaries:
20+
# Qemu-img
21+
- /usr/bin/qemu-img
22+
- /usr/bin/qemu-io
23+
- /usr/bin/qemu-nbd
24+
# All nbd bins
25+
- /usr/bin/nbd*
26+
# CDI bind
27+
- /usr/bin/cdi-uploadserver
28+
{{- end -}}
29+
30+
{{ $cdiUploadServerDependencies := include "cdi-uploadserver-deps" . | fromYaml }}
31+
32+
image: {{ $.ImageName }}-bins
33+
final: false
34+
fromImage: base-alt-p11-binaries
35+
import:
536
- image: cdi-artifact
637
add: /cdi-binaries
738
to: /usr/bin
39+
before: setup
840
includePaths:
941
- cdi-uploadserver
10-
before: setup
1142
shell:
1243
install:
13-
# Install qemu-img and libnbd.
1444
- |
1545
apt-get update && apt-get install --yes \
16-
qemu-img==9.1.2-alt1 \
17-
libnbd==1.19.11-alt1
46+
{{ $cdiUploadServerDependencies.packages | join " " }}
1847
- apt-get clean
1948
- rm --recursive --force /var/lib/apt/lists/ftp.altlinux.org* /var/cache/apt/*.bin
20-
21-
# Source https://github.com/kubevirt/containerized-data-importer/blob/v1.58.0/cmd/cdi-uploadserver/BUILD.bazel
22-
docker:
23-
ENTRYPOINT: ["/usr/bin/cdi-uploadserver", "-alsologtostderr"]
24-
USER: 64535
49+
setup:
50+
- |
51+
/relocate_binaries.sh -i "{{ $cdiUploadServerDependencies.binaries | join " " }}" -o /relocate

images/dvcr-importer/werf.inc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import:
77
to: /
88
after: install
99
excludePaths:
10-
- '*/dvcr-uploader'
11-
- '*/dvcr-cleaner'
10+
- '**/dvcr-uploader'
11+
- '**/dvcr-cleaner'
1212
git:
1313
- add: /images/dvcr-artifact/build
1414
to: /

images/dvcr-uploader/werf.inc.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import:
77
to: /
88
after: install
99
excludePaths:
10-
- '*/dvcr-importer'
11-
- '*/dvcr-cleaner'
10+
- '**/dvcr-importer'
11+
- '**/dvcr-cleaner'
1212
git:
1313
- add: /images/dvcr-artifact/build
1414
to: /

images/dvcr/werf.inc.yaml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@ fromImage: distroless
44
import:
55
- image: {{ $.ImageName }}-builder
66
add: /container-registry-binary
7-
to: /bin
7+
to: /usr/bin
88
after: install
9+
includePaths:
10+
- registry
911
# Registry configuration is stored in configmap: templates/dvcr/configmap.yaml
1012
- image: {{ $.ImageName }}-artifact-bins
11-
add: /relocate/usr/bin
12-
to: /usr/bin
13-
includePaths:
14-
- dvcr-cleaner
13+
add: /relocate
14+
to: /
1515
after: install
16+
excludePaths:
17+
- '**/dvcr-uploader'
18+
- '**/dvcr-importer'
1619
docker:
1720
USER: 64535
1821
---

0 commit comments

Comments
 (0)