Skip to content

Commit 38ad36a

Browse files
authored
Merge branch 'main' into feat/add-group-and-projects-to-resource-pool-authz
2 parents 27f92d6 + 5f1ef46 commit 38ad36a

2 files changed

Lines changed: 81 additions & 16 deletions

File tree

components/renku_data_services/crc/api.spec.yaml

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1113,8 +1113,26 @@ components:
11131113
$ref: "#/components/schemas/NodeAffinityList"
11141114
ResourceClass:
11151115
type: object
1116-
allOf:
1117-
- $ref: "#/components/schemas/ResourceClassProperties"
1116+
additionalProperties: false
1117+
properties:
1118+
name:
1119+
$ref: "#/components/schemas/Name"
1120+
default:
1121+
$ref: "#/components/schemas/DefaultFlag"
1122+
cpu:
1123+
$ref: "#/components/schemas/Cpu"
1124+
memory:
1125+
$ref: "#/components/schemas/Memory"
1126+
gpu:
1127+
$ref: "#/components/schemas/Gpu"
1128+
max_storage:
1129+
$ref: "#/components/schemas/Storage"
1130+
default_storage:
1131+
$ref: "#/components/schemas/Storage"
1132+
tolerations:
1133+
$ref: "#/components/schemas/K8sLabelList"
1134+
node_affinities:
1135+
$ref: "#/components/schemas/NodeAffinityList"
11181136
required:
11191137
- name
11201138
- default
@@ -1150,12 +1168,29 @@ components:
11501168
id: 1
11511169
max_storage: 50
11521170
ResourceClassWithId:
1153-
allOf:
1154-
- $ref: "#/components/schemas/ResourceClassProperties"
1155-
- type: object
1156-
properties:
1157-
id:
1158-
$ref: "#/components/schemas/IntegerId"
1171+
type: object
1172+
additionalProperties: false
1173+
properties:
1174+
name:
1175+
$ref: "#/components/schemas/Name"
1176+
default:
1177+
$ref: "#/components/schemas/DefaultFlag"
1178+
cpu:
1179+
$ref: "#/components/schemas/Cpu"
1180+
memory:
1181+
$ref: "#/components/schemas/Memory"
1182+
gpu:
1183+
$ref: "#/components/schemas/Gpu"
1184+
max_storage:
1185+
$ref: "#/components/schemas/Storage"
1186+
default_storage:
1187+
$ref: "#/components/schemas/Storage"
1188+
tolerations:
1189+
$ref: "#/components/schemas/K8sLabelList"
1190+
node_affinities:
1191+
$ref: "#/components/schemas/NodeAffinityList"
1192+
id:
1193+
$ref: "#/components/schemas/IntegerId"
11591194
required:
11601195
- name
11611196
- default

components/renku_data_services/crc/apispec.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# generated by datamodel-codegen:
22
# filename: api.spec.yaml
3-
# timestamp: 2026-05-06T19:50:28+00:00
3+
# timestamp: 2026-05-08T11:37:11+00:00
44

55
from __future__ import annotations
66

@@ -544,7 +544,10 @@ class ResourceClassProperties(BaseAPISpec):
544544
)
545545

546546

547-
class ResourceClass(ResourceClassProperties):
547+
class ResourceClass(BaseAPISpec):
548+
model_config = ConfigDict(
549+
extra="forbid",
550+
)
548551
name: str = Field(
549552
...,
550553
description="A name for a specific resource",
@@ -581,6 +584,18 @@ class ResourceClass(ResourceClassProperties):
581584
gt=0,
582585
le=9223372036854775807,
583586
)
587+
tolerations: Optional[List[K8sLabel]] = Field(
588+
None,
589+
description="A list of k8s labels used for tolerations",
590+
examples=[["test-label-1"]],
591+
min_length=0,
592+
)
593+
node_affinities: Optional[List[NodeAffinity]] = Field(
594+
None,
595+
description="A list of k8s labels used for tolerations and/or node affinity",
596+
examples=[[{"key": "test-label-1", "required_during_scheduling": False}]],
597+
min_length=0,
598+
)
584599

585600

586601
class ResourceClassPatch(ResourceClassProperties):
@@ -596,12 +611,9 @@ class ResourceClassPatchWithId(ResourceClassProperties):
596611
)
597612

598613

599-
class ResourceClassWithId(ResourceClassProperties):
600-
id: int = Field(
601-
...,
602-
description="An integer ID used to identify different resources",
603-
examples=[1],
604-
ge=0,
614+
class ResourceClassWithId(BaseAPISpec):
615+
model_config = ConfigDict(
616+
extra="forbid",
605617
)
606618
name: str = Field(
607619
...,
@@ -639,6 +651,24 @@ class ResourceClassWithId(ResourceClassProperties):
639651
gt=0,
640652
le=9223372036854775807,
641653
)
654+
tolerations: Optional[List[K8sLabel]] = Field(
655+
None,
656+
description="A list of k8s labels used for tolerations",
657+
examples=[["test-label-1"]],
658+
min_length=0,
659+
)
660+
node_affinities: Optional[List[NodeAffinity]] = Field(
661+
None,
662+
description="A list of k8s labels used for tolerations and/or node affinity",
663+
examples=[[{"key": "test-label-1", "required_during_scheduling": False}]],
664+
min_length=0,
665+
)
666+
id: int = Field(
667+
...,
668+
description="An integer ID used to identify different resources",
669+
examples=[1],
670+
ge=0,
671+
)
642672

643673

644674
class ResourceClassWithIdFiltered(ResourceClassWithId):

0 commit comments

Comments
 (0)