From 5f68631180fcc238ab59cf9af8bfcc1a5dc457ea Mon Sep 17 00:00:00 2001 From: Thomas Carmet <8408330+tcarmet@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:28:43 -0800 Subject: [PATCH] PTFE-1402 use subnetwork only for gcp runners (#524) --- runner_manager/backend/gcloud.py | 2 +- runner_manager/models/backend.py | 3 ++- tests/unit/backend/test_gcp.py | 4 +++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/runner_manager/backend/gcloud.py b/runner_manager/backend/gcloud.py index f3e19beb..4ea915dd 100644 --- a/runner_manager/backend/gcloud.py +++ b/runner_manager/backend/gcloud.py @@ -92,7 +92,7 @@ def disks(self) -> List[AttachedDisk]: @property def network_interfaces(self) -> List[NetworkInterface]: network_interface: NetworkInterface = NetworkInterface( - network=self.instance_config.network, + subnetwork=f"projects/{self.config.project_id}/regions/{self.config.region}/subnetworks/{self.instance_config.subnetwork}", ) if self.instance_config.enable_external_ip: network_interface.access_configs = [ diff --git a/runner_manager/models/backend.py b/runner_manager/models/backend.py index 04d9658f..94b5d3fc 100644 --- a/runner_manager/models/backend.py +++ b/runner_manager/models/backend.py @@ -94,6 +94,7 @@ class GCPConfig(BackendConfig): project_id: str zone: str + region: str = "europe-west1" service_account_email: str = "default" google_application_credentials: Optional[str] = None @@ -102,7 +103,7 @@ class GCPInstanceConfig(InstanceConfig): image_family: str = "ubuntu-2004-lts" image_project: str = "ubuntu-os-cloud" machine_type: str = "e2-small" - network: str = "global/networks/default" + subnetwork: str = "default" enable_nested_virtualization: bool = True enable_external_ip: bool = True spot: bool = False diff --git a/tests/unit/backend/test_gcp.py b/tests/unit/backend/test_gcp.py index c7b73e42..546c0dc2 100644 --- a/tests/unit/backend/test_gcp.py +++ b/tests/unit/backend/test_gcp.py @@ -15,6 +15,7 @@ def gcp_group(settings, monkeypatch) -> RunnerGroup: config = GCPConfig( project_id=os.environ.get("CLOUDSDK_CORE_PROJECT", ""), + region=os.environ.get("CLOUDSDK_COMPUTE_REGION", ""), zone=os.environ.get("CLOUDSDK_COMPUTE_ZONE", ""), google_application_credentials=os.environ.get( "GOOGLE_APPLICATION_CREDENTIALS", "" @@ -55,8 +56,9 @@ def gcp_runner(runner: Runner, gcp_group: RunnerGroup) -> Runner: def test_gcp_network_interfaces(gcp_group: RunnerGroup): - interfaces = gcp_group.backend.network_interfaces + interfaces: List[NetworkInterface] = gcp_group.backend.network_interfaces assert len(interfaces) == 1 + assert "default" in gcp_group.backend.network_interfaces[0].subnetwork assert interfaces[0].access_configs[0].name == "External NAT" # Test disabling external IP gcp_group.backend.instance_config.enable_external_ip = False