Skip to content

Commit a792bda

Browse files
authored
chore(k8s): add MigratePoolsToNewImagesRequest (#1490)
1 parent a0fa075 commit a792bda

File tree

8 files changed

+184
-0
lines changed

8 files changed

+184
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
from .types import ListPoolsResponse
7676
from .types import ListVersionsRequest
7777
from .types import ListVersionsResponse
78+
from .types import MigratePoolsToNewImagesRequest
7879
from .types import NodeMetadata
7980
from .types import RebootNodeRequest
8081
from .types import ReplaceNodeRequest
@@ -164,6 +165,7 @@
164165
"ListPoolsResponse",
165166
"ListVersionsRequest",
166167
"ListVersionsResponse",
168+
"MigratePoolsToNewImagesRequest",
167169
"NodeMetadata",
168170
"RebootNodeRequest",
169171
"ReplaceNodeRequest",

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

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
ListNodesResponse,
5151
ListPoolsResponse,
5252
ListVersionsResponse,
53+
MigratePoolsToNewImagesRequest,
5354
Node,
5455
NodeMetadata,
5556
Pool,
@@ -92,6 +93,7 @@
9293
marshal_AddClusterACLRulesRequest,
9394
marshal_CreateClusterRequest,
9495
marshal_CreatePoolRequest,
96+
marshal_MigratePoolsToNewImagesRequest,
9597
marshal_SetClusterACLRulesRequest,
9698
marshal_SetClusterTypeRequest,
9799
marshal_UpdateClusterRequest,
@@ -1346,6 +1348,48 @@ async def delete_pool(
13461348
self._throw_on_error(res)
13471349
return unmarshal_Pool(res.json())
13481350

1351+
async def migrate_pools_to_new_images(
1352+
self,
1353+
*,
1354+
cluster_id: str,
1355+
region: Optional[ScwRegion] = None,
1356+
pool_ids: Optional[list[str]] = None,
1357+
) -> None:
1358+
"""
1359+
Migrate specific pools or all pools of a cluster to new images.
1360+
If no pool is specified, all pools of the cluster will be migrated to new images.
1361+
:param cluster_id:
1362+
:param region: Region to target. If none is passed will use default region from the config.
1363+
:param pool_ids:
1364+
1365+
Usage:
1366+
::
1367+
1368+
result = await api.migrate_pools_to_new_images(
1369+
cluster_id="example",
1370+
)
1371+
"""
1372+
1373+
param_region = validate_path_param(
1374+
"region", region or self.client.default_region
1375+
)
1376+
param_cluster_id = validate_path_param("cluster_id", cluster_id)
1377+
1378+
res = self._request(
1379+
"POST",
1380+
f"/k8s/v1/regions/{param_region}/clusters/{param_cluster_id}/migrate-pools-to-new-images",
1381+
body=marshal_MigratePoolsToNewImagesRequest(
1382+
MigratePoolsToNewImagesRequest(
1383+
cluster_id=cluster_id,
1384+
region=region,
1385+
pool_ids=pool_ids,
1386+
),
1387+
self.client,
1388+
),
1389+
)
1390+
1391+
self._throw_on_error(res)
1392+
13491393
async def get_node_metadata(
13501394
self,
13511395
*,

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

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
CreateClusterRequest,
5858
CreatePoolRequestUpgradePolicy,
5959
CreatePoolRequest,
60+
MigratePoolsToNewImagesRequest,
6061
SetClusterACLRulesRequest,
6162
SetClusterTypeRequest,
6263
UpdateClusterRequestAutoUpgrade,
@@ -509,6 +510,12 @@ def unmarshal_Cluster(data: Any) -> Cluster:
509510
else:
510511
args["acl_available"] = False
511512

513+
field = data.get("new_images_enabled", None)
514+
if field is not None:
515+
args["new_images_enabled"] = field
516+
else:
517+
args["new_images_enabled"] = False
518+
512519
return Cluster(**args)
513520

514521

@@ -776,6 +783,12 @@ def unmarshal_Pool(data: Any) -> Pool:
776783
else:
777784
args["root_volume_size"] = 0
778785

786+
field = data.get("new_images_enabled", None)
787+
if field is not None:
788+
args["new_images_enabled"] = field
789+
else:
790+
args["new_images_enabled"] = False
791+
779792
return Pool(**args)
780793

781794

@@ -1818,6 +1831,18 @@ def marshal_CreatePoolRequest(
18181831
return output
18191832

18201833

1834+
def marshal_MigratePoolsToNewImagesRequest(
1835+
request: MigratePoolsToNewImagesRequest,
1836+
defaults: ProfileDefaults,
1837+
) -> dict[str, Any]:
1838+
output: dict[str, Any] = {}
1839+
1840+
if request.pool_ids is not None:
1841+
output["pool_ids"] = request.pool_ids
1842+
1843+
return output
1844+
1845+
18211846
def marshal_SetClusterACLRulesRequest(
18221847
request: SetClusterACLRulesRequest,
18231848
defaults: ProfileDefaults,

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,11 @@ class Cluster:
828828
Defines whether ACL is available on the cluster.
829829
"""
830830

831+
new_images_enabled: Optional[bool] = False
832+
"""
833+
Defines whether all pools are migrated to new images.
834+
"""
835+
831836

832837
@dataclass
833838
class Node:
@@ -1022,6 +1027,11 @@ class Pool:
10221027
System volume disk size.
10231028
"""
10241029

1030+
new_images_enabled: Optional[bool] = False
1031+
"""
1032+
Defines whether the pool is migrated to new images.
1033+
"""
1034+
10251035

10261036
@dataclass
10271037
class NodeMetadataCoreV1Taint:
@@ -1860,6 +1870,17 @@ class ListVersionsResponse:
18601870
"""
18611871

18621872

1873+
@dataclass
1874+
class MigratePoolsToNewImagesRequest:
1875+
cluster_id: str
1876+
region: Optional[ScwRegion] = None
1877+
"""
1878+
Region to target. If none is passed will use default region from the config.
1879+
"""
1880+
1881+
pool_ids: Optional[list[str]] = field(default_factory=list)
1882+
1883+
18631884
@dataclass
18641885
class NodeMetadata:
18651886
id: str

scaleway/scaleway/k8s/v1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
from .types import ListPoolsResponse
7676
from .types import ListVersionsRequest
7777
from .types import ListVersionsResponse
78+
from .types import MigratePoolsToNewImagesRequest
7879
from .types import NodeMetadata
7980
from .types import RebootNodeRequest
8081
from .types import ReplaceNodeRequest
@@ -164,6 +165,7 @@
164165
"ListPoolsResponse",
165166
"ListVersionsRequest",
166167
"ListVersionsResponse",
168+
"MigratePoolsToNewImagesRequest",
167169
"NodeMetadata",
168170
"RebootNodeRequest",
169171
"ReplaceNodeRequest",

scaleway/scaleway/k8s/v1/api.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
ListNodesResponse,
5151
ListPoolsResponse,
5252
ListVersionsResponse,
53+
MigratePoolsToNewImagesRequest,
5354
Node,
5455
NodeMetadata,
5556
Pool,
@@ -92,6 +93,7 @@
9293
marshal_AddClusterACLRulesRequest,
9394
marshal_CreateClusterRequest,
9495
marshal_CreatePoolRequest,
96+
marshal_MigratePoolsToNewImagesRequest,
9597
marshal_SetClusterACLRulesRequest,
9698
marshal_SetClusterTypeRequest,
9799
marshal_UpdateClusterRequest,
@@ -1346,6 +1348,48 @@ def delete_pool(
13461348
self._throw_on_error(res)
13471349
return unmarshal_Pool(res.json())
13481350

1351+
def migrate_pools_to_new_images(
1352+
self,
1353+
*,
1354+
cluster_id: str,
1355+
region: Optional[ScwRegion] = None,
1356+
pool_ids: Optional[list[str]] = None,
1357+
) -> None:
1358+
"""
1359+
Migrate specific pools or all pools of a cluster to new images.
1360+
If no pool is specified, all pools of the cluster will be migrated to new images.
1361+
:param cluster_id:
1362+
:param region: Region to target. If none is passed will use default region from the config.
1363+
:param pool_ids:
1364+
1365+
Usage:
1366+
::
1367+
1368+
result = api.migrate_pools_to_new_images(
1369+
cluster_id="example",
1370+
)
1371+
"""
1372+
1373+
param_region = validate_path_param(
1374+
"region", region or self.client.default_region
1375+
)
1376+
param_cluster_id = validate_path_param("cluster_id", cluster_id)
1377+
1378+
res = self._request(
1379+
"POST",
1380+
f"/k8s/v1/regions/{param_region}/clusters/{param_cluster_id}/migrate-pools-to-new-images",
1381+
body=marshal_MigratePoolsToNewImagesRequest(
1382+
MigratePoolsToNewImagesRequest(
1383+
cluster_id=cluster_id,
1384+
region=region,
1385+
pool_ids=pool_ids,
1386+
),
1387+
self.client,
1388+
),
1389+
)
1390+
1391+
self._throw_on_error(res)
1392+
13491393
def get_node_metadata(
13501394
self,
13511395
*,

scaleway/scaleway/k8s/v1/marshalling.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
CreateClusterRequest,
5858
CreatePoolRequestUpgradePolicy,
5959
CreatePoolRequest,
60+
MigratePoolsToNewImagesRequest,
6061
SetClusterACLRulesRequest,
6162
SetClusterTypeRequest,
6263
UpdateClusterRequestAutoUpgrade,
@@ -509,6 +510,12 @@ def unmarshal_Cluster(data: Any) -> Cluster:
509510
else:
510511
args["acl_available"] = False
511512

513+
field = data.get("new_images_enabled", None)
514+
if field is not None:
515+
args["new_images_enabled"] = field
516+
else:
517+
args["new_images_enabled"] = False
518+
512519
return Cluster(**args)
513520

514521

@@ -776,6 +783,12 @@ def unmarshal_Pool(data: Any) -> Pool:
776783
else:
777784
args["root_volume_size"] = 0
778785

786+
field = data.get("new_images_enabled", None)
787+
if field is not None:
788+
args["new_images_enabled"] = field
789+
else:
790+
args["new_images_enabled"] = False
791+
779792
return Pool(**args)
780793

781794

@@ -1818,6 +1831,18 @@ def marshal_CreatePoolRequest(
18181831
return output
18191832

18201833

1834+
def marshal_MigratePoolsToNewImagesRequest(
1835+
request: MigratePoolsToNewImagesRequest,
1836+
defaults: ProfileDefaults,
1837+
) -> dict[str, Any]:
1838+
output: dict[str, Any] = {}
1839+
1840+
if request.pool_ids is not None:
1841+
output["pool_ids"] = request.pool_ids
1842+
1843+
return output
1844+
1845+
18211846
def marshal_SetClusterACLRulesRequest(
18221847
request: SetClusterACLRulesRequest,
18231848
defaults: ProfileDefaults,

scaleway/scaleway/k8s/v1/types.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -828,6 +828,11 @@ class Cluster:
828828
Defines whether ACL is available on the cluster.
829829
"""
830830

831+
new_images_enabled: Optional[bool] = False
832+
"""
833+
Defines whether all pools are migrated to new images.
834+
"""
835+
831836

832837
@dataclass
833838
class Node:
@@ -1022,6 +1027,11 @@ class Pool:
10221027
System volume disk size.
10231028
"""
10241029

1030+
new_images_enabled: Optional[bool] = False
1031+
"""
1032+
Defines whether the pool is migrated to new images.
1033+
"""
1034+
10251035

10261036
@dataclass
10271037
class NodeMetadataCoreV1Taint:
@@ -1860,6 +1870,17 @@ class ListVersionsResponse:
18601870
"""
18611871

18621872

1873+
@dataclass
1874+
class MigratePoolsToNewImagesRequest:
1875+
cluster_id: str
1876+
region: Optional[ScwRegion] = None
1877+
"""
1878+
Region to target. If none is passed will use default region from the config.
1879+
"""
1880+
1881+
pool_ids: Optional[list[str]] = field(default_factory=list)
1882+
1883+
18631884
@dataclass
18641885
class NodeMetadata:
18651886
id: str

0 commit comments

Comments
 (0)