pulumi-kubernetes 4.19.0a1733937243__py3-none-any.whl → 4.19.0a1733970382__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pulumi-kubernetes might be problematic. Click here for more details.
- pulumi_kubernetes/__init__.py +36 -0
- pulumi_kubernetes/admissionregistration/v1/_inputs.py +6 -6
- pulumi_kubernetes/admissionregistration/v1/outputs.py +4 -4
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicy.py +214 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBinding.py +222 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingList.py +215 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyBindingPatch.py +234 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyList.py +215 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/MutatingAdmissionPolicyPatch.py +226 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBinding.py +0 -8
- pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingPatch.py +0 -8
- pulumi_kubernetes/admissionregistration/v1alpha1/__init__.py +6 -0
- pulumi_kubernetes/admissionregistration/v1alpha1/_inputs.py +1818 -315
- pulumi_kubernetes/admissionregistration/v1alpha1/outputs.py +1365 -246
- pulumi_kubernetes/admissionregistration/v1beta1/_inputs.py +6 -6
- pulumi_kubernetes/admissionregistration/v1beta1/outputs.py +4 -4
- pulumi_kubernetes/apiextensions/v1/_inputs.py +6 -6
- pulumi_kubernetes/apiextensions/v1/outputs.py +4 -4
- pulumi_kubernetes/apps/v1/_inputs.py +6 -6
- pulumi_kubernetes/apps/v1/outputs.py +4 -4
- pulumi_kubernetes/autoscaling/v2/_inputs.py +15 -15
- pulumi_kubernetes/autoscaling/v2/outputs.py +12 -12
- pulumi_kubernetes/batch/v1/_inputs.py +6 -6
- pulumi_kubernetes/batch/v1/outputs.py +4 -4
- pulumi_kubernetes/coordination/__init__.py +3 -0
- pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py +2 -0
- pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py +2 -0
- pulumi_kubernetes/coordination/v1alpha2/LeaseCandidate.py +216 -0
- pulumi_kubernetes/coordination/v1alpha2/LeaseCandidateList.py +215 -0
- pulumi_kubernetes/coordination/v1alpha2/LeaseCandidatePatch.py +228 -0
- pulumi_kubernetes/coordination/v1alpha2/__init__.py +12 -0
- pulumi_kubernetes/coordination/v1alpha2/_inputs.py +393 -0
- pulumi_kubernetes/coordination/v1alpha2/outputs.py +313 -0
- pulumi_kubernetes/core/v1/Binding.py +2 -2
- pulumi_kubernetes/core/v1/BindingPatch.py +2 -2
- pulumi_kubernetes/core/v1/ServiceAccount.py +4 -4
- pulumi_kubernetes/core/v1/ServiceAccountPatch.py +4 -4
- pulumi_kubernetes/core/v1/_inputs.py +564 -313
- pulumi_kubernetes/core/v1/outputs.py +418 -230
- pulumi_kubernetes/flowcontrol/v1beta3/_inputs.py +12 -12
- pulumi_kubernetes/flowcontrol/v1beta3/outputs.py +8 -8
- pulumi_kubernetes/pulumi-plugin.json +1 -1
- pulumi_kubernetes/resource/__init__.py +3 -0
- pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py +1 -1
- pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py +1 -1
- pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py +1 -1
- pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/DeviceClass.py +2 -0
- pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py +2 -0
- pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py +8 -8
- pulumi_kubernetes/resource/v1alpha3/ResourceSliceList.py +245 -0
- pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py +1 -1
- pulumi_kubernetes/resource/v1alpha3/__init__.py +1 -0
- pulumi_kubernetes/resource/v1alpha3/_inputs.py +455 -7
- pulumi_kubernetes/resource/v1alpha3/outputs.py +592 -5
- pulumi_kubernetes/resource/v1beta1/DeviceClass.py +237 -0
- pulumi_kubernetes/resource/v1beta1/DeviceClassList.py +215 -0
- pulumi_kubernetes/resource/v1beta1/DeviceClassPatch.py +248 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaim.py +232 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaimList.py +216 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaimPatch.py +243 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplate.py +229 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplateList.py +215 -0
- pulumi_kubernetes/resource/v1beta1/ResourceClaimTemplatePatch.py +240 -0
- pulumi_kubernetes/resource/v1beta1/ResourceSlice.py +246 -0
- pulumi_kubernetes/resource/v1beta1/ResourceSliceList.py +216 -0
- pulumi_kubernetes/resource/v1beta1/ResourceSlicePatch.py +257 -0
- pulumi_kubernetes/resource/v1beta1/__init__.py +21 -0
- pulumi_kubernetes/resource/v1beta1/_inputs.py +3867 -0
- pulumi_kubernetes/resource/v1beta1/outputs.py +3334 -0
- pulumi_kubernetes/storage/v1/_inputs.py +4 -4
- pulumi_kubernetes/storage/v1/outputs.py +4 -4
- pulumi_kubernetes/yaml/yaml.py +90 -0
- {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/METADATA +1 -1
- {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/RECORD +87 -59
- {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/WHEEL +0 -0
- {pulumi_kubernetes-4.19.0a1733937243.dist-info → pulumi_kubernetes-4.19.0a1733970382.dist-info}/top_level.txt +0 -0
|
@@ -18,6 +18,8 @@ from ... import core as _core
|
|
|
18
18
|
from ... import meta as _meta
|
|
19
19
|
|
|
20
20
|
__all__ = [
|
|
21
|
+
'AllocatedDeviceStatus',
|
|
22
|
+
'AllocatedDeviceStatusPatch',
|
|
21
23
|
'AllocationResult',
|
|
22
24
|
'AllocationResultPatch',
|
|
23
25
|
'BasicDevice',
|
|
@@ -48,6 +50,8 @@ __all__ = [
|
|
|
48
50
|
'DeviceRequestPatch',
|
|
49
51
|
'DeviceSelector',
|
|
50
52
|
'DeviceSelectorPatch',
|
|
53
|
+
'NetworkDeviceData',
|
|
54
|
+
'NetworkDeviceDataPatch',
|
|
51
55
|
'OpaqueDeviceConfiguration',
|
|
52
56
|
'OpaqueDeviceConfigurationPatch',
|
|
53
57
|
'PodSchedulingContext',
|
|
@@ -69,10 +73,232 @@ __all__ = [
|
|
|
69
73
|
'ResourceClaimTemplateSpecPatch',
|
|
70
74
|
'ResourcePool',
|
|
71
75
|
'ResourcePoolPatch',
|
|
76
|
+
'ResourceSlice',
|
|
72
77
|
'ResourceSliceSpec',
|
|
73
78
|
'ResourceSliceSpecPatch',
|
|
74
79
|
]
|
|
75
80
|
|
|
81
|
+
@pulumi.output_type
|
|
82
|
+
class AllocatedDeviceStatus(dict):
|
|
83
|
+
"""
|
|
84
|
+
AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
|
|
85
|
+
"""
|
|
86
|
+
@staticmethod
|
|
87
|
+
def __key_warning(key: str):
|
|
88
|
+
suggest = None
|
|
89
|
+
if key == "networkData":
|
|
90
|
+
suggest = "network_data"
|
|
91
|
+
|
|
92
|
+
if suggest:
|
|
93
|
+
pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatus. Access the value via the '{suggest}' property getter instead.")
|
|
94
|
+
|
|
95
|
+
def __getitem__(self, key: str) -> Any:
|
|
96
|
+
AllocatedDeviceStatus.__key_warning(key)
|
|
97
|
+
return super().__getitem__(key)
|
|
98
|
+
|
|
99
|
+
def get(self, key: str, default = None) -> Any:
|
|
100
|
+
AllocatedDeviceStatus.__key_warning(key)
|
|
101
|
+
return super().get(key, default)
|
|
102
|
+
|
|
103
|
+
def __init__(__self__, *,
|
|
104
|
+
device: str,
|
|
105
|
+
driver: str,
|
|
106
|
+
pool: str,
|
|
107
|
+
conditions: Optional[Sequence['_meta.v1.outputs.Condition']] = None,
|
|
108
|
+
data: Optional[Any] = None,
|
|
109
|
+
network_data: Optional['outputs.NetworkDeviceData'] = None):
|
|
110
|
+
"""
|
|
111
|
+
AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
|
|
112
|
+
:param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
113
|
+
:param str driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
|
|
114
|
+
|
|
115
|
+
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
116
|
+
:param str pool: This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
|
|
117
|
+
|
|
118
|
+
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
119
|
+
:param Sequence['_meta.v1.ConditionArgs'] conditions: Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
|
|
120
|
+
:param Any data: Data contains arbitrary driver-specific data.
|
|
121
|
+
|
|
122
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
123
|
+
:param 'NetworkDeviceDataArgs' network_data: NetworkData contains network-related information specific to the device.
|
|
124
|
+
"""
|
|
125
|
+
pulumi.set(__self__, "device", device)
|
|
126
|
+
pulumi.set(__self__, "driver", driver)
|
|
127
|
+
pulumi.set(__self__, "pool", pool)
|
|
128
|
+
if conditions is not None:
|
|
129
|
+
pulumi.set(__self__, "conditions", conditions)
|
|
130
|
+
if data is not None:
|
|
131
|
+
pulumi.set(__self__, "data", data)
|
|
132
|
+
if network_data is not None:
|
|
133
|
+
pulumi.set(__self__, "network_data", network_data)
|
|
134
|
+
|
|
135
|
+
@property
|
|
136
|
+
@pulumi.getter
|
|
137
|
+
def device(self) -> str:
|
|
138
|
+
"""
|
|
139
|
+
Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
140
|
+
"""
|
|
141
|
+
return pulumi.get(self, "device")
|
|
142
|
+
|
|
143
|
+
@property
|
|
144
|
+
@pulumi.getter
|
|
145
|
+
def driver(self) -> str:
|
|
146
|
+
"""
|
|
147
|
+
Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
|
|
148
|
+
|
|
149
|
+
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
150
|
+
"""
|
|
151
|
+
return pulumi.get(self, "driver")
|
|
152
|
+
|
|
153
|
+
@property
|
|
154
|
+
@pulumi.getter
|
|
155
|
+
def pool(self) -> str:
|
|
156
|
+
"""
|
|
157
|
+
This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
|
|
158
|
+
|
|
159
|
+
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
160
|
+
"""
|
|
161
|
+
return pulumi.get(self, "pool")
|
|
162
|
+
|
|
163
|
+
@property
|
|
164
|
+
@pulumi.getter
|
|
165
|
+
def conditions(self) -> Optional[Sequence['_meta.v1.outputs.Condition']]:
|
|
166
|
+
"""
|
|
167
|
+
Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
|
|
168
|
+
"""
|
|
169
|
+
return pulumi.get(self, "conditions")
|
|
170
|
+
|
|
171
|
+
@property
|
|
172
|
+
@pulumi.getter
|
|
173
|
+
def data(self) -> Optional[Any]:
|
|
174
|
+
"""
|
|
175
|
+
Data contains arbitrary driver-specific data.
|
|
176
|
+
|
|
177
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
178
|
+
"""
|
|
179
|
+
return pulumi.get(self, "data")
|
|
180
|
+
|
|
181
|
+
@property
|
|
182
|
+
@pulumi.getter(name="networkData")
|
|
183
|
+
def network_data(self) -> Optional['outputs.NetworkDeviceData']:
|
|
184
|
+
"""
|
|
185
|
+
NetworkData contains network-related information specific to the device.
|
|
186
|
+
"""
|
|
187
|
+
return pulumi.get(self, "network_data")
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
@pulumi.output_type
|
|
191
|
+
class AllocatedDeviceStatusPatch(dict):
|
|
192
|
+
"""
|
|
193
|
+
AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
|
|
194
|
+
"""
|
|
195
|
+
@staticmethod
|
|
196
|
+
def __key_warning(key: str):
|
|
197
|
+
suggest = None
|
|
198
|
+
if key == "networkData":
|
|
199
|
+
suggest = "network_data"
|
|
200
|
+
|
|
201
|
+
if suggest:
|
|
202
|
+
pulumi.log.warn(f"Key '{key}' not found in AllocatedDeviceStatusPatch. Access the value via the '{suggest}' property getter instead.")
|
|
203
|
+
|
|
204
|
+
def __getitem__(self, key: str) -> Any:
|
|
205
|
+
AllocatedDeviceStatusPatch.__key_warning(key)
|
|
206
|
+
return super().__getitem__(key)
|
|
207
|
+
|
|
208
|
+
def get(self, key: str, default = None) -> Any:
|
|
209
|
+
AllocatedDeviceStatusPatch.__key_warning(key)
|
|
210
|
+
return super().get(key, default)
|
|
211
|
+
|
|
212
|
+
def __init__(__self__, *,
|
|
213
|
+
conditions: Optional[Sequence['_meta.v1.outputs.ConditionPatch']] = None,
|
|
214
|
+
data: Optional[Any] = None,
|
|
215
|
+
device: Optional[str] = None,
|
|
216
|
+
driver: Optional[str] = None,
|
|
217
|
+
network_data: Optional['outputs.NetworkDeviceDataPatch'] = None,
|
|
218
|
+
pool: Optional[str] = None):
|
|
219
|
+
"""
|
|
220
|
+
AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.
|
|
221
|
+
:param Sequence['_meta.v1.ConditionPatchArgs'] conditions: Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
|
|
222
|
+
:param Any data: Data contains arbitrary driver-specific data.
|
|
223
|
+
|
|
224
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
225
|
+
:param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
226
|
+
:param str driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
|
|
227
|
+
|
|
228
|
+
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
229
|
+
:param 'NetworkDeviceDataPatchArgs' network_data: NetworkData contains network-related information specific to the device.
|
|
230
|
+
:param str pool: This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
|
|
231
|
+
|
|
232
|
+
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
233
|
+
"""
|
|
234
|
+
if conditions is not None:
|
|
235
|
+
pulumi.set(__self__, "conditions", conditions)
|
|
236
|
+
if data is not None:
|
|
237
|
+
pulumi.set(__self__, "data", data)
|
|
238
|
+
if device is not None:
|
|
239
|
+
pulumi.set(__self__, "device", device)
|
|
240
|
+
if driver is not None:
|
|
241
|
+
pulumi.set(__self__, "driver", driver)
|
|
242
|
+
if network_data is not None:
|
|
243
|
+
pulumi.set(__self__, "network_data", network_data)
|
|
244
|
+
if pool is not None:
|
|
245
|
+
pulumi.set(__self__, "pool", pool)
|
|
246
|
+
|
|
247
|
+
@property
|
|
248
|
+
@pulumi.getter
|
|
249
|
+
def conditions(self) -> Optional[Sequence['_meta.v1.outputs.ConditionPatch']]:
|
|
250
|
+
"""
|
|
251
|
+
Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.
|
|
252
|
+
"""
|
|
253
|
+
return pulumi.get(self, "conditions")
|
|
254
|
+
|
|
255
|
+
@property
|
|
256
|
+
@pulumi.getter
|
|
257
|
+
def data(self) -> Optional[Any]:
|
|
258
|
+
"""
|
|
259
|
+
Data contains arbitrary driver-specific data.
|
|
260
|
+
|
|
261
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
262
|
+
"""
|
|
263
|
+
return pulumi.get(self, "data")
|
|
264
|
+
|
|
265
|
+
@property
|
|
266
|
+
@pulumi.getter
|
|
267
|
+
def device(self) -> Optional[str]:
|
|
268
|
+
"""
|
|
269
|
+
Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
270
|
+
"""
|
|
271
|
+
return pulumi.get(self, "device")
|
|
272
|
+
|
|
273
|
+
@property
|
|
274
|
+
@pulumi.getter
|
|
275
|
+
def driver(self) -> Optional[str]:
|
|
276
|
+
"""
|
|
277
|
+
Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
|
|
278
|
+
|
|
279
|
+
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
280
|
+
"""
|
|
281
|
+
return pulumi.get(self, "driver")
|
|
282
|
+
|
|
283
|
+
@property
|
|
284
|
+
@pulumi.getter(name="networkData")
|
|
285
|
+
def network_data(self) -> Optional['outputs.NetworkDeviceDataPatch']:
|
|
286
|
+
"""
|
|
287
|
+
NetworkData contains network-related information specific to the device.
|
|
288
|
+
"""
|
|
289
|
+
return pulumi.get(self, "network_data")
|
|
290
|
+
|
|
291
|
+
@property
|
|
292
|
+
@pulumi.getter
|
|
293
|
+
def pool(self) -> Optional[str]:
|
|
294
|
+
"""
|
|
295
|
+
This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).
|
|
296
|
+
|
|
297
|
+
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
298
|
+
"""
|
|
299
|
+
return pulumi.get(self, "pool")
|
|
300
|
+
|
|
301
|
+
|
|
76
302
|
@pulumi.output_type
|
|
77
303
|
class AllocationResult(dict):
|
|
78
304
|
"""
|
|
@@ -339,6 +565,8 @@ class CELDeviceSelector(dict):
|
|
|
339
565
|
For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
|
|
340
566
|
|
|
341
567
|
cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
|
|
568
|
+
|
|
569
|
+
The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
|
|
342
570
|
"""
|
|
343
571
|
pulumi.set(__self__, "expression", expression)
|
|
344
572
|
|
|
@@ -373,6 +601,8 @@ class CELDeviceSelector(dict):
|
|
|
373
601
|
For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
|
|
374
602
|
|
|
375
603
|
cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
|
|
604
|
+
|
|
605
|
+
The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
|
|
376
606
|
"""
|
|
377
607
|
return pulumi.get(self, "expression")
|
|
378
608
|
|
|
@@ -413,6 +643,8 @@ class CELDeviceSelectorPatch(dict):
|
|
|
413
643
|
For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
|
|
414
644
|
|
|
415
645
|
cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
|
|
646
|
+
|
|
647
|
+
The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
|
|
416
648
|
"""
|
|
417
649
|
if expression is not None:
|
|
418
650
|
pulumi.set(__self__, "expression", expression)
|
|
@@ -448,6 +680,8 @@ class CELDeviceSelectorPatch(dict):
|
|
|
448
680
|
For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:
|
|
449
681
|
|
|
450
682
|
cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool)
|
|
683
|
+
|
|
684
|
+
The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.
|
|
451
685
|
"""
|
|
452
686
|
return pulumi.get(self, "expression")
|
|
453
687
|
|
|
@@ -1368,6 +1602,8 @@ class DeviceRequest(dict):
|
|
|
1368
1602
|
|
|
1369
1603
|
Must be a DNS label.
|
|
1370
1604
|
:param bool admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
|
|
1605
|
+
|
|
1606
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1371
1607
|
:param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
|
|
1372
1608
|
|
|
1373
1609
|
- ExactCount: This request is for a specific number of devices.
|
|
@@ -1422,6 +1658,8 @@ class DeviceRequest(dict):
|
|
|
1422
1658
|
def admin_access(self) -> Optional[bool]:
|
|
1423
1659
|
"""
|
|
1424
1660
|
AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
|
|
1661
|
+
|
|
1662
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1425
1663
|
"""
|
|
1426
1664
|
return pulumi.get(self, "admin_access")
|
|
1427
1665
|
|
|
@@ -1467,11 +1705,29 @@ class DeviceRequestAllocationResult(dict):
|
|
|
1467
1705
|
"""
|
|
1468
1706
|
DeviceRequestAllocationResult contains the allocation result for one request.
|
|
1469
1707
|
"""
|
|
1708
|
+
@staticmethod
|
|
1709
|
+
def __key_warning(key: str):
|
|
1710
|
+
suggest = None
|
|
1711
|
+
if key == "adminAccess":
|
|
1712
|
+
suggest = "admin_access"
|
|
1713
|
+
|
|
1714
|
+
if suggest:
|
|
1715
|
+
pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResult. Access the value via the '{suggest}' property getter instead.")
|
|
1716
|
+
|
|
1717
|
+
def __getitem__(self, key: str) -> Any:
|
|
1718
|
+
DeviceRequestAllocationResult.__key_warning(key)
|
|
1719
|
+
return super().__getitem__(key)
|
|
1720
|
+
|
|
1721
|
+
def get(self, key: str, default = None) -> Any:
|
|
1722
|
+
DeviceRequestAllocationResult.__key_warning(key)
|
|
1723
|
+
return super().get(key, default)
|
|
1724
|
+
|
|
1470
1725
|
def __init__(__self__, *,
|
|
1471
1726
|
device: str,
|
|
1472
1727
|
driver: str,
|
|
1473
1728
|
pool: str,
|
|
1474
|
-
request: str
|
|
1729
|
+
request: str,
|
|
1730
|
+
admin_access: Optional[bool] = None):
|
|
1475
1731
|
"""
|
|
1476
1732
|
DeviceRequestAllocationResult contains the allocation result for one request.
|
|
1477
1733
|
:param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
@@ -1482,11 +1738,16 @@ class DeviceRequestAllocationResult(dict):
|
|
|
1482
1738
|
|
|
1483
1739
|
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
1484
1740
|
:param str request: Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.
|
|
1741
|
+
:param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
|
|
1742
|
+
|
|
1743
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1485
1744
|
"""
|
|
1486
1745
|
pulumi.set(__self__, "device", device)
|
|
1487
1746
|
pulumi.set(__self__, "driver", driver)
|
|
1488
1747
|
pulumi.set(__self__, "pool", pool)
|
|
1489
1748
|
pulumi.set(__self__, "request", request)
|
|
1749
|
+
if admin_access is not None:
|
|
1750
|
+
pulumi.set(__self__, "admin_access", admin_access)
|
|
1490
1751
|
|
|
1491
1752
|
@property
|
|
1492
1753
|
@pulumi.getter
|
|
@@ -1524,19 +1785,50 @@ class DeviceRequestAllocationResult(dict):
|
|
|
1524
1785
|
"""
|
|
1525
1786
|
return pulumi.get(self, "request")
|
|
1526
1787
|
|
|
1788
|
+
@property
|
|
1789
|
+
@pulumi.getter(name="adminAccess")
|
|
1790
|
+
def admin_access(self) -> Optional[bool]:
|
|
1791
|
+
"""
|
|
1792
|
+
AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
|
|
1793
|
+
|
|
1794
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1795
|
+
"""
|
|
1796
|
+
return pulumi.get(self, "admin_access")
|
|
1797
|
+
|
|
1527
1798
|
|
|
1528
1799
|
@pulumi.output_type
|
|
1529
1800
|
class DeviceRequestAllocationResultPatch(dict):
|
|
1530
1801
|
"""
|
|
1531
1802
|
DeviceRequestAllocationResult contains the allocation result for one request.
|
|
1532
1803
|
"""
|
|
1804
|
+
@staticmethod
|
|
1805
|
+
def __key_warning(key: str):
|
|
1806
|
+
suggest = None
|
|
1807
|
+
if key == "adminAccess":
|
|
1808
|
+
suggest = "admin_access"
|
|
1809
|
+
|
|
1810
|
+
if suggest:
|
|
1811
|
+
pulumi.log.warn(f"Key '{key}' not found in DeviceRequestAllocationResultPatch. Access the value via the '{suggest}' property getter instead.")
|
|
1812
|
+
|
|
1813
|
+
def __getitem__(self, key: str) -> Any:
|
|
1814
|
+
DeviceRequestAllocationResultPatch.__key_warning(key)
|
|
1815
|
+
return super().__getitem__(key)
|
|
1816
|
+
|
|
1817
|
+
def get(self, key: str, default = None) -> Any:
|
|
1818
|
+
DeviceRequestAllocationResultPatch.__key_warning(key)
|
|
1819
|
+
return super().get(key, default)
|
|
1820
|
+
|
|
1533
1821
|
def __init__(__self__, *,
|
|
1822
|
+
admin_access: Optional[bool] = None,
|
|
1534
1823
|
device: Optional[str] = None,
|
|
1535
1824
|
driver: Optional[str] = None,
|
|
1536
1825
|
pool: Optional[str] = None,
|
|
1537
1826
|
request: Optional[str] = None):
|
|
1538
1827
|
"""
|
|
1539
1828
|
DeviceRequestAllocationResult contains the allocation result for one request.
|
|
1829
|
+
:param bool admin_access: AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
|
|
1830
|
+
|
|
1831
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1540
1832
|
:param str device: Device references one device instance via its name in the driver's resource pool. It must be a DNS label.
|
|
1541
1833
|
:param str driver: Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.
|
|
1542
1834
|
|
|
@@ -1546,6 +1838,8 @@ class DeviceRequestAllocationResultPatch(dict):
|
|
|
1546
1838
|
Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.
|
|
1547
1839
|
:param str request: Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.
|
|
1548
1840
|
"""
|
|
1841
|
+
if admin_access is not None:
|
|
1842
|
+
pulumi.set(__self__, "admin_access", admin_access)
|
|
1549
1843
|
if device is not None:
|
|
1550
1844
|
pulumi.set(__self__, "device", device)
|
|
1551
1845
|
if driver is not None:
|
|
@@ -1555,6 +1849,16 @@ class DeviceRequestAllocationResultPatch(dict):
|
|
|
1555
1849
|
if request is not None:
|
|
1556
1850
|
pulumi.set(__self__, "request", request)
|
|
1557
1851
|
|
|
1852
|
+
@property
|
|
1853
|
+
@pulumi.getter(name="adminAccess")
|
|
1854
|
+
def admin_access(self) -> Optional[bool]:
|
|
1855
|
+
"""
|
|
1856
|
+
AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.
|
|
1857
|
+
|
|
1858
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1859
|
+
"""
|
|
1860
|
+
return pulumi.get(self, "admin_access")
|
|
1861
|
+
|
|
1558
1862
|
@property
|
|
1559
1863
|
@pulumi.getter
|
|
1560
1864
|
def device(self) -> Optional[str]:
|
|
@@ -1632,6 +1936,8 @@ class DeviceRequestPatch(dict):
|
|
|
1632
1936
|
|
|
1633
1937
|
A DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.
|
|
1634
1938
|
:param bool admin_access: AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
|
|
1939
|
+
|
|
1940
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1635
1941
|
:param str allocation_mode: AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:
|
|
1636
1942
|
|
|
1637
1943
|
- ExactCount: This request is for a specific number of devices.
|
|
@@ -1674,6 +1980,8 @@ class DeviceRequestPatch(dict):
|
|
|
1674
1980
|
def admin_access(self) -> Optional[bool]:
|
|
1675
1981
|
"""
|
|
1676
1982
|
AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device. They ignore all ordinary claims to the device with respect to access modes and any resource allocations.
|
|
1983
|
+
|
|
1984
|
+
This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.
|
|
1677
1985
|
"""
|
|
1678
1986
|
return pulumi.get(self, "admin_access")
|
|
1679
1987
|
|
|
@@ -1782,6 +2090,154 @@ class DeviceSelectorPatch(dict):
|
|
|
1782
2090
|
return pulumi.get(self, "cel")
|
|
1783
2091
|
|
|
1784
2092
|
|
|
2093
|
+
@pulumi.output_type
|
|
2094
|
+
class NetworkDeviceData(dict):
|
|
2095
|
+
"""
|
|
2096
|
+
NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
|
|
2097
|
+
"""
|
|
2098
|
+
@staticmethod
|
|
2099
|
+
def __key_warning(key: str):
|
|
2100
|
+
suggest = None
|
|
2101
|
+
if key == "hardwareAddress":
|
|
2102
|
+
suggest = "hardware_address"
|
|
2103
|
+
elif key == "interfaceName":
|
|
2104
|
+
suggest = "interface_name"
|
|
2105
|
+
|
|
2106
|
+
if suggest:
|
|
2107
|
+
pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceData. Access the value via the '{suggest}' property getter instead.")
|
|
2108
|
+
|
|
2109
|
+
def __getitem__(self, key: str) -> Any:
|
|
2110
|
+
NetworkDeviceData.__key_warning(key)
|
|
2111
|
+
return super().__getitem__(key)
|
|
2112
|
+
|
|
2113
|
+
def get(self, key: str, default = None) -> Any:
|
|
2114
|
+
NetworkDeviceData.__key_warning(key)
|
|
2115
|
+
return super().get(key, default)
|
|
2116
|
+
|
|
2117
|
+
def __init__(__self__, *,
|
|
2118
|
+
hardware_address: Optional[str] = None,
|
|
2119
|
+
interface_name: Optional[str] = None,
|
|
2120
|
+
ips: Optional[Sequence[str]] = None):
|
|
2121
|
+
"""
|
|
2122
|
+
NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
|
|
2123
|
+
:param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
|
|
2124
|
+
|
|
2125
|
+
Must not be longer than 128 characters.
|
|
2126
|
+
:param str interface_name: InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
|
|
2127
|
+
|
|
2128
|
+
Must not be longer than 256 characters.
|
|
2129
|
+
:param Sequence[str] ips: IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
|
|
2130
|
+
"""
|
|
2131
|
+
if hardware_address is not None:
|
|
2132
|
+
pulumi.set(__self__, "hardware_address", hardware_address)
|
|
2133
|
+
if interface_name is not None:
|
|
2134
|
+
pulumi.set(__self__, "interface_name", interface_name)
|
|
2135
|
+
if ips is not None:
|
|
2136
|
+
pulumi.set(__self__, "ips", ips)
|
|
2137
|
+
|
|
2138
|
+
@property
|
|
2139
|
+
@pulumi.getter(name="hardwareAddress")
|
|
2140
|
+
def hardware_address(self) -> Optional[str]:
|
|
2141
|
+
"""
|
|
2142
|
+
HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
|
|
2143
|
+
|
|
2144
|
+
Must not be longer than 128 characters.
|
|
2145
|
+
"""
|
|
2146
|
+
return pulumi.get(self, "hardware_address")
|
|
2147
|
+
|
|
2148
|
+
@property
|
|
2149
|
+
@pulumi.getter(name="interfaceName")
|
|
2150
|
+
def interface_name(self) -> Optional[str]:
|
|
2151
|
+
"""
|
|
2152
|
+
InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
|
|
2153
|
+
|
|
2154
|
+
Must not be longer than 256 characters.
|
|
2155
|
+
"""
|
|
2156
|
+
return pulumi.get(self, "interface_name")
|
|
2157
|
+
|
|
2158
|
+
@property
|
|
2159
|
+
@pulumi.getter
|
|
2160
|
+
def ips(self) -> Optional[Sequence[str]]:
|
|
2161
|
+
"""
|
|
2162
|
+
IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
|
|
2163
|
+
"""
|
|
2164
|
+
return pulumi.get(self, "ips")
|
|
2165
|
+
|
|
2166
|
+
|
|
2167
|
+
@pulumi.output_type
|
|
2168
|
+
class NetworkDeviceDataPatch(dict):
|
|
2169
|
+
"""
|
|
2170
|
+
NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
|
|
2171
|
+
"""
|
|
2172
|
+
@staticmethod
|
|
2173
|
+
def __key_warning(key: str):
|
|
2174
|
+
suggest = None
|
|
2175
|
+
if key == "hardwareAddress":
|
|
2176
|
+
suggest = "hardware_address"
|
|
2177
|
+
elif key == "interfaceName":
|
|
2178
|
+
suggest = "interface_name"
|
|
2179
|
+
|
|
2180
|
+
if suggest:
|
|
2181
|
+
pulumi.log.warn(f"Key '{key}' not found in NetworkDeviceDataPatch. Access the value via the '{suggest}' property getter instead.")
|
|
2182
|
+
|
|
2183
|
+
def __getitem__(self, key: str) -> Any:
|
|
2184
|
+
NetworkDeviceDataPatch.__key_warning(key)
|
|
2185
|
+
return super().__getitem__(key)
|
|
2186
|
+
|
|
2187
|
+
def get(self, key: str, default = None) -> Any:
|
|
2188
|
+
NetworkDeviceDataPatch.__key_warning(key)
|
|
2189
|
+
return super().get(key, default)
|
|
2190
|
+
|
|
2191
|
+
def __init__(__self__, *,
|
|
2192
|
+
hardware_address: Optional[str] = None,
|
|
2193
|
+
interface_name: Optional[str] = None,
|
|
2194
|
+
ips: Optional[Sequence[str]] = None):
|
|
2195
|
+
"""
|
|
2196
|
+
NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.
|
|
2197
|
+
:param str hardware_address: HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
|
|
2198
|
+
|
|
2199
|
+
Must not be longer than 128 characters.
|
|
2200
|
+
:param str interface_name: InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
|
|
2201
|
+
|
|
2202
|
+
Must not be longer than 256 characters.
|
|
2203
|
+
:param Sequence[str] ips: IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
|
|
2204
|
+
"""
|
|
2205
|
+
if hardware_address is not None:
|
|
2206
|
+
pulumi.set(__self__, "hardware_address", hardware_address)
|
|
2207
|
+
if interface_name is not None:
|
|
2208
|
+
pulumi.set(__self__, "interface_name", interface_name)
|
|
2209
|
+
if ips is not None:
|
|
2210
|
+
pulumi.set(__self__, "ips", ips)
|
|
2211
|
+
|
|
2212
|
+
@property
|
|
2213
|
+
@pulumi.getter(name="hardwareAddress")
|
|
2214
|
+
def hardware_address(self) -> Optional[str]:
|
|
2215
|
+
"""
|
|
2216
|
+
HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.
|
|
2217
|
+
|
|
2218
|
+
Must not be longer than 128 characters.
|
|
2219
|
+
"""
|
|
2220
|
+
return pulumi.get(self, "hardware_address")
|
|
2221
|
+
|
|
2222
|
+
@property
|
|
2223
|
+
@pulumi.getter(name="interfaceName")
|
|
2224
|
+
def interface_name(self) -> Optional[str]:
|
|
2225
|
+
"""
|
|
2226
|
+
InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.
|
|
2227
|
+
|
|
2228
|
+
Must not be longer than 256 characters.
|
|
2229
|
+
"""
|
|
2230
|
+
return pulumi.get(self, "interface_name")
|
|
2231
|
+
|
|
2232
|
+
@property
|
|
2233
|
+
@pulumi.getter
|
|
2234
|
+
def ips(self) -> Optional[Sequence[str]]:
|
|
2235
|
+
"""
|
|
2236
|
+
IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: "192.0.2.5/24" for IPv4 and "2001:db8::5/64" for IPv6.
|
|
2237
|
+
"""
|
|
2238
|
+
return pulumi.get(self, "ips")
|
|
2239
|
+
|
|
2240
|
+
|
|
1785
2241
|
@pulumi.output_type
|
|
1786
2242
|
class OpaqueDeviceConfiguration(dict):
|
|
1787
2243
|
"""
|
|
@@ -1798,6 +2254,8 @@ class OpaqueDeviceConfiguration(dict):
|
|
|
1798
2254
|
|
|
1799
2255
|
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
1800
2256
|
:param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
|
|
2257
|
+
|
|
2258
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
1801
2259
|
"""
|
|
1802
2260
|
pulumi.set(__self__, "driver", driver)
|
|
1803
2261
|
pulumi.set(__self__, "parameters", parameters)
|
|
@@ -1819,6 +2277,8 @@ class OpaqueDeviceConfiguration(dict):
|
|
|
1819
2277
|
def parameters(self) -> Any:
|
|
1820
2278
|
"""
|
|
1821
2279
|
Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
|
|
2280
|
+
|
|
2281
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
1822
2282
|
"""
|
|
1823
2283
|
return pulumi.get(self, "parameters")
|
|
1824
2284
|
|
|
@@ -1839,6 +2299,8 @@ class OpaqueDeviceConfigurationPatch(dict):
|
|
|
1839
2299
|
|
|
1840
2300
|
Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.
|
|
1841
2301
|
:param Any parameters: Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
|
|
2302
|
+
|
|
2303
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
1842
2304
|
"""
|
|
1843
2305
|
if driver is not None:
|
|
1844
2306
|
pulumi.set(__self__, "driver", driver)
|
|
@@ -1862,6 +2324,8 @@ class OpaqueDeviceConfigurationPatch(dict):
|
|
|
1862
2324
|
def parameters(self) -> Optional[Any]:
|
|
1863
2325
|
"""
|
|
1864
2326
|
Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version ("kind" + "apiVersion" for Kubernetes types), with conversion between different versions.
|
|
2327
|
+
|
|
2328
|
+
The length of the raw data must be smaller or equal to 10 Ki.
|
|
1865
2329
|
"""
|
|
1866
2330
|
return pulumi.get(self, "parameters")
|
|
1867
2331
|
|
|
@@ -2617,6 +3081,7 @@ class ResourceClaimStatus(dict):
|
|
|
2617
3081
|
def __init__(__self__, *,
|
|
2618
3082
|
allocation: Optional['outputs.AllocationResult'] = None,
|
|
2619
3083
|
deallocation_requested: Optional[bool] = None,
|
|
3084
|
+
devices: Optional[Sequence['outputs.AllocatedDeviceStatus']] = None,
|
|
2620
3085
|
reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReference']] = None):
|
|
2621
3086
|
"""
|
|
2622
3087
|
ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
|
|
@@ -2626,6 +3091,7 @@ class ResourceClaimStatus(dict):
|
|
|
2626
3091
|
This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field.
|
|
2627
3092
|
|
|
2628
3093
|
This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
|
|
3094
|
+
:param Sequence['AllocatedDeviceStatusArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
|
|
2629
3095
|
:param Sequence['ResourceClaimConsumerReferenceArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.
|
|
2630
3096
|
|
|
2631
3097
|
In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.
|
|
@@ -2638,6 +3104,8 @@ class ResourceClaimStatus(dict):
|
|
|
2638
3104
|
pulumi.set(__self__, "allocation", allocation)
|
|
2639
3105
|
if deallocation_requested is not None:
|
|
2640
3106
|
pulumi.set(__self__, "deallocation_requested", deallocation_requested)
|
|
3107
|
+
if devices is not None:
|
|
3108
|
+
pulumi.set(__self__, "devices", devices)
|
|
2641
3109
|
if reserved_for is not None:
|
|
2642
3110
|
pulumi.set(__self__, "reserved_for", reserved_for)
|
|
2643
3111
|
|
|
@@ -2661,6 +3129,14 @@ class ResourceClaimStatus(dict):
|
|
|
2661
3129
|
"""
|
|
2662
3130
|
return pulumi.get(self, "deallocation_requested")
|
|
2663
3131
|
|
|
3132
|
+
@property
|
|
3133
|
+
@pulumi.getter
|
|
3134
|
+
def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatus']]:
|
|
3135
|
+
"""
|
|
3136
|
+
Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
|
|
3137
|
+
"""
|
|
3138
|
+
return pulumi.get(self, "devices")
|
|
3139
|
+
|
|
2664
3140
|
@property
|
|
2665
3141
|
@pulumi.getter(name="reservedFor")
|
|
2666
3142
|
def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReference']]:
|
|
@@ -2703,6 +3179,7 @@ class ResourceClaimStatusPatch(dict):
|
|
|
2703
3179
|
def __init__(__self__, *,
|
|
2704
3180
|
allocation: Optional['outputs.AllocationResultPatch'] = None,
|
|
2705
3181
|
deallocation_requested: Optional[bool] = None,
|
|
3182
|
+
devices: Optional[Sequence['outputs.AllocatedDeviceStatusPatch']] = None,
|
|
2706
3183
|
reserved_for: Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']] = None):
|
|
2707
3184
|
"""
|
|
2708
3185
|
ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.
|
|
@@ -2712,6 +3189,7 @@ class ResourceClaimStatusPatch(dict):
|
|
|
2712
3189
|
This is only used if the claim needs to be deallocated by a DRA driver. That driver then must deallocate this claim and reset the field together with clearing the Allocation field.
|
|
2713
3190
|
|
|
2714
3191
|
This is an alpha field and requires enabling the DRAControlPlaneController feature gate.
|
|
3192
|
+
:param Sequence['AllocatedDeviceStatusPatchArgs'] devices: Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
|
|
2715
3193
|
:param Sequence['ResourceClaimConsumerReferencePatchArgs'] reserved_for: ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.
|
|
2716
3194
|
|
|
2717
3195
|
In a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.
|
|
@@ -2724,6 +3202,8 @@ class ResourceClaimStatusPatch(dict):
|
|
|
2724
3202
|
pulumi.set(__self__, "allocation", allocation)
|
|
2725
3203
|
if deallocation_requested is not None:
|
|
2726
3204
|
pulumi.set(__self__, "deallocation_requested", deallocation_requested)
|
|
3205
|
+
if devices is not None:
|
|
3206
|
+
pulumi.set(__self__, "devices", devices)
|
|
2727
3207
|
if reserved_for is not None:
|
|
2728
3208
|
pulumi.set(__self__, "reserved_for", reserved_for)
|
|
2729
3209
|
|
|
@@ -2747,6 +3227,14 @@ class ResourceClaimStatusPatch(dict):
|
|
|
2747
3227
|
"""
|
|
2748
3228
|
return pulumi.get(self, "deallocation_requested")
|
|
2749
3229
|
|
|
3230
|
+
@property
|
|
3231
|
+
@pulumi.getter
|
|
3232
|
+
def devices(self) -> Optional[Sequence['outputs.AllocatedDeviceStatusPatch']]:
|
|
3233
|
+
"""
|
|
3234
|
+
Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.
|
|
3235
|
+
"""
|
|
3236
|
+
return pulumi.get(self, "devices")
|
|
3237
|
+
|
|
2750
3238
|
@property
|
|
2751
3239
|
@pulumi.getter(name="reservedFor")
|
|
2752
3240
|
def reserved_for(self) -> Optional[Sequence['outputs.ResourceClaimConsumerReferencePatch']]:
|
|
@@ -2856,7 +3344,7 @@ class ResourceClaimTemplateSpec(dict):
|
|
|
2856
3344
|
"""
|
|
2857
3345
|
ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
|
|
2858
3346
|
:param 'ResourceClaimSpecArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.
|
|
2859
|
-
:param '_meta.v1.ObjectMetaArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the
|
|
3347
|
+
:param '_meta.v1.ObjectMetaArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
|
|
2860
3348
|
"""
|
|
2861
3349
|
pulumi.set(__self__, "spec", spec)
|
|
2862
3350
|
if metadata is not None:
|
|
@@ -2874,7 +3362,7 @@ class ResourceClaimTemplateSpec(dict):
|
|
|
2874
3362
|
@pulumi.getter
|
|
2875
3363
|
def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']:
|
|
2876
3364
|
"""
|
|
2877
|
-
ObjectMeta may contain labels and annotations that will be copied into the
|
|
3365
|
+
ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
|
|
2878
3366
|
"""
|
|
2879
3367
|
return pulumi.get(self, "metadata")
|
|
2880
3368
|
|
|
@@ -2889,7 +3377,7 @@ class ResourceClaimTemplateSpecPatch(dict):
|
|
|
2889
3377
|
spec: Optional['outputs.ResourceClaimSpecPatch'] = None):
|
|
2890
3378
|
"""
|
|
2891
3379
|
ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.
|
|
2892
|
-
:param '_meta.v1.ObjectMetaPatchArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the
|
|
3380
|
+
:param '_meta.v1.ObjectMetaPatchArgs' metadata: ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
|
|
2893
3381
|
:param 'ResourceClaimSpecPatchArgs' spec: Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.
|
|
2894
3382
|
"""
|
|
2895
3383
|
if metadata is not None:
|
|
@@ -2901,7 +3389,7 @@ class ResourceClaimTemplateSpecPatch(dict):
|
|
|
2901
3389
|
@pulumi.getter
|
|
2902
3390
|
def metadata(self) -> Optional['_meta.v1.outputs.ObjectMetaPatch']:
|
|
2903
3391
|
"""
|
|
2904
|
-
ObjectMeta may contain labels and annotations that will be copied into the
|
|
3392
|
+
ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.
|
|
2905
3393
|
"""
|
|
2906
3394
|
return pulumi.get(self, "metadata")
|
|
2907
3395
|
|
|
@@ -3063,6 +3551,105 @@ class ResourcePoolPatch(dict):
|
|
|
3063
3551
|
return pulumi.get(self, "resource_slice_count")
|
|
3064
3552
|
|
|
3065
3553
|
|
|
3554
|
+
@pulumi.output_type
|
|
3555
|
+
class ResourceSlice(dict):
|
|
3556
|
+
"""
|
|
3557
|
+
ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.
|
|
3558
|
+
|
|
3559
|
+
At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.
|
|
3560
|
+
|
|
3561
|
+
Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.
|
|
3562
|
+
|
|
3563
|
+
When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.
|
|
3564
|
+
|
|
3565
|
+
For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.
|
|
3566
|
+
|
|
3567
|
+
This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
|
|
3568
|
+
"""
|
|
3569
|
+
@staticmethod
|
|
3570
|
+
def __key_warning(key: str):
|
|
3571
|
+
suggest = None
|
|
3572
|
+
if key == "apiVersion":
|
|
3573
|
+
suggest = "api_version"
|
|
3574
|
+
|
|
3575
|
+
if suggest:
|
|
3576
|
+
pulumi.log.warn(f"Key '{key}' not found in ResourceSlice. Access the value via the '{suggest}' property getter instead.")
|
|
3577
|
+
|
|
3578
|
+
def __getitem__(self, key: str) -> Any:
|
|
3579
|
+
ResourceSlice.__key_warning(key)
|
|
3580
|
+
return super().__getitem__(key)
|
|
3581
|
+
|
|
3582
|
+
def get(self, key: str, default = None) -> Any:
|
|
3583
|
+
ResourceSlice.__key_warning(key)
|
|
3584
|
+
return super().get(key, default)
|
|
3585
|
+
|
|
3586
|
+
def __init__(__self__, *,
|
|
3587
|
+
spec: 'outputs.ResourceSliceSpec',
|
|
3588
|
+
api_version: Optional[str] = None,
|
|
3589
|
+
kind: Optional[str] = None,
|
|
3590
|
+
metadata: Optional['_meta.v1.outputs.ObjectMeta'] = None):
|
|
3591
|
+
"""
|
|
3592
|
+
ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.
|
|
3593
|
+
|
|
3594
|
+
At the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.
|
|
3595
|
+
|
|
3596
|
+
Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.
|
|
3597
|
+
|
|
3598
|
+
When allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.
|
|
3599
|
+
|
|
3600
|
+
For resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.
|
|
3601
|
+
|
|
3602
|
+
This is an alpha type and requires enabling the DynamicResourceAllocation feature gate.
|
|
3603
|
+
:param 'ResourceSliceSpecArgs' spec: Contains the information published by the driver.
|
|
3604
|
+
|
|
3605
|
+
Changing the spec automatically increments the metadata.generation number.
|
|
3606
|
+
:param str api_version: APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
3607
|
+
:param str kind: Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
3608
|
+
:param '_meta.v1.ObjectMetaArgs' metadata: Standard object metadata
|
|
3609
|
+
"""
|
|
3610
|
+
pulumi.set(__self__, "spec", spec)
|
|
3611
|
+
if api_version is not None:
|
|
3612
|
+
pulumi.set(__self__, "api_version", 'resource.k8s.io/v1alpha3')
|
|
3613
|
+
if kind is not None:
|
|
3614
|
+
pulumi.set(__self__, "kind", 'ResourceSlice')
|
|
3615
|
+
if metadata is not None:
|
|
3616
|
+
pulumi.set(__self__, "metadata", metadata)
|
|
3617
|
+
|
|
3618
|
+
@property
|
|
3619
|
+
@pulumi.getter
|
|
3620
|
+
def spec(self) -> 'outputs.ResourceSliceSpec':
|
|
3621
|
+
"""
|
|
3622
|
+
Contains the information published by the driver.
|
|
3623
|
+
|
|
3624
|
+
Changing the spec automatically increments the metadata.generation number.
|
|
3625
|
+
"""
|
|
3626
|
+
return pulumi.get(self, "spec")
|
|
3627
|
+
|
|
3628
|
+
@property
|
|
3629
|
+
@pulumi.getter(name="apiVersion")
|
|
3630
|
+
def api_version(self) -> Optional[str]:
|
|
3631
|
+
"""
|
|
3632
|
+
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
|
|
3633
|
+
"""
|
|
3634
|
+
return pulumi.get(self, "api_version")
|
|
3635
|
+
|
|
3636
|
+
@property
|
|
3637
|
+
@pulumi.getter
|
|
3638
|
+
def kind(self) -> Optional[str]:
|
|
3639
|
+
"""
|
|
3640
|
+
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
|
|
3641
|
+
"""
|
|
3642
|
+
return pulumi.get(self, "kind")
|
|
3643
|
+
|
|
3644
|
+
@property
|
|
3645
|
+
@pulumi.getter
|
|
3646
|
+
def metadata(self) -> Optional['_meta.v1.outputs.ObjectMeta']:
|
|
3647
|
+
"""
|
|
3648
|
+
Standard object metadata
|
|
3649
|
+
"""
|
|
3650
|
+
return pulumi.get(self, "metadata")
|
|
3651
|
+
|
|
3652
|
+
|
|
3066
3653
|
@pulumi.output_type
|
|
3067
3654
|
class ResourceSliceSpec(dict):
|
|
3068
3655
|
"""
|