Skip to content

Commit cee9863

Browse files
authored
feat(k8s): use structs for node taints (#408)
1 parent 9a3b6d7 commit cee9863

File tree

6 files changed

+82
-0
lines changed

6 files changed

+82
-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
@@ -27,6 +27,7 @@
2727
from .types import CreateClusterRequestPoolConfigUpgradePolicy
2828
from .types import CreatePoolRequestUpgradePolicy
2929
from .types import ExternalNode
30+
from .types import ExternalNodeCoreV1Taint
3031
from .types import ListClusterAvailableTypesResponse
3132
from .types import ListClusterAvailableVersionsResponse
3233
from .types import ListClusterTypesResponse
@@ -76,6 +77,7 @@
7677
"CreateClusterRequestPoolConfigUpgradePolicy",
7778
"CreatePoolRequestUpgradePolicy",
7879
"ExternalNode",
80+
"ExternalNodeCoreV1Taint",
7981
"ListClusterAvailableTypesResponse",
8082
"ListClusterAvailableVersionsResponse",
8183
"ListClusterTypesResponse",

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
CreateClusterRequestPoolConfigUpgradePolicy,
3030
CreatePoolRequestUpgradePolicy,
3131
ExternalNode,
32+
ExternalNodeCoreV1Taint,
3233
ListClusterAvailableTypesResponse,
3334
ListClusterAvailableVersionsResponse,
3435
ListClusterTypesResponse,
@@ -312,6 +313,26 @@ def unmarshal_ClusterType(data: Any) -> ClusterType:
312313
return ClusterType(**args)
313314

314315

316+
def unmarshal_ExternalNodeCoreV1Taint(data: Any) -> ExternalNodeCoreV1Taint:
317+
if type(data) is not dict:
318+
raise TypeError(
319+
f"Unmarshalling the type 'ExternalNodeCoreV1Taint' failed as data isn't a dictionary."
320+
)
321+
322+
args: Dict[str, Any] = {}
323+
324+
field = data.get("effect", None)
325+
args["effect"] = field
326+
327+
field = data.get("key", None)
328+
args["key"] = field
329+
330+
field = data.get("value", None)
331+
args["value"] = field
332+
333+
return ExternalNodeCoreV1Taint(**args)
334+
335+
315336
def unmarshal_Node(data: Any) -> Node:
316337
if type(data) is not dict:
317338
raise TypeError(
@@ -520,6 +541,13 @@ def unmarshal_ExternalNode(data: Any) -> ExternalNode:
520541
field = data.get("node_labels", None)
521542
args["node_labels"] = field
522543

544+
field = data.get("node_taints", None)
545+
args["node_taints"] = (
546+
[unmarshal_ExternalNodeCoreV1Taint(v) for v in field]
547+
if field is not None
548+
else None
549+
)
550+
523551
field = data.get("pool_version", None)
524552
args["pool_version"] = field
525553

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,17 @@ class ExternalNode:
751751

752752
node_labels: Dict[str, str]
753753

754+
node_taints: List[ExternalNodeCoreV1Taint]
755+
756+
757+
@dataclass
758+
class ExternalNodeCoreV1Taint:
759+
key: str
760+
761+
value: str
762+
763+
effect: str
764+
754765

755766
@dataclass
756767
class ListClusterAvailableTypesResponse:

scaleway/scaleway/k8s/v1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from .types import CreateClusterRequestPoolConfigUpgradePolicy
2828
from .types import CreatePoolRequestUpgradePolicy
2929
from .types import ExternalNode
30+
from .types import ExternalNodeCoreV1Taint
3031
from .types import ListClusterAvailableTypesResponse
3132
from .types import ListClusterAvailableVersionsResponse
3233
from .types import ListClusterTypesResponse
@@ -76,6 +77,7 @@
7677
"CreateClusterRequestPoolConfigUpgradePolicy",
7778
"CreatePoolRequestUpgradePolicy",
7879
"ExternalNode",
80+
"ExternalNodeCoreV1Taint",
7981
"ListClusterAvailableTypesResponse",
8082
"ListClusterAvailableVersionsResponse",
8183
"ListClusterTypesResponse",

scaleway/scaleway/k8s/v1/marshalling.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
CreateClusterRequestPoolConfigUpgradePolicy,
3030
CreatePoolRequestUpgradePolicy,
3131
ExternalNode,
32+
ExternalNodeCoreV1Taint,
3233
ListClusterAvailableTypesResponse,
3334
ListClusterAvailableVersionsResponse,
3435
ListClusterTypesResponse,
@@ -312,6 +313,26 @@ def unmarshal_ClusterType(data: Any) -> ClusterType:
312313
return ClusterType(**args)
313314

314315

316+
def unmarshal_ExternalNodeCoreV1Taint(data: Any) -> ExternalNodeCoreV1Taint:
317+
if type(data) is not dict:
318+
raise TypeError(
319+
f"Unmarshalling the type 'ExternalNodeCoreV1Taint' failed as data isn't a dictionary."
320+
)
321+
322+
args: Dict[str, Any] = {}
323+
324+
field = data.get("effect", None)
325+
args["effect"] = field
326+
327+
field = data.get("key", None)
328+
args["key"] = field
329+
330+
field = data.get("value", None)
331+
args["value"] = field
332+
333+
return ExternalNodeCoreV1Taint(**args)
334+
335+
315336
def unmarshal_Node(data: Any) -> Node:
316337
if type(data) is not dict:
317338
raise TypeError(
@@ -520,6 +541,13 @@ def unmarshal_ExternalNode(data: Any) -> ExternalNode:
520541
field = data.get("node_labels", None)
521542
args["node_labels"] = field
522543

544+
field = data.get("node_taints", None)
545+
args["node_taints"] = (
546+
[unmarshal_ExternalNodeCoreV1Taint(v) for v in field]
547+
if field is not None
548+
else None
549+
)
550+
523551
field = data.get("pool_version", None)
524552
args["pool_version"] = field
525553

scaleway/scaleway/k8s/v1/types.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,17 @@ class ExternalNode:
751751

752752
node_labels: Dict[str, str]
753753

754+
node_taints: List[ExternalNodeCoreV1Taint]
755+
756+
757+
@dataclass
758+
class ExternalNodeCoreV1Taint:
759+
key: str
760+
761+
value: str
762+
763+
effect: str
764+
754765

755766
@dataclass
756767
class ListClusterAvailableTypesResponse:

0 commit comments

Comments
 (0)