Skip to content

Commit 74e38e8

Browse files
authored
feat(k8s): expose MigrateToPrivateNetworkCluster route in the sdk (#192)
1 parent 5dfd81d commit 74e38e8

File tree

6 files changed

+150
-0
lines changed

6 files changed

+150
-0
lines changed

scaleway-async/scaleway_async/k8s/v1/api.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
UpdateClusterRequest,
5252
UpgradeClusterRequest,
5353
SetClusterTypeRequest,
54+
MigrateToPrivateNetworkClusterRequest,
5455
CreatePoolRequest,
5556
UpgradePoolRequest,
5657
UpdatePoolRequest,
@@ -63,6 +64,7 @@
6364
from .marshalling import (
6465
marshal_CreateClusterRequest,
6566
marshal_CreatePoolRequest,
67+
marshal_MigrateToPrivateNetworkClusterRequest,
6668
marshal_SetClusterTypeRequest,
6769
marshal_UpdateClusterRequest,
6870
marshal_UpdatePoolRequest,
@@ -665,6 +667,51 @@ async def reset_cluster_admin_token(
665667
self._throw_on_error(res)
666668
return None
667669

670+
async def migrate_to_private_network_cluster(
671+
self,
672+
*,
673+
cluster_id: str,
674+
private_network_id: str,
675+
region: Optional[Region] = None,
676+
) -> Cluster:
677+
"""
678+
Migrate an existing cluster to a Private Network cluster.
679+
Migrate a cluster that was created before the release of Private Network clusters to a new one with a Private Network.
680+
:param region: Region to target. If none is passed will use default region from the config.
681+
:param cluster_id: ID of the cluster to migrate.
682+
:param private_network_id: ID of the Private Network to link to the cluster.
683+
:return: :class:`Cluster <Cluster>`
684+
685+
Usage:
686+
::
687+
688+
result = await api.migrate_to_private_network_cluster(
689+
cluster_id="example",
690+
private_network_id="example",
691+
)
692+
"""
693+
694+
param_region = validate_path_param(
695+
"region", region or self.client.default_region
696+
)
697+
param_cluster_id = validate_path_param("cluster_id", cluster_id)
698+
699+
res = self._request(
700+
"POST",
701+
f"/k8s/v1/regions/{param_region}/clusters/{param_cluster_id}/migrate-to-private-network",
702+
body=marshal_MigrateToPrivateNetworkClusterRequest(
703+
MigrateToPrivateNetworkClusterRequest(
704+
cluster_id=cluster_id,
705+
private_network_id=private_network_id,
706+
region=region,
707+
),
708+
self.client,
709+
),
710+
)
711+
712+
self._throw_on_error(res)
713+
return unmarshal_Cluster(res.json())
714+
668715
async def list_pools(
669716
self,
670717
*,

scaleway-async/scaleway_async/k8s/v1/marshalling.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
UpdateClusterRequest,
4747
UpgradeClusterRequest,
4848
SetClusterTypeRequest,
49+
MigrateToPrivateNetworkClusterRequest,
4950
CreatePoolRequest,
5051
UpgradePoolRequest,
5152
UpdatePoolRequest,
@@ -799,6 +800,15 @@ def marshal_CreatePoolRequest(
799800
}
800801

801802

803+
def marshal_MigrateToPrivateNetworkClusterRequest(
804+
request: MigrateToPrivateNetworkClusterRequest,
805+
defaults: ProfileDefaults,
806+
) -> Dict[str, Any]:
807+
return {
808+
"private_network_id": request.private_network_id,
809+
}
810+
811+
802812
def marshal_SetClusterTypeRequest(
803813
request: SetClusterTypeRequest,
804814
defaults: ProfileDefaults,

scaleway-async/scaleway_async/k8s/v1/types.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,6 +1454,24 @@ class ResetClusterAdminTokenRequest:
14541454
"""
14551455

14561456

1457+
@dataclass
1458+
class MigrateToPrivateNetworkClusterRequest:
1459+
region: Optional[Region]
1460+
"""
1461+
Region to target. If none is passed will use default region from the config.
1462+
"""
1463+
1464+
cluster_id: str
1465+
"""
1466+
ID of the cluster to migrate.
1467+
"""
1468+
1469+
private_network_id: str
1470+
"""
1471+
ID of the Private Network to link to the cluster.
1472+
"""
1473+
1474+
14571475
@dataclass
14581476
class ListPoolsRequest:
14591477
region: Optional[Region]

scaleway/scaleway/k8s/v1/api.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
UpdateClusterRequest,
5252
UpgradeClusterRequest,
5353
SetClusterTypeRequest,
54+
MigrateToPrivateNetworkClusterRequest,
5455
CreatePoolRequest,
5556
UpgradePoolRequest,
5657
UpdatePoolRequest,
@@ -63,6 +64,7 @@
6364
from .marshalling import (
6465
marshal_CreateClusterRequest,
6566
marshal_CreatePoolRequest,
67+
marshal_MigrateToPrivateNetworkClusterRequest,
6668
marshal_SetClusterTypeRequest,
6769
marshal_UpdateClusterRequest,
6870
marshal_UpdatePoolRequest,
@@ -665,6 +667,51 @@ def reset_cluster_admin_token(
665667
self._throw_on_error(res)
666668
return None
667669

670+
def migrate_to_private_network_cluster(
671+
self,
672+
*,
673+
cluster_id: str,
674+
private_network_id: str,
675+
region: Optional[Region] = None,
676+
) -> Cluster:
677+
"""
678+
Migrate an existing cluster to a Private Network cluster.
679+
Migrate a cluster that was created before the release of Private Network clusters to a new one with a Private Network.
680+
:param region: Region to target. If none is passed will use default region from the config.
681+
:param cluster_id: ID of the cluster to migrate.
682+
:param private_network_id: ID of the Private Network to link to the cluster.
683+
:return: :class:`Cluster <Cluster>`
684+
685+
Usage:
686+
::
687+
688+
result = api.migrate_to_private_network_cluster(
689+
cluster_id="example",
690+
private_network_id="example",
691+
)
692+
"""
693+
694+
param_region = validate_path_param(
695+
"region", region or self.client.default_region
696+
)
697+
param_cluster_id = validate_path_param("cluster_id", cluster_id)
698+
699+
res = self._request(
700+
"POST",
701+
f"/k8s/v1/regions/{param_region}/clusters/{param_cluster_id}/migrate-to-private-network",
702+
body=marshal_MigrateToPrivateNetworkClusterRequest(
703+
MigrateToPrivateNetworkClusterRequest(
704+
cluster_id=cluster_id,
705+
private_network_id=private_network_id,
706+
region=region,
707+
),
708+
self.client,
709+
),
710+
)
711+
712+
self._throw_on_error(res)
713+
return unmarshal_Cluster(res.json())
714+
668715
def list_pools(
669716
self,
670717
*,

scaleway/scaleway/k8s/v1/marshalling.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
UpdateClusterRequest,
4747
UpgradeClusterRequest,
4848
SetClusterTypeRequest,
49+
MigrateToPrivateNetworkClusterRequest,
4950
CreatePoolRequest,
5051
UpgradePoolRequest,
5152
UpdatePoolRequest,
@@ -799,6 +800,15 @@ def marshal_CreatePoolRequest(
799800
}
800801

801802

803+
def marshal_MigrateToPrivateNetworkClusterRequest(
804+
request: MigrateToPrivateNetworkClusterRequest,
805+
defaults: ProfileDefaults,
806+
) -> Dict[str, Any]:
807+
return {
808+
"private_network_id": request.private_network_id,
809+
}
810+
811+
802812
def marshal_SetClusterTypeRequest(
803813
request: SetClusterTypeRequest,
804814
defaults: ProfileDefaults,

scaleway/scaleway/k8s/v1/types.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,6 +1454,24 @@ class ResetClusterAdminTokenRequest:
14541454
"""
14551455

14561456

1457+
@dataclass
1458+
class MigrateToPrivateNetworkClusterRequest:
1459+
region: Optional[Region]
1460+
"""
1461+
Region to target. If none is passed will use default region from the config.
1462+
"""
1463+
1464+
cluster_id: str
1465+
"""
1466+
ID of the cluster to migrate.
1467+
"""
1468+
1469+
private_network_id: str
1470+
"""
1471+
ID of the Private Network to link to the cluster.
1472+
"""
1473+
1474+
14571475
@dataclass
14581476
class ListPoolsRequest:
14591477
region: Optional[Region]

0 commit comments

Comments
 (0)