Skip to content

Commit

Permalink
Changes rock base to bare
Browse files Browse the repository at this point in the history
Switching to a bare-based image will reduce the overall image size and
reduces attack surface area.

``ddptool`` is not statically built, so it still depends on ``/lib`` and
``/lib64``, which is why we're adding ``base-files``. The image is
expected to run a bash script as the entrypoint.

We can no longer use ensure_image_contains_paths to check if files exist
in the rock images, since they are now bare-based. Instead, we can use
ensure_image_contains_paths_bare, which checks the image layers instead.
Because of this, we need sufficient permissions to check the
``/var/lib/docker`` folder.
  • Loading branch information
claudiubelu committed Oct 25, 2024
1 parent 62e0929 commit cddad67
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
9 changes: 8 additions & 1 deletion 3.6.2/rockcraft.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: |
license: Apache-2.0
version: 3.6.2

base: [email protected]
base: bare
build-base: [email protected]
run-user: _daemon_

Expand All @@ -34,6 +34,13 @@ services:
entrypoint-service: install-cni

parts:
add-base-files:
plugin: nil
stage-packages:
- base-files
- bash
- coreutils

build-deps:
plugin: nil
build-snaps:
Expand Down
4 changes: 2 additions & 2 deletions tests/sanity/test_sriov_net_device_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_sriov_dpdk_rock():
image = rock.image

# check rock filesystem.
docker_util.ensure_image_contains_paths(image, ROCK_EXPECTED_FILES)
docker_util.ensure_image_contains_paths_bare(image, ROCK_EXPECTED_FILES)

# check binary.
process = docker_util.run_in_docker(image, ["sriovdp", "--help"], False)
Expand All @@ -31,5 +31,5 @@ def test_sriov_dpdk_rock():
assert "DDPTool version 1.0.1.12" in process.stdout

# check /entrypoint.sh script.
process = docker_util.run_in_docker(image, ["/entrypoint.sh"], False)
process = docker_util.run_in_docker(image, ["bash", "-x", "/entrypoint.sh"], False)
assert "open /etc/pcidp/config.json: no such file or directory" in process.stderr
4 changes: 3 additions & 1 deletion tests/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ commands =
description = Run integration tests
deps =
-r {tox_root}/requirements-test.txt
allowlist_externals =
sudo
commands =
pytest -v \
sudo -E {envpython} -m pytest -v \
--maxfail 1 \
--tb native \
--log-cli-level DEBUG \
Expand Down

0 comments on commit cddad67

Please sign in to comment.