Skip to content

Commit

Permalink
[controller] Move lsblk and its libraries inside the agent image (#36)
Browse files Browse the repository at this point in the history
Signed-off-by: Aleksandr Zimin <[email protected]>
  • Loading branch information
AleksZimin authored Apr 6, 2024
1 parent 131265b commit 5888b16
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 49 deletions.
25 changes: 22 additions & 3 deletions images/agent/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ RUN apt-get update && apt-get install -y \
autoconf \
bison \
libtool \
libudev-dev \
libblkid-dev \
libsmartcols-dev \
libmount-dev \
automake \
gettext \
flex \
Expand All @@ -24,10 +28,14 @@ WORKDIR /util-linux

RUN git clone ${SOURCE_REPO}/util-linux/util-linux.git . && \
git checkout v${UTIL_LINUX_VERSION} && \
./autogen.sh && \
./configure LDFLAGS="-static" --enable-static-programs -disable-all-programs --enable-nsenter
./autogen.sh

RUN ./configure LDFLAGS="-static" --enable-static-programs -disable-all-programs --enable-nsenter && \
make install-strip

RUN ./configure --prefix /opt/deckhouse/sds --with-udev && \
make install-strip

RUN make install-strip

#################################
FROM $GOLANG_20_ALPINE_BUILDER as agent-builder
Expand All @@ -47,6 +55,17 @@ RUN GOOS=linux GOARCH=amd64 go build -o sds-node-configurator-agent
FROM --platform=linux/amd64 $BASE_IMAGE

COPY --from=util-linux-builder /util-linux/nsenter.static /opt/deckhouse/sds/bin/nsenter.static

# Got from ldd lsblk.dynamic
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libblkid.so.1 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libmount.so.1 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libsmartcols.so.1 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libudev.so.1 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libc.so.6 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libcap.so.2 /opt/deckhouse/sds/lib/
COPY --from=util-linux-builder /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2
COPY --from=util-linux-builder /opt/deckhouse/sds/bin/lsblk /opt/deckhouse/sds/bin/lsblk.dynamic

COPY --from=agent-builder /go/src/cmd/sds-node-configurator-agent /go/src/cmd/sds-node-configurator-agent

CMD ["/go/src/cmd/sds-node-configurator-agent"]
5 changes: 2 additions & 3 deletions images/agent/pkg/utils/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,8 @@ import (

func GetBlockDevices() ([]internal.Device, string, error) {
var outs bytes.Buffer
args := []string{internal.LSBLKCmd, "-J", "-lpfb", "-no", "name,MOUNTPOINT,PARTUUID,HOTPLUG,MODEL,SERIAL,SIZE,FSTYPE,TYPE,WWN,KNAME,PKNAME,ROTA"}
extendedArgs := extendArgs(args)
cmd := exec.Command(internal.NSENTERCmd, extendedArgs...)
args := []string{"-J", "-lpfb", "-no", "name,MOUNTPOINT,PARTUUID,HOTPLUG,MODEL,SERIAL,SIZE,FSTYPE,TYPE,WWN,KNAME,PKNAME,ROTA"}
cmd := exec.Command(internal.LSBLKCmd, args...)
cmd.Stdout = &outs

var stderr bytes.Buffer
Expand Down
43 changes: 0 additions & 43 deletions images/sds-utils-installer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,37 +30,6 @@ RUN git clone ${SOURCE_REPO}/lvmteam/lvm2.git . && \
--disable-readline --enable-blkid_wiping --build=x86_64-linux-gnu && \
make

#################################
FROM $UBUNTU_UTILS_BUILDER as util-linux-builder
ARG SOURCE_REPO
ARG UTIL_LINUX_VERSION=2.39.3

RUN apt-get update && apt-get install -y \
build-essential \
git \
pkg-config \
autopoint \
autoconf \
bison \
libtool \
libudev-dev \
libblkid-dev \
libsmartcols-dev \
libmount-dev \
automake \
gettext \
flex \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /util-linux

RUN git clone ${SOURCE_REPO}/util-linux/util-linux.git . && \
git checkout v${UTIL_LINUX_VERSION} && \
./autogen.sh && \
./configure --prefix /opt/deckhouse/sds

RUN make install-strip

#################################
FROM $BASE_GOLANG_22_ALPINE as bin-copier-builder
WORKDIR /go/src
Expand All @@ -77,20 +46,8 @@ RUN GOOS=linux GOARCH=amd64 go build -o /bin-copier
################################
FROM --platform=linux/amd64 $BASE_IMAGE

RUN apk add --no-cache rsync

WORKDIR /

COPY --from=lvm-builder /lvm2/tools/lvm.static /sds-utils/bin/lvm.static

# Got from ldd lsblk.dynamic
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libblkid.so.1 /sds-utils/lib/
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libmount.so.1 /sds-utils/lib/
COPY --from=util-linux-builder /opt/deckhouse/sds/lib/libsmartcols.so.1 /sds-utils/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libudev.so.1 /sds-utils/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libc.so.6 /sds-utils/lib/
COPY --from=util-linux-builder /lib/x86_64-linux-gnu/libcap.so.2 /sds-utils/lib/
COPY --from=util-linux-builder /opt/deckhouse/sds/bin/lsblk /sds-utils/bin/lsblk.dynamic
COPY --from=bin-copier-builder /bin-copier /bin-copier


Expand Down
6 changes: 6 additions & 0 deletions templates/agent/daemonset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ spec:
volumeMounts:
- mountPath: /sys/
name: host-sys-dir
- mountPath: /run/udev/
name: host-run-udev-dir
resources:
requests:
{{- include "helm_lib_module_ephemeral_storage_only_logs" . | nindent 14 }}
Expand All @@ -108,4 +110,8 @@ spec:
path: /sys/
type: Directory
name: host-sys-dir
- hostPath:
path: /run/udev/
type: Directory
name: host-run-udev-dir
{{- end }}

0 comments on commit 5888b16

Please sign in to comment.