mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-08-07 06:22:17 -04:00
Manually create AWS state disk symlink (#355)
Co-authored-by: Nils Hanke <Nirusu@users.noreply.github.com>
This commit is contained in:
parent
8ef1400810
commit
07f2ed94f8
3 changed files with 54 additions and 12 deletions
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Force symlink creation for AWS nvme disks
|
||||||
|
Before=prepare-state-disk.service
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
ConditionKernelCommandLine=constel.csp=aws
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/bin/bash /usr/sbin/aws-nvme-disk
|
||||||
|
RemainAfterExit=yes
|
||||||
|
StandardOutput=tty
|
||||||
|
StandardInput=tty
|
||||||
|
StandardError=tty
|
||||||
|
TimeoutSec=infinity
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Copyright (c) Edgeless Systems GmbH
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
shopt -s extglob nullglob
|
||||||
|
|
||||||
|
AWS_STATE_DISK_DEVICENAME="sdb"
|
||||||
|
AWS_STATE_DISK_SYMLINK="/dev/${AWS_STATE_DISK_DEVICENAME}"
|
||||||
|
|
||||||
|
# hack: aws nvme udev rules are never executed. Create symlinks for the nvme devices manually.
|
||||||
|
while [ ! -L "${AWS_STATE_DISK_SYMLINK}" ]
|
||||||
|
do
|
||||||
|
for nvmedisk in /dev/nvme*n1
|
||||||
|
do
|
||||||
|
linkname=$(nvme amzn id-ctrl -b "${nvmedisk}" | tail -c +3072 | tr -d ' ') || true
|
||||||
|
if [ -n "${linkname}" ] && [ "${linkname}" == "${AWS_STATE_DISK_DEVICENAME}" ]; then
|
||||||
|
ln -s "${nvmedisk}" "${AWS_STATE_DISK_SYMLINK}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -L "${AWS_STATE_DISK_SYMLINK}" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Waiting for state disk to appear.."
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "AWS state disk found"
|
||||||
|
echo ${AWS_STATE_DISK_SYMLINK} → $(readlink -f "${AWS_STATE_DISK_SYMLINK}")
|
|
@ -33,6 +33,11 @@ install() {
|
||||||
install_and_enable_unit "configure-constel-csp.service" \
|
install_and_enable_unit "configure-constel-csp.service" \
|
||||||
"basic.target"
|
"basic.target"
|
||||||
|
|
||||||
|
# aws nvme disks
|
||||||
|
inst_multiple \
|
||||||
|
tail \
|
||||||
|
tr
|
||||||
|
|
||||||
# azure scsi disks
|
# azure scsi disks
|
||||||
inst_multiple \
|
inst_multiple \
|
||||||
cut \
|
cut \
|
||||||
|
@ -57,16 +62,8 @@ install() {
|
||||||
inst_simple "/usr/lib/udev/rules.d/65-gce-disk-naming.rules" \
|
inst_simple "/usr/lib/udev/rules.d/65-gce-disk-naming.rules" \
|
||||||
"/usr/lib/udev/rules.d/65-gce-disk-naming.rules"
|
"/usr/lib/udev/rules.d/65-gce-disk-naming.rules"
|
||||||
|
|
||||||
inst_script "/usr/sbin/ebsnvme-id" \
|
inst_script "$moddir/aws-nvme-disk.sh" \
|
||||||
"/usr/sbin/ebsnvme-id"
|
"/usr/sbin/aws-nvme-disk"
|
||||||
inst_script "/usr/bin/ec2-metadata" \
|
install_and_enable_unit "aws-nvme-disk.service" \
|
||||||
"/usr/bin/ec2-metadata"
|
"basic.target"
|
||||||
inst_script "/usr/lib/udev/ec2nvme-nsid" \
|
|
||||||
"/usr/lib/udev/ec2nvme-nsid"
|
|
||||||
inst_script "/usr/lib/udev/ec2nvme-nsid" \
|
|
||||||
"/usr/sbin/ec2nvme-nsid"
|
|
||||||
inst_script "/usr/sbin/ec2udev-vbd" \
|
|
||||||
"/usr/sbin/ec2udev-vbd"
|
|
||||||
inst_simple "/usr/lib/udev/rules.d/70-ec2-nvme-devices.rules" \
|
|
||||||
"/usr/lib/udev/rules.d/70-ec2-nvme-devices.rules"
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue