# SPDX-FileCopyrightText: 2022 Alyssa Ross # SPDX-License-Identifier: MIT { pkgs ? import {} }: let inherit (pkgs) lib; ipxe = import ./ipxe.nix {}; in pkgs.writeShellScript "spectrum-infra-run-vultr" '' set -ue script_id="$(jq -n '{ name: "spectrum-infra-boot", type: "pxe", script: $script | @base64, }' --arg script ${lib.escapeShellArg ipxe} | curl -fvL https://api.vultr.com/v2/startup-scripts \ -H "Authorization: Bearer $vultr_key" \ -H "Content-Type: application/json" \ --data-binary @- | jq -r .startup_script.id)" for region in fra ams cdg mad sto waw; do jq -n '{ region: $region, plan: "voc-g-16c-64gb-320s-amd", os_id: 159, script_id: $script_id, user_data: $user_data | @base64, enable_ipv6: true, persistent_pxe: true, }' \ --arg region "$region" \ --arg script_id "$script_id" \ --arg user_data "$(< user-data)" | curl -fiL https://api.vultr.com/v2/instances \ -H "Authorization: Bearer $vultr_key" \ -H "Content-Type: application/json" \ --data-binary @- && break done ''