pulumi-kubernetes 4.17.0a1723243823__py3-none-any.whl → 4.17.0a1723576835__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.

Files changed (81) hide show
  1. pulumi_kubernetes/__init__.py +42 -2
  2. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyBindingList.py +18 -17
  3. pulumi_kubernetes/admissionregistration/v1/ValidatingAdmissionPolicyList.py +18 -17
  4. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyBindingList.py +18 -17
  5. pulumi_kubernetes/admissionregistration/v1alpha1/ValidatingAdmissionPolicyList.py +18 -17
  6. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyBindingList.py +18 -17
  7. pulumi_kubernetes/admissionregistration/v1beta1/ValidatingAdmissionPolicyList.py +18 -17
  8. pulumi_kubernetes/apiextensions/v1/_inputs.py +6 -6
  9. pulumi_kubernetes/apiextensions/v1/outputs.py +4 -4
  10. pulumi_kubernetes/apps/v1/_inputs.py +12 -12
  11. pulumi_kubernetes/apps/v1/outputs.py +8 -8
  12. pulumi_kubernetes/batch/v1/_inputs.py +15 -27
  13. pulumi_kubernetes/batch/v1/outputs.py +12 -20
  14. pulumi_kubernetes/coordination/__init__.py +3 -0
  15. pulumi_kubernetes/coordination/v1/_inputs.py +94 -14
  16. pulumi_kubernetes/coordination/v1/outputs.py +62 -10
  17. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidate.py +214 -0
  18. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidateList.py +215 -0
  19. pulumi_kubernetes/coordination/v1alpha1/LeaseCandidatePatch.py +226 -0
  20. pulumi_kubernetes/coordination/v1alpha1/__init__.py +12 -0
  21. pulumi_kubernetes/coordination/v1alpha1/_inputs.py +418 -0
  22. pulumi_kubernetes/coordination/v1alpha1/outputs.py +334 -0
  23. pulumi_kubernetes/core/v1/_inputs.py +955 -184
  24. pulumi_kubernetes/core/v1/outputs.py +1026 -135
  25. pulumi_kubernetes/networking/v1alpha1/IPAddress.py +2 -0
  26. pulumi_kubernetes/networking/v1alpha1/IPAddressPatch.py +2 -0
  27. pulumi_kubernetes/networking/v1alpha1/ServiceCIDR.py +2 -0
  28. pulumi_kubernetes/networking/v1alpha1/ServiceCIDRPatch.py +2 -0
  29. pulumi_kubernetes/networking/v1beta1/IPAddress.py +216 -0
  30. pulumi_kubernetes/networking/v1beta1/IPAddressList.py +215 -0
  31. pulumi_kubernetes/networking/v1beta1/IPAddressPatch.py +228 -0
  32. pulumi_kubernetes/networking/v1beta1/ServiceCIDR.py +226 -0
  33. pulumi_kubernetes/networking/v1beta1/ServiceCIDRList.py +215 -0
  34. pulumi_kubernetes/networking/v1beta1/ServiceCIDRPatch.py +238 -0
  35. pulumi_kubernetes/networking/v1beta1/__init__.py +6 -0
  36. pulumi_kubernetes/networking/v1beta1/_inputs.py +599 -0
  37. pulumi_kubernetes/networking/v1beta1/outputs.py +461 -0
  38. pulumi_kubernetes/pulumi-plugin.json +1 -1
  39. pulumi_kubernetes/resource/__init__.py +3 -0
  40. pulumi_kubernetes/resource/v1alpha1/ResourceClaim.py +1 -1
  41. pulumi_kubernetes/resource/v1alpha1/ResourceClaimPatch.py +1 -1
  42. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplate.py +1 -1
  43. pulumi_kubernetes/resource/v1alpha1/ResourceClaimTemplatePatch.py +1 -1
  44. pulumi_kubernetes/resource/v1alpha2/PodSchedulingContext.py +2 -0
  45. pulumi_kubernetes/resource/v1alpha2/PodSchedulingContextPatch.py +2 -0
  46. pulumi_kubernetes/resource/v1alpha2/ResourceClaim.py +1 -1
  47. pulumi_kubernetes/resource/v1alpha2/ResourceClaimPatch.py +1 -1
  48. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplate.py +1 -1
  49. pulumi_kubernetes/resource/v1alpha2/ResourceClaimTemplatePatch.py +1 -1
  50. pulumi_kubernetes/resource/v1alpha2/ResourceSlice.py +2 -0
  51. pulumi_kubernetes/resource/v1alpha2/ResourceSlicePatch.py +2 -0
  52. pulumi_kubernetes/resource/v1alpha3/DeviceClass.py +236 -0
  53. pulumi_kubernetes/resource/v1alpha3/DeviceClassList.py +216 -0
  54. pulumi_kubernetes/resource/v1alpha3/DeviceClassPatch.py +247 -0
  55. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContext.py +231 -0
  56. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContextList.py +215 -0
  57. pulumi_kubernetes/resource/v1alpha3/PodSchedulingContextPatch.py +242 -0
  58. pulumi_kubernetes/resource/v1alpha3/ResourceClaim.py +232 -0
  59. pulumi_kubernetes/resource/v1alpha3/ResourceClaimList.py +216 -0
  60. pulumi_kubernetes/resource/v1alpha3/ResourceClaimPatch.py +243 -0
  61. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplate.py +229 -0
  62. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplateList.py +215 -0
  63. pulumi_kubernetes/resource/v1alpha3/ResourceClaimTemplatePatch.py +240 -0
  64. pulumi_kubernetes/resource/v1alpha3/ResourceSlice.py +246 -0
  65. pulumi_kubernetes/resource/v1alpha3/ResourceSlicePatch.py +257 -0
  66. pulumi_kubernetes/resource/v1alpha3/__init__.py +23 -0
  67. pulumi_kubernetes/resource/v1alpha3/_inputs.py +3924 -0
  68. pulumi_kubernetes/resource/v1alpha3/outputs.py +3327 -0
  69. pulumi_kubernetes/storage/v1alpha1/VolumeAttributesClass.py +2 -0
  70. pulumi_kubernetes/storage/v1alpha1/VolumeAttributesClassPatch.py +2 -0
  71. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClass.py +252 -0
  72. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClassList.py +215 -0
  73. pulumi_kubernetes/storage/v1beta1/VolumeAttributesClassPatch.py +263 -0
  74. pulumi_kubernetes/storage/v1beta1/__init__.py +3 -0
  75. pulumi_kubernetes/storage/v1beta1/_inputs.py +123 -0
  76. pulumi_kubernetes/storage/v1beta1/outputs.py +94 -0
  77. pulumi_kubernetes/yaml/yaml.py +102 -0
  78. {pulumi_kubernetes-4.17.0a1723243823.dist-info → pulumi_kubernetes-4.17.0a1723576835.dist-info}/METADATA +1 -1
  79. {pulumi_kubernetes-4.17.0a1723243823.dist-info → pulumi_kubernetes-4.17.0a1723576835.dist-info}/RECORD +81 -49
  80. {pulumi_kubernetes-4.17.0a1723243823.dist-info → pulumi_kubernetes-4.17.0a1723576835.dist-info}/WHEEL +1 -1
  81. {pulumi_kubernetes-4.17.0a1723243823.dist-info → pulumi_kubernetes-4.17.0a1723576835.dist-info}/top_level.txt +0 -0
@@ -37,20 +37,28 @@ if not MYPY:
37
37
  """
38
38
  holder_identity: NotRequired[pulumi.Input[str]]
39
39
  """
40
- holderIdentity contains the identity of the holder of a current lease.
40
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
41
41
  """
42
42
  lease_duration_seconds: NotRequired[pulumi.Input[int]]
43
43
  """
44
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
44
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
45
45
  """
46
46
  lease_transitions: NotRequired[pulumi.Input[int]]
47
47
  """
48
48
  leaseTransitions is the number of transitions of a lease between holders.
49
49
  """
50
+ preferred_holder: NotRequired[pulumi.Input[str]]
51
+ """
52
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
53
+ """
50
54
  renew_time: NotRequired[pulumi.Input[str]]
51
55
  """
52
56
  renewTime is a time when the current holder of a lease has last updated the lease.
53
57
  """
58
+ strategy: NotRequired[pulumi.Input[str]]
59
+ """
60
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
61
+ """
54
62
  elif False:
55
63
  LeaseSpecPatchArgsDict: TypeAlias = Mapping[str, Any]
56
64
 
@@ -61,14 +69,18 @@ class LeaseSpecPatchArgs:
61
69
  holder_identity: Optional[pulumi.Input[str]] = None,
62
70
  lease_duration_seconds: Optional[pulumi.Input[int]] = None,
63
71
  lease_transitions: Optional[pulumi.Input[int]] = None,
64
- renew_time: Optional[pulumi.Input[str]] = None):
72
+ preferred_holder: Optional[pulumi.Input[str]] = None,
73
+ renew_time: Optional[pulumi.Input[str]] = None,
74
+ strategy: Optional[pulumi.Input[str]] = None):
65
75
  """
66
76
  LeaseSpec is a specification of a Lease.
67
77
  :param pulumi.Input[str] acquire_time: acquireTime is a time when the current lease was acquired.
68
- :param pulumi.Input[str] holder_identity: holderIdentity contains the identity of the holder of a current lease.
69
- :param pulumi.Input[int] lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
78
+ :param pulumi.Input[str] holder_identity: holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
79
+ :param pulumi.Input[int] lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
70
80
  :param pulumi.Input[int] lease_transitions: leaseTransitions is the number of transitions of a lease between holders.
81
+ :param pulumi.Input[str] preferred_holder: PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
71
82
  :param pulumi.Input[str] renew_time: renewTime is a time when the current holder of a lease has last updated the lease.
83
+ :param pulumi.Input[str] strategy: Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
72
84
  """
73
85
  if acquire_time is not None:
74
86
  pulumi.set(__self__, "acquire_time", acquire_time)
@@ -78,8 +90,12 @@ class LeaseSpecPatchArgs:
78
90
  pulumi.set(__self__, "lease_duration_seconds", lease_duration_seconds)
79
91
  if lease_transitions is not None:
80
92
  pulumi.set(__self__, "lease_transitions", lease_transitions)
93
+ if preferred_holder is not None:
94
+ pulumi.set(__self__, "preferred_holder", preferred_holder)
81
95
  if renew_time is not None:
82
96
  pulumi.set(__self__, "renew_time", renew_time)
97
+ if strategy is not None:
98
+ pulumi.set(__self__, "strategy", strategy)
83
99
 
84
100
  @property
85
101
  @pulumi.getter(name="acquireTime")
@@ -97,7 +113,7 @@ class LeaseSpecPatchArgs:
97
113
  @pulumi.getter(name="holderIdentity")
98
114
  def holder_identity(self) -> Optional[pulumi.Input[str]]:
99
115
  """
100
- holderIdentity contains the identity of the holder of a current lease.
116
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
101
117
  """
102
118
  return pulumi.get(self, "holder_identity")
103
119
 
@@ -109,7 +125,7 @@ class LeaseSpecPatchArgs:
109
125
  @pulumi.getter(name="leaseDurationSeconds")
110
126
  def lease_duration_seconds(self) -> Optional[pulumi.Input[int]]:
111
127
  """
112
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
128
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
113
129
  """
114
130
  return pulumi.get(self, "lease_duration_seconds")
115
131
 
@@ -129,6 +145,18 @@ class LeaseSpecPatchArgs:
129
145
  def lease_transitions(self, value: Optional[pulumi.Input[int]]):
130
146
  pulumi.set(self, "lease_transitions", value)
131
147
 
148
+ @property
149
+ @pulumi.getter(name="preferredHolder")
150
+ def preferred_holder(self) -> Optional[pulumi.Input[str]]:
151
+ """
152
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
153
+ """
154
+ return pulumi.get(self, "preferred_holder")
155
+
156
+ @preferred_holder.setter
157
+ def preferred_holder(self, value: Optional[pulumi.Input[str]]):
158
+ pulumi.set(self, "preferred_holder", value)
159
+
132
160
  @property
133
161
  @pulumi.getter(name="renewTime")
134
162
  def renew_time(self) -> Optional[pulumi.Input[str]]:
@@ -141,6 +169,18 @@ class LeaseSpecPatchArgs:
141
169
  def renew_time(self, value: Optional[pulumi.Input[str]]):
142
170
  pulumi.set(self, "renew_time", value)
143
171
 
172
+ @property
173
+ @pulumi.getter
174
+ def strategy(self) -> Optional[pulumi.Input[str]]:
175
+ """
176
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
177
+ """
178
+ return pulumi.get(self, "strategy")
179
+
180
+ @strategy.setter
181
+ def strategy(self, value: Optional[pulumi.Input[str]]):
182
+ pulumi.set(self, "strategy", value)
183
+
144
184
 
145
185
  if not MYPY:
146
186
  class LeaseSpecArgsDict(TypedDict):
@@ -153,20 +193,28 @@ if not MYPY:
153
193
  """
154
194
  holder_identity: NotRequired[pulumi.Input[str]]
155
195
  """
156
- holderIdentity contains the identity of the holder of a current lease.
196
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
157
197
  """
158
198
  lease_duration_seconds: NotRequired[pulumi.Input[int]]
159
199
  """
160
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
200
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
161
201
  """
162
202
  lease_transitions: NotRequired[pulumi.Input[int]]
163
203
  """
164
204
  leaseTransitions is the number of transitions of a lease between holders.
165
205
  """
206
+ preferred_holder: NotRequired[pulumi.Input[str]]
207
+ """
208
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
209
+ """
166
210
  renew_time: NotRequired[pulumi.Input[str]]
167
211
  """
168
212
  renewTime is a time when the current holder of a lease has last updated the lease.
169
213
  """
214
+ strategy: NotRequired[pulumi.Input[str]]
215
+ """
216
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
217
+ """
170
218
  elif False:
171
219
  LeaseSpecArgsDict: TypeAlias = Mapping[str, Any]
172
220
 
@@ -177,14 +225,18 @@ class LeaseSpecArgs:
177
225
  holder_identity: Optional[pulumi.Input[str]] = None,
178
226
  lease_duration_seconds: Optional[pulumi.Input[int]] = None,
179
227
  lease_transitions: Optional[pulumi.Input[int]] = None,
180
- renew_time: Optional[pulumi.Input[str]] = None):
228
+ preferred_holder: Optional[pulumi.Input[str]] = None,
229
+ renew_time: Optional[pulumi.Input[str]] = None,
230
+ strategy: Optional[pulumi.Input[str]] = None):
181
231
  """
182
232
  LeaseSpec is a specification of a Lease.
183
233
  :param pulumi.Input[str] acquire_time: acquireTime is a time when the current lease was acquired.
184
- :param pulumi.Input[str] holder_identity: holderIdentity contains the identity of the holder of a current lease.
185
- :param pulumi.Input[int] lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
234
+ :param pulumi.Input[str] holder_identity: holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
235
+ :param pulumi.Input[int] lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
186
236
  :param pulumi.Input[int] lease_transitions: leaseTransitions is the number of transitions of a lease between holders.
237
+ :param pulumi.Input[str] preferred_holder: PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
187
238
  :param pulumi.Input[str] renew_time: renewTime is a time when the current holder of a lease has last updated the lease.
239
+ :param pulumi.Input[str] strategy: Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
188
240
  """
189
241
  if acquire_time is not None:
190
242
  pulumi.set(__self__, "acquire_time", acquire_time)
@@ -194,8 +246,12 @@ class LeaseSpecArgs:
194
246
  pulumi.set(__self__, "lease_duration_seconds", lease_duration_seconds)
195
247
  if lease_transitions is not None:
196
248
  pulumi.set(__self__, "lease_transitions", lease_transitions)
249
+ if preferred_holder is not None:
250
+ pulumi.set(__self__, "preferred_holder", preferred_holder)
197
251
  if renew_time is not None:
198
252
  pulumi.set(__self__, "renew_time", renew_time)
253
+ if strategy is not None:
254
+ pulumi.set(__self__, "strategy", strategy)
199
255
 
200
256
  @property
201
257
  @pulumi.getter(name="acquireTime")
@@ -213,7 +269,7 @@ class LeaseSpecArgs:
213
269
  @pulumi.getter(name="holderIdentity")
214
270
  def holder_identity(self) -> Optional[pulumi.Input[str]]:
215
271
  """
216
- holderIdentity contains the identity of the holder of a current lease.
272
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
217
273
  """
218
274
  return pulumi.get(self, "holder_identity")
219
275
 
@@ -225,7 +281,7 @@ class LeaseSpecArgs:
225
281
  @pulumi.getter(name="leaseDurationSeconds")
226
282
  def lease_duration_seconds(self) -> Optional[pulumi.Input[int]]:
227
283
  """
228
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
284
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
229
285
  """
230
286
  return pulumi.get(self, "lease_duration_seconds")
231
287
 
@@ -245,6 +301,18 @@ class LeaseSpecArgs:
245
301
  def lease_transitions(self, value: Optional[pulumi.Input[int]]):
246
302
  pulumi.set(self, "lease_transitions", value)
247
303
 
304
+ @property
305
+ @pulumi.getter(name="preferredHolder")
306
+ def preferred_holder(self) -> Optional[pulumi.Input[str]]:
307
+ """
308
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
309
+ """
310
+ return pulumi.get(self, "preferred_holder")
311
+
312
+ @preferred_holder.setter
313
+ def preferred_holder(self, value: Optional[pulumi.Input[str]]):
314
+ pulumi.set(self, "preferred_holder", value)
315
+
248
316
  @property
249
317
  @pulumi.getter(name="renewTime")
250
318
  def renew_time(self) -> Optional[pulumi.Input[str]]:
@@ -257,6 +325,18 @@ class LeaseSpecArgs:
257
325
  def renew_time(self, value: Optional[pulumi.Input[str]]):
258
326
  pulumi.set(self, "renew_time", value)
259
327
 
328
+ @property
329
+ @pulumi.getter
330
+ def strategy(self) -> Optional[pulumi.Input[str]]:
331
+ """
332
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
333
+ """
334
+ return pulumi.get(self, "strategy")
335
+
336
+ @strategy.setter
337
+ def strategy(self, value: Optional[pulumi.Input[str]]):
338
+ pulumi.set(self, "strategy", value)
339
+
260
340
 
261
341
  if not MYPY:
262
342
  class LeaseArgsDict(TypedDict):
@@ -114,6 +114,8 @@ class LeaseSpec(dict):
114
114
  suggest = "lease_duration_seconds"
115
115
  elif key == "leaseTransitions":
116
116
  suggest = "lease_transitions"
117
+ elif key == "preferredHolder":
118
+ suggest = "preferred_holder"
117
119
  elif key == "renewTime":
118
120
  suggest = "renew_time"
119
121
 
@@ -133,14 +135,18 @@ class LeaseSpec(dict):
133
135
  holder_identity: Optional[str] = None,
134
136
  lease_duration_seconds: Optional[int] = None,
135
137
  lease_transitions: Optional[int] = None,
136
- renew_time: Optional[str] = None):
138
+ preferred_holder: Optional[str] = None,
139
+ renew_time: Optional[str] = None,
140
+ strategy: Optional[str] = None):
137
141
  """
138
142
  LeaseSpec is a specification of a Lease.
139
143
  :param str acquire_time: acquireTime is a time when the current lease was acquired.
140
- :param str holder_identity: holderIdentity contains the identity of the holder of a current lease.
141
- :param int lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
144
+ :param str holder_identity: holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
145
+ :param int lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
142
146
  :param int lease_transitions: leaseTransitions is the number of transitions of a lease between holders.
147
+ :param str preferred_holder: PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
143
148
  :param str renew_time: renewTime is a time when the current holder of a lease has last updated the lease.
149
+ :param str strategy: Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
144
150
  """
145
151
  if acquire_time is not None:
146
152
  pulumi.set(__self__, "acquire_time", acquire_time)
@@ -150,8 +156,12 @@ class LeaseSpec(dict):
150
156
  pulumi.set(__self__, "lease_duration_seconds", lease_duration_seconds)
151
157
  if lease_transitions is not None:
152
158
  pulumi.set(__self__, "lease_transitions", lease_transitions)
159
+ if preferred_holder is not None:
160
+ pulumi.set(__self__, "preferred_holder", preferred_holder)
153
161
  if renew_time is not None:
154
162
  pulumi.set(__self__, "renew_time", renew_time)
163
+ if strategy is not None:
164
+ pulumi.set(__self__, "strategy", strategy)
155
165
 
156
166
  @property
157
167
  @pulumi.getter(name="acquireTime")
@@ -165,7 +175,7 @@ class LeaseSpec(dict):
165
175
  @pulumi.getter(name="holderIdentity")
166
176
  def holder_identity(self) -> Optional[str]:
167
177
  """
168
- holderIdentity contains the identity of the holder of a current lease.
178
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
169
179
  """
170
180
  return pulumi.get(self, "holder_identity")
171
181
 
@@ -173,7 +183,7 @@ class LeaseSpec(dict):
173
183
  @pulumi.getter(name="leaseDurationSeconds")
174
184
  def lease_duration_seconds(self) -> Optional[int]:
175
185
  """
176
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
186
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
177
187
  """
178
188
  return pulumi.get(self, "lease_duration_seconds")
179
189
 
@@ -185,6 +195,14 @@ class LeaseSpec(dict):
185
195
  """
186
196
  return pulumi.get(self, "lease_transitions")
187
197
 
198
+ @property
199
+ @pulumi.getter(name="preferredHolder")
200
+ def preferred_holder(self) -> Optional[str]:
201
+ """
202
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
203
+ """
204
+ return pulumi.get(self, "preferred_holder")
205
+
188
206
  @property
189
207
  @pulumi.getter(name="renewTime")
190
208
  def renew_time(self) -> Optional[str]:
@@ -193,6 +211,14 @@ class LeaseSpec(dict):
193
211
  """
194
212
  return pulumi.get(self, "renew_time")
195
213
 
214
+ @property
215
+ @pulumi.getter
216
+ def strategy(self) -> Optional[str]:
217
+ """
218
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
219
+ """
220
+ return pulumi.get(self, "strategy")
221
+
196
222
 
197
223
  @pulumi.output_type
198
224
  class LeaseSpecPatch(dict):
@@ -210,6 +236,8 @@ class LeaseSpecPatch(dict):
210
236
  suggest = "lease_duration_seconds"
211
237
  elif key == "leaseTransitions":
212
238
  suggest = "lease_transitions"
239
+ elif key == "preferredHolder":
240
+ suggest = "preferred_holder"
213
241
  elif key == "renewTime":
214
242
  suggest = "renew_time"
215
243
 
@@ -229,14 +257,18 @@ class LeaseSpecPatch(dict):
229
257
  holder_identity: Optional[str] = None,
230
258
  lease_duration_seconds: Optional[int] = None,
231
259
  lease_transitions: Optional[int] = None,
232
- renew_time: Optional[str] = None):
260
+ preferred_holder: Optional[str] = None,
261
+ renew_time: Optional[str] = None,
262
+ strategy: Optional[str] = None):
233
263
  """
234
264
  LeaseSpec is a specification of a Lease.
235
265
  :param str acquire_time: acquireTime is a time when the current lease was acquired.
236
- :param str holder_identity: holderIdentity contains the identity of the holder of a current lease.
237
- :param int lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
266
+ :param str holder_identity: holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
267
+ :param int lease_duration_seconds: leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
238
268
  :param int lease_transitions: leaseTransitions is the number of transitions of a lease between holders.
269
+ :param str preferred_holder: PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
239
270
  :param str renew_time: renewTime is a time when the current holder of a lease has last updated the lease.
271
+ :param str strategy: Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
240
272
  """
241
273
  if acquire_time is not None:
242
274
  pulumi.set(__self__, "acquire_time", acquire_time)
@@ -246,8 +278,12 @@ class LeaseSpecPatch(dict):
246
278
  pulumi.set(__self__, "lease_duration_seconds", lease_duration_seconds)
247
279
  if lease_transitions is not None:
248
280
  pulumi.set(__self__, "lease_transitions", lease_transitions)
281
+ if preferred_holder is not None:
282
+ pulumi.set(__self__, "preferred_holder", preferred_holder)
249
283
  if renew_time is not None:
250
284
  pulumi.set(__self__, "renew_time", renew_time)
285
+ if strategy is not None:
286
+ pulumi.set(__self__, "strategy", strategy)
251
287
 
252
288
  @property
253
289
  @pulumi.getter(name="acquireTime")
@@ -261,7 +297,7 @@ class LeaseSpecPatch(dict):
261
297
  @pulumi.getter(name="holderIdentity")
262
298
  def holder_identity(self) -> Optional[str]:
263
299
  """
264
- holderIdentity contains the identity of the holder of a current lease.
300
+ holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.
265
301
  """
266
302
  return pulumi.get(self, "holder_identity")
267
303
 
@@ -269,7 +305,7 @@ class LeaseSpecPatch(dict):
269
305
  @pulumi.getter(name="leaseDurationSeconds")
270
306
  def lease_duration_seconds(self) -> Optional[int]:
271
307
  """
272
- leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.
308
+ leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.
273
309
  """
274
310
  return pulumi.get(self, "lease_duration_seconds")
275
311
 
@@ -281,6 +317,14 @@ class LeaseSpecPatch(dict):
281
317
  """
282
318
  return pulumi.get(self, "lease_transitions")
283
319
 
320
+ @property
321
+ @pulumi.getter(name="preferredHolder")
322
+ def preferred_holder(self) -> Optional[str]:
323
+ """
324
+ PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.
325
+ """
326
+ return pulumi.get(self, "preferred_holder")
327
+
284
328
  @property
285
329
  @pulumi.getter(name="renewTime")
286
330
  def renew_time(self) -> Optional[str]:
@@ -289,4 +333,12 @@ class LeaseSpecPatch(dict):
289
333
  """
290
334
  return pulumi.get(self, "renew_time")
291
335
 
336
+ @property
337
+ @pulumi.getter
338
+ def strategy(self) -> Optional[str]:
339
+ """
340
+ Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
341
+ """
342
+ return pulumi.get(self, "strategy")
343
+
292
344
 
@@ -0,0 +1,214 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumigen. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from ... import _utilities
16
+ from . import outputs
17
+ from ... import meta as _meta
18
+ from ._inputs import *
19
+
20
+ __all__ = ['LeaseCandidateInitArgs', 'LeaseCandidate']
21
+
22
+ @pulumi.input_type
23
+ class LeaseCandidateInitArgs:
24
+ def __init__(__self__, *,
25
+ api_version: Optional[pulumi.Input[str]] = None,
26
+ kind: Optional[pulumi.Input[str]] = None,
27
+ metadata: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']] = None,
28
+ spec: Optional[pulumi.Input['LeaseCandidateSpecArgs']] = None):
29
+ """
30
+ The set of arguments for constructing a LeaseCandidate resource.
31
+ :param pulumi.Input[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
32
+ :param pulumi.Input[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
33
+ :param pulumi.Input['_meta.v1.ObjectMetaArgs'] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
34
+ :param pulumi.Input['LeaseCandidateSpecArgs'] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
35
+ """
36
+ if api_version is not None:
37
+ pulumi.set(__self__, "api_version", 'coordination.k8s.io/v1alpha1')
38
+ if kind is not None:
39
+ pulumi.set(__self__, "kind", 'LeaseCandidate')
40
+ if metadata is not None:
41
+ pulumi.set(__self__, "metadata", metadata)
42
+ if spec is not None:
43
+ pulumi.set(__self__, "spec", spec)
44
+
45
+ @property
46
+ @pulumi.getter(name="apiVersion")
47
+ def api_version(self) -> Optional[pulumi.Input[str]]:
48
+ """
49
+ 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
50
+ """
51
+ return pulumi.get(self, "api_version")
52
+
53
+ @api_version.setter
54
+ def api_version(self, value: Optional[pulumi.Input[str]]):
55
+ pulumi.set(self, "api_version", value)
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def kind(self) -> Optional[pulumi.Input[str]]:
60
+ """
61
+ 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
62
+ """
63
+ return pulumi.get(self, "kind")
64
+
65
+ @kind.setter
66
+ def kind(self, value: Optional[pulumi.Input[str]]):
67
+ pulumi.set(self, "kind", value)
68
+
69
+ @property
70
+ @pulumi.getter
71
+ def metadata(self) -> Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]:
72
+ """
73
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
74
+ """
75
+ return pulumi.get(self, "metadata")
76
+
77
+ @metadata.setter
78
+ def metadata(self, value: Optional[pulumi.Input['_meta.v1.ObjectMetaArgs']]):
79
+ pulumi.set(self, "metadata", value)
80
+
81
+ @property
82
+ @pulumi.getter
83
+ def spec(self) -> Optional[pulumi.Input['LeaseCandidateSpecArgs']]:
84
+ """
85
+ spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
86
+ """
87
+ return pulumi.get(self, "spec")
88
+
89
+ @spec.setter
90
+ def spec(self, value: Optional[pulumi.Input['LeaseCandidateSpecArgs']]):
91
+ pulumi.set(self, "spec", value)
92
+
93
+
94
+ class LeaseCandidate(pulumi.CustomResource):
95
+ @overload
96
+ def __init__(__self__,
97
+ resource_name: str,
98
+ opts: Optional[pulumi.ResourceOptions] = None,
99
+ api_version: Optional[pulumi.Input[str]] = None,
100
+ kind: Optional[pulumi.Input[str]] = None,
101
+ metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None,
102
+ spec: Optional[pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']]] = None,
103
+ __props__=None):
104
+ """
105
+ LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.
106
+
107
+ :param str resource_name: The name of the resource.
108
+ :param pulumi.ResourceOptions opts: Options for the resource.
109
+ :param pulumi.Input[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
110
+ :param pulumi.Input[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
111
+ :param pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']] metadata: More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
112
+ :param pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']] spec: spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
113
+ """
114
+ ...
115
+ @overload
116
+ def __init__(__self__,
117
+ resource_name: str,
118
+ args: Optional[LeaseCandidateInitArgs] = None,
119
+ opts: Optional[pulumi.ResourceOptions] = None):
120
+ """
121
+ LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.
122
+
123
+ :param str resource_name: The name of the resource.
124
+ :param LeaseCandidateInitArgs args: The arguments to use to populate this resource's properties.
125
+ :param pulumi.ResourceOptions opts: Options for the resource.
126
+ """
127
+ ...
128
+ def __init__(__self__, resource_name: str, *args, **kwargs):
129
+ resource_args, opts = _utilities.get_resource_args_opts(LeaseCandidateInitArgs, pulumi.ResourceOptions, *args, **kwargs)
130
+ if resource_args is not None:
131
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
132
+ else:
133
+ __self__._internal_init(resource_name, *args, **kwargs)
134
+
135
+ def _internal_init(__self__,
136
+ resource_name: str,
137
+ opts: Optional[pulumi.ResourceOptions] = None,
138
+ api_version: Optional[pulumi.Input[str]] = None,
139
+ kind: Optional[pulumi.Input[str]] = None,
140
+ metadata: Optional[pulumi.Input[Union['_meta.v1.ObjectMetaArgs', '_meta.v1.ObjectMetaArgsDict']]] = None,
141
+ spec: Optional[pulumi.Input[Union['LeaseCandidateSpecArgs', 'LeaseCandidateSpecArgsDict']]] = None,
142
+ __props__=None):
143
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
144
+ if not isinstance(opts, pulumi.ResourceOptions):
145
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
146
+ if opts.id is None:
147
+ if __props__ is not None:
148
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
149
+ __props__ = LeaseCandidateInitArgs.__new__(LeaseCandidateInitArgs)
150
+
151
+ __props__.__dict__["api_version"] = 'coordination.k8s.io/v1alpha1'
152
+ __props__.__dict__["kind"] = 'LeaseCandidate'
153
+ __props__.__dict__["metadata"] = metadata
154
+ __props__.__dict__["spec"] = spec
155
+ super(LeaseCandidate, __self__).__init__(
156
+ 'kubernetes:coordination.k8s.io/v1alpha1:LeaseCandidate',
157
+ resource_name,
158
+ __props__,
159
+ opts)
160
+
161
+ @staticmethod
162
+ def get(resource_name: str,
163
+ id: pulumi.Input[str],
164
+ opts: Optional[pulumi.ResourceOptions] = None) -> 'LeaseCandidate':
165
+ """
166
+ Get an existing LeaseCandidate resource's state with the given name, id, and optional extra
167
+ properties used to qualify the lookup.
168
+
169
+ :param str resource_name: The unique name of the resulting resource.
170
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
171
+ :param pulumi.ResourceOptions opts: Options for the resource.
172
+ """
173
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
174
+
175
+ __props__ = LeaseCandidateInitArgs.__new__(LeaseCandidateInitArgs)
176
+
177
+ __props__.__dict__["api_version"] = None
178
+ __props__.__dict__["kind"] = None
179
+ __props__.__dict__["metadata"] = None
180
+ __props__.__dict__["spec"] = None
181
+ return LeaseCandidate(resource_name, opts=opts, __props__=__props__)
182
+
183
+ @property
184
+ @pulumi.getter(name="apiVersion")
185
+ def api_version(self) -> pulumi.Output[str]:
186
+ """
187
+ 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
188
+ """
189
+ return pulumi.get(self, "api_version")
190
+
191
+ @property
192
+ @pulumi.getter
193
+ def kind(self) -> pulumi.Output[str]:
194
+ """
195
+ 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
196
+ """
197
+ return pulumi.get(self, "kind")
198
+
199
+ @property
200
+ @pulumi.getter
201
+ def metadata(self) -> pulumi.Output['_meta.v1.outputs.ObjectMeta']:
202
+ """
203
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
204
+ """
205
+ return pulumi.get(self, "metadata")
206
+
207
+ @property
208
+ @pulumi.getter
209
+ def spec(self) -> pulumi.Output['outputs.LeaseCandidateSpec']:
210
+ """
211
+ spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
212
+ """
213
+ return pulumi.get(self, "spec")
214
+