elasticsearch/.buildkite/scripts/encryption-at-rest.sh

25 lines
830 B
Bash
Executable file

#!/bin/bash
set -euo pipefail
#!/bin/bash
# Configure a dm-crypt volume backed by a file
set -e
dd if=/dev/zero of=dm-crypt.img bs=1 count=0 seek=80GB
dd if=/dev/urandom of=key.secret bs=2k count=1
LOOP=$(losetup -f)
sudo losetup $LOOP dm-crypt.img
sudo cryptsetup luksFormat -q --key-file key.secret "$LOOP"
sudo cryptsetup open --key-file key.secret "$LOOP" secret --verbose
sudo mkfs.ext2 /dev/mapper/secret
sudo mkdir /mnt/secret
# Change /mnt/secret with care (at least a test uses this path to detect when encryption at rest is used)
sudo mount /dev/mapper/secret /mnt/secret
sudo chown -R buildkite-agent /mnt/secret
cp -r "$WORKSPACE" /mnt/secret
cd /mnt/secret/$(basename "$WORKSPACE")
touch .output.log
rm -Rf "$WORKSPACE"
ln -s "$PWD" "$WORKSPACE"
.ci/scripts/run-gradle.sh -Dbwc.checkout.align=true functionalTests