Skip to content

Commit 3429616

Browse files
authored
PTFE-1402 enable or disable external IP GCP runner (#523)
1 parent 625cce9 commit 3429616

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

runner_manager/backend/gcloud.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,16 +91,16 @@ def disks(self) -> List[AttachedDisk]:
9191

9292
@property
9393
def network_interfaces(self) -> List[NetworkInterface]:
94-
return [
95-
NetworkInterface(
96-
network=self.instance_config.network,
97-
access_configs=[
98-
AccessConfig(
99-
name="External NAT",
100-
)
101-
],
102-
)
103-
]
94+
network_interface: NetworkInterface = NetworkInterface(
95+
network=self.instance_config.network,
96+
)
97+
if self.instance_config.enable_external_ip:
98+
network_interface.access_configs = [
99+
AccessConfig(
100+
name="External NAT",
101+
)
102+
]
103+
return [network_interface]
104104

105105
@property
106106
def scheduling(self) -> Scheduling:

runner_manager/models/backend.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ class GCPInstanceConfig(InstanceConfig):
104104
machine_type: str = "e2-small"
105105
network: str = "global/networks/default"
106106
enable_nested_virtualization: bool = True
107+
enable_external_ip: bool = True
107108
spot: bool = False
108109
disk_size_gb: int = 20
109110
disk_type: Literal["pd-ssd", "pd-standard"] = "pd-ssd"

tests/unit/backend/test_gcp.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
from typing import List
33

4-
from google.cloud.compute import Image
4+
from google.cloud.compute import Image, NetworkInterface
55
from pytest import fixture, mark, raises
66
from redis_om import NotFoundError
77

@@ -57,6 +57,12 @@ def gcp_runner(runner: Runner, gcp_group: RunnerGroup) -> Runner:
5757
def test_gcp_network_interfaces(gcp_group: RunnerGroup):
5858
interfaces = gcp_group.backend.network_interfaces
5959
assert len(interfaces) == 1
60+
assert interfaces[0].access_configs[0].name == "External NAT"
61+
# Test disabling external IP
62+
gcp_group.backend.instance_config.enable_external_ip = False
63+
interfaces: List[NetworkInterface] = gcp_group.backend.network_interfaces
64+
assert len(interfaces) == 1
65+
assert len(interfaces[0].access_configs) == 0
6066

6167

6268
def test_gcp_group(gcp_group: RunnerGroup):

0 commit comments

Comments
 (0)