Skip to content
Open

GCP #11

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
ff7d73a
gcp deployt
Nov 21, 2025
234e8fa
hm
cdrappi Nov 21, 2025
a2f1a15
errors'
Nov 21, 2025
0688bbb
merge in
Dec 4, 2025
acf7f43
git commit
Dec 4, 2025
5e72330
remove
cdrappi Dec 4, 2025
e58d64d
hm
cdrappi Dec 4, 2025
dac8b87
fix paths
cdrappi Dec 4, 2025
32d961d
OK
cdrappi Dec 4, 2025
6fa2b01
gix
cdrappi Dec 4, 2025
37ebf42
OK
cdrappi Dec 4, 2025
0d73dfc
FIX
cdrappi Dec 4, 2025
dc7676e
OK
cdrappi Dec 4, 2025
fdd8e40
gcp measuremnt slop
Dec 4, 2025
01cb7f0
OK
Dec 5, 2025
768ae9f
annoying
Dec 5, 2025
aedaddc
ugh
Dec 5, 2025
f219a40
delete
Dec 5, 2025
dc95a52
OK
Dec 5, 2025
4a4917f
gcp
Dec 5, 2025
751b898
try more
Dec 9, 2025
8655e9a
remove
Dec 9, 2025
8b7cd4a
hopefully
cdrappi Dec 10, 2025
73507a2
ghm
Dec 10, 2025
5281916
merge
Dec 10, 2025
3b6ce3a
fix
cdrappi Dec 10, 2025
c7b5781
Merge branch 'gcp' of github.com:SeismicSystems/deploy into gcp
cdrappi Dec 10, 2025
397b950
data disk name
cdrappi Dec 10, 2025
cc63ed1
only balanced disk
cdrappi Dec 10, 2025
64bab51
fix
Dec 10, 2025
d296557
ugh
Dec 11, 2025
39dd4e7
more failures
Dec 11, 2025
8157972
annoying
Dec 12, 2025
dd453b8
deploy metadata
cdrappi Dec 16, 2025
60f1e21
metadata
cdrappi Dec 16, 2025
683217b
more
Dec 16, 2025
a3ce23c
Merge branch 'gcp' of github.com:SeismicSystems/deploy into gcp
Dec 16, 2025
3e6e0f4
more gcp
Dec 16, 2025
0b42ab8
gcp
Dec 18, 2025
2e52686
serial port
Dec 18, 2025
acd2b02
strip features
cdrappi Dec 18, 2025
0b332c5
Merge branch 'gcp' of github.com:SeismicSystems/deploy into gcp
cdrappi Dec 18, 2025
92d3e2f
morre
Dec 18, 2025
6fbc10b
Merge branch 'gcp' of github.com:SeismicSystems/deploy into gcp
Dec 18, 2025
445edfd
yay
cdrappi Dec 18, 2025
f0aaa81
remove gcp-13
Dec 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
195 changes: 44 additions & 151 deletions deploy_metadata.json
Original file line number Diff line number Diff line change
@@ -1,159 +1,52 @@
{
"resources": {
"azure": {
"az-genesis-200": {
"artifact": "seismic-dev-azure-20251121185658.vhd",
"public_ip": "51.8.245.138",
"domain": {
"url": "https://az-200.seismictest.net",
"record": "az-200",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-200",
"nsgName": "az-genesis-200",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-200-persistent"
},
"az-genesis-201": {
"artifact": "seismic-dev-azure-20251121185658.vhd",
"public_ip": "135.237.40.94",
"domain": {
"url": "https://az-201.seismictest.net",
"record": "az-201",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-201",
"nsgName": "az-genesis-201",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-201-persistent"
},
"az-genesis-202": {
"artifact": "seismic-dev-azure-20251121185658.vhd",
"public_ip": "48.194.106.11",
"domain": {
"url": "https://az-202.seismictest.net",
"record": "az-202",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-202",
"nsgName": "az-genesis-202",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-202-persistent"
},
"az-genesis-203": {
"artifact": "seismic-dev-azure-20251121185658.vhd",
"public_ip": "51.8.237.70",
"domain": {
"url": "https://az-203.seismictest.net",
"record": "az-203",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-203",
"nsgName": "az-genesis-203",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-203-persistent"
},
"az-genesis-1": {
"artifact": "seismic-dev-azure-20251124143117.vhd",
"public_ip": "48.223.236.240",
"domain": {
"url": "https://az-1.seismictest.net",
"record": "az-1",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-1",
"nsgName": "az-genesis-1",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-1-persistent"
"gcp": {}
},
"artifacts": {
"seismic-dev-gcp-20251218205246.tar.gz": {
"repos": {
"enclave": "d6c4badd0ee5639a432e96d3cced228cbf5fa3b3",
"sreth": "4141f746b6169f5afeb7a94b9bf087cc2fe35221",
"summit": "2435d1b5c762c170cf68a67ef5300052d2d66265"
},
"az-genesis-2": {
"artifact": "seismic-dev-azure-20251124143117.vhd",
"public_ip": "48.223.215.252",
"domain": {
"url": "https://az-2.seismictest.net",
"record": "az-2",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-2",
"nsgName": "az-genesis-2",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-2-persistent"
"image": {
"measurement_id": "seismic-dev-gcp-20251218205246.tar.gz",
"attestation_type": "CloudProvider.GCP-tdx",
"measurements": {
"rtmr1": "bab64cfafff04d5b49db57392dcd8c6275f0a9624a16dc3789d65e2b1d96d9b19ba3f339734afc6631ff83dc318201a7",
"rtmr2": "c387f609a3f28bef432527b1f7e951f5b623e0ccdc5b001b5b893ced586d88e287183ca9c1c94714c45dab4e5c4f9527"
}
}
},
"seismic-dev-gcp-20251218233113.tar.gz": {
"repos": {
"enclave": "d6c4badd0ee5639a432e96d3cced228cbf5fa3b3",
"sreth": "4141f746b6169f5afeb7a94b9bf087cc2fe35221",
"summit": "2435d1b5c762c170cf68a67ef5300052d2d66265"
},
"az-genesis-3": {
"artifact": "seismic-dev-azure-20251124143117.vhd",
"public_ip": "134.33.152.130",
"domain": {
"url": "https://az-3.seismictest.net",
"record": "az-3",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-3",
"nsgName": "az-genesis-3",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-3-persistent"
"image": {
"measurement_id": "seismic-dev-gcp-20251218233113.tar.gz",
"attestation_type": "CloudProvider.GCP-tdx",
"measurements": {
"rtmr1": "18d4d4a9cfdce4d9fc2bb877cb4aa0ab72799bd5a01802b4555dccdccafaba78189d1de886976780033f06786293ea27",
"rtmr2": "c759d3b5582128c81d7049d9016e429b1dbc4dc689f142c816be35041ce313b034d57150c24bbf1fc7d40330d20076d9"
}
}
},
"seismic-dev-gcp-20251219004415.tar.gz": {
"repos": {
"enclave": "d6c4badd0ee5639a432e96d3cced228cbf5fa3b3",
"sreth": "4141f746b6169f5afeb7a94b9bf087cc2fe35221",
"summit": "2435d1b5c762c170cf68a67ef5300052d2d66265"
},
"az-genesis-4": {
"artifact": "seismic-dev-azure-20251124143117.vhd",
"public_ip": "128.203.77.183",
"domain": {
"url": "https://az-4.seismictest.net",
"record": "az-4",
"name": "seismictest.net",
"resource_group": "yocto-testnet"
},
"vm": {
"resourceGroup": "tdx-testnet",
"name": "az-genesis-4",
"nsgName": "az-genesis-4",
"cloud": "azure",
"region": "eastus",
"size": "Standard_DC4es_v6"
},
"data_disk": "az-genesis-4-persistent"
"image": {
"measurement_id": "seismic-dev-gcp-20251219004415.tar.gz",
"attestation_type": "CloudProvider.GCP-tdx",
"measurements": {
"rtmr1": "63d4684bd8700cc2eee8dc7c85e5b0fcc2f1885927e01b5b92d1e910b1d95492b86c72ad2ce1417c77f6a54b014c649c",
"rtmr2": "38b6d470a677fd7da73f6681ce2acd22733201c7df3798e694e77dd5fe9b4dc702cf52fdd06610662599a3e7fdab34b6"
}
}
}
},
"artifacts": {}
}
}
3 changes: 1 addition & 2 deletions yocto/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,9 @@ Upon successful deployment, the script will:
- `--logs` If flagged, print build and/or deploy logs as they run

### Build arguments
- `--enclave-branch` Seismic Enclave git branch name. Defaults to 'main'
- `--enclave-commit` Seismic Enclave git gommit hash. If not provided, does not change image
- `--sreth-branch` Seismic Reth git branch name. Defaults to 'seismic'
- `--sreth-commit` Seismic Reth git commit hash. If not provided, does not change image
- `--summit-commit` Summit git commit hash. If not provided, does not change image

### Deploy arguments
- `--artifact` Required when running --deploy without --build (e.g. '20241203182636')
Expand Down
72 changes: 32 additions & 40 deletions yocto/cloud/azure/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
from yocto.cloud.cloud_api import CloudApi
from yocto.cloud.cloud_config import CloudProvider
from yocto.cloud.cloud_parser import confirm
from yocto.config import DeployConfigs, VmConfigs
from yocto.config import DeployConfigs

logger = logging.getLogger(__name__)

OPEN_PORTS = [
22, # ssh
22, # ssh
80, # http
443, # https
7878, # enclave
Expand Down Expand Up @@ -464,7 +464,7 @@ def add_nsg_rule(
source,
]
cls.run_command(cmd, show_logs=config.show_logs)

@staticmethod
def get_nsg_rules(config: DeployConfigs) -> list[str]:
tcp_rules = [
Expand Down Expand Up @@ -645,43 +645,35 @@ def create_vm(
disk_name: str,
) -> None:
"""Create the virtual machine with user-data."""
user_data_file = cls.create_user_data_file(config)

try:
logger.info("Booting VM...")
cmd = [
"az",
"vm",
"create",
"--name",
config.vm.name,
"--size",
config.vm.size,
"--resource-group",
config.vm.resource_group,
"--attach-os-disk",
disk_name,
"--security-type",
"ConfidentialVM",
"--enable-vtpm",
"true",
"--enable-secure-boot",
"false",
"--os-disk-security-encryption-type",
"NonPersistedTPM",
"--os-type",
"Linux",
"--nsg",
config.vm.nsg_name,
"--public-ip-address",
ip_name,
"--user-data",
user_data_file,
]
cls.run_command(cmd, show_logs=False)
finally:
os.unlink(user_data_file)
logger.info(f"Deleted temporary user-data file: {user_data_file}")
logger.info("Booting VM...")
cmd = [
"az",
"vm",
"create",
"--name",
config.vm.name,
"--size",
config.vm.size,
"--resource-group",
config.vm.resource_group,
"--attach-os-disk",
disk_name,
"--security-type",
"ConfidentialVM",
"--enable-vtpm",
"true",
"--enable-secure-boot",
"false",
"--os-disk-security-encryption-type",
"NonPersistedTPM",
"--os-type",
"Linux",
"--nsg",
config.vm.nsg_name,
"--public-ip-address",
ip_name,
]
cls.run_command(cmd, show_logs=False)

@classmethod
def get_vm_ip(cls, vm_name: str, resource_group: str, location: str) -> str:
Expand Down
6 changes: 1 addition & 5 deletions yocto/cloud/cloud_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,7 @@ def attach_data_disk(
"""Attach a data disk to a VM."""
raise NotImplementedError

@classmethod
@abstractmethod
def create_user_data_file(cls, config: "DeployConfigs") -> str:
"""Create temporary user data file."""
raise NotImplementedError


@classmethod
@abstractmethod
Expand Down
15 changes: 15 additions & 0 deletions yocto/cloud/cloud_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,21 @@ class CloudProvider(str, Enum):
GCP = "gcp"
OVH = "ovh"

@staticmethod
def from_string(s: str) -> "CloudProvider":
if "-azure-" in s.lower():
return CloudProvider.AZURE
elif "-gcp-" in s.lower():
return CloudProvider.GCP
else:
return CloudProvider.OVH

def is_gcp(self) -> bool:
return self == CloudProvider.GCP

def is_azure(self) -> bool:
return self == CloudProvider.AZURE


# Re-export for convenience
__all__ = [
Expand Down
5 changes: 4 additions & 1 deletion yocto/cloud/cloud_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ def create_cloud_parser(description: str) -> argparse.ArgumentParser:
type=str,
choices=["azure", "gcp", "ovh"],
required=False,
help="Cloud provider to use (azure, gcp, or ovh). Required for deployment, optional for build.",
help=(
"Cloud provider to use (azure, gcp, or ovh). "
"Required for deployment, optional for build."
),
)

# Region/Zone (optional, defaults based on cloud)
Expand Down
Loading