Skip to content

Commit 145a877

Browse files
committed
hook: introduce hook-ip container for vlan.sh
- Based on linuxkit/ip pkg, sans wireguard stuff; add GNU sed needed for /proc/cmdline parsing Signed-off-by: Ricardo Pardini <[email protected]>
1 parent 2187536 commit 145a877

File tree

4 files changed

+29
-3
lines changed

4 files changed

+29
-3
lines changed

bash/hook-lk-containers.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ function build_all_hook_linuxkit_containers() {
77
# when adding new container builds here you'll also want to add them to the
88
# `linuxkit_build` function in the linuxkit.sh file.
99
# # NOTE: linuxkit containers must be in the images/ directory
10+
build_hook_linuxkit_container hook-ip HOOK_CONTAINER_IP_IMAGE
1011
build_hook_linuxkit_container hook-bootkit HOOK_CONTAINER_BOOTKIT_IMAGE
1112
build_hook_linuxkit_container hook-docker HOOK_CONTAINER_DOCKER_IMAGE
1213
build_hook_linuxkit_container hook-mdev HOOK_CONTAINER_MDEV_IMAGE

bash/linuxkit.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function linuxkit_build() {
5050
fi
5151

5252
# Build the containers in this repo used in the LinuxKit YAML;
53-
build_all_hook_linuxkit_containers # sets HOOK_CONTAINER_BOOTKIT_IMAGE, HOOK_CONTAINER_DOCKER_IMAGE, HOOK_CONTAINER_MDEV_IMAGE, HOOK_CONTAINER_CONTAINERD_IMAGE
53+
build_all_hook_linuxkit_containers # sets HOOK_CONTAINER_IP_IMAGE, HOOK_CONTAINER_BOOTKIT_IMAGE, HOOK_CONTAINER_DOCKER_IMAGE, HOOK_CONTAINER_MDEV_IMAGE, HOOK_CONTAINER_CONTAINERD_IMAGE
5454

5555
# Template the linuxkit configuration file.
5656
# - You'd think linuxkit would take --build-args or something by now, but no.
@@ -64,12 +64,13 @@ function linuxkit_build() {
6464
# shellcheck disable=SC2016 # I'm using single quotes to avoid shell expansion, envsubst wants the dollar signs.
6565
cat "linuxkit-templates/${kernel_info['TEMPLATE']}.template.yaml" |
6666
HOOK_KERNEL_IMAGE="${kernel_oci_image}" HOOK_KERNEL_ID="${inventory_id}" HOOK_KERNEL_VERSION="${kernel_oci_version}" \
67+
HOOK_CONTAINER_IP_IMAGE="${HOOK_CONTAINER_IP_IMAGE}" \
6768
HOOK_CONTAINER_BOOTKIT_IMAGE="${HOOK_CONTAINER_BOOTKIT_IMAGE}" \
6869
HOOK_CONTAINER_DOCKER_IMAGE="${HOOK_CONTAINER_DOCKER_IMAGE}" \
6970
HOOK_CONTAINER_MDEV_IMAGE="${HOOK_CONTAINER_MDEV_IMAGE}" \
7071
HOOK_CONTAINER_CONTAINERD_IMAGE="${HOOK_CONTAINER_CONTAINERD_IMAGE}" \
7172
HOOK_CONTAINER_RUNC_IMAGE="${HOOK_CONTAINER_RUNC_IMAGE}" \
72-
envsubst '$HOOK_VERSION $HOOK_KERNEL_IMAGE $HOOK_KERNEL_ID $HOOK_KERNEL_VERSION $HOOK_CONTAINER_BOOTKIT_IMAGE $HOOK_CONTAINER_DOCKER_IMAGE $HOOK_CONTAINER_MDEV_IMAGE $HOOK_CONTAINER_CONTAINERD_IMAGE $HOOK_CONTAINER_RUNC_IMAGE' \
73+
envsubst '$HOOK_VERSION $HOOK_KERNEL_IMAGE $HOOK_KERNEL_ID $HOOK_KERNEL_VERSION $HOOK_CONTAINER_IP_IMAGE $HOOK_CONTAINER_BOOTKIT_IMAGE $HOOK_CONTAINER_DOCKER_IMAGE $HOOK_CONTAINER_MDEV_IMAGE $HOOK_CONTAINER_CONTAINERD_IMAGE $HOOK_CONTAINER_RUNC_IMAGE' \
7374
> "hook.${inventory_id}.yaml"
7475

7576
declare -g linuxkit_bin=""

images/hook-ip/Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM linuxkit/alpine:146f540f25cd92ec8ff0c5b0c98342a9a95e479e AS mirror
2+
RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/
3+
RUN apk add curl
4+
RUN apk add --no-cache --initdb -p /out \
5+
alpine-baselayout \
6+
bash \
7+
busybox \
8+
iproute2 \
9+
iptables \
10+
ebtables \
11+
ipvsadm \
12+
bridge-utils \
13+
musl \
14+
sed
15+
16+
# Remove apk residuals
17+
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache
18+
19+
FROM scratch
20+
ENTRYPOINT []
21+
CMD []
22+
WORKDIR /
23+
COPY --from=mirror /out/ /

linuxkit-templates/hook.template.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# - HOOK_KERNEL_IMAGE: ${HOOK_KERNEL_IMAGE}
44
# - HOOK_KERNEL_ID: ${HOOK_KERNEL_ID}
55
# - HOOK_KERNEL_VERSION: ${HOOK_KERNEL_VERSION}
6+
# - HOOK_CONTAINER_IP_IMAGE: ${HOOK_CONTAINER_IP_IMAGE}
67
# - HOOK_CONTAINER_BOOTKIT_IMAGE: ${HOOK_CONTAINER_BOOTKIT_IMAGE}
78
# - HOOK_CONTAINER_DOCKER_IMAGE: ${HOOK_CONTAINER_DOCKER_IMAGE}
89
# - HOOK_CONTAINER_MDEV_IMAGE: ${HOOK_CONTAINER_MDEV_IMAGE}
@@ -38,7 +39,7 @@ onboot:
3839
command: [ "modprobe", "cdc_ncm" ] # for usb ethernet dongles
3940

4041
- name: vlan
41-
image: linuxkit/ip:v1.0.0
42+
image: "${HOOK_CONTAINER_IP_IMAGE}"
4243
capabilities:
4344
- all
4445
binds.add:

0 commit comments

Comments
 (0)