Skip to content

Commit 086ce1e

Browse files
genprotimg.bu: add coreos-genprotimg-generator
This fixes an issue when during firstboot system tried to mount genprotimg partition.
1 parent 99b22de commit 086ce1e

File tree

1 file changed

+43
-30
lines changed

1 file changed

+43
-30
lines changed

src/secex-genprotimgvm-scripts/genprotimg.bu

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ storage:
2020
contents:
2121
inline: |
2222
#!/bin/bash
23-
set -euo pipefail
23+
set -xeuo pipefail
2424
trap "rm -f /var/genprotimg/signal.file" EXIT
2525
bash /var/build/genprotimg-script.sh &
2626
while [ ! -e "/var/genprotimg/signal.file" ]; do
@@ -29,6 +29,48 @@ storage:
2929
genprotimg -V --no-verify -i /var/genprotimg/vmlinuz -r /var/genprotimg/initrd.img -p /var/genprotimg/parmfile -k /etc/se-hostkeys/ibm-z-hostkey-1 -o /var/genprotimg/se.img
3030
rm -f /var/genprotimg/signal.file
3131
bash /var/build/post-script.sh
32+
- path: /etc/systemd/system-generators/coreos-genprotimg-generator
33+
overwrite: true
34+
mode: 0755
35+
contents:
36+
inline: |
37+
#!/bin/bash
38+
export PATH="/usr/bin:/usr/sbin:${PATH}"
39+
set -euo pipefail
40+
. /usr/lib/coreos/generator-lib.sh
41+
if [ ! -z $(karg ignition.firstboot) ]; then
42+
exit 0
43+
fi
44+
mkdir -p "${UNIT_DIR}/default.target.wants"
45+
46+
cat > "${UNIT_DIR}"/var-build.mount << 'EOF'
47+
# generated by coreos-genprotimg-generator
48+
# Mounts partition with parmfile, pre- and post- scripts used by genprotimg.service
49+
[Unit]
50+
Description=Genprotimg partition mount
51+
Requires=dev-disk-by\x2did-virtio\x2dgenprotimg.device
52+
After=dev-disk-by\x2did-virtio\x2dgenprotimg.device
53+
[Mount]
54+
What=/dev/disk/by-id/virtio-genprotimg
55+
Where=/var/build
56+
Type=ext4
57+
Options=rw,noatime
58+
EOF
59+
ln -sf "../var-build.mount" "${UNIT_DIR}/default.target.wants/"
60+
61+
cat > "${UNIT_DIR}/genprotimg.service" << 'EOF'
62+
# generated by coreos-genprotimg-generator
63+
# Creates secure image by calling genprotimg tool
64+
[Unit]
65+
Description=Genprotimg executor
66+
After=var-build.mount
67+
[Service]
68+
Type=oneshot
69+
StandardOutput=journal+console
70+
ExecStart=/etc/do_genprotimg
71+
ExecStopPost=/sbin/halt
72+
EOF
73+
ln -sf "../genprotimg.service" "${UNIT_DIR}/default.target.wants/"
3274
systemd:
3375
units:
3476
@@ -42,32 +84,3 @@ systemd:
4284
mask: false
4385
4486
mask: false
45-
- name: genprotimg.service
46-
enabled: true
47-
contents: |
48-
[Unit]
49-
Description=GenProtImg
50-
ConditionKernelCommandLine=!ignition.firstboot
51-
After=var-build.mount
52-
[Service]
53-
Type=oneshot
54-
StandardOutput=journal+console
55-
ExecStart=/etc/do_genprotimg
56-
ExecStopPost=/sbin/halt
57-
[Install]
58-
WantedBy=default.target
59-
- name: var-build.mount
60-
enabled: true
61-
contents: |
62-
[Unit]
63-
Description=Mounts genprotimg build partition
64-
ConditionKernelCommandLine=!ignition.firstboot
65-
Requires=dev-disk-by\x2did-virtio\x2dgenprotimg.device
66-
After=dev-disk-by\x2did-virtio\x2dgenprotimg.device
67-
[Mount]
68-
What=/dev/disk/by-id/virtio-genprotimg
69-
Where=/var/build
70-
Type=ext4
71-
Options=rw,noatime
72-
[Install]
73-
WantedBy=default.target

0 commit comments

Comments
 (0)