Skip to content

Commit 2e94564

Browse files
committed
Move platform/ and k8s/ to providers/ directory structure
Reorganize iris cluster infrastructure code into a providers/ directory: - platform/base.py -> providers/base.py - platform/gcp*.py, bootstrap, debug, remote_exec, _worker_base -> providers/gcp/ - platform/coreweave.py -> providers/k8s/platform.py - k8s/* -> providers/k8s/ - platform/manual.py -> providers/manual/platform.py - platform/factory.py -> providers/factory.py - controller/vm_lifecycle.py -> providers/gcp/vm_lifecycle.py All imports updated across src/ and tests/.
1 parent c72d828 commit 2e94564

56 files changed

Lines changed: 668 additions & 196 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/iris/src/iris/cli/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def _configure_client_s3(config) -> None:
7272
R2_ACCESS_KEY_ID/R2_SECRET_ACCESS_KEY), AWS_ENDPOINT_URL, and FSSPEC_S3
7373
with the correct endpoint.
7474
"""
75-
from iris.cluster.platform.coreweave import _needs_virtual_host_addressing
75+
from iris.cluster.providers.k8s.platform import _needs_virtual_host_addressing
7676

7777
endpoint = config.platform.coreweave.object_storage_endpoint
7878
if not endpoint:

lib/iris/src/iris/cluster/config.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from google.protobuf.json_format import MessageToDict, ParseDict
2626

2727
from iris.cluster.constraints import WellKnownAttribute
28-
from iris.cluster.k8s.provider import KubernetesProvider
28+
from iris.cluster.providers.k8s.provider import KubernetesProvider
2929
from iris.cluster.controller.worker_provider import WorkerProvider
3030
from iris.cluster.types import parse_memory_string
3131
from iris.managed_thread import ThreadContainer, get_thread_container
@@ -986,7 +986,7 @@ def platform_bundle(self):
986986
PlatformBundle with both platform and lifecycle
987987
"""
988988
# Local import: platform.factory imports config.py, creating a circular dependency.
989-
from iris.cluster.platform.factory import create_platform_bundle
989+
from iris.cluster.providers.factory import create_platform_bundle
990990

991991
return create_platform_bundle(
992992
platform_config=self._proto.platform,
@@ -1136,7 +1136,7 @@ def make_provider(cluster_config: config_pb2.IrisClusterConfig) -> WorkerProvide
11361136
"""
11371137
which = cluster_config.WhichOneof("provider")
11381138
if which == "kubernetes_provider":
1139-
from iris.cluster.k8s.k8s_service import CloudK8sService
1139+
from iris.cluster.providers.k8s.service import CloudK8sService
11401140

11411141
kp = cluster_config.kubernetes_provider
11421142
namespace = kp.namespace or "iris"

lib/iris/src/iris/cluster/controller/autoscaler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from dataclasses import dataclass
2929
from enum import Enum
3030

31-
from iris.cluster.platform.base import (
31+
from iris.cluster.providers.base import (
3232
CloudSliceState,
3333
CloudWorkerState,
3434
CommandResult,

lib/iris/src/iris/cluster/controller/controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
running_tasks_by_worker,
4949
)
5050
from iris.cluster.controller.dashboard import ControllerDashboard
51-
from iris.cluster.k8s.provider import KubernetesProvider
51+
from iris.cluster.providers.k8s.provider import KubernetesProvider
5252
from iris.cluster.controller.provider import TaskProvider
5353
from iris.cluster.controller.scheduler import (
5454
JobRequirements,

lib/iris/src/iris/cluster/controller/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ def serve(
6565
from iris.cluster.controller.autoscaler import Autoscaler
6666
from iris.cluster.controller.checkpoint import download_checkpoint_to_local
6767
from iris.cluster.controller.db import ControllerDB
68-
from iris.cluster.k8s.provider import KubernetesProvider
68+
from iris.cluster.providers.k8s.provider import KubernetesProvider
6969
from iris.cluster.config import load_config, create_autoscaler, make_provider
70-
from iris.cluster.platform.factory import create_platform_bundle
70+
from iris.cluster.providers.factory import create_platform_bundle
7171

7272
configure_logging(level=getattr(logging, log_level))
7373

lib/iris/src/iris/cluster/controller/scaling_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
from collections.abc import Sequence
2020

21-
from iris.cluster.platform.base import Labels, Platform, SliceHandle
21+
from iris.cluster.providers.base import Labels, Platform, SliceHandle
2222
from iris.cluster.constraints import (
2323
AttributeValue,
2424
CONSTRAINT_REGISTRY,

lib/iris/src/iris/cluster/k8s/__init__.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

lib/iris/src/iris/cluster/local_cluster.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@
3232
)
3333
from iris.cluster.controller.worker_provider import RpcWorkerStubFactory, WorkerProvider
3434
from iris.cluster.controller.db import ControllerDB
35-
from iris.cluster.controller.vm_lifecycle import ControllerStatus
35+
from iris.cluster.providers.gcp.vm_lifecycle import ControllerStatus
3636
from iris.cluster.controller.scaling_group import (
3737
DEFAULT_SCALE_DOWN_RATE_LIMIT,
3838
DEFAULT_SCALE_UP_RATE_LIMIT,
3939
ScalingGroup,
4040
)
41-
from iris.cluster.platform.base import find_free_port
42-
from iris.cluster.platform.gcp import GcpPlatform
43-
from iris.cluster.platform.gcp_fake import InMemoryGcpService
41+
from iris.cluster.providers.base import find_free_port
42+
from iris.cluster.providers.gcp.platform import GcpPlatform
43+
from iris.cluster.providers.gcp.fake_service import InMemoryGcpService
4444
from iris.cluster.service_mode import ServiceMode
4545
from iris.cluster.worker.port_allocator import PortAllocator
4646
from iris.managed_thread import ThreadContainer

lib/iris/src/iris/cluster/platform/__init__.py

Lines changed: 0 additions & 88 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Copyright The Marin Authors
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
"""Infrastructure provider abstraction layer.
5+
6+
Re-exports the core types and protocols. Concrete implementations live in
7+
subpackages (gcp/, k8s/, local/, manual/).
8+
"""
9+
10+
from iris.cluster.providers.protocols import ControllerProvider, WorkerInfraProvider
11+
from iris.cluster.providers.types import (
12+
CloudSliceState,
13+
CloudWorkerState,
14+
CommandResult,
15+
Labels,
16+
PlatformError,
17+
PlatformUnavailableError,
18+
QuotaExhaustedError,
19+
RemoteWorkerHandle,
20+
ResourceNotFoundError,
21+
SliceHandle,
22+
SliceStatus,
23+
StandaloneWorkerHandle,
24+
WorkerStatus,
25+
default_stop_all,
26+
find_free_port,
27+
generate_slice_suffix,
28+
)
29+
30+
__all__ = [
31+
"CloudSliceState",
32+
"CloudWorkerState",
33+
"CommandResult",
34+
"ControllerProvider",
35+
"Labels",
36+
"PlatformError",
37+
"PlatformUnavailableError",
38+
"QuotaExhaustedError",
39+
"RemoteWorkerHandle",
40+
"ResourceNotFoundError",
41+
"SliceHandle",
42+
"SliceStatus",
43+
"StandaloneWorkerHandle",
44+
"WorkerInfraProvider",
45+
"WorkerStatus",
46+
"default_stop_all",
47+
"find_free_port",
48+
"generate_slice_suffix",
49+
]

0 commit comments

Comments
 (0)