Skip to content

Commit 5b06b35

Browse files
authored
Adds bom.json file to the snap docker images (#144)
When joining a Kubernetes cluster, k8sd tries to determine the Kubernetes version by checking the bom.json file included in the snap. The docker template does not include that file, meaning that joining control plane nodes will fail to join because of this. The components are now built in the same stage, as it is required by generate-bom.py.
1 parent a156712 commit 5b06b35

File tree

1 file changed

+19
-35
lines changed

1 file changed

+19
-35
lines changed

templates/docker/Dockerfile

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -64,38 +64,35 @@ RUN bash -x /build/static-dqlite-deps/static-dqlite.sh
6464
ENV DQLITE_BUILD_SCRIPTS_DIR=/build/static-dqlite-deps
6565

6666
####################################################################################################
67-
## IMAGE(build-*): Build individual components
67+
## IMAGE(build-*): Build components
6868

6969
## k8sd build
7070
FROM builder-dqlite AS build-k8sd
7171
WORKDIR /src/k8s-snap/src/k8s
7272
RUN make static -j
7373
RUN mkdir -p /out/bin && mv ./bin/static/* /out/bin/
7474

75-
## k8s-dqlite build
76-
FROM builder-dqlite AS build-k8s-dqlite
77-
RUN /src/k8s-snap/build-scripts/build-component.sh k8s-dqlite
78-
79-
## cni build
80-
FROM builder AS build-cni
81-
RUN /src/k8s-snap/build-scripts/build-component.sh cni
82-
83-
## containerd build
84-
FROM builder AS build-containerd
85-
RUN /src/k8s-snap/build-scripts/build-component.sh containerd
86-
87-
## helm build
88-
FROM builder AS build-helm
89-
RUN /src/k8s-snap/build-scripts/build-component.sh helm
90-
91-
## kubernetes build
92-
FROM builder AS build-kubernetes
75+
## components build
76+
FROM builder-dqlite AS build-components
77+
WORKDIR /src/k8s-snap
78+
RUN ./build-scripts/build-component.sh k8s-dqlite
79+
RUN ./build-scripts/build-component.sh cni
80+
RUN ./build-scripts/build-component.sh containerd
81+
RUN ./build-scripts/build-component.sh helm
82+
RUN ./build-scripts/build-component.sh runc
83+
RUN ./build-scripts/build-component.sh pebble
84+
85+
# build kubernetes
9386
ENV KUBERNETES_VERSION=${KUBERNETES_VERSION}
9487
RUN if [ -n "$KUBERNETES_VERSION" ]; then \
9588
echo "Overwriting Kubernetes version with $KUBERNETES_VERSION"; \
9689
echo "$KUBERNETES_VERSION" > /src/k8s-snap/build-scripts/components/kubernetes/version; \
9790
fi
98-
RUN /src/k8s-snap/build-scripts/build-component.sh kubernetes
91+
RUN ./build-scripts/build-component.sh kubernetes
92+
93+
## generate bom.json file
94+
RUN apt-get install -y python3-yaml
95+
RUN bash -c "./build-scripts/generate-bom.py > /bom.json"
9996

10097
## kubernetes upgrade version build
10198
FROM builder AS build-kubernetes-upgrade-to
@@ -106,14 +103,6 @@ RUN if [ -n "$KUBERNETES_VERSION_UPGRADE_TO" ]; then \
106103
fi
107104
RUN /src/k8s-snap/build-scripts/build-component.sh kubernetes
108105

109-
## runc build
110-
FROM builder AS build-runc
111-
RUN /src/k8s-snap/build-scripts/build-component.sh runc
112-
113-
## pebble build
114-
FROM builder AS build-pebble
115-
RUN /src/k8s-snap/build-scripts/build-component.sh pebble
116-
117106
####################################################################################################
118107
## IMAGE(build-preload-images): Fetch OCI images that can be pre-loaded to containerd
119108

@@ -146,15 +135,10 @@ RUN mkdir -p /var/lib/pebble/default/layers /snap/k8s/current /var/snap/k8s/comm
146135
&& ln -sf "$(which true)" "$(which crictl)"
147136

148137
## NOTE(neoaggelos): Install binaries
149-
COPY --from=build-k8s-dqlite /out /snap/k8s/current
150-
COPY --from=build-runc /out /snap/k8s/current
151-
COPY --from=build-helm /out /snap/k8s/current
152-
COPY --from=build-containerd /out /snap/k8s/current
153-
COPY --from=build-cni /out /snap/k8s/current
154-
COPY --from=build-kubernetes /out /snap/k8s/current
138+
COPY --from=build-components /out /snap/k8s/current
139+
COPY --from=build-components /bom.json /snap/k8s/current/
155140
COPY --from=build-kubernetes-upgrade-to /out /k8s/upgrade
156141
COPY --from=build-k8sd /out /snap/k8s/current
157-
COPY --from=build-pebble /out /snap/k8s/current
158142
COPY --from=build-preload-images /out/images /var/snap/k8s/common/images
159143

160144
## NOTE(neoaggelos): Install k8s files

0 commit comments

Comments
 (0)