Skip to content

Commit dde0e85

Browse files
authored
Add reservation specification to create function and standardize DAGs (GoogleCloudPlatform#915)
Modify `node_pool_status` and `multi_host_nodepool_rollback_dag` DAG to use same cluster and adding use reservation in `create` task.
1 parent cd75c37 commit dde0e85

4 files changed

Lines changed: 25 additions & 16 deletions

File tree

dags/common/vm_resource.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ class Region(enum.Enum):
9090
# used for GKE
9191
US_CENTRAL1 = "us-central1"
9292
ASIA_NORTHEAST1 = "asia-northeast1"
93+
US_EAST5 = "us-east5"
9394

9495

9596
class Zone(enum.Enum):

dags/tpu_observability/multi_host_nodepool_rollback_dag.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,23 @@
4949
node_pool_info = node_pool.Info(
5050
project_id=Project.TPU_PROD_ENV_ONE_VM.value,
5151
cluster_name=Variable.get(
52-
"CLUSTER_NAME", default_var="qmcgarry-auto-test"
52+
"CLUSTER_NAME", default_var="tpu-observability-automation"
5353
),
5454
node_pool_name=Variable.get(
55-
"NODE_POOL_NAME", default_var="nodepool-auto"
56-
),
57-
location=Variable.get(
58-
"LOCATION", default_var=Region.ASIA_NORTHEAST1.value
55+
"NODE_POOL_NAME", default_var="multi_host_nodepool_rollback_auto"
5956
),
57+
location=Variable.get("LOCATION", default_var=Region.US_EAST5.value),
6058
node_locations=Variable.get(
61-
"NODE_LOCATIONS", default_var=Zone.ASIA_NORTHEAST1_B.value
59+
"NODE_LOCATIONS", default_var=Zone.US_EAST5_B.value
6260
),
6361
num_nodes=Variable.get("NUM_NODES", default_var=4),
6462
machine_type=Variable.get("MACHINE_TYPE", default_var="ct6e-standard-4t"),
6563
tpu_topology=Variable.get("TPU_TOPOLOGY", default_var="4x4"),
6664
)
6765

68-
create_node_pool = node_pool.create(node_pool=node_pool_info)
66+
create_node_pool = node_pool.create(
67+
node_pool=node_pool_info, reservation="cloudtpu-20250131131310-2118578099"
68+
)
6969

7070
wait_node_pool_available = node_pool.wait_for_availability(
7171
node_pool=node_pool_info, availability=True

dags/tpu_observability/node_pool_status.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@
4545
"PROJECT_ID", default_var=Project.TPU_PROD_ENV_ONE_VM.value
4646
),
4747
cluster_name=models.Variable.get(
48-
"CLUSTER_NAME", default_var="yuna-xpk-v6e-2"
48+
"CLUSTER_NAME", default_var="tpu-observability-automation"
4949
),
5050
node_pool_name=models.Variable.get(
51-
"NODE_POOL_NAME", default_var="yuna-v6e-autotest"
51+
"NODE_POOL_NAME", default_var="node-pool-status-v6e-autotest"
5252
),
5353
location=models.Variable.get(
54-
"LOCATION", default_var=Region.ASIA_NORTHEAST1.value
54+
"LOCATION", default_var=Region.US_EAST5.value
5555
),
5656
node_locations=models.Variable.get(
57-
"NODE_LOCATIONS", default_var=Zone.ASIA_NORTHEAST1_B.value
57+
"NODE_LOCATIONS", default_var=Zone.US_EAST5_B.value
5858
),
5959
num_nodes=models.Variable.get("NUM_NODES", default_var=4),
6060
machine_type=models.Variable.get(
@@ -74,7 +74,7 @@
7474

7575
task_id = "create_node_pool"
7676
create_node_pool = node_pool.create.override(task_id=task_id)(
77-
node_pool=node_pool_info
77+
node_pool=node_pool_info, reservation="cloudtpu-20250131131310-2118578099"
7878
)
7979

8080
task_id = "wait_for_provisioning"

dags/tpu_observability/utils/node_pool_util.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,29 @@ class Info:
5151

5252

5353
@task
54-
def create(node_pool: Info, ignore_failure: bool = False) -> None:
54+
def create(
55+
node_pool: Info,
56+
reservation: str = None,
57+
ignore_failure: bool = False,
58+
) -> None:
5559
"""Creates a GKE node pool by the given node pool information."""
5660

5761
command = (
5862
f"gcloud container node-pools create {node_pool.node_pool_name} "
5963
f"--project={node_pool.project_id} "
6064
f"--cluster={node_pool.cluster_name} "
6165
f"--location={node_pool.location} "
62-
f"--node-locations {node_pool.node_locations} "
66+
f"--node-locations={node_pool.node_locations} "
6367
f"--num-nodes={node_pool.num_nodes} "
6468
f"--machine-type={node_pool.machine_type} "
65-
f"--tpu-topology={node_pool.tpu_topology}"
69+
f"--tpu-topology={node_pool.tpu_topology} "
6670
)
71+
72+
if reservation:
73+
command += f"--reservation-affinity=specific --reservation={reservation} "
74+
6775
if ignore_failure:
68-
command += " 2>&1 || true"
76+
command += "2>&1 || true "
6977

7078
process = subprocess.run(
7179
command, shell=True, check=True, capture_output=True, text=True

0 commit comments

Comments
 (0)