diff --git a/autoprovision-test.conf b/autoprovision-test.conf new file mode 100644 index 0000000..176db7e --- /dev/null +++ b/autoprovision-test.conf @@ -0,0 +1,4 @@ +[Config] +Include=base/base.conf +Include=autoprovision-test/autoprovision-test.conf +Include=devtools/devtools.conf diff --git a/autoprovision-test/autoprovision-test.conf b/autoprovision-test/autoprovision-test.conf new file mode 100644 index 0000000..301aea5 --- /dev/null +++ b/autoprovision-test/autoprovision-test.conf @@ -0,0 +1,9 @@ +[Content] +WithNetwork=true +BuildScripts=autoprovision-test/mkosi.build +BuildPackages=ca-certificates + golang-go + git +Packages=cryptsetup + ca-certificates +PostInstallationScripts=autoprovision-test/mkosi.postinst diff --git a/autoprovision-test/autoprovision.service b/autoprovision-test/autoprovision.service new file mode 100644 index 0000000..372b3ae --- /dev/null +++ b/autoprovision-test/autoprovision.service @@ -0,0 +1,15 @@ +[Unit] +Description=Autoprovisioner +After=proxy-client.service +Wants=proxy-client.service + +[Service] +Type=oneshot +User=root +Group=root +ExecStart=/usr/bin/autoprovision --app-contract 0x05ED0BF33dd0c0D5a7292cec365de785322b8F04 --provisioning-server-addr http://127.0.0.1:8078 --device-glob /dev/sda +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=minimal.target diff --git a/autoprovision-test/mkosi.build b/autoprovision-test/mkosi.build new file mode 100755 index 0000000..0661239 --- /dev/null +++ b/autoprovision-test/mkosi.build @@ -0,0 +1,7 @@ +#!/bin/bash +set -euxo pipefail + +source scripts/make_git_package.sh + +make_git_package "tee-service-provisioning-backend" "autoprovision-test" "https://github.com/Ruteri/tee-service-provisioning-backend" 'go build -trimpath -ldflags "-s -w -buildid= " -v -o ./build/autoprovision ./instanceutils/autoprovision' "build/autoprovision:/usr/bin/autoprovision" +make_git_package "cvm-reverse-proxy" "remote-tdx-provider" "https://github.com/flashbots/cvm-reverse-proxy" "make build-proxy-client" "build/proxy-client:/usr/bin/proxy-client" diff --git a/autoprovision-test/mkosi.postinst b/autoprovision-test/mkosi.postinst new file mode 100755 index 0000000..7520dcc --- /dev/null +++ b/autoprovision-test/mkosi.postinst @@ -0,0 +1,9 @@ +#!/bin/bash +set -euxo pipefail + +# Install systemd service units +SERVICE_DIR="$BUILDROOT/etc/systemd/system" +mkdir -p "$SERVICE_DIR" + +install -m 644 "autoprovision-test/autoprovision.service" "$SERVICE_DIR/" +install -m 644 "autoprovision-test/proxy-client.service" "$SERVICE_DIR/" diff --git a/autoprovision-test/proxy-client.service b/autoprovision-test/proxy-client.service new file mode 100644 index 0000000..ed3dcc9 --- /dev/null +++ b/autoprovision-test/proxy-client.service @@ -0,0 +1,17 @@ +[Unit] +Description=Provisioner client CVM Proxy +After=network-setup.service +Wants=network-setup.service + +[Service] +Type=exec +User=root +Group=root +ExecStart=/usr/bin/proxy-client --listen-addr 127.0.0.1:8078 --target-addr https://ns31695324.ip-141-94-163.eu:10079 --client-attestation-type dummy --dev-dummy-dcap http://ns31695324.ip-141-94-163.eu:10080 +Restart=on-failure +RestartSec=10 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=minimal.target diff --git a/provisioner.conf b/provisioner.conf new file mode 100644 index 0000000..a9003c7 --- /dev/null +++ b/provisioner.conf @@ -0,0 +1,4 @@ +[Config] +Include=base/base.conf +Include=provisioner/provisioner.conf +Include=devtools/devtools.conf diff --git a/provisioner/measurements.json b/provisioner/measurements.json new file mode 100644 index 0000000..1d28377 --- /dev/null +++ b/provisioner/measurements.json @@ -0,0 +1,14 @@ +[ + { + "measurement_id": "azure-tdx", + "attestation_type": "azure-tdx", + "measurements": { + } + }, + { + "measurement_id": "dcap-tdx", + "attestation_type": "dcap-tdx", + "measurements": { + } + } +] diff --git a/provisioner/mkosi.build b/provisioner/mkosi.build new file mode 100755 index 0000000..1c9a13c --- /dev/null +++ b/provisioner/mkosi.build @@ -0,0 +1,7 @@ +#!/bin/bash +set -euxo pipefail + +source scripts/make_git_package.sh + +make_git_package "tee-service-provisioning-backend" "main" "https://github.com/Ruteri/tee-service-provisioning-backend" 'go build -trimpath -ldflags "-s -w -buildid= " -v -o ./build/provisioner ./cmd/httpserver' "build/provisioner:/usr/bin/provisioner" +make_git_package "cvm-reverse-proxy" "remote-tdx-provider" "https://github.com/flashbots/cvm-reverse-proxy" "make build-proxy-server" "build/proxy-server:/usr/bin/proxy-server" diff --git a/provisioner/mkosi.postinst b/provisioner/mkosi.postinst new file mode 100755 index 0000000..56ca082 --- /dev/null +++ b/provisioner/mkosi.postinst @@ -0,0 +1,10 @@ +#!/bin/bash +set -euxo pipefail + +# Install systemd service units +SERVICE_DIR="$BUILDROOT/etc/systemd/system" +mkdir -p "$SERVICE_DIR" + +install -m 644 "provisioner/provisioner.service" "$SERVICE_DIR/" +install -m 644 "provisioner/proxy-server.service" "$SERVICE_DIR/" +install -m 644 "provisioner/measurements.json" "$BUILDROOT/measurements.json" diff --git a/provisioner/provisioner.conf b/provisioner/provisioner.conf new file mode 100644 index 0000000..1a5ddb7 --- /dev/null +++ b/provisioner/provisioner.conf @@ -0,0 +1,8 @@ +[Content] +WithNetwork=true +BuildScripts=provisioner/mkosi.build +BuildPackages=ca-certificates + golang-go + git +Packages=ca-certificates +PostInstallationScripts=provisioner/mkosi.postinst diff --git a/provisioner/provisioner.service b/provisioner/provisioner.service new file mode 100644 index 0000000..cc8c67d --- /dev/null +++ b/provisioner/provisioner.service @@ -0,0 +1,17 @@ +[Unit] +Description=Provisioner +After=network-setup.service +Wants=network-setup.service + +[Service] +Type=exec +User=root +Group=root +ExecStart=/usr/bin/provisioner --rpc-addr https://1rpc.io/sepolia --listen-addr 127.0.0.1:8080 --simple-kms-seed 0000000000000000000000000000000000000000000000000000000000000000 --remote-attestation-provider http://ns31695324.ip-141-94-163.eu:10080 +Restart=on-failure +RestartSec=10 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=minimal.target diff --git a/provisioner/proxy-server.service b/provisioner/proxy-server.service new file mode 100644 index 0000000..a0a83fb --- /dev/null +++ b/provisioner/proxy-server.service @@ -0,0 +1,17 @@ +[Unit] +Description=Provisioner CVM Proxy +After=provisioner.service +Wants=provisioner.service + +[Service] +Type=exec +User=root +Group=root +ExecStart=/usr/bin/proxy-server --listen-addr 0.0.0.0:8079 --target-addr http://127.0.0.1:8080 --server-attestation-type dummy --dev-dummy-dcap http://ns31695324.ip-141-94-163.eu:10080 --client-measurements /measurements.json +Restart=on-failure +RestartSec=10 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=minimal.target diff --git a/scripts/make_git_package.sh b/scripts/make_git_package.sh index f81afe8..44dce81 100644 --- a/scripts/make_git_package.sh +++ b/scripts/make_git_package.sh @@ -1,6 +1,4 @@ #!/bin/bash -# -# Note env variables: DESTDIR, BUILDROOT, GOCACHE make_git_package() { local package="$1"