Skip to content

Commit 257c860

Browse files
authored
Merge pull request #763 from henrywang/lbi
test: add logically bound images
2 parents 4fed0e4 + 19f2c70 commit 257c860

File tree

5 files changed

+88
-1
lines changed

5 files changed

+88
-1
lines changed

tests/e2e/bootc-install.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,21 +137,30 @@ case "$TEST_CASE" in
137137
"to-existing-root")
138138
SSH_USER="root"
139139
SSH_KEY_PUB_CONTENT=$(cat "${SSH_KEY_PUB}")
140+
mkdir -p "${TEMPDIR}/usr/share/containers/systemd"
141+
cp files/caddy.container files/node_exporter.container "${TEMPDIR}/usr/share/containers/systemd"
140142
tee -a "$INSTALL_CONTAINERFILE" > /dev/null << EOF
143+
COPY usr/ usr/
141144
RUN mkdir -p /usr/etc-system/ && \
142145
echo 'AuthorizedKeysFile /usr/etc-system/%u.keys' >> /etc/ssh/sshd_config.d/30-auth-system.conf && \
143146
echo "$SSH_KEY_PUB_CONTENT" > /usr/etc-system/root.keys && \
144147
chmod 0600 /usr/etc-system/root.keys && \
145148
dnf -y install qemu-guest-agent && \
146149
dnf clean all && \
147-
systemctl enable qemu-guest-agent
150+
systemctl enable qemu-guest-agent && \
151+
ln -s /usr/share/containers/systemd/caddy.container /usr/lib/bootc/bound-images.d/caddy.container && \
152+
ln -s /usr/share/containers/systemd/node_exporter.container /usr/lib/bootc/bound-images.d/node_exporter.container
148153
EOF
154+
# logical bound image
155+
LBI="enabled"
149156
;;
150157
"to-disk")
151158
tee -a "$INSTALL_CONTAINERFILE" > /dev/null << EOF
152159
RUN dnf -y install python3 cloud-init && \
153160
dnf -y clean all
154161
EOF
162+
# LBI is disabled in to-disk test
163+
LBI="disabled"
155164
;;
156165
esac
157166

@@ -264,6 +273,7 @@ ansible-playbook -v \
264273
-e bootc_image="$TEST_IMAGE_URL" \
265274
-e image_label_version_id="$REDHAT_VERSION_ID" \
266275
-e kargs="mitigations=on,nosmt,console=ttyS0,panic=0" \
276+
-e lbi="$LBI" \
267277
playbooks/check-system.yaml
268278

269279
# Prepare upgrade containerfile
@@ -309,6 +319,7 @@ ansible-playbook -v \
309319
-e image_label_version_id="$REDHAT_VERSION_ID" \
310320
-e upgrade="true" \
311321
-e kargs="systemd.unified_cgroup_hierarchy=1,console=ttyS,panic=0" \
322+
-e lbi="$LBI" \
312323
playbooks/check-system.yaml
313324

314325
# bootc rollback test

tests/e2e/files/caddy.container

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[Unit]
2+
Description=Run a demo webserver
3+
4+
[Container]
5+
GlobalArgs=--storage-opt=additionalimagestore=/usr/lib/bootc/storage
6+
Image=docker.io/library/caddy:2.8.4
7+
PublishPort=80:80
8+
ReadOnly=true
9+
10+
[Install]
11+
WantedBy=default.target
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Unit]
2+
Description=Prometheus node exporter
3+
4+
[Container]
5+
Network=host
6+
PodmanArgs=--pid=host --storage-opt=additionalimagestore=/usr/lib/bootc/storage
7+
Volume=/:/host,ro,rslave
8+
Image=quay.io/prometheus/node-exporter:v1.8.2
9+
Exec=--path.rootfs=/host
10+
ReadOnly=true
11+
12+
[Install]
13+
WantedBy=default.target

tests/e2e/playbooks/check-system.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
bootc_image: ""
66
upgrade: ""
77
kargs: ""
8+
lbi: ""
89
total_counter: "0"
910
failed_counter: "0"
1011

@@ -437,6 +438,50 @@
437438
set_fact:
438439
failed_counter: "{{ failed_counter | int + 1 }}"
439440

441+
# case: check logically bound image caddy container status
442+
- name: check LBI caddy container status
443+
shell: podman ps --filter "name=systemd-caddy" --format json | jq -r '.[].State'
444+
register: result_caddy_state
445+
when: lbi == "enabled"
446+
447+
- name: run caddy container status test
448+
block:
449+
- assert:
450+
that:
451+
- result_caddy_state.stdout == "running"
452+
fail_msg: "failed to run caddy container"
453+
success_msg: "running caddy container"
454+
always:
455+
- set_fact:
456+
total_counter: "{{ total_counter | int + 1 }}"
457+
rescue:
458+
- name: failed count + 1
459+
set_fact:
460+
failed_counter: "{{ failed_counter | int + 1 }}"
461+
when: lbi == "enabled"
462+
463+
# case: check logically bound image node_exporter container status
464+
- name: check LBI node_exporter container status
465+
shell: podman ps --filter "name=systemd-node_exporter" --format json | jq -r '.[].State'
466+
register: result_node_exporter_state
467+
when: lbi == "enabled"
468+
469+
- name: run node_exporter container status test
470+
block:
471+
- assert:
472+
that:
473+
- result_node_exporter_state.stdout == "running"
474+
fail_msg: "failed to run node_exporter container"
475+
success_msg: "running node_exporter container"
476+
always:
477+
- set_fact:
478+
total_counter: "{{ total_counter | int + 1 }}"
479+
rescue:
480+
- name: failed count + 1
481+
set_fact:
482+
failed_counter: "{{ failed_counter | int + 1 }}"
483+
when: lbi == "enabled"
484+
440485
# case: check system reboot
441486
- name: check system reboot
442487
block:

tests/e2e/playbooks/install.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@
4040
command: dnf -y install podman
4141
become: true
4242

43+
- name: Pull logical bound image
44+
command: podman pull --tls-verify=false {{ item }}
45+
become: true
46+
loop:
47+
- "docker.io/library/caddy:2.8.4"
48+
- "quay.io/prometheus/node-exporter:v1.8.2"
49+
4350
- name: Install image
4451
command:
4552
"podman run \

0 commit comments

Comments
 (0)