@pulumi/kubernetes 3.10.0 → 3.12.1

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.
Files changed (488) hide show
  1. package/admissionregistration/v1/mutatingWebhookConfiguration.js +10 -10
  2. package/admissionregistration/v1/mutatingWebhookConfiguration.js.map +1 -1
  3. package/admissionregistration/v1/mutatingWebhookConfigurationList.js +10 -10
  4. package/admissionregistration/v1/mutatingWebhookConfigurationList.js.map +1 -1
  5. package/admissionregistration/v1/validatingWebhookConfiguration.js +10 -10
  6. package/admissionregistration/v1/validatingWebhookConfiguration.js.map +1 -1
  7. package/admissionregistration/v1/validatingWebhookConfigurationList.js +10 -10
  8. package/admissionregistration/v1/validatingWebhookConfigurationList.js.map +1 -1
  9. package/admissionregistration/v1beta1/mutatingWebhookConfiguration.js +10 -10
  10. package/admissionregistration/v1beta1/mutatingWebhookConfiguration.js.map +1 -1
  11. package/admissionregistration/v1beta1/mutatingWebhookConfigurationList.js +10 -10
  12. package/admissionregistration/v1beta1/mutatingWebhookConfigurationList.js.map +1 -1
  13. package/admissionregistration/v1beta1/validatingWebhookConfiguration.js +10 -10
  14. package/admissionregistration/v1beta1/validatingWebhookConfiguration.js.map +1 -1
  15. package/admissionregistration/v1beta1/validatingWebhookConfigurationList.js +10 -10
  16. package/admissionregistration/v1beta1/validatingWebhookConfigurationList.js.map +1 -1
  17. package/apiextensions/v1/customResourceDefinition.js +12 -12
  18. package/apiextensions/v1/customResourceDefinition.js.map +1 -1
  19. package/apiextensions/v1/customResourceDefinitionList.js +10 -10
  20. package/apiextensions/v1/customResourceDefinitionList.js.map +1 -1
  21. package/apiextensions/v1beta1/customResourceDefinition.js +12 -12
  22. package/apiextensions/v1beta1/customResourceDefinition.js.map +1 -1
  23. package/apiextensions/v1beta1/customResourceDefinitionList.js +10 -10
  24. package/apiextensions/v1beta1/customResourceDefinitionList.js.map +1 -1
  25. package/apiregistration/v1/apiservice.js +12 -12
  26. package/apiregistration/v1/apiservice.js.map +1 -1
  27. package/apiregistration/v1/apiserviceList.js +10 -10
  28. package/apiregistration/v1/apiserviceList.js.map +1 -1
  29. package/apiregistration/v1beta1/apiservice.js +12 -12
  30. package/apiregistration/v1beta1/apiservice.js.map +1 -1
  31. package/apiregistration/v1beta1/apiserviceList.js +10 -10
  32. package/apiregistration/v1beta1/apiserviceList.js.map +1 -1
  33. package/apps/v1/controllerRevision.js +12 -12
  34. package/apps/v1/controllerRevision.js.map +1 -1
  35. package/apps/v1/controllerRevisionList.js +10 -10
  36. package/apps/v1/controllerRevisionList.js.map +1 -1
  37. package/apps/v1/daemonSet.js +12 -12
  38. package/apps/v1/daemonSet.js.map +1 -1
  39. package/apps/v1/daemonSetList.js +10 -10
  40. package/apps/v1/daemonSetList.js.map +1 -1
  41. package/apps/v1/deployment.d.ts +80 -0
  42. package/apps/v1/deployment.js +92 -12
  43. package/apps/v1/deployment.js.map +1 -1
  44. package/apps/v1/deploymentList.js +10 -10
  45. package/apps/v1/deploymentList.js.map +1 -1
  46. package/apps/v1/replicaSet.js +12 -12
  47. package/apps/v1/replicaSet.js.map +1 -1
  48. package/apps/v1/replicaSetList.js +10 -10
  49. package/apps/v1/replicaSetList.js.map +1 -1
  50. package/apps/v1/statefulSet.d.ts +149 -0
  51. package/apps/v1/statefulSet.js +161 -12
  52. package/apps/v1/statefulSet.js.map +1 -1
  53. package/apps/v1/statefulSetList.js +10 -10
  54. package/apps/v1/statefulSetList.js.map +1 -1
  55. package/apps/v1beta1/controllerRevision.js +12 -12
  56. package/apps/v1beta1/controllerRevision.js.map +1 -1
  57. package/apps/v1beta1/controllerRevisionList.js +10 -10
  58. package/apps/v1beta1/controllerRevisionList.js.map +1 -1
  59. package/apps/v1beta1/deployment.js +12 -12
  60. package/apps/v1beta1/deployment.js.map +1 -1
  61. package/apps/v1beta1/deploymentList.js +10 -10
  62. package/apps/v1beta1/deploymentList.js.map +1 -1
  63. package/apps/v1beta1/statefulSet.js +12 -12
  64. package/apps/v1beta1/statefulSet.js.map +1 -1
  65. package/apps/v1beta1/statefulSetList.js +10 -10
  66. package/apps/v1beta1/statefulSetList.js.map +1 -1
  67. package/apps/v1beta2/controllerRevision.js +12 -12
  68. package/apps/v1beta2/controllerRevision.js.map +1 -1
  69. package/apps/v1beta2/controllerRevisionList.js +10 -10
  70. package/apps/v1beta2/controllerRevisionList.js.map +1 -1
  71. package/apps/v1beta2/daemonSet.js +12 -12
  72. package/apps/v1beta2/daemonSet.js.map +1 -1
  73. package/apps/v1beta2/daemonSetList.js +10 -10
  74. package/apps/v1beta2/daemonSetList.js.map +1 -1
  75. package/apps/v1beta2/deployment.js +12 -12
  76. package/apps/v1beta2/deployment.js.map +1 -1
  77. package/apps/v1beta2/deploymentList.js +10 -10
  78. package/apps/v1beta2/deploymentList.js.map +1 -1
  79. package/apps/v1beta2/replicaSet.js +12 -12
  80. package/apps/v1beta2/replicaSet.js.map +1 -1
  81. package/apps/v1beta2/replicaSetList.js +10 -10
  82. package/apps/v1beta2/replicaSetList.js.map +1 -1
  83. package/apps/v1beta2/statefulSet.js +12 -12
  84. package/apps/v1beta2/statefulSet.js.map +1 -1
  85. package/apps/v1beta2/statefulSetList.js +10 -10
  86. package/apps/v1beta2/statefulSetList.js.map +1 -1
  87. package/auditregistration/v1alpha1/auditSink.js +10 -10
  88. package/auditregistration/v1alpha1/auditSink.js.map +1 -1
  89. package/auditregistration/v1alpha1/auditSinkList.js +10 -10
  90. package/auditregistration/v1alpha1/auditSinkList.js.map +1 -1
  91. package/authentication/v1/tokenRequest.js +12 -12
  92. package/authentication/v1/tokenRequest.js.map +1 -1
  93. package/authentication/v1/tokenReview.js +12 -12
  94. package/authentication/v1/tokenReview.js.map +1 -1
  95. package/authentication/v1beta1/tokenReview.js +12 -12
  96. package/authentication/v1beta1/tokenReview.js.map +1 -1
  97. package/authorization/v1/localSubjectAccessReview.js +12 -12
  98. package/authorization/v1/localSubjectAccessReview.js.map +1 -1
  99. package/authorization/v1/selfSubjectAccessReview.js +12 -12
  100. package/authorization/v1/selfSubjectAccessReview.js.map +1 -1
  101. package/authorization/v1/selfSubjectRulesReview.js +12 -12
  102. package/authorization/v1/selfSubjectRulesReview.js.map +1 -1
  103. package/authorization/v1/subjectAccessReview.js +12 -12
  104. package/authorization/v1/subjectAccessReview.js.map +1 -1
  105. package/authorization/v1beta1/localSubjectAccessReview.js +12 -12
  106. package/authorization/v1beta1/localSubjectAccessReview.js.map +1 -1
  107. package/authorization/v1beta1/selfSubjectAccessReview.js +12 -12
  108. package/authorization/v1beta1/selfSubjectAccessReview.js.map +1 -1
  109. package/authorization/v1beta1/selfSubjectRulesReview.js +12 -12
  110. package/authorization/v1beta1/selfSubjectRulesReview.js.map +1 -1
  111. package/authorization/v1beta1/subjectAccessReview.js +12 -12
  112. package/authorization/v1beta1/subjectAccessReview.js.map +1 -1
  113. package/autoscaling/index.d.ts +2 -1
  114. package/autoscaling/index.js +3 -1
  115. package/autoscaling/index.js.map +1 -1
  116. package/autoscaling/v1/horizontalPodAutoscaler.js +13 -13
  117. package/autoscaling/v1/horizontalPodAutoscaler.js.map +1 -1
  118. package/autoscaling/v1/horizontalPodAutoscalerList.js +10 -10
  119. package/autoscaling/v1/horizontalPodAutoscalerList.js.map +1 -1
  120. package/autoscaling/v2/horizontalPodAutoscaler.d.ts +70 -0
  121. package/autoscaling/v2/horizontalPodAutoscaler.js +68 -0
  122. package/autoscaling/v2/horizontalPodAutoscaler.js.map +1 -0
  123. package/autoscaling/v2/horizontalPodAutoscalerList.d.ts +66 -0
  124. package/autoscaling/v2/horizontalPodAutoscalerList.js +67 -0
  125. package/autoscaling/v2/horizontalPodAutoscalerList.js.map +1 -0
  126. package/autoscaling/v2/index.d.ts +2 -0
  127. package/autoscaling/v2/index.js +37 -0
  128. package/autoscaling/v2/index.js.map +1 -0
  129. package/autoscaling/v2beta1/horizontalPodAutoscaler.js +13 -13
  130. package/autoscaling/v2beta1/horizontalPodAutoscaler.js.map +1 -1
  131. package/autoscaling/v2beta1/horizontalPodAutoscalerList.js +10 -10
  132. package/autoscaling/v2beta1/horizontalPodAutoscalerList.js.map +1 -1
  133. package/autoscaling/v2beta2/horizontalPodAutoscaler.js +13 -13
  134. package/autoscaling/v2beta2/horizontalPodAutoscaler.js.map +1 -1
  135. package/autoscaling/v2beta2/horizontalPodAutoscalerList.js +10 -10
  136. package/autoscaling/v2beta2/horizontalPodAutoscalerList.js.map +1 -1
  137. package/batch/v1/cronJob.js +12 -12
  138. package/batch/v1/cronJob.js.map +1 -1
  139. package/batch/v1/cronJobList.js +10 -10
  140. package/batch/v1/cronJobList.js.map +1 -1
  141. package/batch/v1/job.d.ts +60 -0
  142. package/batch/v1/job.js +72 -12
  143. package/batch/v1/job.js.map +1 -1
  144. package/batch/v1/jobList.js +10 -10
  145. package/batch/v1/jobList.js.map +1 -1
  146. package/batch/v1beta1/cronJob.js +12 -12
  147. package/batch/v1beta1/cronJob.js.map +1 -1
  148. package/batch/v1beta1/cronJobList.js +10 -10
  149. package/batch/v1beta1/cronJobList.js.map +1 -1
  150. package/batch/v2alpha1/cronJob.js +12 -12
  151. package/batch/v2alpha1/cronJob.js.map +1 -1
  152. package/batch/v2alpha1/cronJobList.js +10 -10
  153. package/batch/v2alpha1/cronJobList.js.map +1 -1
  154. package/certificates/v1/certificateSigningRequest.js +12 -12
  155. package/certificates/v1/certificateSigningRequest.js.map +1 -1
  156. package/certificates/v1/certificateSigningRequestList.js +10 -10
  157. package/certificates/v1/certificateSigningRequestList.js.map +1 -1
  158. package/certificates/v1beta1/certificateSigningRequest.js +12 -12
  159. package/certificates/v1beta1/certificateSigningRequest.js.map +1 -1
  160. package/certificates/v1beta1/certificateSigningRequestList.js +10 -10
  161. package/certificates/v1beta1/certificateSigningRequestList.js.map +1 -1
  162. package/coordination/v1/lease.js +10 -10
  163. package/coordination/v1/lease.js.map +1 -1
  164. package/coordination/v1/leaseList.js +10 -10
  165. package/coordination/v1/leaseList.js.map +1 -1
  166. package/coordination/v1beta1/lease.js +10 -10
  167. package/coordination/v1beta1/lease.js.map +1 -1
  168. package/coordination/v1beta1/leaseList.js +10 -10
  169. package/coordination/v1beta1/leaseList.js.map +1 -1
  170. package/core/v1/binding.js +10 -10
  171. package/core/v1/binding.js.map +1 -1
  172. package/core/v1/configMap.js +14 -14
  173. package/core/v1/configMap.js.map +1 -1
  174. package/core/v1/configMapList.js +10 -10
  175. package/core/v1/configMapList.js.map +1 -1
  176. package/core/v1/endpoints.js +10 -10
  177. package/core/v1/endpoints.js.map +1 -1
  178. package/core/v1/endpointsList.js +10 -10
  179. package/core/v1/endpointsList.js.map +1 -1
  180. package/core/v1/event.js +36 -36
  181. package/core/v1/event.js.map +1 -1
  182. package/core/v1/eventList.js +10 -10
  183. package/core/v1/eventList.js.map +1 -1
  184. package/core/v1/limitRange.js +10 -10
  185. package/core/v1/limitRange.js.map +1 -1
  186. package/core/v1/limitRangeList.js +10 -10
  187. package/core/v1/limitRangeList.js.map +1 -1
  188. package/core/v1/namespace.js +12 -12
  189. package/core/v1/namespace.js.map +1 -1
  190. package/core/v1/namespaceList.js +10 -10
  191. package/core/v1/namespaceList.js.map +1 -1
  192. package/core/v1/node.js +12 -12
  193. package/core/v1/node.js.map +1 -1
  194. package/core/v1/nodeList.js +10 -10
  195. package/core/v1/nodeList.js.map +1 -1
  196. package/core/v1/persistentVolume.js +12 -12
  197. package/core/v1/persistentVolume.js.map +1 -1
  198. package/core/v1/persistentVolumeClaim.js +12 -12
  199. package/core/v1/persistentVolumeClaim.js.map +1 -1
  200. package/core/v1/persistentVolumeClaimList.js +10 -10
  201. package/core/v1/persistentVolumeClaimList.js.map +1 -1
  202. package/core/v1/persistentVolumeList.js +10 -10
  203. package/core/v1/persistentVolumeList.js.map +1 -1
  204. package/core/v1/pod.d.ts +42 -0
  205. package/core/v1/pod.js +54 -12
  206. package/core/v1/pod.js.map +1 -1
  207. package/core/v1/podList.js +10 -10
  208. package/core/v1/podList.js.map +1 -1
  209. package/core/v1/podTemplate.js +10 -10
  210. package/core/v1/podTemplate.js.map +1 -1
  211. package/core/v1/podTemplateList.js +10 -10
  212. package/core/v1/podTemplateList.js.map +1 -1
  213. package/core/v1/replicationController.js +12 -12
  214. package/core/v1/replicationController.js.map +1 -1
  215. package/core/v1/replicationControllerList.js +10 -10
  216. package/core/v1/replicationControllerList.js.map +1 -1
  217. package/core/v1/resourceQuota.js +12 -12
  218. package/core/v1/resourceQuota.js.map +1 -1
  219. package/core/v1/resourceQuotaList.js +10 -10
  220. package/core/v1/resourceQuotaList.js.map +1 -1
  221. package/core/v1/secret.d.ts +2 -2
  222. package/core/v1/secret.js +16 -16
  223. package/core/v1/secret.js.map +1 -1
  224. package/core/v1/secretList.js +10 -10
  225. package/core/v1/secretList.js.map +1 -1
  226. package/core/v1/service.d.ts +44 -0
  227. package/core/v1/service.js +56 -12
  228. package/core/v1/service.js.map +1 -1
  229. package/core/v1/serviceAccount.js +14 -14
  230. package/core/v1/serviceAccount.js.map +1 -1
  231. package/core/v1/serviceAccountList.js +10 -10
  232. package/core/v1/serviceAccountList.js.map +1 -1
  233. package/core/v1/serviceList.js +10 -10
  234. package/core/v1/serviceList.js.map +1 -1
  235. package/discovery/v1/endpointSlice.d.ts +10 -0
  236. package/discovery/v1/endpointSlice.js +14 -14
  237. package/discovery/v1/endpointSlice.js.map +1 -1
  238. package/discovery/v1/endpointSliceList.js +10 -10
  239. package/discovery/v1/endpointSliceList.js.map +1 -1
  240. package/discovery/v1beta1/endpointSlice.js +14 -14
  241. package/discovery/v1beta1/endpointSlice.js.map +1 -1
  242. package/discovery/v1beta1/endpointSliceList.js +10 -10
  243. package/discovery/v1beta1/endpointSliceList.js.map +1 -1
  244. package/events/v1/event.js +36 -36
  245. package/events/v1/event.js.map +1 -1
  246. package/events/v1/eventList.js +10 -10
  247. package/events/v1/eventList.js.map +1 -1
  248. package/events/v1beta1/event.js +36 -36
  249. package/events/v1beta1/event.js.map +1 -1
  250. package/events/v1beta1/eventList.js +10 -10
  251. package/events/v1beta1/eventList.js.map +1 -1
  252. package/extensions/v1beta1/daemonSet.js +12 -12
  253. package/extensions/v1beta1/daemonSet.js.map +1 -1
  254. package/extensions/v1beta1/daemonSetList.js +10 -10
  255. package/extensions/v1beta1/daemonSetList.js.map +1 -1
  256. package/extensions/v1beta1/deployment.js +12 -12
  257. package/extensions/v1beta1/deployment.js.map +1 -1
  258. package/extensions/v1beta1/deploymentList.js +10 -10
  259. package/extensions/v1beta1/deploymentList.js.map +1 -1
  260. package/extensions/v1beta1/ingress.js +12 -12
  261. package/extensions/v1beta1/ingress.js.map +1 -1
  262. package/extensions/v1beta1/ingressList.js +10 -10
  263. package/extensions/v1beta1/ingressList.js.map +1 -1
  264. package/extensions/v1beta1/networkPolicy.js +10 -10
  265. package/extensions/v1beta1/networkPolicy.js.map +1 -1
  266. package/extensions/v1beta1/networkPolicyList.js +10 -10
  267. package/extensions/v1beta1/networkPolicyList.js.map +1 -1
  268. package/extensions/v1beta1/podSecurityPolicy.js +10 -10
  269. package/extensions/v1beta1/podSecurityPolicy.js.map +1 -1
  270. package/extensions/v1beta1/podSecurityPolicyList.js +10 -10
  271. package/extensions/v1beta1/podSecurityPolicyList.js.map +1 -1
  272. package/extensions/v1beta1/replicaSet.js +12 -12
  273. package/extensions/v1beta1/replicaSet.js.map +1 -1
  274. package/extensions/v1beta1/replicaSetList.js +10 -10
  275. package/extensions/v1beta1/replicaSetList.js.map +1 -1
  276. package/flowcontrol/index.d.ts +2 -1
  277. package/flowcontrol/index.js +3 -1
  278. package/flowcontrol/index.js.map +1 -1
  279. package/flowcontrol/v1alpha1/flowSchema.js +13 -13
  280. package/flowcontrol/v1alpha1/flowSchema.js.map +1 -1
  281. package/flowcontrol/v1alpha1/flowSchemaList.js +10 -10
  282. package/flowcontrol/v1alpha1/flowSchemaList.js.map +1 -1
  283. package/flowcontrol/v1alpha1/priorityLevelConfiguration.js +13 -13
  284. package/flowcontrol/v1alpha1/priorityLevelConfiguration.js.map +1 -1
  285. package/flowcontrol/v1alpha1/priorityLevelConfigurationList.js +10 -10
  286. package/flowcontrol/v1alpha1/priorityLevelConfigurationList.js.map +1 -1
  287. package/flowcontrol/v1beta1/flowSchema.js +13 -13
  288. package/flowcontrol/v1beta1/flowSchema.js.map +1 -1
  289. package/flowcontrol/v1beta1/flowSchemaList.js +10 -10
  290. package/flowcontrol/v1beta1/flowSchemaList.js.map +1 -1
  291. package/flowcontrol/v1beta1/priorityLevelConfiguration.js +13 -13
  292. package/flowcontrol/v1beta1/priorityLevelConfiguration.js.map +1 -1
  293. package/flowcontrol/v1beta1/priorityLevelConfigurationList.js +10 -10
  294. package/flowcontrol/v1beta1/priorityLevelConfigurationList.js.map +1 -1
  295. package/flowcontrol/v1beta2/flowSchema.d.ts +70 -0
  296. package/flowcontrol/v1beta2/flowSchema.js +68 -0
  297. package/flowcontrol/v1beta2/flowSchema.js.map +1 -0
  298. package/flowcontrol/v1beta2/flowSchemaList.d.ts +66 -0
  299. package/flowcontrol/v1beta2/flowSchemaList.js +67 -0
  300. package/flowcontrol/v1beta2/flowSchemaList.js.map +1 -0
  301. package/flowcontrol/v1beta2/index.d.ts +4 -0
  302. package/flowcontrol/v1beta2/index.js +45 -0
  303. package/flowcontrol/v1beta2/index.js.map +1 -0
  304. package/flowcontrol/v1beta2/priorityLevelConfiguration.d.ts +70 -0
  305. package/flowcontrol/v1beta2/priorityLevelConfiguration.js +68 -0
  306. package/flowcontrol/v1beta2/priorityLevelConfiguration.js.map +1 -0
  307. package/flowcontrol/v1beta2/priorityLevelConfigurationList.d.ts +66 -0
  308. package/flowcontrol/v1beta2/priorityLevelConfigurationList.js +67 -0
  309. package/flowcontrol/v1beta2/priorityLevelConfigurationList.js.map +1 -0
  310. package/helm/v3/release.d.ts +2 -2
  311. package/helm/v3/release.js +71 -74
  312. package/helm/v3/release.js.map +1 -1
  313. package/meta/v1/status.js +18 -18
  314. package/meta/v1/status.js.map +1 -1
  315. package/networking/v1/ingress.d.ts +68 -0
  316. package/networking/v1/ingress.js +80 -12
  317. package/networking/v1/ingress.js.map +1 -1
  318. package/networking/v1/ingressClass.js +10 -10
  319. package/networking/v1/ingressClass.js.map +1 -1
  320. package/networking/v1/ingressClassList.js +10 -10
  321. package/networking/v1/ingressClassList.js.map +1 -1
  322. package/networking/v1/ingressList.js +10 -10
  323. package/networking/v1/ingressList.js.map +1 -1
  324. package/networking/v1/networkPolicy.js +10 -10
  325. package/networking/v1/networkPolicy.js.map +1 -1
  326. package/networking/v1/networkPolicyList.js +10 -10
  327. package/networking/v1/networkPolicyList.js.map +1 -1
  328. package/networking/v1beta1/ingress.js +12 -12
  329. package/networking/v1beta1/ingress.js.map +1 -1
  330. package/networking/v1beta1/ingressClass.js +10 -10
  331. package/networking/v1beta1/ingressClass.js.map +1 -1
  332. package/networking/v1beta1/ingressClassList.js +10 -10
  333. package/networking/v1beta1/ingressClassList.js.map +1 -1
  334. package/networking/v1beta1/ingressList.js +10 -10
  335. package/networking/v1beta1/ingressList.js.map +1 -1
  336. package/node/v1/runtimeClass.js +14 -14
  337. package/node/v1/runtimeClass.js.map +1 -1
  338. package/node/v1/runtimeClassList.js +10 -10
  339. package/node/v1/runtimeClassList.js.map +1 -1
  340. package/node/v1alpha1/runtimeClass.js +10 -10
  341. package/node/v1alpha1/runtimeClass.js.map +1 -1
  342. package/node/v1alpha1/runtimeClassList.js +10 -10
  343. package/node/v1alpha1/runtimeClassList.js.map +1 -1
  344. package/node/v1beta1/runtimeClass.js +14 -14
  345. package/node/v1beta1/runtimeClass.js.map +1 -1
  346. package/node/v1beta1/runtimeClassList.js +10 -10
  347. package/node/v1beta1/runtimeClassList.js.map +1 -1
  348. package/package.json +2 -2
  349. package/package.json.dev +1 -1
  350. package/policy/v1/podDisruptionBudget.js +12 -12
  351. package/policy/v1/podDisruptionBudget.js.map +1 -1
  352. package/policy/v1/podDisruptionBudgetList.js +10 -10
  353. package/policy/v1/podDisruptionBudgetList.js.map +1 -1
  354. package/policy/v1beta1/podDisruptionBudget.js +12 -12
  355. package/policy/v1beta1/podDisruptionBudget.js.map +1 -1
  356. package/policy/v1beta1/podDisruptionBudgetList.js +10 -10
  357. package/policy/v1beta1/podDisruptionBudgetList.js.map +1 -1
  358. package/policy/v1beta1/podSecurityPolicy.js +10 -10
  359. package/policy/v1beta1/podSecurityPolicy.js.map +1 -1
  360. package/policy/v1beta1/podSecurityPolicyList.js +10 -10
  361. package/policy/v1beta1/podSecurityPolicyList.js.map +1 -1
  362. package/provider.d.ts +5 -0
  363. package/provider.js +15 -13
  364. package/provider.js.map +1 -1
  365. package/rbac/v1/clusterRole.js +12 -12
  366. package/rbac/v1/clusterRole.js.map +1 -1
  367. package/rbac/v1/clusterRoleBinding.js +12 -12
  368. package/rbac/v1/clusterRoleBinding.js.map +1 -1
  369. package/rbac/v1/clusterRoleBindingList.js +10 -10
  370. package/rbac/v1/clusterRoleBindingList.js.map +1 -1
  371. package/rbac/v1/clusterRoleList.js +10 -10
  372. package/rbac/v1/clusterRoleList.js.map +1 -1
  373. package/rbac/v1/role.js +10 -10
  374. package/rbac/v1/role.js.map +1 -1
  375. package/rbac/v1/roleBinding.js +12 -12
  376. package/rbac/v1/roleBinding.js.map +1 -1
  377. package/rbac/v1/roleBindingList.js +10 -10
  378. package/rbac/v1/roleBindingList.js.map +1 -1
  379. package/rbac/v1/roleList.js +10 -10
  380. package/rbac/v1/roleList.js.map +1 -1
  381. package/rbac/v1alpha1/clusterRole.d.ts +1 -1
  382. package/rbac/v1alpha1/clusterRole.js +13 -13
  383. package/rbac/v1alpha1/clusterRole.js.map +1 -1
  384. package/rbac/v1alpha1/clusterRoleBinding.d.ts +1 -1
  385. package/rbac/v1alpha1/clusterRoleBinding.js +13 -13
  386. package/rbac/v1alpha1/clusterRoleBinding.js.map +1 -1
  387. package/rbac/v1alpha1/clusterRoleBindingList.d.ts +1 -1
  388. package/rbac/v1alpha1/clusterRoleBindingList.js +11 -11
  389. package/rbac/v1alpha1/clusterRoleBindingList.js.map +1 -1
  390. package/rbac/v1alpha1/clusterRoleList.d.ts +1 -1
  391. package/rbac/v1alpha1/clusterRoleList.js +11 -11
  392. package/rbac/v1alpha1/clusterRoleList.js.map +1 -1
  393. package/rbac/v1alpha1/role.d.ts +1 -1
  394. package/rbac/v1alpha1/role.js +11 -11
  395. package/rbac/v1alpha1/role.js.map +1 -1
  396. package/rbac/v1alpha1/roleBinding.d.ts +1 -1
  397. package/rbac/v1alpha1/roleBinding.js +13 -13
  398. package/rbac/v1alpha1/roleBinding.js.map +1 -1
  399. package/rbac/v1alpha1/roleBindingList.d.ts +1 -1
  400. package/rbac/v1alpha1/roleBindingList.js +11 -11
  401. package/rbac/v1alpha1/roleBindingList.js.map +1 -1
  402. package/rbac/v1alpha1/roleList.d.ts +1 -1
  403. package/rbac/v1alpha1/roleList.js +11 -11
  404. package/rbac/v1alpha1/roleList.js.map +1 -1
  405. package/rbac/v1beta1/clusterRole.js +12 -12
  406. package/rbac/v1beta1/clusterRole.js.map +1 -1
  407. package/rbac/v1beta1/clusterRoleBinding.js +12 -12
  408. package/rbac/v1beta1/clusterRoleBinding.js.map +1 -1
  409. package/rbac/v1beta1/clusterRoleBindingList.js +10 -10
  410. package/rbac/v1beta1/clusterRoleBindingList.js.map +1 -1
  411. package/rbac/v1beta1/clusterRoleList.js +10 -10
  412. package/rbac/v1beta1/clusterRoleList.js.map +1 -1
  413. package/rbac/v1beta1/role.js +10 -10
  414. package/rbac/v1beta1/role.js.map +1 -1
  415. package/rbac/v1beta1/roleBinding.js +12 -12
  416. package/rbac/v1beta1/roleBinding.js.map +1 -1
  417. package/rbac/v1beta1/roleBindingList.js +10 -10
  418. package/rbac/v1beta1/roleBindingList.js.map +1 -1
  419. package/rbac/v1beta1/roleList.js +10 -10
  420. package/rbac/v1beta1/roleList.js.map +1 -1
  421. package/scheduling/v1/priorityClass.js +16 -16
  422. package/scheduling/v1/priorityClass.js.map +1 -1
  423. package/scheduling/v1/priorityClassList.js +10 -10
  424. package/scheduling/v1/priorityClassList.js.map +1 -1
  425. package/scheduling/v1alpha1/priorityClass.d.ts +2 -2
  426. package/scheduling/v1alpha1/priorityClass.js +16 -16
  427. package/scheduling/v1alpha1/priorityClass.js.map +1 -1
  428. package/scheduling/v1alpha1/priorityClassList.js +10 -10
  429. package/scheduling/v1alpha1/priorityClassList.js.map +1 -1
  430. package/scheduling/v1beta1/priorityClass.js +16 -16
  431. package/scheduling/v1beta1/priorityClass.js.map +1 -1
  432. package/scheduling/v1beta1/priorityClassList.js +10 -10
  433. package/scheduling/v1beta1/priorityClassList.js.map +1 -1
  434. package/settings/v1alpha1/podPreset.js +10 -10
  435. package/settings/v1alpha1/podPreset.js.map +1 -1
  436. package/settings/v1alpha1/podPresetList.js +10 -10
  437. package/settings/v1alpha1/podPresetList.js.map +1 -1
  438. package/storage/v1/csidriver.js +10 -10
  439. package/storage/v1/csidriver.js.map +1 -1
  440. package/storage/v1/csidriverList.js +10 -10
  441. package/storage/v1/csidriverList.js.map +1 -1
  442. package/storage/v1/csinode.js +10 -10
  443. package/storage/v1/csinode.js.map +1 -1
  444. package/storage/v1/csinodeList.js +10 -10
  445. package/storage/v1/csinodeList.js.map +1 -1
  446. package/storage/v1/storageClass.js +22 -22
  447. package/storage/v1/storageClass.js.map +1 -1
  448. package/storage/v1/storageClassList.js +10 -10
  449. package/storage/v1/storageClassList.js.map +1 -1
  450. package/storage/v1/volumeAttachment.js +12 -12
  451. package/storage/v1/volumeAttachment.js.map +1 -1
  452. package/storage/v1/volumeAttachmentList.js +10 -10
  453. package/storage/v1/volumeAttachmentList.js.map +1 -1
  454. package/storage/v1alpha1/csistorageCapacity.js +16 -16
  455. package/storage/v1alpha1/csistorageCapacity.js.map +1 -1
  456. package/storage/v1alpha1/csistorageCapacityList.js +10 -10
  457. package/storage/v1alpha1/csistorageCapacityList.js.map +1 -1
  458. package/storage/v1alpha1/volumeAttachment.js +12 -12
  459. package/storage/v1alpha1/volumeAttachment.js.map +1 -1
  460. package/storage/v1alpha1/volumeAttachmentList.js +10 -10
  461. package/storage/v1alpha1/volumeAttachmentList.js.map +1 -1
  462. package/storage/v1beta1/csidriver.js +10 -10
  463. package/storage/v1beta1/csidriver.js.map +1 -1
  464. package/storage/v1beta1/csidriverList.js +10 -10
  465. package/storage/v1beta1/csidriverList.js.map +1 -1
  466. package/storage/v1beta1/csinode.js +10 -10
  467. package/storage/v1beta1/csinode.js.map +1 -1
  468. package/storage/v1beta1/csinodeList.js +10 -10
  469. package/storage/v1beta1/csinodeList.js.map +1 -1
  470. package/storage/v1beta1/csistorageCapacity.js +16 -16
  471. package/storage/v1beta1/csistorageCapacity.js.map +1 -1
  472. package/storage/v1beta1/csistorageCapacityList.js +10 -10
  473. package/storage/v1beta1/csistorageCapacityList.js.map +1 -1
  474. package/storage/v1beta1/storageClass.js +22 -22
  475. package/storage/v1beta1/storageClass.js.map +1 -1
  476. package/storage/v1beta1/storageClassList.js +10 -10
  477. package/storage/v1beta1/storageClassList.js.map +1 -1
  478. package/storage/v1beta1/volumeAttachment.js +12 -12
  479. package/storage/v1beta1/volumeAttachment.js.map +1 -1
  480. package/storage/v1beta1/volumeAttachmentList.js +10 -10
  481. package/storage/v1beta1/volumeAttachmentList.js.map +1 -1
  482. package/types/input.d.ts +1885 -772
  483. package/types/input.js +18 -0
  484. package/types/input.js.map +1 -1
  485. package/types/output.d.ts +2458 -1353
  486. package/yaml/yaml.d.ts +66 -0
  487. package/yaml/yaml.js +18 -0
  488. package/yaml/yaml.js.map +1 -1
package/types/input.d.ts CHANGED
@@ -29,6 +29,10 @@ export interface HelmReleaseSettings {
29
29
  */
30
30
  suppressBetaWarning?: pulumi.Input<boolean>;
31
31
  }
32
+ /**
33
+ * helmReleaseSettingsProvideDefaults sets the appropriate defaults for HelmReleaseSettings
34
+ */
35
+ export declare function helmReleaseSettingsProvideDefaults(val: HelmReleaseSettings): HelmReleaseSettings;
32
36
  /**
33
37
  * Options for tuning the Kubernetes client used by a Provider.
34
38
  */
@@ -42,6 +46,10 @@ export interface KubeClientSettings {
42
46
  */
43
47
  qps?: pulumi.Input<number>;
44
48
  }
49
+ /**
50
+ * kubeClientSettingsProvideDefaults sets the appropriate defaults for KubeClientSettings
51
+ */
52
+ export declare function kubeClientSettingsProvideDefaults(val: KubeClientSettings): KubeClientSettings;
45
53
  export declare namespace admissionregistration {
46
54
  namespace v1 {
47
55
  /**
@@ -1005,6 +1013,10 @@ export declare namespace apiextensions {
1005
1013
  * x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields which are not specified in the validation schema. This affects fields recursively, but switches back to normal pruning behaviour if nested properties or additionalProperties are specified in the schema. This can either be true or undefined. False is forbidden.
1006
1014
  */
1007
1015
  x_kubernetes_preserve_unknown_fields?: pulumi.Input<boolean>;
1016
+ /**
1017
+ * x-kubernetes-validations describes a list of validation rules written in the CEL expression language. This field is an alpha-level. Using this field requires the feature gate `CustomResourceValidationExpressions` to be enabled.
1018
+ */
1019
+ x_kubernetes_validations?: pulumi.Input<pulumi.Input<inputs.apiextensions.v1.ValidationRule>[]>;
1008
1020
  }
1009
1021
  /**
1010
1022
  * ServiceReference holds a reference to Service.legacy.k8s.io
@@ -1027,6 +1039,43 @@ export declare namespace apiextensions {
1027
1039
  */
1028
1040
  port?: pulumi.Input<number>;
1029
1041
  }
1042
+ /**
1043
+ * ValidationRule describes a validation rule written in the CEL expression language.
1044
+ */
1045
+ interface ValidationRule {
1046
+ /**
1047
+ * Message represents the message displayed when validation fails. The message is required if the Rule contains line breaks. The message must not contain line breaks. If unset, the message is "failed rule: {Rule}". e.g. "must be a URL with the host matching spec.host"
1048
+ */
1049
+ message?: pulumi.Input<string>;
1050
+ /**
1051
+ * Rule represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec The Rule is scoped to the location of the x-kubernetes-validations extension in the schema. The `self` variable in the CEL expression is bound to the scoped value. Example: - Rule scoped to the root of a resource with a status subresource: {"rule": "self.status.actual <= self.spec.maxDesired"}
1052
+ *
1053
+ * If the Rule is scoped to an object with properties, the accessible properties of the object are field selectable via `self.field` and field presence can be checked via `has(self.field)`. Null valued fields are treated as absent fields in CEL expressions. If the Rule is scoped to an object with additionalProperties (i.e. a map) the value of the map are accessible via `self[mapKey]`, map containment can be checked via `mapKey in self` and all entries of the map are accessible via CEL macros and functions such as `self.all(...)`. If the Rule is scoped to an array, the elements of the array are accessible via `self[i]` and also by macros and functions. If the Rule is scoped to a scalar, `self` is bound to the scalar value. Examples: - Rule scoped to a map of objects: {"rule": "self.components['Widget'].priority < 10"} - Rule scoped to a list of integers: {"rule": "self.values.all(value, value >= 0 && value < 100)"} - Rule scoped to a string value: {"rule": "self.startsWith('kube')"}
1054
+ *
1055
+ * The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object and from any x-kubernetes-embedded-resource annotated objects. No other metadata properties are accessible.
1056
+ *
1057
+ * Unknown data preserved in custom resources via x-kubernetes-preserve-unknown-fields is not accessible in CEL expressions. This includes: - Unknown field values that are preserved by object schemas with x-kubernetes-preserve-unknown-fields. - Object properties where the property schema is of an "unknown type". An "unknown type" is recursively defined as:
1058
+ * - A schema with no type and x-kubernetes-preserve-unknown-fields set to true
1059
+ * - An array where the items schema is of an "unknown type"
1060
+ * - An object where the additionalProperties schema is of an "unknown type"
1061
+ *
1062
+ * Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:
1063
+ * "true", "false", "null", "in", "as", "break", "const", "continue", "else", "for", "function", "if",
1064
+ * "import", "let", "loop", "package", "namespace", "return".
1065
+ * Examples:
1066
+ * - Rule accessing a property named "namespace": {"rule": "self.__namespace__ > 0"}
1067
+ * - Rule accessing a property named "x-prop": {"rule": "self.x__dash__prop > 0"}
1068
+ * - Rule accessing a property named "redact__d": {"rule": "self.redact__underscores__d > 0"}
1069
+ *
1070
+ * Equality on arrays with x-kubernetes-list-type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:
1071
+ * - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and
1072
+ * non-intersecting elements in `Y` are appended, retaining their partial order.
1073
+ * - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values
1074
+ * are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with
1075
+ * non-intersecting keys are appended, retaining their partial order.
1076
+ */
1077
+ rule: pulumi.Input<string>;
1078
+ }
1030
1079
  /**
1031
1080
  * WebhookClientConfig contains the information to make a TLS connection with the webhook.
1032
1081
  */
@@ -1856,7 +1905,7 @@ export declare namespace apps {
1856
1905
  */
1857
1906
  numberMisscheduled: pulumi.Input<number>;
1858
1907
  /**
1859
- * The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.
1908
+ * numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.
1860
1909
  */
1861
1910
  numberReady: pulumi.Input<number>;
1862
1911
  /**
@@ -1882,6 +1931,10 @@ export declare namespace apps {
1882
1931
  rollingUpdate?: pulumi.Input<inputs.apps.v1.RollingUpdateDaemonSet>;
1883
1932
  /**
1884
1933
  * Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.
1934
+ *
1935
+ * Possible enum values:
1936
+ * - `"OnDelete"` Replace the old daemons only when it's killed
1937
+ * - `"RollingUpdate"` Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.
1885
1938
  */
1886
1939
  type?: pulumi.Input<string>;
1887
1940
  }
@@ -2019,7 +2072,7 @@ export declare namespace apps {
2019
2072
  */
2020
2073
  observedGeneration?: pulumi.Input<number>;
2021
2074
  /**
2022
- * Total number of ready pods targeted by this deployment.
2075
+ * readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.
2023
2076
  */
2024
2077
  readyReplicas?: pulumi.Input<number>;
2025
2078
  /**
@@ -2045,6 +2098,10 @@ export declare namespace apps {
2045
2098
  rollingUpdate?: pulumi.Input<inputs.apps.v1.RollingUpdateDeployment>;
2046
2099
  /**
2047
2100
  * Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.
2101
+ *
2102
+ * Possible enum values:
2103
+ * - `"Recreate"` Kill all existing pods before creating new ones.
2104
+ * - `"RollingUpdate"` Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.
2048
2105
  */
2049
2106
  type?: pulumi.Input<string>;
2050
2107
  }
@@ -2140,7 +2197,7 @@ export declare namespace apps {
2140
2197
  */
2141
2198
  observedGeneration?: pulumi.Input<number>;
2142
2199
  /**
2143
- * The number of ready replicas for this replica set.
2200
+ * readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.
2144
2201
  */
2145
2202
  readyReplicas?: pulumi.Input<number>;
2146
2203
  /**
@@ -2249,6 +2306,19 @@ export declare namespace apps {
2249
2306
  */
2250
2307
  type: pulumi.Input<string>;
2251
2308
  }
2309
+ /**
2310
+ * StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.
2311
+ */
2312
+ interface StatefulSetPersistentVolumeClaimRetentionPolicy {
2313
+ /**
2314
+ * WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.
2315
+ */
2316
+ whenDeleted?: pulumi.Input<string>;
2317
+ /**
2318
+ * WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.
2319
+ */
2320
+ whenScaled?: pulumi.Input<string>;
2321
+ }
2252
2322
  /**
2253
2323
  * A StatefulSetSpec is the specification of a StatefulSet.
2254
2324
  */
@@ -2257,8 +2327,16 @@ export declare namespace apps {
2257
2327
  * Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready) This is an alpha field and requires enabling StatefulSetMinReadySeconds feature gate.
2258
2328
  */
2259
2329
  minReadySeconds?: pulumi.Input<number>;
2330
+ /**
2331
+ * persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down. This requires the StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha. +optional
2332
+ */
2333
+ persistentVolumeClaimRetentionPolicy?: pulumi.Input<inputs.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy>;
2260
2334
  /**
2261
2335
  * podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.
2336
+ *
2337
+ * Possible enum values:
2338
+ * - `"OrderedReady"` will create pods in strictly increasing order on scale up and strictly decreasing order on scale down, progressing only when the previous pod is ready or terminated. At most one pod will be changed at any time.
2339
+ * - `"Parallel"` will create and delete pods as soon as the stateful set replica count is changed, and will not wait for pods to be ready or complete termination.
2262
2340
  */
2263
2341
  podManagementPolicy?: pulumi.Input<string>;
2264
2342
  /**
@@ -2295,9 +2373,9 @@ export declare namespace apps {
2295
2373
  */
2296
2374
  interface StatefulSetStatus {
2297
2375
  /**
2298
- * Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. This is an alpha field and requires enabling StatefulSetMinReadySeconds feature gate. Remove omitempty when graduating to beta
2376
+ * Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset. This is a beta field and enabled/disabled by StatefulSetMinReadySeconds feature gate.
2299
2377
  */
2300
- availableReplicas?: pulumi.Input<number>;
2378
+ availableReplicas: pulumi.Input<number>;
2301
2379
  /**
2302
2380
  * collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.
2303
2381
  */
@@ -2319,7 +2397,7 @@ export declare namespace apps {
2319
2397
  */
2320
2398
  observedGeneration?: pulumi.Input<number>;
2321
2399
  /**
2322
- * readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.
2400
+ * readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.
2323
2401
  */
2324
2402
  readyReplicas?: pulumi.Input<number>;
2325
2403
  /**
@@ -2345,6 +2423,10 @@ export declare namespace apps {
2345
2423
  rollingUpdate?: pulumi.Input<inputs.apps.v1.RollingUpdateStatefulSetStrategy>;
2346
2424
  /**
2347
2425
  * Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.
2426
+ *
2427
+ * Possible enum values:
2428
+ * - `"OnDelete"` triggers the legacy behavior. Version tracking and ordered rolling restarts are disabled. Pods are recreated from the StatefulSetSpec when they are manually deleted. When a scale operation is performed with this strategy,specification version indicated by the StatefulSet's currentRevision.
2429
+ * - `"RollingUpdate"` indicates that update will be applied to all Pods in the StatefulSet with respect to the StatefulSet ordering constraints. When a scale operation is performed with this strategy, new Pods will be created from the specification version indicated by the StatefulSet's updateRevision.
2348
2430
  */
2349
2431
  type?: pulumi.Input<string>;
2350
2432
  }
@@ -3823,7 +3905,7 @@ export declare namespace autoscaling {
3823
3905
  observedGeneration?: pulumi.Input<number>;
3824
3906
  }
3825
3907
  }
3826
- namespace v2beta1 {
3908
+ namespace v2 {
3827
3909
  /**
3828
3910
  * ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
3829
3911
  */
@@ -3837,32 +3919,24 @@ export declare namespace autoscaling {
3837
3919
  */
3838
3920
  name: pulumi.Input<string>;
3839
3921
  /**
3840
- * targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
3841
- */
3842
- targetAverageUtilization?: pulumi.Input<number>;
3843
- /**
3844
- * targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type.
3922
+ * target specifies the target value for the given metric
3845
3923
  */
3846
- targetAverageValue?: pulumi.Input<string>;
3924
+ target: pulumi.Input<inputs.autoscaling.v2.MetricTarget>;
3847
3925
  }
3848
3926
  /**
3849
3927
  * ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
3850
3928
  */
3851
3929
  interface ContainerResourceMetricStatus {
3852
3930
  /**
3853
- * container is the name of the container in the pods of the scaling target
3931
+ * Container is the name of the container in the pods of the scaling target
3854
3932
  */
3855
3933
  container: pulumi.Input<string>;
3856
3934
  /**
3857
- * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.
3858
- */
3859
- currentAverageUtilization?: pulumi.Input<number>;
3860
- /**
3861
- * currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification.
3935
+ * current contains the current value for the given metric
3862
3936
  */
3863
- currentAverageValue: pulumi.Input<string>;
3937
+ current: pulumi.Input<inputs.autoscaling.v2.MetricValueStatus>;
3864
3938
  /**
3865
- * name is the name of the resource in question.
3939
+ * Name is the name of the resource in question.
3866
3940
  */
3867
3941
  name: pulumi.Input<string>;
3868
3942
  }
@@ -3884,46 +3958,64 @@ export declare namespace autoscaling {
3884
3958
  name: pulumi.Input<string>;
3885
3959
  }
3886
3960
  /**
3887
- * ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one "target" type should be set.
3961
+ * ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
3888
3962
  */
3889
3963
  interface ExternalMetricSource {
3890
3964
  /**
3891
- * metricName is the name of the metric in question.
3965
+ * metric identifies the target metric by name and selector
3892
3966
  */
3893
- metricName: pulumi.Input<string>;
3967
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
3894
3968
  /**
3895
- * metricSelector is used to identify a specific time series within a given metric.
3969
+ * target specifies the target value for the given metric
3896
3970
  */
3897
- metricSelector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
3971
+ target: pulumi.Input<inputs.autoscaling.v2.MetricTarget>;
3972
+ }
3973
+ /**
3974
+ * ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
3975
+ */
3976
+ interface ExternalMetricStatus {
3898
3977
  /**
3899
- * targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.
3978
+ * current contains the current value for the given metric
3900
3979
  */
3901
- targetAverageValue?: pulumi.Input<string>;
3980
+ current: pulumi.Input<inputs.autoscaling.v2.MetricValueStatus>;
3902
3981
  /**
3903
- * targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.
3982
+ * metric identifies the target metric by name and selector
3904
3983
  */
3905
- targetValue?: pulumi.Input<string>;
3984
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
3906
3985
  }
3907
3986
  /**
3908
- * ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
3987
+ * HPAScalingPolicy is a single policy which must hold true for a specified past interval.
3909
3988
  */
3910
- interface ExternalMetricStatus {
3989
+ interface HPAScalingPolicy {
3911
3990
  /**
3912
- * currentAverageValue is the current value of metric averaged over autoscaled pods.
3991
+ * PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
3913
3992
  */
3914
- currentAverageValue?: pulumi.Input<string>;
3993
+ periodSeconds: pulumi.Input<number>;
3915
3994
  /**
3916
- * currentValue is the current value of the metric (as a quantity)
3995
+ * Type is used to specify the scaling policy.
3917
3996
  */
3918
- currentValue: pulumi.Input<string>;
3997
+ type: pulumi.Input<string>;
3919
3998
  /**
3920
- * metricName is the name of a metric used for autoscaling in metric system.
3999
+ * Value contains the amount of change which is permitted by the policy. It must be greater than zero
3921
4000
  */
3922
- metricName: pulumi.Input<string>;
4001
+ value: pulumi.Input<number>;
4002
+ }
4003
+ /**
4004
+ * HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.
4005
+ */
4006
+ interface HPAScalingRules {
3923
4007
  /**
3924
- * metricSelector is used to identify a specific time series within a given metric.
4008
+ * policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
3925
4009
  */
3926
- metricSelector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4010
+ policies?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2.HPAScalingPolicy>[]>;
4011
+ /**
4012
+ * selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.
4013
+ */
4014
+ selectPolicy?: pulumi.Input<string>;
4015
+ /**
4016
+ * StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
4017
+ */
4018
+ stabilizationWindowSeconds?: pulumi.Input<number>;
3927
4019
  }
3928
4020
  /**
3929
4021
  * HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
@@ -3932,7 +4024,7 @@ export declare namespace autoscaling {
3932
4024
  /**
3933
4025
  * 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
3934
4026
  */
3935
- apiVersion?: pulumi.Input<"autoscaling/v2beta1">;
4027
+ apiVersion?: pulumi.Input<"autoscaling/v2">;
3936
4028
  /**
3937
4029
  * 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
3938
4030
  */
@@ -3944,11 +4036,27 @@ export declare namespace autoscaling {
3944
4036
  /**
3945
4037
  * spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
3946
4038
  */
3947
- spec?: pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerSpec>;
4039
+ spec?: pulumi.Input<inputs.autoscaling.v2.HorizontalPodAutoscalerSpec>;
3948
4040
  /**
3949
4041
  * status is the current information about the autoscaler.
3950
4042
  */
3951
- status?: pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerStatus>;
4043
+ status?: pulumi.Input<inputs.autoscaling.v2.HorizontalPodAutoscalerStatus>;
4044
+ }
4045
+ /**
4046
+ * HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
4047
+ */
4048
+ interface HorizontalPodAutoscalerBehavior {
4049
+ /**
4050
+ * scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).
4051
+ */
4052
+ scaleDown?: pulumi.Input<inputs.autoscaling.v2.HPAScalingRules>;
4053
+ /**
4054
+ * scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:
4055
+ * * increase no more than 4 pods per 60 seconds
4056
+ * * double the number of pods per 60 seconds
4057
+ * No stabilization is used.
4058
+ */
4059
+ scaleUp?: pulumi.Input<inputs.autoscaling.v2.HPAScalingRules>;
3952
4060
  }
3953
4061
  /**
3954
4062
  * HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
@@ -3979,14 +4087,18 @@ export declare namespace autoscaling {
3979
4087
  * HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
3980
4088
  */
3981
4089
  interface HorizontalPodAutoscalerSpec {
4090
+ /**
4091
+ * behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.
4092
+ */
4093
+ behavior?: pulumi.Input<inputs.autoscaling.v2.HorizontalPodAutoscalerBehavior>;
3982
4094
  /**
3983
4095
  * maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
3984
4096
  */
3985
4097
  maxReplicas: pulumi.Input<number>;
3986
4098
  /**
3987
- * metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.
4099
+ * metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.
3988
4100
  */
3989
- metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.MetricSpec>[]>;
4101
+ metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2.MetricSpec>[]>;
3990
4102
  /**
3991
4103
  * minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.
3992
4104
  */
@@ -3994,7 +4106,7 @@ export declare namespace autoscaling {
3994
4106
  /**
3995
4107
  * scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.
3996
4108
  */
3997
- scaleTargetRef: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4109
+ scaleTargetRef: pulumi.Input<inputs.autoscaling.v2.CrossVersionObjectReference>;
3998
4110
  }
3999
4111
  /**
4000
4112
  * HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
@@ -4003,15 +4115,15 @@ export declare namespace autoscaling {
4003
4115
  /**
4004
4116
  * conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
4005
4117
  */
4006
- conditions: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerCondition>[]>;
4118
+ conditions?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2.HorizontalPodAutoscalerCondition>[]>;
4007
4119
  /**
4008
4120
  * currentMetrics is the last read state of the metrics used by this autoscaler.
4009
4121
  */
4010
- currentMetrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.MetricStatus>[]>;
4122
+ currentMetrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2.MetricStatus>[]>;
4011
4123
  /**
4012
4124
  * currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
4013
4125
  */
4014
- currentReplicas: pulumi.Input<number>;
4126
+ currentReplicas?: pulumi.Input<number>;
4015
4127
  /**
4016
4128
  * desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
4017
4129
  */
@@ -4025,30 +4137,43 @@ export declare namespace autoscaling {
4025
4137
  */
4026
4138
  observedGeneration?: pulumi.Input<number>;
4027
4139
  }
4140
+ /**
4141
+ * MetricIdentifier defines the name and optionally selector for a metric
4142
+ */
4143
+ interface MetricIdentifier {
4144
+ /**
4145
+ * name is the name of the given metric
4146
+ */
4147
+ name: pulumi.Input<string>;
4148
+ /**
4149
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4150
+ */
4151
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4152
+ }
4028
4153
  /**
4029
4154
  * MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
4030
4155
  */
4031
4156
  interface MetricSpec {
4032
4157
  /**
4033
- * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
4158
+ * containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
4034
4159
  */
4035
- containerResource?: pulumi.Input<inputs.autoscaling.v2beta1.ContainerResourceMetricSource>;
4160
+ containerResource?: pulumi.Input<inputs.autoscaling.v2.ContainerResourceMetricSource>;
4036
4161
  /**
4037
4162
  * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4038
4163
  */
4039
- external?: pulumi.Input<inputs.autoscaling.v2beta1.ExternalMetricSource>;
4164
+ external?: pulumi.Input<inputs.autoscaling.v2.ExternalMetricSource>;
4040
4165
  /**
4041
4166
  * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
4042
4167
  */
4043
- object?: pulumi.Input<inputs.autoscaling.v2beta1.ObjectMetricSource>;
4168
+ object?: pulumi.Input<inputs.autoscaling.v2.ObjectMetricSource>;
4044
4169
  /**
4045
4170
  * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4046
4171
  */
4047
- pods?: pulumi.Input<inputs.autoscaling.v2beta1.PodsMetricSource>;
4172
+ pods?: pulumi.Input<inputs.autoscaling.v2.PodsMetricSource>;
4048
4173
  /**
4049
4174
  * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4050
4175
  */
4051
- resource?: pulumi.Input<inputs.autoscaling.v2beta1.ResourceMetricSource>;
4176
+ resource?: pulumi.Input<inputs.autoscaling.v2.ResourceMetricSource>;
4052
4177
  /**
4053
4178
  * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
4054
4179
  */
@@ -4061,111 +4186,125 @@ export declare namespace autoscaling {
4061
4186
  /**
4062
4187
  * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4063
4188
  */
4064
- containerResource?: pulumi.Input<inputs.autoscaling.v2beta1.ContainerResourceMetricStatus>;
4189
+ containerResource?: pulumi.Input<inputs.autoscaling.v2.ContainerResourceMetricStatus>;
4065
4190
  /**
4066
4191
  * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4067
4192
  */
4068
- external?: pulumi.Input<inputs.autoscaling.v2beta1.ExternalMetricStatus>;
4193
+ external?: pulumi.Input<inputs.autoscaling.v2.ExternalMetricStatus>;
4069
4194
  /**
4070
4195
  * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
4071
4196
  */
4072
- object?: pulumi.Input<inputs.autoscaling.v2beta1.ObjectMetricStatus>;
4197
+ object?: pulumi.Input<inputs.autoscaling.v2.ObjectMetricStatus>;
4073
4198
  /**
4074
4199
  * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4075
4200
  */
4076
- pods?: pulumi.Input<inputs.autoscaling.v2beta1.PodsMetricStatus>;
4201
+ pods?: pulumi.Input<inputs.autoscaling.v2.PodsMetricStatus>;
4077
4202
  /**
4078
4203
  * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4079
4204
  */
4080
- resource?: pulumi.Input<inputs.autoscaling.v2beta1.ResourceMetricStatus>;
4205
+ resource?: pulumi.Input<inputs.autoscaling.v2.ResourceMetricStatus>;
4081
4206
  /**
4082
4207
  * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
4083
4208
  */
4084
4209
  type: pulumi.Input<string>;
4085
4210
  }
4086
4211
  /**
4087
- * ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4212
+ * MetricTarget defines the target value, average value, or average utilization of a specific metric
4088
4213
  */
4089
- interface ObjectMetricSource {
4214
+ interface MetricTarget {
4215
+ /**
4216
+ * averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type
4217
+ */
4218
+ averageUtilization?: pulumi.Input<number>;
4090
4219
  /**
4091
4220
  * averageValue is the target value of the average of the metric across all relevant pods (as a quantity)
4092
4221
  */
4093
4222
  averageValue?: pulumi.Input<string>;
4094
4223
  /**
4095
- * metricName is the name of the metric in question.
4224
+ * type represents whether the metric type is Utilization, Value, or AverageValue
4096
4225
  */
4097
- metricName: pulumi.Input<string>;
4226
+ type: pulumi.Input<string>;
4098
4227
  /**
4099
- * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.
4228
+ * value is the target value of the metric (as a quantity).
4100
4229
  */
4101
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4230
+ value?: pulumi.Input<string>;
4231
+ }
4232
+ /**
4233
+ * MetricValueStatus holds the current value for a metric
4234
+ */
4235
+ interface MetricValueStatus {
4102
4236
  /**
4103
- * target is the described Kubernetes object.
4237
+ * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4104
4238
  */
4105
- target: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4239
+ averageUtilization?: pulumi.Input<number>;
4106
4240
  /**
4107
- * targetValue is the target value of the metric (as a quantity).
4241
+ * averageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4108
4242
  */
4109
- targetValue: pulumi.Input<string>;
4243
+ averageValue?: pulumi.Input<string>;
4244
+ /**
4245
+ * value is the current value of the metric (as a quantity).
4246
+ */
4247
+ value?: pulumi.Input<string>;
4110
4248
  }
4111
4249
  /**
4112
- * ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4250
+ * ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4113
4251
  */
4114
- interface ObjectMetricStatus {
4252
+ interface ObjectMetricSource {
4115
4253
  /**
4116
- * averageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4254
+ * describedObject specifies the descriptions of a object,such as kind,name apiVersion
4117
4255
  */
4118
- averageValue?: pulumi.Input<string>;
4256
+ describedObject: pulumi.Input<inputs.autoscaling.v2.CrossVersionObjectReference>;
4119
4257
  /**
4120
- * currentValue is the current value of the metric (as a quantity).
4258
+ * metric identifies the target metric by name and selector
4121
4259
  */
4122
- currentValue: pulumi.Input<string>;
4260
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
4123
4261
  /**
4124
- * metricName is the name of the metric in question.
4262
+ * target specifies the target value for the given metric
4125
4263
  */
4126
- metricName: pulumi.Input<string>;
4264
+ target: pulumi.Input<inputs.autoscaling.v2.MetricTarget>;
4265
+ }
4266
+ /**
4267
+ * ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4268
+ */
4269
+ interface ObjectMetricStatus {
4127
4270
  /**
4128
- * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4271
+ * current contains the current value for the given metric
4129
4272
  */
4130
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4273
+ current: pulumi.Input<inputs.autoscaling.v2.MetricValueStatus>;
4131
4274
  /**
4132
- * target is the described Kubernetes object.
4275
+ * DescribedObject specifies the descriptions of a object,such as kind,name apiVersion
4133
4276
  */
4134
- target: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4277
+ describedObject: pulumi.Input<inputs.autoscaling.v2.CrossVersionObjectReference>;
4278
+ /**
4279
+ * metric identifies the target metric by name and selector
4280
+ */
4281
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
4135
4282
  }
4136
4283
  /**
4137
4284
  * PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4138
4285
  */
4139
4286
  interface PodsMetricSource {
4140
4287
  /**
4141
- * metricName is the name of the metric in question
4142
- */
4143
- metricName: pulumi.Input<string>;
4144
- /**
4145
- * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.
4288
+ * metric identifies the target metric by name and selector
4146
4289
  */
4147
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4290
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
4148
4291
  /**
4149
- * targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)
4292
+ * target specifies the target value for the given metric
4150
4293
  */
4151
- targetAverageValue: pulumi.Input<string>;
4294
+ target: pulumi.Input<inputs.autoscaling.v2.MetricTarget>;
4152
4295
  }
4153
4296
  /**
4154
4297
  * PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
4155
4298
  */
4156
4299
  interface PodsMetricStatus {
4157
4300
  /**
4158
- * currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4159
- */
4160
- currentAverageValue: pulumi.Input<string>;
4161
- /**
4162
- * metricName is the name of the metric in question
4301
+ * current contains the current value for the given metric
4163
4302
  */
4164
- metricName: pulumi.Input<string>;
4303
+ current: pulumi.Input<inputs.autoscaling.v2.MetricValueStatus>;
4165
4304
  /**
4166
- * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4305
+ * metric identifies the target metric by name and selector
4167
4306
  */
4168
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4307
+ metric: pulumi.Input<inputs.autoscaling.v2.MetricIdentifier>;
4169
4308
  }
4170
4309
  /**
4171
4310
  * ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
@@ -4176,33 +4315,25 @@ export declare namespace autoscaling {
4176
4315
  */
4177
4316
  name: pulumi.Input<string>;
4178
4317
  /**
4179
- * targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4180
- */
4181
- targetAverageUtilization?: pulumi.Input<number>;
4182
- /**
4183
- * targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type.
4318
+ * target specifies the target value for the given metric
4184
4319
  */
4185
- targetAverageValue?: pulumi.Input<string>;
4320
+ target: pulumi.Input<inputs.autoscaling.v2.MetricTarget>;
4186
4321
  }
4187
4322
  /**
4188
4323
  * ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4189
4324
  */
4190
4325
  interface ResourceMetricStatus {
4191
4326
  /**
4192
- * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.
4193
- */
4194
- currentAverageUtilization?: pulumi.Input<number>;
4195
- /**
4196
- * currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification.
4327
+ * current contains the current value for the given metric
4197
4328
  */
4198
- currentAverageValue: pulumi.Input<string>;
4329
+ current: pulumi.Input<inputs.autoscaling.v2.MetricValueStatus>;
4199
4330
  /**
4200
- * name is the name of the resource in question.
4331
+ * Name is the name of the resource in question.
4201
4332
  */
4202
4333
  name: pulumi.Input<string>;
4203
4334
  }
4204
4335
  }
4205
- namespace v2beta2 {
4336
+ namespace v2beta1 {
4206
4337
  /**
4207
4338
  * ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
4208
4339
  */
@@ -4216,24 +4347,32 @@ export declare namespace autoscaling {
4216
4347
  */
4217
4348
  name: pulumi.Input<string>;
4218
4349
  /**
4219
- * target specifies the target value for the given metric
4350
+ * targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4220
4351
  */
4221
- target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4352
+ targetAverageUtilization?: pulumi.Input<number>;
4353
+ /**
4354
+ * targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type.
4355
+ */
4356
+ targetAverageValue?: pulumi.Input<string>;
4222
4357
  }
4223
4358
  /**
4224
4359
  * ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4225
4360
  */
4226
4361
  interface ContainerResourceMetricStatus {
4227
4362
  /**
4228
- * Container is the name of the container in the pods of the scaling target
4363
+ * container is the name of the container in the pods of the scaling target
4229
4364
  */
4230
4365
  container: pulumi.Input<string>;
4231
4366
  /**
4232
- * current contains the current value for the given metric
4367
+ * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.
4233
4368
  */
4234
- current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4369
+ currentAverageUtilization?: pulumi.Input<number>;
4235
4370
  /**
4236
- * Name is the name of the resource in question.
4371
+ * currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification.
4372
+ */
4373
+ currentAverageValue: pulumi.Input<string>;
4374
+ /**
4375
+ * name is the name of the resource in question.
4237
4376
  */
4238
4377
  name: pulumi.Input<string>;
4239
4378
  }
@@ -4255,64 +4394,46 @@ export declare namespace autoscaling {
4255
4394
  name: pulumi.Input<string>;
4256
4395
  }
4257
4396
  /**
4258
- * ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4397
+ * ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one "target" type should be set.
4259
4398
  */
4260
4399
  interface ExternalMetricSource {
4261
4400
  /**
4262
- * metric identifies the target metric by name and selector
4401
+ * metricName is the name of the metric in question.
4263
4402
  */
4264
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4403
+ metricName: pulumi.Input<string>;
4265
4404
  /**
4266
- * target specifies the target value for the given metric
4405
+ * metricSelector is used to identify a specific time series within a given metric.
4267
4406
  */
4268
- target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4269
- }
4270
- /**
4271
- * ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
4272
- */
4273
- interface ExternalMetricStatus {
4407
+ metricSelector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4274
4408
  /**
4275
- * current contains the current value for the given metric
4409
+ * targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.
4276
4410
  */
4277
- current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4411
+ targetAverageValue?: pulumi.Input<string>;
4278
4412
  /**
4279
- * metric identifies the target metric by name and selector
4413
+ * targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.
4280
4414
  */
4281
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4415
+ targetValue?: pulumi.Input<string>;
4282
4416
  }
4283
4417
  /**
4284
- * HPAScalingPolicy is a single policy which must hold true for a specified past interval.
4418
+ * ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
4285
4419
  */
4286
- interface HPAScalingPolicy {
4287
- /**
4288
- * PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
4289
- */
4290
- periodSeconds: pulumi.Input<number>;
4291
- /**
4292
- * Type is used to specify the scaling policy.
4293
- */
4294
- type: pulumi.Input<string>;
4420
+ interface ExternalMetricStatus {
4295
4421
  /**
4296
- * Value contains the amount of change which is permitted by the policy. It must be greater than zero
4422
+ * currentAverageValue is the current value of metric averaged over autoscaled pods.
4297
4423
  */
4298
- value: pulumi.Input<number>;
4299
- }
4300
- /**
4301
- * HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.
4302
- */
4303
- interface HPAScalingRules {
4424
+ currentAverageValue?: pulumi.Input<string>;
4304
4425
  /**
4305
- * policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
4426
+ * currentValue is the current value of the metric (as a quantity)
4306
4427
  */
4307
- policies?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingPolicy>[]>;
4428
+ currentValue: pulumi.Input<string>;
4308
4429
  /**
4309
- * selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.
4430
+ * metricName is the name of a metric used for autoscaling in metric system.
4310
4431
  */
4311
- selectPolicy?: pulumi.Input<string>;
4432
+ metricName: pulumi.Input<string>;
4312
4433
  /**
4313
- * StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
4434
+ * metricSelector is used to identify a specific time series within a given metric.
4314
4435
  */
4315
- stabilizationWindowSeconds?: pulumi.Input<number>;
4436
+ metricSelector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4316
4437
  }
4317
4438
  /**
4318
4439
  * HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
@@ -4321,7 +4442,7 @@ export declare namespace autoscaling {
4321
4442
  /**
4322
4443
  * 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
4323
4444
  */
4324
- apiVersion?: pulumi.Input<"autoscaling/v2beta2">;
4445
+ apiVersion?: pulumi.Input<"autoscaling/v2beta1">;
4325
4446
  /**
4326
4447
  * 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
4327
4448
  */
@@ -4333,27 +4454,11 @@ export declare namespace autoscaling {
4333
4454
  /**
4334
4455
  * spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
4335
4456
  */
4336
- spec?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerSpec>;
4457
+ spec?: pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerSpec>;
4337
4458
  /**
4338
4459
  * status is the current information about the autoscaler.
4339
4460
  */
4340
- status?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerStatus>;
4341
- }
4342
- /**
4343
- * HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
4344
- */
4345
- interface HorizontalPodAutoscalerBehavior {
4346
- /**
4347
- * scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).
4348
- */
4349
- scaleDown?: pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingRules>;
4350
- /**
4351
- * scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:
4352
- * * increase no more than 4 pods per 60 seconds
4353
- * * double the number of pods per 60 seconds
4354
- * No stabilization is used.
4355
- */
4356
- scaleUp?: pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingRules>;
4461
+ status?: pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerStatus>;
4357
4462
  }
4358
4463
  /**
4359
4464
  * HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
@@ -4384,18 +4489,14 @@ export declare namespace autoscaling {
4384
4489
  * HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
4385
4490
  */
4386
4491
  interface HorizontalPodAutoscalerSpec {
4387
- /**
4388
- * behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.
4389
- */
4390
- behavior?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior>;
4391
4492
  /**
4392
4493
  * maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
4393
4494
  */
4394
4495
  maxReplicas: pulumi.Input<number>;
4395
4496
  /**
4396
- * metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.
4497
+ * metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond.
4397
4498
  */
4398
- metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.MetricSpec>[]>;
4499
+ metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.MetricSpec>[]>;
4399
4500
  /**
4400
4501
  * minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.
4401
4502
  */
@@ -4403,7 +4504,7 @@ export declare namespace autoscaling {
4403
4504
  /**
4404
4505
  * scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.
4405
4506
  */
4406
- scaleTargetRef: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4507
+ scaleTargetRef: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4407
4508
  }
4408
4509
  /**
4409
4510
  * HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
@@ -4412,11 +4513,11 @@ export declare namespace autoscaling {
4412
4513
  /**
4413
4514
  * conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
4414
4515
  */
4415
- conditions: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerCondition>[]>;
4516
+ conditions?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.HorizontalPodAutoscalerCondition>[]>;
4416
4517
  /**
4417
4518
  * currentMetrics is the last read state of the metrics used by this autoscaler.
4418
4519
  */
4419
- currentMetrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.MetricStatus>[]>;
4520
+ currentMetrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta1.MetricStatus>[]>;
4420
4521
  /**
4421
4522
  * currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
4422
4523
  */
@@ -4434,19 +4535,6 @@ export declare namespace autoscaling {
4434
4535
  */
4435
4536
  observedGeneration?: pulumi.Input<number>;
4436
4537
  }
4437
- /**
4438
- * MetricIdentifier defines the name and optionally selector for a metric
4439
- */
4440
- interface MetricIdentifier {
4441
- /**
4442
- * name is the name of the given metric
4443
- */
4444
- name: pulumi.Input<string>;
4445
- /**
4446
- * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4447
- */
4448
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4449
- }
4450
4538
  /**
4451
4539
  * MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
4452
4540
  */
@@ -4454,23 +4542,23 @@ export declare namespace autoscaling {
4454
4542
  /**
4455
4543
  * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
4456
4544
  */
4457
- containerResource?: pulumi.Input<inputs.autoscaling.v2beta2.ContainerResourceMetricSource>;
4545
+ containerResource?: pulumi.Input<inputs.autoscaling.v2beta1.ContainerResourceMetricSource>;
4458
4546
  /**
4459
4547
  * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4460
4548
  */
4461
- external?: pulumi.Input<inputs.autoscaling.v2beta2.ExternalMetricSource>;
4549
+ external?: pulumi.Input<inputs.autoscaling.v2beta1.ExternalMetricSource>;
4462
4550
  /**
4463
4551
  * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
4464
4552
  */
4465
- object?: pulumi.Input<inputs.autoscaling.v2beta2.ObjectMetricSource>;
4553
+ object?: pulumi.Input<inputs.autoscaling.v2beta1.ObjectMetricSource>;
4466
4554
  /**
4467
4555
  * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4468
4556
  */
4469
- pods?: pulumi.Input<inputs.autoscaling.v2beta2.PodsMetricSource>;
4557
+ pods?: pulumi.Input<inputs.autoscaling.v2beta1.PodsMetricSource>;
4470
4558
  /**
4471
4559
  * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4472
4560
  */
4473
- resource?: pulumi.Input<inputs.autoscaling.v2beta2.ResourceMetricSource>;
4561
+ resource?: pulumi.Input<inputs.autoscaling.v2beta1.ResourceMetricSource>;
4474
4562
  /**
4475
4563
  * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
4476
4564
  */
@@ -4483,119 +4571,111 @@ export declare namespace autoscaling {
4483
4571
  /**
4484
4572
  * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4485
4573
  */
4486
- containerResource?: pulumi.Input<inputs.autoscaling.v2beta2.ContainerResourceMetricStatus>;
4574
+ containerResource?: pulumi.Input<inputs.autoscaling.v2beta1.ContainerResourceMetricStatus>;
4487
4575
  /**
4488
4576
  * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4489
4577
  */
4490
- external?: pulumi.Input<inputs.autoscaling.v2beta2.ExternalMetricStatus>;
4578
+ external?: pulumi.Input<inputs.autoscaling.v2beta1.ExternalMetricStatus>;
4491
4579
  /**
4492
4580
  * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
4493
4581
  */
4494
- object?: pulumi.Input<inputs.autoscaling.v2beta2.ObjectMetricStatus>;
4582
+ object?: pulumi.Input<inputs.autoscaling.v2beta1.ObjectMetricStatus>;
4495
4583
  /**
4496
4584
  * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4497
4585
  */
4498
- pods?: pulumi.Input<inputs.autoscaling.v2beta2.PodsMetricStatus>;
4586
+ pods?: pulumi.Input<inputs.autoscaling.v2beta1.PodsMetricStatus>;
4499
4587
  /**
4500
4588
  * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4501
4589
  */
4502
- resource?: pulumi.Input<inputs.autoscaling.v2beta2.ResourceMetricStatus>;
4590
+ resource?: pulumi.Input<inputs.autoscaling.v2beta1.ResourceMetricStatus>;
4503
4591
  /**
4504
4592
  * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
4505
4593
  */
4506
4594
  type: pulumi.Input<string>;
4507
4595
  }
4508
4596
  /**
4509
- * MetricTarget defines the target value, average value, or average utilization of a specific metric
4597
+ * ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4510
4598
  */
4511
- interface MetricTarget {
4512
- /**
4513
- * averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type
4514
- */
4515
- averageUtilization?: pulumi.Input<number>;
4599
+ interface ObjectMetricSource {
4516
4600
  /**
4517
4601
  * averageValue is the target value of the average of the metric across all relevant pods (as a quantity)
4518
4602
  */
4519
4603
  averageValue?: pulumi.Input<string>;
4520
4604
  /**
4521
- * type represents whether the metric type is Utilization, Value, or AverageValue
4522
- */
4523
- type: pulumi.Input<string>;
4524
- /**
4525
- * value is the target value of the metric (as a quantity).
4605
+ * metricName is the name of the metric in question.
4526
4606
  */
4527
- value?: pulumi.Input<string>;
4528
- }
4529
- /**
4530
- * MetricValueStatus holds the current value for a metric
4531
- */
4532
- interface MetricValueStatus {
4607
+ metricName: pulumi.Input<string>;
4533
4608
  /**
4534
- * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4609
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.
4535
4610
  */
4536
- averageUtilization?: pulumi.Input<number>;
4611
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4537
4612
  /**
4538
- * averageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4613
+ * target is the described Kubernetes object.
4539
4614
  */
4540
- averageValue?: pulumi.Input<string>;
4615
+ target: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4541
4616
  /**
4542
- * value is the current value of the metric (as a quantity).
4617
+ * targetValue is the target value of the metric (as a quantity).
4543
4618
  */
4544
- value?: pulumi.Input<string>;
4619
+ targetValue: pulumi.Input<string>;
4545
4620
  }
4546
4621
  /**
4547
- * ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4622
+ * ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4548
4623
  */
4549
- interface ObjectMetricSource {
4550
- describedObject: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4624
+ interface ObjectMetricStatus {
4551
4625
  /**
4552
- * metric identifies the target metric by name and selector
4626
+ * averageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4553
4627
  */
4554
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4628
+ averageValue?: pulumi.Input<string>;
4555
4629
  /**
4556
- * target specifies the target value for the given metric
4630
+ * currentValue is the current value of the metric (as a quantity).
4557
4631
  */
4558
- target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4559
- }
4560
- /**
4561
- * ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4562
- */
4563
- interface ObjectMetricStatus {
4632
+ currentValue: pulumi.Input<string>;
4564
4633
  /**
4565
- * current contains the current value for the given metric
4634
+ * metricName is the name of the metric in question.
4566
4635
  */
4567
- current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4568
- describedObject: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4636
+ metricName: pulumi.Input<string>;
4569
4637
  /**
4570
- * metric identifies the target metric by name and selector
4638
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4571
4639
  */
4572
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4640
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4641
+ /**
4642
+ * target is the described Kubernetes object.
4643
+ */
4644
+ target: pulumi.Input<inputs.autoscaling.v2beta1.CrossVersionObjectReference>;
4573
4645
  }
4574
4646
  /**
4575
4647
  * PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4576
4648
  */
4577
4649
  interface PodsMetricSource {
4578
4650
  /**
4579
- * metric identifies the target metric by name and selector
4651
+ * metricName is the name of the metric in question
4580
4652
  */
4581
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4653
+ metricName: pulumi.Input<string>;
4582
4654
  /**
4583
- * target specifies the target value for the given metric
4655
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.
4584
4656
  */
4585
- target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4657
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4658
+ /**
4659
+ * targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)
4660
+ */
4661
+ targetAverageValue: pulumi.Input<string>;
4586
4662
  }
4587
4663
  /**
4588
4664
  * PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
4589
4665
  */
4590
4666
  interface PodsMetricStatus {
4591
4667
  /**
4592
- * current contains the current value for the given metric
4668
+ * currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4593
4669
  */
4594
- current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4670
+ currentAverageValue: pulumi.Input<string>;
4595
4671
  /**
4596
- * metric identifies the target metric by name and selector
4672
+ * metricName is the name of the metric in question
4597
4673
  */
4598
- metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4674
+ metricName: pulumi.Input<string>;
4675
+ /**
4676
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4677
+ */
4678
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4599
4679
  }
4600
4680
  /**
4601
4681
  * ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
@@ -4606,389 +4686,457 @@ export declare namespace autoscaling {
4606
4686
  */
4607
4687
  name: pulumi.Input<string>;
4608
4688
  /**
4609
- * target specifies the target value for the given metric
4689
+ * targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4610
4690
  */
4611
- target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4691
+ targetAverageUtilization?: pulumi.Input<number>;
4692
+ /**
4693
+ * targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type.
4694
+ */
4695
+ targetAverageValue?: pulumi.Input<string>;
4612
4696
  }
4613
4697
  /**
4614
4698
  * ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4615
4699
  */
4616
4700
  interface ResourceMetricStatus {
4617
4701
  /**
4618
- * current contains the current value for the given metric
4702
+ * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. It will only be present if `targetAverageValue` was set in the corresponding metric specification.
4619
4703
  */
4620
- current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4704
+ currentAverageUtilization?: pulumi.Input<number>;
4621
4705
  /**
4622
- * Name is the name of the resource in question.
4706
+ * currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the "pods" metric source type. It will always be set, regardless of the corresponding metric specification.
4707
+ */
4708
+ currentAverageValue: pulumi.Input<string>;
4709
+ /**
4710
+ * name is the name of the resource in question.
4623
4711
  */
4624
4712
  name: pulumi.Input<string>;
4625
4713
  }
4626
4714
  }
4627
- }
4628
- export declare namespace batch {
4629
- namespace v1 {
4715
+ namespace v2beta2 {
4630
4716
  /**
4631
- * CronJob represents the configuration of a single cron job.
4717
+ * ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
4632
4718
  */
4633
- interface CronJob {
4719
+ interface ContainerResourceMetricSource {
4634
4720
  /**
4635
- * 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
4721
+ * container is the name of the container in the pods of the scaling target
4636
4722
  */
4637
- apiVersion?: pulumi.Input<"batch/v1">;
4723
+ container: pulumi.Input<string>;
4638
4724
  /**
4639
- * 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
4725
+ * name is the name of the resource in question.
4640
4726
  */
4641
- kind?: pulumi.Input<"CronJob">;
4727
+ name: pulumi.Input<string>;
4642
4728
  /**
4643
- * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
4729
+ * target specifies the target value for the given metric
4644
4730
  */
4645
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
4731
+ target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4732
+ }
4733
+ /**
4734
+ * ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4735
+ */
4736
+ interface ContainerResourceMetricStatus {
4646
4737
  /**
4647
- * Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
4738
+ * Container is the name of the container in the pods of the scaling target
4648
4739
  */
4649
- spec?: pulumi.Input<inputs.batch.v1.CronJobSpec>;
4740
+ container: pulumi.Input<string>;
4650
4741
  /**
4651
- * Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
4742
+ * current contains the current value for the given metric
4652
4743
  */
4653
- status?: pulumi.Input<inputs.batch.v1.CronJobStatus>;
4744
+ current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4745
+ /**
4746
+ * Name is the name of the resource in question.
4747
+ */
4748
+ name: pulumi.Input<string>;
4654
4749
  }
4655
4750
  /**
4656
- * CronJobSpec describes how the job execution will look like and when it will actually run.
4751
+ * CrossVersionObjectReference contains enough information to let you identify the referred resource.
4657
4752
  */
4658
- interface CronJobSpec {
4753
+ interface CrossVersionObjectReference {
4659
4754
  /**
4660
- * Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one
4755
+ * API version of the referent
4661
4756
  */
4662
- concurrencyPolicy?: pulumi.Input<string>;
4757
+ apiVersion?: pulumi.Input<string>;
4663
4758
  /**
4664
- * The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.
4759
+ * Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
4665
4760
  */
4666
- failedJobsHistoryLimit?: pulumi.Input<number>;
4761
+ kind: pulumi.Input<string>;
4667
4762
  /**
4668
- * Specifies the job that will be created when executing a CronJob.
4763
+ * Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
4669
4764
  */
4670
- jobTemplate: pulumi.Input<inputs.batch.v1.JobTemplateSpec>;
4765
+ name: pulumi.Input<string>;
4766
+ }
4767
+ /**
4768
+ * ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4769
+ */
4770
+ interface ExternalMetricSource {
4671
4771
  /**
4672
- * The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
4772
+ * metric identifies the target metric by name and selector
4673
4773
  */
4674
- schedule: pulumi.Input<string>;
4774
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4675
4775
  /**
4676
- * Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.
4776
+ * target specifies the target value for the given metric
4677
4777
  */
4678
- startingDeadlineSeconds?: pulumi.Input<number>;
4778
+ target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4779
+ }
4780
+ /**
4781
+ * ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.
4782
+ */
4783
+ interface ExternalMetricStatus {
4679
4784
  /**
4680
- * The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.
4785
+ * current contains the current value for the given metric
4681
4786
  */
4682
- successfulJobsHistoryLimit?: pulumi.Input<number>;
4787
+ current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4683
4788
  /**
4684
- * This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.
4789
+ * metric identifies the target metric by name and selector
4685
4790
  */
4686
- suspend?: pulumi.Input<boolean>;
4791
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4687
4792
  }
4688
4793
  /**
4689
- * CronJobStatus represents the current state of a cron job.
4794
+ * HPAScalingPolicy is a single policy which must hold true for a specified past interval.
4690
4795
  */
4691
- interface CronJobStatus {
4796
+ interface HPAScalingPolicy {
4692
4797
  /**
4693
- * A list of pointers to currently running jobs.
4798
+ * PeriodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).
4694
4799
  */
4695
- active?: pulumi.Input<pulumi.Input<inputs.core.v1.ObjectReference>[]>;
4800
+ periodSeconds: pulumi.Input<number>;
4696
4801
  /**
4697
- * Information when was the last time the job was successfully scheduled.
4802
+ * Type is used to specify the scaling policy.
4698
4803
  */
4699
- lastScheduleTime?: pulumi.Input<string>;
4804
+ type: pulumi.Input<string>;
4700
4805
  /**
4701
- * Information when was the last time the job successfully completed.
4806
+ * Value contains the amount of change which is permitted by the policy. It must be greater than zero
4702
4807
  */
4703
- lastSuccessfulTime?: pulumi.Input<string>;
4808
+ value: pulumi.Input<number>;
4704
4809
  }
4705
4810
  /**
4706
- * Job represents the configuration of a single job.
4707
- *
4708
- * This resource waits until its status is ready before registering success
4709
- * for create/update, and populating output properties from the current state of the resource.
4710
- * The following conditions are used to determine whether the resource creation has
4711
- * succeeded or failed:
4712
- *
4713
- * 1. The Job's '.status.startTime' is set, which indicates that the Job has started running.
4714
- * 2. The Job's '.status.conditions' has a status of type 'Complete', and a 'status' set
4715
- * to 'True'.
4716
- * 3. The Job's '.status.conditions' do not have a status of type 'Failed', with a
4717
- * 'status' set to 'True'. If this condition is set, we should fail the Job immediately.
4718
- *
4719
- * If the Job has not reached a Ready state after 10 minutes, it will
4720
- * time out and mark the resource update as Failed. You can override the default timeout value
4721
- * by setting the 'customTimeouts' option on the resource.
4722
- *
4723
- * By default, if a resource failed to become ready in a previous update,
4724
- * Pulumi will continue to wait for readiness on the next update. If you would prefer
4725
- * to schedule a replacement for an unready resource on the next update, you can add the
4726
- * "pulumi.com/replaceUnready": "true" annotation to the resource definition.
4811
+ * HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.
4727
4812
  */
4728
- interface Job {
4813
+ interface HPAScalingRules {
4814
+ /**
4815
+ * policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid
4816
+ */
4817
+ policies?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingPolicy>[]>;
4818
+ /**
4819
+ * selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.
4820
+ */
4821
+ selectPolicy?: pulumi.Input<string>;
4822
+ /**
4823
+ * StabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).
4824
+ */
4825
+ stabilizationWindowSeconds?: pulumi.Input<number>;
4826
+ }
4827
+ /**
4828
+ * HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.
4829
+ */
4830
+ interface HorizontalPodAutoscaler {
4729
4831
  /**
4730
4832
  * 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
4731
4833
  */
4732
- apiVersion?: pulumi.Input<"batch/v1">;
4834
+ apiVersion?: pulumi.Input<"autoscaling/v2beta2">;
4733
4835
  /**
4734
4836
  * 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
4735
4837
  */
4736
- kind?: pulumi.Input<"Job">;
4838
+ kind?: pulumi.Input<"HorizontalPodAutoscaler">;
4737
4839
  /**
4738
- * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
4840
+ * metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
4739
4841
  */
4740
4842
  metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
4741
4843
  /**
4742
- * Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
4844
+ * spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
4743
4845
  */
4744
- spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
4846
+ spec?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerSpec>;
4745
4847
  /**
4746
- * Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
4848
+ * status is the current information about the autoscaler.
4747
4849
  */
4748
- status?: pulumi.Input<inputs.batch.v1.JobStatus>;
4850
+ status?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerStatus>;
4749
4851
  }
4750
4852
  /**
4751
- * JobCondition describes current state of a job.
4853
+ * HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).
4752
4854
  */
4753
- interface JobCondition {
4855
+ interface HorizontalPodAutoscalerBehavior {
4754
4856
  /**
4755
- * Last time the condition was checked.
4857
+ * scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).
4756
4858
  */
4757
- lastProbeTime?: pulumi.Input<string>;
4859
+ scaleDown?: pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingRules>;
4758
4860
  /**
4759
- * Last time the condition transit from one status to another.
4861
+ * scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:
4862
+ * * increase no more than 4 pods per 60 seconds
4863
+ * * double the number of pods per 60 seconds
4864
+ * No stabilization is used.
4865
+ */
4866
+ scaleUp?: pulumi.Input<inputs.autoscaling.v2beta2.HPAScalingRules>;
4867
+ }
4868
+ /**
4869
+ * HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.
4870
+ */
4871
+ interface HorizontalPodAutoscalerCondition {
4872
+ /**
4873
+ * lastTransitionTime is the last time the condition transitioned from one status to another
4760
4874
  */
4761
4875
  lastTransitionTime?: pulumi.Input<string>;
4762
4876
  /**
4763
- * Human readable message indicating details about last transition.
4877
+ * message is a human-readable explanation containing details about the transition
4764
4878
  */
4765
4879
  message?: pulumi.Input<string>;
4766
4880
  /**
4767
- * (brief) reason for the condition's last transition.
4881
+ * reason is the reason for the condition's last transition.
4768
4882
  */
4769
4883
  reason?: pulumi.Input<string>;
4770
4884
  /**
4771
- * Status of the condition, one of True, False, Unknown.
4885
+ * status is the status of the condition (True, False, Unknown)
4772
4886
  */
4773
4887
  status: pulumi.Input<string>;
4774
4888
  /**
4775
- * Type of job condition, Complete or Failed.
4889
+ * type describes the current condition
4776
4890
  */
4777
4891
  type: pulumi.Input<string>;
4778
4892
  }
4779
4893
  /**
4780
- * JobSpec describes how the job execution will look like.
4894
+ * HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.
4781
4895
  */
4782
- interface JobSpec {
4896
+ interface HorizontalPodAutoscalerSpec {
4783
4897
  /**
4784
- * Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.
4898
+ * behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.
4785
4899
  */
4786
- activeDeadlineSeconds?: pulumi.Input<number>;
4900
+ behavior?: pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior>;
4787
4901
  /**
4788
- * Specifies the number of retries before marking this job failed. Defaults to 6
4902
+ * maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.
4789
4903
  */
4790
- backoffLimit?: pulumi.Input<number>;
4904
+ maxReplicas: pulumi.Input<number>;
4791
4905
  /**
4792
- * CompletionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.
4793
- *
4794
- * `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.
4795
- *
4796
- * `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.
4797
- *
4798
- * This field is beta-level. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, the controller skips updates for the Job.
4906
+ * metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used). The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods. Ergo, metrics used must decrease as the pod count is increased, and vice-versa. See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.
4799
4907
  */
4800
- completionMode?: pulumi.Input<string>;
4908
+ metrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.MetricSpec>[]>;
4801
4909
  /**
4802
- * Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
4910
+ * minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured. Scaling is active as long as at least one metric value is available.
4803
4911
  */
4804
- completions?: pulumi.Input<number>;
4912
+ minReplicas?: pulumi.Input<number>;
4805
4913
  /**
4806
- * manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
4914
+ * scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.
4807
4915
  */
4808
- manualSelector?: pulumi.Input<boolean>;
4916
+ scaleTargetRef: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4917
+ }
4918
+ /**
4919
+ * HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.
4920
+ */
4921
+ interface HorizontalPodAutoscalerStatus {
4809
4922
  /**
4810
- * Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
4923
+ * conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.
4811
4924
  */
4812
- parallelism?: pulumi.Input<number>;
4925
+ conditions?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.HorizontalPodAutoscalerCondition>[]>;
4813
4926
  /**
4814
- * A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
4927
+ * currentMetrics is the last read state of the metrics used by this autoscaler.
4815
4928
  */
4816
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4929
+ currentMetrics?: pulumi.Input<pulumi.Input<inputs.autoscaling.v2beta2.MetricStatus>[]>;
4817
4930
  /**
4818
- * Suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.
4819
- *
4820
- * This field is beta-level, gated by SuspendJob feature flag (enabled by default).
4931
+ * currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.
4821
4932
  */
4822
- suspend?: pulumi.Input<boolean>;
4933
+ currentReplicas: pulumi.Input<number>;
4823
4934
  /**
4824
- * Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
4935
+ * desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.
4825
4936
  */
4826
- template: pulumi.Input<inputs.core.v1.PodTemplateSpec>;
4937
+ desiredReplicas: pulumi.Input<number>;
4827
4938
  /**
4828
- * ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature.
4939
+ * lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.
4829
4940
  */
4830
- ttlSecondsAfterFinished?: pulumi.Input<number>;
4941
+ lastScaleTime?: pulumi.Input<string>;
4942
+ /**
4943
+ * observedGeneration is the most recent generation observed by this autoscaler.
4944
+ */
4945
+ observedGeneration?: pulumi.Input<number>;
4831
4946
  }
4832
4947
  /**
4833
- * JobStatus represents the current state of a Job.
4948
+ * MetricIdentifier defines the name and optionally selector for a metric
4834
4949
  */
4835
- interface JobStatus {
4950
+ interface MetricIdentifier {
4836
4951
  /**
4837
- * The number of actively running pods.
4952
+ * name is the name of the given metric
4838
4953
  */
4839
- active?: pulumi.Input<number>;
4954
+ name: pulumi.Input<string>;
4840
4955
  /**
4841
- * CompletedIndexes holds the completed indexes when .spec.completionMode = "Indexed" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as "1,3-5,7".
4956
+ * selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.
4842
4957
  */
4843
- completedIndexes?: pulumi.Input<string>;
4958
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
4959
+ }
4960
+ /**
4961
+ * MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).
4962
+ */
4963
+ interface MetricSpec {
4844
4964
  /**
4845
- * Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.
4965
+ * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag.
4846
4966
  */
4847
- completionTime?: pulumi.Input<string>;
4967
+ containerResource?: pulumi.Input<inputs.autoscaling.v2beta2.ContainerResourceMetricSource>;
4848
4968
  /**
4849
- * The latest available observations of an object's current state. When a Job fails, one of the conditions will have type "Failed" and status true. When a Job is suspended, one of the conditions will have type "Suspended" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type "Complete" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
4969
+ * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4850
4970
  */
4851
- conditions?: pulumi.Input<pulumi.Input<inputs.batch.v1.JobCondition>[]>;
4971
+ external?: pulumi.Input<inputs.autoscaling.v2beta2.ExternalMetricSource>;
4852
4972
  /**
4853
- * The number of pods which reached phase Failed.
4973
+ * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
4854
4974
  */
4855
- failed?: pulumi.Input<number>;
4975
+ object?: pulumi.Input<inputs.autoscaling.v2beta2.ObjectMetricSource>;
4856
4976
  /**
4857
- * Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.
4977
+ * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
4858
4978
  */
4859
- startTime?: pulumi.Input<string>;
4979
+ pods?: pulumi.Input<inputs.autoscaling.v2beta2.PodsMetricSource>;
4860
4980
  /**
4861
- * The number of pods which reached phase Succeeded.
4981
+ * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4862
4982
  */
4863
- succeeded?: pulumi.Input<number>;
4983
+ resource?: pulumi.Input<inputs.autoscaling.v2beta2.ResourceMetricSource>;
4864
4984
  /**
4865
- * UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.
4866
- *
4867
- * The job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding
4868
- * counter.
4869
- *
4870
- * This field is alpha-level. The job controller only makes use of this field when the feature gate PodTrackingWithFinalizers is enabled. Old jobs might not be tracked using this field, in which case the field remains null.
4985
+ * type is the type of metric source. It should be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each mapping to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
4871
4986
  */
4872
- uncountedTerminatedPods?: pulumi.Input<inputs.batch.v1.UncountedTerminatedPods>;
4987
+ type: pulumi.Input<string>;
4873
4988
  }
4874
4989
  /**
4875
- * JobTemplateSpec describes the data a Job should have when created from a template
4990
+ * MetricStatus describes the last-read state of a single metric.
4876
4991
  */
4877
- interface JobTemplateSpec {
4992
+ interface MetricStatus {
4878
4993
  /**
4879
- * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
4994
+ * container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4880
4995
  */
4881
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
4996
+ containerResource?: pulumi.Input<inputs.autoscaling.v2beta2.ContainerResourceMetricStatus>;
4882
4997
  /**
4883
- * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
4998
+ * external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).
4884
4999
  */
4885
- spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5000
+ external?: pulumi.Input<inputs.autoscaling.v2beta2.ExternalMetricStatus>;
5001
+ /**
5002
+ * object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).
5003
+ */
5004
+ object?: pulumi.Input<inputs.autoscaling.v2beta2.ObjectMetricStatus>;
5005
+ /**
5006
+ * pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
5007
+ */
5008
+ pods?: pulumi.Input<inputs.autoscaling.v2beta2.PodsMetricStatus>;
5009
+ /**
5010
+ * resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
5011
+ */
5012
+ resource?: pulumi.Input<inputs.autoscaling.v2beta2.ResourceMetricStatus>;
5013
+ /**
5014
+ * type is the type of metric source. It will be one of "ContainerResource", "External", "Object", "Pods" or "Resource", each corresponds to a matching field in the object. Note: "ContainerResource" type is available on when the feature-gate HPAContainerMetrics is enabled
5015
+ */
5016
+ type: pulumi.Input<string>;
4886
5017
  }
4887
5018
  /**
4888
- * UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.
5019
+ * MetricTarget defines the target value, average value, or average utilization of a specific metric
4889
5020
  */
4890
- interface UncountedTerminatedPods {
5021
+ interface MetricTarget {
4891
5022
  /**
4892
- * Failed holds UIDs of failed Pods.
5023
+ * averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type
4893
5024
  */
4894
- failed?: pulumi.Input<pulumi.Input<string>[]>;
5025
+ averageUtilization?: pulumi.Input<number>;
4895
5026
  /**
4896
- * Succeeded holds UIDs of succeeded Pods.
5027
+ * averageValue is the target value of the average of the metric across all relevant pods (as a quantity)
4897
5028
  */
4898
- succeeded?: pulumi.Input<pulumi.Input<string>[]>;
5029
+ averageValue?: pulumi.Input<string>;
5030
+ /**
5031
+ * type represents whether the metric type is Utilization, Value, or AverageValue
5032
+ */
5033
+ type: pulumi.Input<string>;
5034
+ /**
5035
+ * value is the target value of the metric (as a quantity).
5036
+ */
5037
+ value?: pulumi.Input<string>;
4899
5038
  }
4900
- }
4901
- namespace v1beta1 {
4902
5039
  /**
4903
- * CronJob represents the configuration of a single cron job.
5040
+ * MetricValueStatus holds the current value for a metric
4904
5041
  */
4905
- interface CronJob {
5042
+ interface MetricValueStatus {
4906
5043
  /**
4907
- * 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
5044
+ * currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.
4908
5045
  */
4909
- apiVersion?: pulumi.Input<"batch/v1beta1">;
5046
+ averageUtilization?: pulumi.Input<number>;
4910
5047
  /**
4911
- * 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
5048
+ * averageValue is the current value of the average of the metric across all relevant pods (as a quantity)
4912
5049
  */
4913
- kind?: pulumi.Input<"CronJob">;
5050
+ averageValue?: pulumi.Input<string>;
4914
5051
  /**
4915
- * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5052
+ * value is the current value of the metric (as a quantity).
4916
5053
  */
4917
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5054
+ value?: pulumi.Input<string>;
5055
+ }
5056
+ /**
5057
+ * ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
5058
+ */
5059
+ interface ObjectMetricSource {
5060
+ describedObject: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4918
5061
  /**
4919
- * Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5062
+ * metric identifies the target metric by name and selector
4920
5063
  */
4921
- spec?: pulumi.Input<inputs.batch.v1beta1.CronJobSpec>;
5064
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4922
5065
  /**
4923
- * Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5066
+ * target specifies the target value for the given metric
4924
5067
  */
4925
- status?: pulumi.Input<inputs.batch.v1beta1.CronJobStatus>;
5068
+ target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4926
5069
  }
4927
5070
  /**
4928
- * CronJobSpec describes how the job execution will look like and when it will actually run.
5071
+ * ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).
4929
5072
  */
4930
- interface CronJobSpec {
4931
- /**
4932
- * Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one
4933
- */
4934
- concurrencyPolicy?: pulumi.Input<string>;
5073
+ interface ObjectMetricStatus {
4935
5074
  /**
4936
- * The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
5075
+ * current contains the current value for the given metric
4937
5076
  */
4938
- failedJobsHistoryLimit?: pulumi.Input<number>;
5077
+ current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
5078
+ describedObject: pulumi.Input<inputs.autoscaling.v2beta2.CrossVersionObjectReference>;
4939
5079
  /**
4940
- * Specifies the job that will be created when executing a CronJob.
5080
+ * metric identifies the target metric by name and selector
4941
5081
  */
4942
- jobTemplate: pulumi.Input<inputs.batch.v1beta1.JobTemplateSpec>;
5082
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
5083
+ }
5084
+ /**
5085
+ * PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.
5086
+ */
5087
+ interface PodsMetricSource {
4943
5088
  /**
4944
- * The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
5089
+ * metric identifies the target metric by name and selector
4945
5090
  */
4946
- schedule: pulumi.Input<string>;
5091
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4947
5092
  /**
4948
- * Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.
5093
+ * target specifies the target value for the given metric
4949
5094
  */
4950
- startingDeadlineSeconds?: pulumi.Input<number>;
5095
+ target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
5096
+ }
5097
+ /**
5098
+ * PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).
5099
+ */
5100
+ interface PodsMetricStatus {
4951
5101
  /**
4952
- * The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.
5102
+ * current contains the current value for the given metric
4953
5103
  */
4954
- successfulJobsHistoryLimit?: pulumi.Input<number>;
5104
+ current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4955
5105
  /**
4956
- * This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.
5106
+ * metric identifies the target metric by name and selector
4957
5107
  */
4958
- suspend?: pulumi.Input<boolean>;
5108
+ metric: pulumi.Input<inputs.autoscaling.v2beta2.MetricIdentifier>;
4959
5109
  }
4960
5110
  /**
4961
- * CronJobStatus represents the current state of a cron job.
5111
+ * ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source. Only one "target" type should be set.
4962
5112
  */
4963
- interface CronJobStatus {
4964
- /**
4965
- * A list of pointers to currently running jobs.
4966
- */
4967
- active?: pulumi.Input<pulumi.Input<inputs.core.v1.ObjectReference>[]>;
5113
+ interface ResourceMetricSource {
4968
5114
  /**
4969
- * Information when was the last time the job was successfully scheduled.
5115
+ * name is the name of the resource in question.
4970
5116
  */
4971
- lastScheduleTime?: pulumi.Input<string>;
5117
+ name: pulumi.Input<string>;
4972
5118
  /**
4973
- * Information when was the last time the job successfully completed.
5119
+ * target specifies the target value for the given metric
4974
5120
  */
4975
- lastSuccessfulTime?: pulumi.Input<string>;
5121
+ target: pulumi.Input<inputs.autoscaling.v2beta2.MetricTarget>;
4976
5122
  }
4977
5123
  /**
4978
- * JobTemplateSpec describes the data a Job should have when created from a template
5124
+ * ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the "pods" source.
4979
5125
  */
4980
- interface JobTemplateSpec {
5126
+ interface ResourceMetricStatus {
4981
5127
  /**
4982
- * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5128
+ * current contains the current value for the given metric
4983
5129
  */
4984
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5130
+ current: pulumi.Input<inputs.autoscaling.v2beta2.MetricValueStatus>;
4985
5131
  /**
4986
- * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5132
+ * Name is the name of the resource in question.
4987
5133
  */
4988
- spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5134
+ name: pulumi.Input<string>;
4989
5135
  }
4990
5136
  }
4991
- namespace v2alpha1 {
5137
+ }
5138
+ export declare namespace batch {
5139
+ namespace v1 {
4992
5140
  /**
4993
5141
  * CronJob represents the configuration of a single cron job.
4994
5142
  */
@@ -4996,7 +5144,7 @@ export declare namespace batch {
4996
5144
  /**
4997
5145
  * 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
4998
5146
  */
4999
- apiVersion?: pulumi.Input<"batch/v2alpha1">;
5147
+ apiVersion?: pulumi.Input<"batch/v1">;
5000
5148
  /**
5001
5149
  * 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
5002
5150
  */
@@ -5008,11 +5156,11 @@ export declare namespace batch {
5008
5156
  /**
5009
5157
  * Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5010
5158
  */
5011
- spec?: pulumi.Input<inputs.batch.v2alpha1.CronJobSpec>;
5159
+ spec?: pulumi.Input<inputs.batch.v1.CronJobSpec>;
5012
5160
  /**
5013
5161
  * Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5014
5162
  */
5015
- status?: pulumi.Input<inputs.batch.v2alpha1.CronJobStatus>;
5163
+ status?: pulumi.Input<inputs.batch.v1.CronJobStatus>;
5016
5164
  }
5017
5165
  /**
5018
5166
  * CronJobSpec describes how the job execution will look like and when it will actually run.
@@ -5020,16 +5168,21 @@ export declare namespace batch {
5020
5168
  interface CronJobSpec {
5021
5169
  /**
5022
5170
  * Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one
5171
+ *
5172
+ * Possible enum values:
5173
+ * - `"Allow"` allows CronJobs to run concurrently.
5174
+ * - `"Forbid"` forbids concurrent runs, skipping next run if previous hasn't finished yet.
5175
+ * - `"Replace"` cancels currently running job and replaces it with a new one.
5023
5176
  */
5024
5177
  concurrencyPolicy?: pulumi.Input<string>;
5025
5178
  /**
5026
- * The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
5179
+ * The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.
5027
5180
  */
5028
5181
  failedJobsHistoryLimit?: pulumi.Input<number>;
5029
5182
  /**
5030
5183
  * Specifies the job that will be created when executing a CronJob.
5031
5184
  */
5032
- jobTemplate: pulumi.Input<inputs.batch.v2alpha1.JobTemplateSpec>;
5185
+ jobTemplate: pulumi.Input<inputs.batch.v1.JobTemplateSpec>;
5033
5186
  /**
5034
5187
  * The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
5035
5188
  */
@@ -5039,7 +5192,7 @@ export declare namespace batch {
5039
5192
  */
5040
5193
  startingDeadlineSeconds?: pulumi.Input<number>;
5041
5194
  /**
5042
- * The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
5195
+ * The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.
5043
5196
  */
5044
5197
  successfulJobsHistoryLimit?: pulumi.Input<number>;
5045
5198
  /**
@@ -5059,64 +5212,437 @@ export declare namespace batch {
5059
5212
  * Information when was the last time the job was successfully scheduled.
5060
5213
  */
5061
5214
  lastScheduleTime?: pulumi.Input<string>;
5062
- }
5063
- /**
5064
- * JobTemplateSpec describes the data a Job should have when created from a template
5065
- */
5066
- interface JobTemplateSpec {
5067
5215
  /**
5068
- * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5069
- */
5070
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5071
- /**
5072
- * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5216
+ * Information when was the last time the job successfully completed.
5073
5217
  */
5074
- spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5218
+ lastSuccessfulTime?: pulumi.Input<string>;
5075
5219
  }
5076
- }
5077
- }
5078
- export declare namespace certificates {
5079
- namespace v1 {
5080
5220
  /**
5081
- * CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.
5221
+ * Job represents the configuration of a single job.
5082
5222
  *
5083
- * Kubelets use this API to obtain:
5084
- * 1. client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client-kubelet" signerName).
5085
- * 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the "kubernetes.io/kubelet-serving" signerName).
5223
+ * This resource waits until its status is ready before registering success
5224
+ * for create/update, and populating output properties from the current state of the resource.
5225
+ * The following conditions are used to determine whether the resource creation has
5226
+ * succeeded or failed:
5086
5227
  *
5087
- * This API can be used to request client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client" signerName), or to obtain certificates from custom non-Kubernetes signers.
5228
+ * 1. The Job's '.status.startTime' is set, which indicates that the Job has started running.
5229
+ * 2. The Job's '.status.conditions' has a status of type 'Complete', and a 'status' set
5230
+ * to 'True'.
5231
+ * 3. The Job's '.status.conditions' do not have a status of type 'Failed', with a
5232
+ * 'status' set to 'True'. If this condition is set, we should fail the Job immediately.
5233
+ *
5234
+ * If the Job has not reached a Ready state after 10 minutes, it will
5235
+ * time out and mark the resource update as Failed. You can override the default timeout value
5236
+ * by setting the 'customTimeouts' option on the resource.
5237
+ *
5238
+ * By default, if a resource failed to become ready in a previous update,
5239
+ * Pulumi will continue to wait for readiness on the next update. If you would prefer
5240
+ * to schedule a replacement for an unready resource on the next update, you can add the
5241
+ * "pulumi.com/replaceUnready": "true" annotation to the resource definition.
5088
5242
  */
5089
- interface CertificateSigningRequest {
5243
+ interface Job {
5090
5244
  /**
5091
5245
  * 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
5092
5246
  */
5093
- apiVersion?: pulumi.Input<"certificates.k8s.io/v1">;
5247
+ apiVersion?: pulumi.Input<"batch/v1">;
5094
5248
  /**
5095
5249
  * 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
5096
5250
  */
5097
- kind?: pulumi.Input<"CertificateSigningRequest">;
5251
+ kind?: pulumi.Input<"Job">;
5252
+ /**
5253
+ * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5254
+ */
5098
5255
  metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5099
5256
  /**
5100
- * spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
5257
+ * Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5101
5258
  */
5102
- spec: pulumi.Input<inputs.certificates.v1.CertificateSigningRequestSpec>;
5259
+ spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5103
5260
  /**
5104
- * status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.
5261
+ * Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5105
5262
  */
5106
- status?: pulumi.Input<inputs.certificates.v1.CertificateSigningRequestStatus>;
5263
+ status?: pulumi.Input<inputs.batch.v1.JobStatus>;
5107
5264
  }
5108
5265
  /**
5109
- * CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object
5266
+ * JobCondition describes current state of a job.
5110
5267
  */
5111
- interface CertificateSigningRequestCondition {
5268
+ interface JobCondition {
5112
5269
  /**
5113
- * lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.
5270
+ * Last time the condition was checked.
5114
5271
  */
5115
- lastTransitionTime?: pulumi.Input<string>;
5272
+ lastProbeTime?: pulumi.Input<string>;
5116
5273
  /**
5117
- * lastUpdateTime is the time of the last update to this condition
5274
+ * Last time the condition transit from one status to another.
5118
5275
  */
5119
- lastUpdateTime?: pulumi.Input<string>;
5276
+ lastTransitionTime?: pulumi.Input<string>;
5277
+ /**
5278
+ * Human readable message indicating details about last transition.
5279
+ */
5280
+ message?: pulumi.Input<string>;
5281
+ /**
5282
+ * (brief) reason for the condition's last transition.
5283
+ */
5284
+ reason?: pulumi.Input<string>;
5285
+ /**
5286
+ * Status of the condition, one of True, False, Unknown.
5287
+ */
5288
+ status: pulumi.Input<string>;
5289
+ /**
5290
+ * Type of job condition, Complete or Failed.
5291
+ *
5292
+ * Possible enum values:
5293
+ * - `"Complete"` means the job has completed its execution.
5294
+ * - `"Failed"` means the job has failed its execution.
5295
+ * - `"Suspended"` means the job has been suspended.
5296
+ */
5297
+ type: pulumi.Input<string>;
5298
+ }
5299
+ /**
5300
+ * JobSpec describes how the job execution will look like.
5301
+ */
5302
+ interface JobSpec {
5303
+ /**
5304
+ * Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.
5305
+ */
5306
+ activeDeadlineSeconds?: pulumi.Input<number>;
5307
+ /**
5308
+ * Specifies the number of retries before marking this job failed. Defaults to 6
5309
+ */
5310
+ backoffLimit?: pulumi.Input<number>;
5311
+ /**
5312
+ * CompletionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.
5313
+ *
5314
+ * `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.
5315
+ *
5316
+ * `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.
5317
+ *
5318
+ * This field is beta-level. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, the controller skips updates for the Job.
5319
+ */
5320
+ completionMode?: pulumi.Input<string>;
5321
+ /**
5322
+ * Specifies the desired number of successfully finished pods the job should be run with. Setting to nil means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
5323
+ */
5324
+ completions?: pulumi.Input<number>;
5325
+ /**
5326
+ * manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector
5327
+ */
5328
+ manualSelector?: pulumi.Input<boolean>;
5329
+ /**
5330
+ * Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
5331
+ */
5332
+ parallelism?: pulumi.Input<number>;
5333
+ /**
5334
+ * A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
5335
+ */
5336
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
5337
+ /**
5338
+ * Suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.
5339
+ *
5340
+ * This field is beta-level, gated by SuspendJob feature flag (enabled by default).
5341
+ */
5342
+ suspend?: pulumi.Input<boolean>;
5343
+ /**
5344
+ * Describes the pod that will be created when executing a job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
5345
+ */
5346
+ template: pulumi.Input<inputs.core.v1.PodTemplateSpec>;
5347
+ /**
5348
+ * ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.
5349
+ */
5350
+ ttlSecondsAfterFinished?: pulumi.Input<number>;
5351
+ }
5352
+ /**
5353
+ * JobStatus represents the current state of a Job.
5354
+ */
5355
+ interface JobStatus {
5356
+ /**
5357
+ * The number of pending and running pods.
5358
+ */
5359
+ active?: pulumi.Input<number>;
5360
+ /**
5361
+ * CompletedIndexes holds the completed indexes when .spec.completionMode = "Indexed" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as "1,3-5,7".
5362
+ */
5363
+ completedIndexes?: pulumi.Input<string>;
5364
+ /**
5365
+ * Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.
5366
+ */
5367
+ completionTime?: pulumi.Input<string>;
5368
+ /**
5369
+ * The latest available observations of an object's current state. When a Job fails, one of the conditions will have type "Failed" and status true. When a Job is suspended, one of the conditions will have type "Suspended" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type "Complete" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/
5370
+ */
5371
+ conditions?: pulumi.Input<pulumi.Input<inputs.batch.v1.JobCondition>[]>;
5372
+ /**
5373
+ * The number of pods which reached phase Failed.
5374
+ */
5375
+ failed?: pulumi.Input<number>;
5376
+ /**
5377
+ * The number of pods which have a Ready condition.
5378
+ *
5379
+ * This field is alpha-level. The job controller populates the field when the feature gate JobReadyPods is enabled (disabled by default).
5380
+ */
5381
+ ready?: pulumi.Input<number>;
5382
+ /**
5383
+ * Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.
5384
+ */
5385
+ startTime?: pulumi.Input<string>;
5386
+ /**
5387
+ * The number of pods which reached phase Succeeded.
5388
+ */
5389
+ succeeded?: pulumi.Input<number>;
5390
+ /**
5391
+ * UncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.
5392
+ *
5393
+ * The job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status: (1) Add the pod UID to the arrays in this field. (2) Remove the pod finalizer. (3) Remove the pod UID from the arrays while increasing the corresponding
5394
+ * counter.
5395
+ *
5396
+ * This field is beta-level. The job controller only makes use of this field when the feature gate JobTrackingWithFinalizers is enabled (enabled by default). Old jobs might not be tracked using this field, in which case the field remains null.
5397
+ */
5398
+ uncountedTerminatedPods?: pulumi.Input<inputs.batch.v1.UncountedTerminatedPods>;
5399
+ }
5400
+ /**
5401
+ * JobTemplateSpec describes the data a Job should have when created from a template
5402
+ */
5403
+ interface JobTemplateSpec {
5404
+ /**
5405
+ * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5406
+ */
5407
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5408
+ /**
5409
+ * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5410
+ */
5411
+ spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5412
+ }
5413
+ /**
5414
+ * UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.
5415
+ */
5416
+ interface UncountedTerminatedPods {
5417
+ /**
5418
+ * Failed holds UIDs of failed Pods.
5419
+ */
5420
+ failed?: pulumi.Input<pulumi.Input<string>[]>;
5421
+ /**
5422
+ * Succeeded holds UIDs of succeeded Pods.
5423
+ */
5424
+ succeeded?: pulumi.Input<pulumi.Input<string>[]>;
5425
+ }
5426
+ }
5427
+ namespace v1beta1 {
5428
+ /**
5429
+ * CronJob represents the configuration of a single cron job.
5430
+ */
5431
+ interface CronJob {
5432
+ /**
5433
+ * 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
5434
+ */
5435
+ apiVersion?: pulumi.Input<"batch/v1beta1">;
5436
+ /**
5437
+ * 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
5438
+ */
5439
+ kind?: pulumi.Input<"CronJob">;
5440
+ /**
5441
+ * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5442
+ */
5443
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5444
+ /**
5445
+ * Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5446
+ */
5447
+ spec?: pulumi.Input<inputs.batch.v1beta1.CronJobSpec>;
5448
+ /**
5449
+ * Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5450
+ */
5451
+ status?: pulumi.Input<inputs.batch.v1beta1.CronJobStatus>;
5452
+ }
5453
+ /**
5454
+ * CronJobSpec describes how the job execution will look like and when it will actually run.
5455
+ */
5456
+ interface CronJobSpec {
5457
+ /**
5458
+ * Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one
5459
+ */
5460
+ concurrencyPolicy?: pulumi.Input<string>;
5461
+ /**
5462
+ * The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
5463
+ */
5464
+ failedJobsHistoryLimit?: pulumi.Input<number>;
5465
+ /**
5466
+ * Specifies the job that will be created when executing a CronJob.
5467
+ */
5468
+ jobTemplate: pulumi.Input<inputs.batch.v1beta1.JobTemplateSpec>;
5469
+ /**
5470
+ * The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
5471
+ */
5472
+ schedule: pulumi.Input<string>;
5473
+ /**
5474
+ * Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.
5475
+ */
5476
+ startingDeadlineSeconds?: pulumi.Input<number>;
5477
+ /**
5478
+ * The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.
5479
+ */
5480
+ successfulJobsHistoryLimit?: pulumi.Input<number>;
5481
+ /**
5482
+ * This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.
5483
+ */
5484
+ suspend?: pulumi.Input<boolean>;
5485
+ }
5486
+ /**
5487
+ * CronJobStatus represents the current state of a cron job.
5488
+ */
5489
+ interface CronJobStatus {
5490
+ /**
5491
+ * A list of pointers to currently running jobs.
5492
+ */
5493
+ active?: pulumi.Input<pulumi.Input<inputs.core.v1.ObjectReference>[]>;
5494
+ /**
5495
+ * Information when was the last time the job was successfully scheduled.
5496
+ */
5497
+ lastScheduleTime?: pulumi.Input<string>;
5498
+ /**
5499
+ * Information when was the last time the job successfully completed.
5500
+ */
5501
+ lastSuccessfulTime?: pulumi.Input<string>;
5502
+ }
5503
+ /**
5504
+ * JobTemplateSpec describes the data a Job should have when created from a template
5505
+ */
5506
+ interface JobTemplateSpec {
5507
+ /**
5508
+ * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5509
+ */
5510
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5511
+ /**
5512
+ * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5513
+ */
5514
+ spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5515
+ }
5516
+ }
5517
+ namespace v2alpha1 {
5518
+ /**
5519
+ * CronJob represents the configuration of a single cron job.
5520
+ */
5521
+ interface CronJob {
5522
+ /**
5523
+ * 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
5524
+ */
5525
+ apiVersion?: pulumi.Input<"batch/v2alpha1">;
5526
+ /**
5527
+ * 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
5528
+ */
5529
+ kind?: pulumi.Input<"CronJob">;
5530
+ /**
5531
+ * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5532
+ */
5533
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5534
+ /**
5535
+ * Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5536
+ */
5537
+ spec?: pulumi.Input<inputs.batch.v2alpha1.CronJobSpec>;
5538
+ /**
5539
+ * Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5540
+ */
5541
+ status?: pulumi.Input<inputs.batch.v2alpha1.CronJobStatus>;
5542
+ }
5543
+ /**
5544
+ * CronJobSpec describes how the job execution will look like and when it will actually run.
5545
+ */
5546
+ interface CronJobSpec {
5547
+ /**
5548
+ * Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - "Replace": cancels currently running job and replaces it with a new one
5549
+ */
5550
+ concurrencyPolicy?: pulumi.Input<string>;
5551
+ /**
5552
+ * The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
5553
+ */
5554
+ failedJobsHistoryLimit?: pulumi.Input<number>;
5555
+ /**
5556
+ * Specifies the job that will be created when executing a CronJob.
5557
+ */
5558
+ jobTemplate: pulumi.Input<inputs.batch.v2alpha1.JobTemplateSpec>;
5559
+ /**
5560
+ * The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
5561
+ */
5562
+ schedule: pulumi.Input<string>;
5563
+ /**
5564
+ * Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones.
5565
+ */
5566
+ startingDeadlineSeconds?: pulumi.Input<number>;
5567
+ /**
5568
+ * The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
5569
+ */
5570
+ successfulJobsHistoryLimit?: pulumi.Input<number>;
5571
+ /**
5572
+ * This flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false.
5573
+ */
5574
+ suspend?: pulumi.Input<boolean>;
5575
+ }
5576
+ /**
5577
+ * CronJobStatus represents the current state of a cron job.
5578
+ */
5579
+ interface CronJobStatus {
5580
+ /**
5581
+ * A list of pointers to currently running jobs.
5582
+ */
5583
+ active?: pulumi.Input<pulumi.Input<inputs.core.v1.ObjectReference>[]>;
5584
+ /**
5585
+ * Information when was the last time the job was successfully scheduled.
5586
+ */
5587
+ lastScheduleTime?: pulumi.Input<string>;
5588
+ }
5589
+ /**
5590
+ * JobTemplateSpec describes the data a Job should have when created from a template
5591
+ */
5592
+ interface JobTemplateSpec {
5593
+ /**
5594
+ * Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
5595
+ */
5596
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5597
+ /**
5598
+ * Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
5599
+ */
5600
+ spec?: pulumi.Input<inputs.batch.v1.JobSpec>;
5601
+ }
5602
+ }
5603
+ }
5604
+ export declare namespace certificates {
5605
+ namespace v1 {
5606
+ /**
5607
+ * CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.
5608
+ *
5609
+ * Kubelets use this API to obtain:
5610
+ * 1. client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client-kubelet" signerName).
5611
+ * 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the "kubernetes.io/kubelet-serving" signerName).
5612
+ *
5613
+ * This API can be used to request client certificates to authenticate to kube-apiserver (with the "kubernetes.io/kube-apiserver-client" signerName), or to obtain certificates from custom non-Kubernetes signers.
5614
+ */
5615
+ interface CertificateSigningRequest {
5616
+ /**
5617
+ * 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
5618
+ */
5619
+ apiVersion?: pulumi.Input<"certificates.k8s.io/v1">;
5620
+ /**
5621
+ * 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
5622
+ */
5623
+ kind?: pulumi.Input<"CertificateSigningRequest">;
5624
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
5625
+ /**
5626
+ * spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.
5627
+ */
5628
+ spec: pulumi.Input<inputs.certificates.v1.CertificateSigningRequestSpec>;
5629
+ /**
5630
+ * status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.
5631
+ */
5632
+ status?: pulumi.Input<inputs.certificates.v1.CertificateSigningRequestStatus>;
5633
+ }
5634
+ /**
5635
+ * CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object
5636
+ */
5637
+ interface CertificateSigningRequestCondition {
5638
+ /**
5639
+ * lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.
5640
+ */
5641
+ lastTransitionTime?: pulumi.Input<string>;
5642
+ /**
5643
+ * lastUpdateTime is the time of the last update to this condition
5644
+ */
5645
+ lastUpdateTime?: pulumi.Input<string>;
5120
5646
  /**
5121
5647
  * message contains a human readable message with details about the request state
5122
5648
  */
@@ -5141,6 +5667,11 @@ export declare namespace certificates {
5141
5667
  * Approved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.
5142
5668
  *
5143
5669
  * Only one condition of a given type is allowed.
5670
+ *
5671
+ * Possible enum values:
5672
+ * - `"Approved"` Approved indicates the request was approved and should be issued by the signer.
5673
+ * - `"Denied"` Denied indicates the request was denied and should not be issued by the signer.
5674
+ * - `"Failed"` Failed indicates the signer failed to issue the certificate.
5144
5675
  */
5145
5676
  type: pulumi.Input<string>;
5146
5677
  }
@@ -5937,6 +6468,11 @@ export declare namespace core {
5937
6468
  image?: pulumi.Input<string>;
5938
6469
  /**
5939
6470
  * Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
6471
+ *
6472
+ * Possible enum values:
6473
+ * - `"Always"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.
6474
+ * - `"IfNotPresent"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.
6475
+ * - `"Never"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present
5940
6476
  */
5941
6477
  imagePullPolicy?: pulumi.Input<string>;
5942
6478
  /**
@@ -5985,6 +6521,10 @@ export declare namespace core {
5985
6521
  terminationMessagePath?: pulumi.Input<string>;
5986
6522
  /**
5987
6523
  * Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
6524
+ *
6525
+ * Possible enum values:
6526
+ * - `"FallbackToLogsOnError"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.
6527
+ * - `"File"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.
5988
6528
  */
5989
6529
  terminationMessagePolicy?: pulumi.Input<string>;
5990
6530
  /**
@@ -6039,6 +6579,11 @@ export declare namespace core {
6039
6579
  name?: pulumi.Input<string>;
6040
6580
  /**
6041
6581
  * Protocol for port. Must be UDP, TCP, or SCTP. Defaults to "TCP".
6582
+ *
6583
+ * Possible enum values:
6584
+ * - `"SCTP"` is the SCTP protocol.
6585
+ * - `"TCP"` is the TCP protocol.
6586
+ * - `"UDP"` is the UDP protocol.
6042
6587
  */
6043
6588
  protocol?: pulumi.Input<string>;
6044
6589
  }
@@ -6123,7 +6668,7 @@ export declare namespace core {
6123
6668
  */
6124
6669
  containerID?: pulumi.Input<string>;
6125
6670
  /**
6126
- * The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images
6671
+ * The image the container is running. More info: https://kubernetes.io/docs/concepts/containers/images.
6127
6672
  */
6128
6673
  image: pulumi.Input<string>;
6129
6674
  /**
@@ -6143,7 +6688,7 @@ export declare namespace core {
6143
6688
  */
6144
6689
  ready: pulumi.Input<boolean>;
6145
6690
  /**
6146
- * The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection. This value will get capped at 5 by GC.
6691
+ * The number of times the container has been restarted.
6147
6692
  */
6148
6693
  restartCount: pulumi.Input<number>;
6149
6694
  /**
@@ -6259,6 +6804,11 @@ export declare namespace core {
6259
6804
  port: pulumi.Input<number>;
6260
6805
  /**
6261
6806
  * The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.
6807
+ *
6808
+ * Possible enum values:
6809
+ * - `"SCTP"` is the SCTP protocol.
6810
+ * - `"TCP"` is the TCP protocol.
6811
+ * - `"UDP"` is the UDP protocol.
6262
6812
  */
6263
6813
  protocol?: pulumi.Input<string>;
6264
6814
  }
@@ -6374,7 +6924,11 @@ export declare namespace core {
6374
6924
  secretKeyRef?: pulumi.Input<inputs.core.v1.SecretKeySelector>;
6375
6925
  }
6376
6926
  /**
6377
- * An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag.
6927
+ * An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.
6928
+ *
6929
+ * To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.
6930
+ *
6931
+ * This is a beta feature available on clusters that haven't disabled the EphemeralContainers feature gate.
6378
6932
  */
6379
6933
  interface EphemeralContainer {
6380
6934
  /**
@@ -6399,6 +6953,11 @@ export declare namespace core {
6399
6953
  image?: pulumi.Input<string>;
6400
6954
  /**
6401
6955
  * Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
6956
+ *
6957
+ * Possible enum values:
6958
+ * - `"Always"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.
6959
+ * - `"IfNotPresent"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.
6960
+ * - `"Never"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present
6402
6961
  */
6403
6962
  imagePullPolicy?: pulumi.Input<string>;
6404
6963
  /**
@@ -6442,7 +7001,9 @@ export declare namespace core {
6442
7001
  */
6443
7002
  stdinOnce?: pulumi.Input<boolean>;
6444
7003
  /**
6445
- * If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container is run in whatever namespaces are shared for the pod. Note that the container runtime must support this feature.
7004
+ * If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.
7005
+ *
7006
+ * The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.
6446
7007
  */
6447
7008
  targetContainerName?: pulumi.Input<string>;
6448
7009
  /**
@@ -6451,6 +7012,10 @@ export declare namespace core {
6451
7012
  terminationMessagePath?: pulumi.Input<string>;
6452
7013
  /**
6453
7014
  * Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.
7015
+ *
7016
+ * Possible enum values:
7017
+ * - `"FallbackToLogsOnError"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.
7018
+ * - `"File"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.
6454
7019
  */
6455
7020
  terminationMessagePolicy?: pulumi.Input<string>;
6456
7021
  /**
@@ -6462,7 +7027,7 @@ export declare namespace core {
6462
7027
  */
6463
7028
  volumeDevices?: pulumi.Input<pulumi.Input<inputs.core.v1.VolumeDevice>[]>;
6464
7029
  /**
6465
- * Pod volumes to mount into the container's filesystem. Cannot be updated.
7030
+ * Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.
6466
7031
  */
6467
7032
  volumeMounts?: pulumi.Input<pulumi.Input<inputs.core.v1.VolumeMount>[]>;
6468
7033
  /**
@@ -6716,6 +7281,18 @@ export declare namespace core {
6716
7281
  */
6717
7282
  readOnly?: pulumi.Input<boolean>;
6718
7283
  }
7284
+ interface GRPCAction {
7285
+ /**
7286
+ * Port number of the gRPC service. Number must be in the range 1 to 65535.
7287
+ */
7288
+ port: pulumi.Input<number>;
7289
+ /**
7290
+ * Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
7291
+ *
7292
+ * If this is not specified, the default behavior is defined by gRPC.
7293
+ */
7294
+ service?: pulumi.Input<string>;
7295
+ }
6719
7296
  /**
6720
7297
  * Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.
6721
7298
  *
@@ -6795,6 +7372,10 @@ export declare namespace core {
6795
7372
  port: pulumi.Input<number | string>;
6796
7373
  /**
6797
7374
  * Scheme to use for connecting to the host. Defaults to HTTP.
7375
+ *
7376
+ * Possible enum values:
7377
+ * - `"HTTP"` means that the scheme used will be http://
7378
+ * - `"HTTPS"` means that the scheme used will be https://
6798
7379
  */
6799
7380
  scheme?: pulumi.Input<string>;
6800
7381
  }
@@ -6811,23 +7392,6 @@ export declare namespace core {
6811
7392
  */
6812
7393
  value: pulumi.Input<string>;
6813
7394
  }
6814
- /**
6815
- * Handler defines a specific action that should be taken
6816
- */
6817
- interface Handler {
6818
- /**
6819
- * One and only one of the following should be specified. Exec specifies the action to take.
6820
- */
6821
- exec?: pulumi.Input<inputs.core.v1.ExecAction>;
6822
- /**
6823
- * HTTPGet specifies the http request to perform.
6824
- */
6825
- httpGet?: pulumi.Input<inputs.core.v1.HTTPGetAction>;
6826
- /**
6827
- * TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported
6828
- */
6829
- tcpSocket?: pulumi.Input<inputs.core.v1.TCPSocketAction>;
6830
- }
6831
7395
  /**
6832
7396
  * HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.
6833
7397
  */
@@ -6976,11 +7540,28 @@ export declare namespace core {
6976
7540
  /**
6977
7541
  * PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
6978
7542
  */
6979
- postStart?: pulumi.Input<inputs.core.v1.Handler>;
7543
+ postStart?: pulumi.Input<inputs.core.v1.LifecycleHandler>;
7544
+ /**
7545
+ * PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7546
+ */
7547
+ preStop?: pulumi.Input<inputs.core.v1.LifecycleHandler>;
7548
+ }
7549
+ /**
7550
+ * LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.
7551
+ */
7552
+ interface LifecycleHandler {
7553
+ /**
7554
+ * Exec specifies the action to take.
7555
+ */
7556
+ exec?: pulumi.Input<inputs.core.v1.ExecAction>;
6980
7557
  /**
6981
- * PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The reason for termination is passed to the handler. The Pod's termination grace period countdown begins before the PreStop hooked is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period. Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
7558
+ * HTTPGet specifies the http request to perform.
6982
7559
  */
6983
- preStop?: pulumi.Input<inputs.core.v1.Handler>;
7560
+ httpGet?: pulumi.Input<inputs.core.v1.HTTPGetAction>;
7561
+ /**
7562
+ * Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.
7563
+ */
7564
+ tcpSocket?: pulumi.Input<inputs.core.v1.TCPSocketAction>;
6984
7565
  }
6985
7566
  /**
6986
7567
  * LimitRange sets resource usage limits for each kind of resource in a Namespace.
@@ -7039,6 +7620,11 @@ export declare namespace core {
7039
7620
  }>;
7040
7621
  /**
7041
7622
  * Type of resource that this limit applies to.
7623
+ *
7624
+ * Possible enum values:
7625
+ * - `"Container"` Limit that applies to all containers in a namespace
7626
+ * - `"PersistentVolumeClaim"` Limit that applies to all persistent volume claims in a namespace
7627
+ * - `"Pod"` Limit that applies to all pods in a namespace
7042
7628
  */
7043
7629
  type: pulumi.Input<string>;
7044
7630
  }
@@ -7091,7 +7677,7 @@ export declare namespace core {
7091
7677
  */
7092
7678
  interface LocalVolumeSource {
7093
7679
  /**
7094
- * Filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
7680
+ * Filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a filesystem if unspecified.
7095
7681
  */
7096
7682
  fsType?: pulumi.Input<string>;
7097
7683
  /**
@@ -7154,6 +7740,13 @@ export declare namespace core {
7154
7740
  status: pulumi.Input<string>;
7155
7741
  /**
7156
7742
  * Type of namespace controller condition.
7743
+ *
7744
+ * Possible enum values:
7745
+ * - `"NamespaceContentRemaining"` contains information about resources remaining in a namespace.
7746
+ * - `"NamespaceDeletionContentFailure"` contains information about namespace deleter errors during deletion of resources.
7747
+ * - `"NamespaceDeletionDiscoveryFailure"` contains information about namespace deleter errors during resource discovery.
7748
+ * - `"NamespaceDeletionGroupVersionParsingFailure"` contains information about namespace deleter errors parsing GV for legacy types.
7749
+ * - `"NamespaceFinalizersRemaining"` contains information about which finalizers are on resources remaining in a namespace.
7157
7750
  */
7158
7751
  type: pulumi.Input<string>;
7159
7752
  }
@@ -7176,6 +7769,10 @@ export declare namespace core {
7176
7769
  conditions?: pulumi.Input<pulumi.Input<inputs.core.v1.NamespaceCondition>[]>;
7177
7770
  /**
7178
7771
  * Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
7772
+ *
7773
+ * Possible enum values:
7774
+ * - `"Active"` means the namespace is available for use in the system
7775
+ * - `"Terminating"` means the namespace is undergoing graceful termination
7179
7776
  */
7180
7777
  phase?: pulumi.Input<string>;
7181
7778
  }
@@ -7214,6 +7811,13 @@ export declare namespace core {
7214
7811
  address: pulumi.Input<string>;
7215
7812
  /**
7216
7813
  * Node address type, one of Hostname, ExternalIP or InternalIP.
7814
+ *
7815
+ * Possible enum values:
7816
+ * - `"ExternalDNS"` identifies a DNS name which resolves to an IP address which has the characteristics of a NodeExternalIP. The IP it resolves to may or may not be a listed NodeExternalIP address.
7817
+ * - `"ExternalIP"` identifies an IP address which is, in some way, intended to be more usable from outside the cluster then an internal IP, though no specific semantics are defined. It may be a globally routable IP, though it is not required to be. External IPs may be assigned directly to an interface on the node, like a NodeInternalIP, or alternatively, packets sent to the external IP may be NAT'ed to an internal node IP rather than being delivered directly (making the IP less efficient for node-to-node traffic than a NodeInternalIP).
7818
+ * - `"Hostname"` identifies a name of the node. Although every node can be assumed to have a NodeAddress of this type, its exact syntax and semantics are not defined, and are not consistent between different clusters.
7819
+ * - `"InternalDNS"` identifies a DNS name which resolves to an IP address which has the characteristics of a NodeInternalIP. The IP it resolves to may or may not be a listed NodeInternalIP address.
7820
+ * - `"InternalIP"` identifies an IP address which is assigned to one of the node's network interfaces. Every node should have at least one address of this type. An internal IP is normally expected to be reachable from every other node, but may not be visible to hosts outside the cluster. By default it is assumed that kube-apiserver can reach node internal IPs, though it is possible to configure clusters where this is not the case. NodeInternalIP is the default type of node IP, and does not necessarily imply that the IP is ONLY reachable internally. If a node has multiple internal IPs, no specific semantics are assigned to the additional IPs.
7217
7821
  */
7218
7822
  type: pulumi.Input<string>;
7219
7823
  }
@@ -7256,6 +7860,13 @@ export declare namespace core {
7256
7860
  status: pulumi.Input<string>;
7257
7861
  /**
7258
7862
  * Type of node condition.
7863
+ *
7864
+ * Possible enum values:
7865
+ * - `"DiskPressure"` means the kubelet is under pressure due to insufficient available disk.
7866
+ * - `"MemoryPressure"` means the kubelet is under pressure due to insufficient available memory.
7867
+ * - `"NetworkUnavailable"` means that network for the node is not correctly configured.
7868
+ * - `"PIDPressure"` means the kubelet is under pressure due to insufficient available PID.
7869
+ * - `"Ready"` means kubelet is healthy and ready to accept pods.
7259
7870
  */
7260
7871
  type: pulumi.Input<string>;
7261
7872
  }
@@ -7317,6 +7928,14 @@ export declare namespace core {
7317
7928
  key: pulumi.Input<string>;
7318
7929
  /**
7319
7930
  * Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
7931
+ *
7932
+ * Possible enum values:
7933
+ * - `"DoesNotExist"`
7934
+ * - `"Exists"`
7935
+ * - `"Gt"`
7936
+ * - `"In"`
7937
+ * - `"Lt"`
7938
+ * - `"NotIn"`
7320
7939
  */
7321
7940
  operator: pulumi.Input<string>;
7322
7941
  /**
@@ -7412,6 +8031,11 @@ export declare namespace core {
7412
8031
  nodeInfo?: pulumi.Input<inputs.core.v1.NodeSystemInfo>;
7413
8032
  /**
7414
8033
  * NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.
8034
+ *
8035
+ * Possible enum values:
8036
+ * - `"Pending"` means the node has been created/added by the system, but not configured.
8037
+ * - `"Running"` means the node has been configured and has Kubernetes components running.
8038
+ * - `"Terminated"` means the node has been removed from the cluster.
7415
8039
  */
7416
8040
  phase?: pulumi.Input<string>;
7417
8041
  /**
@@ -7585,6 +8209,14 @@ export declare namespace core {
7585
8209
  */
7586
8210
  reason?: pulumi.Input<string>;
7587
8211
  status: pulumi.Input<string>;
8212
+ /**
8213
+ *
8214
+ *
8215
+ *
8216
+ * Possible enum values:
8217
+ * - `"FileSystemResizePending"` - controller resize is finished and a file system resize is pending on node
8218
+ * - `"Resizing"` - a user trigger resize of pvc has been started
8219
+ */
7588
8220
  type: pulumi.Input<string>;
7589
8221
  }
7590
8222
  /**
@@ -7609,7 +8241,7 @@ export declare namespace core {
7609
8241
  */
7610
8242
  dataSourceRef?: pulumi.Input<inputs.core.v1.TypedLocalObjectReference>;
7611
8243
  /**
7612
- * Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
8244
+ * Resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
7613
8245
  */
7614
8246
  resources?: pulumi.Input<inputs.core.v1.ResourceRequirements>;
7615
8247
  /**
@@ -7637,6 +8269,12 @@ export declare namespace core {
7637
8269
  * AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
7638
8270
  */
7639
8271
  accessModes?: pulumi.Input<pulumi.Input<string>[]>;
8272
+ /**
8273
+ * The storage resource within AllocatedResources tracks the capacity allocated to a PVC. It may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
8274
+ */
8275
+ allocatedResources?: pulumi.Input<{
8276
+ [key: string]: pulumi.Input<string>;
8277
+ }>;
7640
8278
  /**
7641
8279
  * Represents the actual resources of the underlying volume.
7642
8280
  */
@@ -7649,8 +8287,17 @@ export declare namespace core {
7649
8287
  conditions?: pulumi.Input<pulumi.Input<inputs.core.v1.PersistentVolumeClaimCondition>[]>;
7650
8288
  /**
7651
8289
  * Phase represents the current phase of PersistentVolumeClaim.
8290
+ *
8291
+ * Possible enum values:
8292
+ * - `"Bound"` used for PersistentVolumeClaims that are bound
8293
+ * - `"Lost"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.
8294
+ * - `"Pending"` used for PersistentVolumeClaims that are not yet bound
7652
8295
  */
7653
8296
  phase?: pulumi.Input<string>;
8297
+ /**
8298
+ * ResizeStatus stores status of resize operation. ResizeStatus is not set by default but when expansion is complete resizeStatus is set to empty string by resize controller or kubelet. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.
8299
+ */
8300
+ resizeStatus?: pulumi.Input<string>;
7654
8301
  }
7655
8302
  /**
7656
8303
  * PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.
@@ -7766,6 +8413,11 @@ export declare namespace core {
7766
8413
  nodeAffinity?: pulumi.Input<inputs.core.v1.VolumeNodeAffinity>;
7767
8414
  /**
7768
8415
  * What happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
8416
+ *
8417
+ * Possible enum values:
8418
+ * - `"Delete"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.
8419
+ * - `"Recycle"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.
8420
+ * - `"Retain"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.
7769
8421
  */
7770
8422
  persistentVolumeReclaimPolicy?: pulumi.Input<string>;
7771
8423
  /**
@@ -7815,6 +8467,13 @@ export declare namespace core {
7815
8467
  message?: pulumi.Input<string>;
7816
8468
  /**
7817
8469
  * Phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
8470
+ *
8471
+ * Possible enum values:
8472
+ * - `"Available"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims
8473
+ * - `"Bound"` used for PersistentVolumes that are bound
8474
+ * - `"Failed"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim
8475
+ * - `"Pending"` used for PersistentVolumes that are not available
8476
+ * - `"Released"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource
7818
8477
  */
7819
8478
  phase?: pulumi.Input<string>;
7820
8479
  /**
@@ -7948,6 +8607,12 @@ export declare namespace core {
7948
8607
  status: pulumi.Input<string>;
7949
8608
  /**
7950
8609
  * Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
8610
+ *
8611
+ * Possible enum values:
8612
+ * - `"ContainersReady"` indicates whether all containers in the pod are ready.
8613
+ * - `"Initialized"` means that all init containers in the pod have started successfully.
8614
+ * - `"PodScheduled"` represents status of the scheduling process for this pod.
8615
+ * - `"Ready"` means the pod is able to service requests and should be added to the load balancing pools of all matching services.
7951
8616
  */
7952
8617
  type: pulumi.Input<string>;
7953
8618
  }
@@ -7988,12 +8653,27 @@ export declare namespace core {
7988
8653
  */
7989
8654
  ip?: pulumi.Input<string>;
7990
8655
  }
8656
+ /**
8657
+ * PodOS defines the OS parameters of a pod.
8658
+ */
8659
+ interface PodOS {
8660
+ /**
8661
+ * Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null
8662
+ */
8663
+ name: pulumi.Input<string>;
8664
+ }
7991
8665
  /**
7992
8666
  * PodReadinessGate contains the reference to a pod condition
7993
8667
  */
7994
8668
  interface PodReadinessGate {
7995
8669
  /**
7996
8670
  * ConditionType refers to a condition in the pod's condition list with matching type.
8671
+ *
8672
+ * Possible enum values:
8673
+ * - `"ContainersReady"` indicates whether all containers in the pod are ready.
8674
+ * - `"Initialized"` means that all init containers in the pod have started successfully.
8675
+ * - `"PodScheduled"` represents status of the scheduling process for this pod.
8676
+ * - `"Ready"` means the pod is able to service requests and should be added to the load balancing pools of all matching services.
7997
8677
  */
7998
8678
  conditionType: pulumi.Input<string>;
7999
8679
  }
@@ -8006,15 +8686,15 @@ export declare namespace core {
8006
8686
  *
8007
8687
  * 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----
8008
8688
  *
8009
- * If unset, the Kubelet will not modify the ownership and permissions of any volume.
8689
+ * If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.
8010
8690
  */
8011
8691
  fsGroup?: pulumi.Input<number>;
8012
8692
  /**
8013
- * fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used.
8693
+ * fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. Note that this field cannot be set when spec.os.name is windows.
8014
8694
  */
8015
8695
  fsGroupChangePolicy?: pulumi.Input<string>;
8016
8696
  /**
8017
- * The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
8697
+ * The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.
8018
8698
  */
8019
8699
  runAsGroup?: pulumi.Input<number>;
8020
8700
  /**
@@ -8022,27 +8702,27 @@ export declare namespace core {
8022
8702
  */
8023
8703
  runAsNonRoot?: pulumi.Input<boolean>;
8024
8704
  /**
8025
- * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
8705
+ * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.
8026
8706
  */
8027
8707
  runAsUser?: pulumi.Input<number>;
8028
8708
  /**
8029
- * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.
8709
+ * The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.
8030
8710
  */
8031
8711
  seLinuxOptions?: pulumi.Input<inputs.core.v1.SELinuxOptions>;
8032
8712
  /**
8033
- * The seccomp options to use by the containers in this pod.
8713
+ * The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.
8034
8714
  */
8035
8715
  seccompProfile?: pulumi.Input<inputs.core.v1.SeccompProfile>;
8036
8716
  /**
8037
- * A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container.
8717
+ * A list of groups applied to the first process run in each container, in addition to the container's primary GID. If unspecified, no groups will be added to any container. Note that this field cannot be set when spec.os.name is windows.
8038
8718
  */
8039
8719
  supplementalGroups?: pulumi.Input<pulumi.Input<number>[]>;
8040
8720
  /**
8041
- * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch.
8721
+ * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.
8042
8722
  */
8043
8723
  sysctls?: pulumi.Input<pulumi.Input<inputs.core.v1.Sysctl>[]>;
8044
8724
  /**
8045
- * The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
8725
+ * The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.
8046
8726
  */
8047
8727
  windowsOptions?: pulumi.Input<inputs.core.v1.WindowsSecurityContextOptions>;
8048
8728
  }
@@ -8072,6 +8752,12 @@ export declare namespace core {
8072
8752
  dnsConfig?: pulumi.Input<inputs.core.v1.PodDNSConfig>;
8073
8753
  /**
8074
8754
  * Set DNS policy for the pod. Defaults to "ClusterFirst". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.
8755
+ *
8756
+ * Possible enum values:
8757
+ * - `"ClusterFirst"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.
8758
+ * - `"ClusterFirstWithHostNet"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.
8759
+ * - `"Default"` indicates that the pod should use the default (as determined by kubelet) DNS settings.
8760
+ * - `"None"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.
8075
8761
  */
8076
8762
  dnsPolicy?: pulumi.Input<string>;
8077
8763
  /**
@@ -8079,7 +8765,7 @@ export declare namespace core {
8079
8765
  */
8080
8766
  enableServiceLinks?: pulumi.Input<boolean>;
8081
8767
  /**
8082
- * List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.
8768
+ * List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.
8083
8769
  */
8084
8770
  ephemeralContainers?: pulumi.Input<pulumi.Input<inputs.core.v1.EphemeralContainer>[]>;
8085
8771
  /**
@@ -8120,6 +8806,14 @@ export declare namespace core {
8120
8806
  nodeSelector?: pulumi.Input<{
8121
8807
  [key: string]: pulumi.Input<string>;
8122
8808
  }>;
8809
+ /**
8810
+ * Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.
8811
+ *
8812
+ * If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions
8813
+ *
8814
+ * If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup This is an alpha field and requires the IdentifyPodOS feature
8815
+ */
8816
+ os?: pulumi.Input<inputs.core.v1.PodOS>;
8123
8817
  /**
8124
8818
  * Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md This field is beta-level as of Kubernetes v1.18, and is only honored by servers that enable the PodOverhead feature.
8125
8819
  */
@@ -8144,6 +8838,11 @@ export declare namespace core {
8144
8838
  readinessGates?: pulumi.Input<pulumi.Input<inputs.core.v1.PodReadinessGate>[]>;
8145
8839
  /**
8146
8840
  * Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
8841
+ *
8842
+ * Possible enum values:
8843
+ * - `"Always"`
8844
+ * - `"Never"`
8845
+ * - `"OnFailure"`
8147
8846
  */
8148
8847
  restartPolicy?: pulumi.Input<string>;
8149
8848
  /**
@@ -8208,7 +8907,7 @@ export declare namespace core {
8208
8907
  */
8209
8908
  containerStatuses?: pulumi.Input<pulumi.Input<inputs.core.v1.ContainerStatus>[]>;
8210
8909
  /**
8211
- * Status for any ephemeral containers that have run in this pod. This field is alpha-level and is only populated by servers that enable the EphemeralContainers feature.
8910
+ * Status for any ephemeral containers that have run in this pod. This field is beta-level and available on clusters that haven't disabled the EphemeralContainers feature gate.
8212
8911
  */
8213
8912
  ephemeralContainerStatuses?: pulumi.Input<pulumi.Input<inputs.core.v1.ContainerStatus>[]>;
8214
8913
  /**
@@ -8233,6 +8932,13 @@ export declare namespace core {
8233
8932
  * Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.
8234
8933
  *
8235
8934
  * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
8935
+ *
8936
+ * Possible enum values:
8937
+ * - `"Failed"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).
8938
+ * - `"Pending"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.
8939
+ * - `"Running"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.
8940
+ * - `"Succeeded"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.
8941
+ * - `"Unknown"` means that for some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)
8236
8942
  */
8237
8943
  phase?: pulumi.Input<string>;
8238
8944
  /**
@@ -8245,6 +8951,11 @@ export declare namespace core {
8245
8951
  podIPs?: pulumi.Input<pulumi.Input<inputs.core.v1.PodIP>[]>;
8246
8952
  /**
8247
8953
  * The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
8954
+ *
8955
+ * Possible enum values:
8956
+ * - `"BestEffort"` is the BestEffort qos class.
8957
+ * - `"Burstable"` is the Burstable qos class.
8958
+ * - `"Guaranteed"` is the Guaranteed qos class.
8248
8959
  */
8249
8960
  qosClass?: pulumi.Input<string>;
8250
8961
  /**
@@ -8304,6 +9015,11 @@ export declare namespace core {
8304
9015
  port: pulumi.Input<number>;
8305
9016
  /**
8306
9017
  * Protocol is the protocol of the service port of which status is recorded here The supported values are: "TCP", "UDP", "SCTP"
9018
+ *
9019
+ * Possible enum values:
9020
+ * - `"SCTP"` is the SCTP protocol.
9021
+ * - `"TCP"` is the TCP protocol.
9022
+ * - `"UDP"` is the UDP protocol.
8307
9023
  */
8308
9024
  protocol: pulumi.Input<string>;
8309
9025
  }
@@ -8342,13 +9058,17 @@ export declare namespace core {
8342
9058
  */
8343
9059
  interface Probe {
8344
9060
  /**
8345
- * One and only one of the following should be specified. Exec specifies the action to take.
9061
+ * Exec specifies the action to take.
8346
9062
  */
8347
9063
  exec?: pulumi.Input<inputs.core.v1.ExecAction>;
8348
9064
  /**
8349
9065
  * Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
8350
9066
  */
8351
9067
  failureThreshold?: pulumi.Input<number>;
9068
+ /**
9069
+ * GRPC specifies an action involving a GRPC port. This is an alpha field and requires enabling GRPCContainerProbe feature gate.
9070
+ */
9071
+ grpc?: pulumi.Input<inputs.core.v1.GRPCAction>;
8352
9072
  /**
8353
9073
  * HTTPGet specifies the http request to perform.
8354
9074
  */
@@ -8366,7 +9086,7 @@ export declare namespace core {
8366
9086
  */
8367
9087
  successThreshold?: pulumi.Input<number>;
8368
9088
  /**
8369
- * TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported
9089
+ * TCPSocket specifies an action involving a TCP port.
8370
9090
  */
8371
9091
  tcpSocket?: pulumi.Input<inputs.core.v1.TCPSocketAction>;
8372
9092
  /**
@@ -8817,10 +9537,24 @@ export declare namespace core {
8817
9537
  interface ScopedResourceSelectorRequirement {
8818
9538
  /**
8819
9539
  * Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.
9540
+ *
9541
+ * Possible enum values:
9542
+ * - `"DoesNotExist"`
9543
+ * - `"Exists"`
9544
+ * - `"In"`
9545
+ * - `"NotIn"`
8820
9546
  */
8821
9547
  operator: pulumi.Input<string>;
8822
9548
  /**
8823
9549
  * The name of the scope that the selector applies to.
9550
+ *
9551
+ * Possible enum values:
9552
+ * - `"BestEffort"` Match all pod objects that have best effort quality of service
9553
+ * - `"CrossNamespacePodAffinity"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned. This is a beta feature enabled by the PodAffinityNamespaceSelector feature flag.
9554
+ * - `"NotBestEffort"` Match all pod objects that do not have best effort quality of service
9555
+ * - `"NotTerminating"` Match all pod objects where spec.activeDeadlineSeconds is nil
9556
+ * - `"PriorityClass"` Match all pod objects that have priority class mentioned
9557
+ * - `"Terminating"` Match all pod objects where spec.activeDeadlineSeconds >=0
8824
9558
  */
8825
9559
  scopeName: pulumi.Input<string>;
8826
9560
  /**
@@ -8840,6 +9574,11 @@ export declare namespace core {
8840
9574
  * type indicates which kind of seccomp profile will be applied. Valid options are:
8841
9575
  *
8842
9576
  * Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.
9577
+ *
9578
+ * Possible enum values:
9579
+ * - `"Localhost"` indicates a profile defined in a file on the node should be used. The file's location relative to <kubelet-root-dir>/seccomp.
9580
+ * - `"RuntimeDefault"` represents the default container runtime seccomp profile.
9581
+ * - `"Unconfined"` indicates no seccomp profile is applied (A.K.A. unconfined).
8843
9582
  */
8844
9583
  type: pulumi.Input<string>;
8845
9584
  }
@@ -8886,7 +9625,7 @@ export declare namespace core {
8886
9625
  [key: string]: pulumi.Input<string>;
8887
9626
  }>;
8888
9627
  /**
8889
- * Used to facilitate programmatic handling of secret data.
9628
+ * Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types
8890
9629
  */
8891
9630
  type?: pulumi.Input<string>;
8892
9631
  }
@@ -8982,27 +9721,27 @@ export declare namespace core {
8982
9721
  */
8983
9722
  interface SecurityContext {
8984
9723
  /**
8985
- * AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN
9724
+ * AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.
8986
9725
  */
8987
9726
  allowPrivilegeEscalation?: pulumi.Input<boolean>;
8988
9727
  /**
8989
- * The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.
9728
+ * The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.
8990
9729
  */
8991
9730
  capabilities?: pulumi.Input<inputs.core.v1.Capabilities>;
8992
9731
  /**
8993
- * Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.
9732
+ * Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.
8994
9733
  */
8995
9734
  privileged?: pulumi.Input<boolean>;
8996
9735
  /**
8997
- * procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled.
9736
+ * procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.
8998
9737
  */
8999
9738
  procMount?: pulumi.Input<string>;
9000
9739
  /**
9001
- * Whether this container has a read-only root filesystem. Default is false.
9740
+ * Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.
9002
9741
  */
9003
9742
  readOnlyRootFilesystem?: pulumi.Input<boolean>;
9004
9743
  /**
9005
- * The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
9744
+ * The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.
9006
9745
  */
9007
9746
  runAsGroup?: pulumi.Input<number>;
9008
9747
  /**
@@ -9010,19 +9749,19 @@ export declare namespace core {
9010
9749
  */
9011
9750
  runAsNonRoot?: pulumi.Input<boolean>;
9012
9751
  /**
9013
- * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
9752
+ * The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.
9014
9753
  */
9015
9754
  runAsUser?: pulumi.Input<number>;
9016
9755
  /**
9017
- * The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
9756
+ * The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.
9018
9757
  */
9019
9758
  seLinuxOptions?: pulumi.Input<inputs.core.v1.SELinuxOptions>;
9020
9759
  /**
9021
- * The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options.
9760
+ * The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.
9022
9761
  */
9023
9762
  seccompProfile?: pulumi.Input<inputs.core.v1.SeccompProfile>;
9024
9763
  /**
9025
- * The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
9764
+ * The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.
9026
9765
  */
9027
9766
  windowsOptions?: pulumi.Input<inputs.core.v1.WindowsSecurityContextOptions>;
9028
9767
  }
@@ -9144,6 +9883,11 @@ export declare namespace core {
9144
9883
  port: pulumi.Input<number>;
9145
9884
  /**
9146
9885
  * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP". Default is TCP.
9886
+ *
9887
+ * Possible enum values:
9888
+ * - `"SCTP"` is the SCTP protocol.
9889
+ * - `"TCP"` is the TCP protocol.
9890
+ * - `"UDP"` is the UDP protocol.
9147
9891
  */
9148
9892
  protocol?: pulumi.Input<string>;
9149
9893
  /**
@@ -9166,7 +9910,7 @@ export declare namespace core {
9166
9910
  /**
9167
9911
  * ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are "None", empty string (""), or a valid IP address. Setting this to "None" makes a "headless service" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.
9168
9912
  *
9169
- * Unless the "IPv6DualStack" feature gate is enabled, this field is limited to one value, which must be the same as the clusterIP field. If the feature gate is enabled, this field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
9913
+ * This field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
9170
9914
  */
9171
9915
  clusterIPs?: pulumi.Input<pulumi.Input<string>[]>;
9172
9916
  /**
@@ -9179,6 +9923,10 @@ export declare namespace core {
9179
9923
  externalName?: pulumi.Input<string>;
9180
9924
  /**
9181
9925
  * externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.
9926
+ *
9927
+ * Possible enum values:
9928
+ * - `"Cluster"` specifies node-global (legacy) behavior.
9929
+ * - `"Local"` specifies node-local endpoints behavior.
9182
9930
  */
9183
9931
  externalTrafficPolicy?: pulumi.Input<string>;
9184
9932
  /**
@@ -9190,7 +9938,7 @@ export declare namespace core {
9190
9938
  */
9191
9939
  internalTrafficPolicy?: pulumi.Input<string>;
9192
9940
  /**
9193
- * IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the "IPv6DualStack" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName.
9941
+ * IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are "IPv4" and "IPv6". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to "headless" services. This field will be wiped when updating a Service to type ExternalName.
9194
9942
  *
9195
9943
  * This field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.
9196
9944
  */
@@ -9200,7 +9948,7 @@ export declare namespace core {
9200
9948
  */
9201
9949
  ipFamily?: pulumi.Input<string>;
9202
9950
  /**
9203
- * IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the "IPv6DualStack" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
9951
+ * IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be "SingleStack" (a single IP family), "PreferDualStack" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or "RequireDualStack" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.
9204
9952
  */
9205
9953
  ipFamilyPolicy?: pulumi.Input<string>;
9206
9954
  /**
@@ -9231,6 +9979,10 @@ export declare namespace core {
9231
9979
  }>;
9232
9980
  /**
9233
9981
  * Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
9982
+ *
9983
+ * Possible enum values:
9984
+ * - `"ClientIP"` is the Client IP based.
9985
+ * - `"None"` - no session affinity.
9234
9986
  */
9235
9987
  sessionAffinity?: pulumi.Input<string>;
9236
9988
  /**
@@ -9243,6 +9995,12 @@ export declare namespace core {
9243
9995
  topologyKeys?: pulumi.Input<pulumi.Input<string>[]>;
9244
9996
  /**
9245
9997
  * type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. "ExternalName" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
9998
+ *
9999
+ * Possible enum values:
10000
+ * - `"ClusterIP"` means a service will only be accessible inside the cluster, via the cluster IP.
10001
+ * - `"ExternalName"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.
10002
+ * - `"LoadBalancer"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.
10003
+ * - `"NodePort"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.
9246
10004
  */
9247
10005
  type?: pulumi.Input<string | enums.core.v1.ServiceSpecType>;
9248
10006
  }
@@ -9350,6 +10108,11 @@ export declare namespace core {
9350
10108
  interface Taint {
9351
10109
  /**
9352
10110
  * Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
10111
+ *
10112
+ * Possible enum values:
10113
+ * - `"NoExecute"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.
10114
+ * - `"NoSchedule"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.
10115
+ * - `"PreferNoSchedule"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.
9353
10116
  */
9354
10117
  effect: pulumi.Input<string>;
9355
10118
  /**
@@ -9371,6 +10134,11 @@ export declare namespace core {
9371
10134
  interface Toleration {
9372
10135
  /**
9373
10136
  * Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
10137
+ *
10138
+ * Possible enum values:
10139
+ * - `"NoExecute"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.
10140
+ * - `"NoSchedule"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.
10141
+ * - `"PreferNoSchedule"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.
9374
10142
  */
9375
10143
  effect?: pulumi.Input<string>;
9376
10144
  /**
@@ -9379,6 +10147,10 @@ export declare namespace core {
9379
10147
  key?: pulumi.Input<string>;
9380
10148
  /**
9381
10149
  * Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
10150
+ *
10151
+ * Possible enum values:
10152
+ * - `"Equal"`
10153
+ * - `"Exists"`
9382
10154
  */
9383
10155
  operator?: pulumi.Input<string>;
9384
10156
  /**
@@ -9432,7 +10204,11 @@ export declare namespace core {
9432
10204
  * WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,
9433
10205
  * but giving higher precedence to topologies that would help reduce the
9434
10206
  * skew.
9435
- * A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assigment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.
10207
+ * A constraint is considered "Unsatisfiable" for an incoming pod if and only if every possible node assignment for that pod would violate "MaxSkew" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.
10208
+ *
10209
+ * Possible enum values:
10210
+ * - `"DoNotSchedule"` instructs the scheduler not to schedule the pod when constraints are not satisfied.
10211
+ * - `"ScheduleAnyway"` instructs the scheduler to schedule the pod even if constraints are not satisfied.
9436
10212
  */
9437
10213
  whenUnsatisfiable: pulumi.Input<string>;
9438
10214
  }
@@ -9508,8 +10284,6 @@ export declare namespace core {
9508
10284
  * Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.
9509
10285
  *
9510
10286
  * A pod can use both types of ephemeral volumes and persistent volumes at the same time.
9511
- *
9512
- * This is a beta feature and only available when the GenericEphemeralVolume feature gate is enabled.
9513
10287
  */
9514
10288
  ephemeral?: pulumi.Input<inputs.core.v1.EphemeralVolumeSource>;
9515
10289
  /**
@@ -9816,6 +10590,11 @@ export declare namespace discovery {
9816
10590
  interface EndpointSlice {
9817
10591
  /**
9818
10592
  * addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.
10593
+ *
10594
+ * Possible enum values:
10595
+ * - `"FQDN"` represents a FQDN.
10596
+ * - `"IPv4"` represents an IPv4 Address.
10597
+ * - `"IPv6"` represents an IPv6 Address.
9819
10598
  */
9820
10599
  addressType: pulumi.Input<string>;
9821
10600
  /**
@@ -10795,338 +11574,663 @@ export declare namespace extensions {
10795
11574
  /**
10796
11575
  * Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.
10797
11576
  */
10798
- podSelector: pulumi.Input<inputs.meta.v1.LabelSelector>;
11577
+ podSelector: pulumi.Input<inputs.meta.v1.LabelSelector>;
11578
+ /**
11579
+ * List of rule types that the NetworkPolicy relates to. Valid options are "Ingress", "Egress", or "Ingress,Egress". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8
11580
+ */
11581
+ policyTypes?: pulumi.Input<pulumi.Input<string>[]>;
11582
+ }
11583
+ /**
11584
+ * PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.
11585
+ */
11586
+ interface PodSecurityPolicy {
11587
+ /**
11588
+ * 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
11589
+ */
11590
+ apiVersion?: pulumi.Input<"extensions/v1beta1">;
11591
+ /**
11592
+ * 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
11593
+ */
11594
+ kind?: pulumi.Input<"PodSecurityPolicy">;
11595
+ /**
11596
+ * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
11597
+ */
11598
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
11599
+ /**
11600
+ * spec defines the policy enforced.
11601
+ */
11602
+ spec?: pulumi.Input<inputs.extensions.v1beta1.PodSecurityPolicySpec>;
11603
+ }
11604
+ /**
11605
+ * PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.
11606
+ */
11607
+ interface PodSecurityPolicySpec {
11608
+ /**
11609
+ * allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.
11610
+ */
11611
+ allowPrivilegeEscalation?: pulumi.Input<boolean>;
11612
+ /**
11613
+ * AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes.
11614
+ */
11615
+ allowedCSIDrivers?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedCSIDriver>[]>;
11616
+ /**
11617
+ * allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.
11618
+ */
11619
+ allowedCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11620
+ /**
11621
+ * allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the "volumes" field.
11622
+ */
11623
+ allowedFlexVolumes?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedFlexVolume>[]>;
11624
+ /**
11625
+ * allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.
11626
+ */
11627
+ allowedHostPaths?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedHostPath>[]>;
11628
+ /**
11629
+ * AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.
11630
+ */
11631
+ allowedProcMountTypes?: pulumi.Input<pulumi.Input<string>[]>;
11632
+ /**
11633
+ * allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.
11634
+ *
11635
+ * Examples: e.g. "foo/*" allows "foo/bar", "foo/baz", etc. e.g. "foo.*" allows "foo.bar", "foo.baz", etc.
11636
+ */
11637
+ allowedUnsafeSysctls?: pulumi.Input<pulumi.Input<string>[]>;
11638
+ /**
11639
+ * defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.
11640
+ */
11641
+ defaultAddCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11642
+ /**
11643
+ * defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.
11644
+ */
11645
+ defaultAllowPrivilegeEscalation?: pulumi.Input<boolean>;
11646
+ /**
11647
+ * forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.
11648
+ *
11649
+ * Examples: e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. e.g. "foo.*" forbids "foo.bar", "foo.baz", etc.
11650
+ */
11651
+ forbiddenSysctls?: pulumi.Input<pulumi.Input<string>[]>;
11652
+ /**
11653
+ * fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.
11654
+ */
11655
+ fsGroup: pulumi.Input<inputs.extensions.v1beta1.FSGroupStrategyOptions>;
11656
+ /**
11657
+ * hostIPC determines if the policy allows the use of HostIPC in the pod spec.
11658
+ */
11659
+ hostIPC?: pulumi.Input<boolean>;
11660
+ /**
11661
+ * hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
11662
+ */
11663
+ hostNetwork?: pulumi.Input<boolean>;
11664
+ /**
11665
+ * hostPID determines if the policy allows the use of HostPID in the pod spec.
11666
+ */
11667
+ hostPID?: pulumi.Input<boolean>;
11668
+ /**
11669
+ * hostPorts determines which host port ranges are allowed to be exposed.
11670
+ */
11671
+ hostPorts?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.HostPortRange>[]>;
11672
+ /**
11673
+ * privileged determines if a pod can request to be run as privileged.
11674
+ */
11675
+ privileged?: pulumi.Input<boolean>;
11676
+ /**
11677
+ * readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.
11678
+ */
11679
+ readOnlyRootFilesystem?: pulumi.Input<boolean>;
11680
+ /**
11681
+ * requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.
11682
+ */
11683
+ requiredDropCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11684
+ /**
11685
+ * RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.
11686
+ */
11687
+ runAsGroup?: pulumi.Input<inputs.extensions.v1beta1.RunAsGroupStrategyOptions>;
11688
+ /**
11689
+ * runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.
11690
+ */
11691
+ runAsUser: pulumi.Input<inputs.extensions.v1beta1.RunAsUserStrategyOptions>;
11692
+ /**
11693
+ * runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled.
11694
+ */
11695
+ runtimeClass?: pulumi.Input<inputs.extensions.v1beta1.RuntimeClassStrategyOptions>;
11696
+ /**
11697
+ * seLinux is the strategy that will dictate the allowable labels that may be set.
11698
+ */
11699
+ seLinux: pulumi.Input<inputs.extensions.v1beta1.SELinuxStrategyOptions>;
11700
+ /**
11701
+ * supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.
11702
+ */
11703
+ supplementalGroups: pulumi.Input<inputs.extensions.v1beta1.SupplementalGroupsStrategyOptions>;
11704
+ /**
11705
+ * volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.
11706
+ */
11707
+ volumes?: pulumi.Input<pulumi.Input<string>[]>;
11708
+ }
11709
+ /**
11710
+ * ReplicaSet ensures that a specified number of pod replicas are running at any given time.
11711
+ */
11712
+ interface ReplicaSet {
11713
+ /**
11714
+ * 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
11715
+ */
11716
+ apiVersion?: pulumi.Input<"extensions/v1beta1">;
11717
+ /**
11718
+ * 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
11719
+ */
11720
+ kind?: pulumi.Input<"ReplicaSet">;
11721
+ /**
11722
+ * If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
11723
+ */
11724
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
11725
+ /**
11726
+ * Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11727
+ */
11728
+ spec?: pulumi.Input<inputs.extensions.v1beta1.ReplicaSetSpec>;
11729
+ /**
11730
+ * Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11731
+ */
11732
+ status?: pulumi.Input<inputs.extensions.v1beta1.ReplicaSetStatus>;
11733
+ }
11734
+ /**
11735
+ * ReplicaSetCondition describes the state of a replica set at a certain point.
11736
+ */
11737
+ interface ReplicaSetCondition {
11738
+ /**
11739
+ * The last time the condition transitioned from one status to another.
11740
+ */
11741
+ lastTransitionTime?: pulumi.Input<string>;
11742
+ /**
11743
+ * A human readable message indicating details about the transition.
11744
+ */
11745
+ message?: pulumi.Input<string>;
11746
+ /**
11747
+ * The reason for the condition's last transition.
11748
+ */
11749
+ reason?: pulumi.Input<string>;
11750
+ /**
11751
+ * Status of the condition, one of True, False, Unknown.
11752
+ */
11753
+ status: pulumi.Input<string>;
11754
+ /**
11755
+ * Type of replica set condition.
11756
+ */
11757
+ type: pulumi.Input<string>;
11758
+ }
11759
+ /**
11760
+ * ReplicaSetSpec is the specification of a ReplicaSet.
11761
+ */
11762
+ interface ReplicaSetSpec {
11763
+ /**
11764
+ * Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
11765
+ */
11766
+ minReadySeconds?: pulumi.Input<number>;
11767
+ /**
11768
+ * Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
11769
+ */
11770
+ replicas?: pulumi.Input<number>;
11771
+ /**
11772
+ * Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
11773
+ */
11774
+ selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
11775
+ /**
11776
+ * Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
11777
+ */
11778
+ template?: pulumi.Input<inputs.core.v1.PodTemplateSpec>;
11779
+ }
11780
+ /**
11781
+ * ReplicaSetStatus represents the current status of a ReplicaSet.
11782
+ */
11783
+ interface ReplicaSetStatus {
11784
+ /**
11785
+ * The number of available replicas (ready for at least minReadySeconds) for this replica set.
11786
+ */
11787
+ availableReplicas?: pulumi.Input<number>;
11788
+ /**
11789
+ * Represents the latest available observations of a replica set's current state.
11790
+ */
11791
+ conditions?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.ReplicaSetCondition>[]>;
11792
+ /**
11793
+ * The number of pods that have labels matching the labels of the pod template of the replicaset.
11794
+ */
11795
+ fullyLabeledReplicas?: pulumi.Input<number>;
11796
+ /**
11797
+ * ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
11798
+ */
11799
+ observedGeneration?: pulumi.Input<number>;
11800
+ /**
11801
+ * The number of ready replicas for this replica set.
11802
+ */
11803
+ readyReplicas?: pulumi.Input<number>;
11804
+ /**
11805
+ * Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
11806
+ */
11807
+ replicas: pulumi.Input<number>;
11808
+ }
11809
+ /**
11810
+ * DEPRECATED.
11811
+ */
11812
+ interface RollbackConfig {
11813
+ /**
11814
+ * The revision to rollback to. If set to 0, rollback to the last revision.
11815
+ */
11816
+ revision?: pulumi.Input<number>;
11817
+ }
11818
+ /**
11819
+ * Spec to control the desired behavior of daemon set rolling update.
11820
+ */
11821
+ interface RollingUpdateDaemonSet {
10799
11822
  /**
10800
- * List of rule types that the NetworkPolicy relates to. Valid options are "Ingress", "Egress", or "Ingress,Egress". If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an Egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8
11823
+ * The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.
10801
11824
  */
10802
- policyTypes?: pulumi.Input<pulumi.Input<string>[]>;
11825
+ maxUnavailable?: pulumi.Input<number | string>;
10803
11826
  }
10804
11827
  /**
10805
- * PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated: use PodSecurityPolicy from policy API Group instead.
11828
+ * Spec to control the desired behavior of rolling update.
10806
11829
  */
10807
- interface PodSecurityPolicy {
11830
+ interface RollingUpdateDeployment {
10808
11831
  /**
10809
- * 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
11832
+ * The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.
10810
11833
  */
10811
- apiVersion?: pulumi.Input<"extensions/v1beta1">;
11834
+ maxSurge?: pulumi.Input<number | string>;
10812
11835
  /**
10813
- * 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
11836
+ * The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.
10814
11837
  */
10815
- kind?: pulumi.Input<"PodSecurityPolicy">;
11838
+ maxUnavailable?: pulumi.Input<number | string>;
11839
+ }
11840
+ /**
11841
+ * RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.
11842
+ */
11843
+ interface RunAsGroupStrategyOptions {
10816
11844
  /**
10817
- * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
11845
+ * ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.
10818
11846
  */
10819
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
11847
+ ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
10820
11848
  /**
10821
- * spec defines the policy enforced.
11849
+ * rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
10822
11850
  */
10823
- spec?: pulumi.Input<inputs.extensions.v1beta1.PodSecurityPolicySpec>;
11851
+ rule: pulumi.Input<string>;
10824
11852
  }
10825
11853
  /**
10826
- * PodSecurityPolicySpec defines the policy enforced. Deprecated: use PodSecurityPolicySpec from policy API Group instead.
11854
+ * RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.
10827
11855
  */
10828
- interface PodSecurityPolicySpec {
11856
+ interface RunAsUserStrategyOptions {
10829
11857
  /**
10830
- * allowPrivilegeEscalation determines if a pod can request to allow privilege escalation. If unspecified, defaults to true.
11858
+ * ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.
10831
11859
  */
10832
- allowPrivilegeEscalation?: pulumi.Input<boolean>;
11860
+ ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
10833
11861
  /**
10834
- * AllowedCSIDrivers is a whitelist of inline CSI drivers that must be explicitly set to be embedded within a pod spec. An empty value indicates that any CSI driver can be used for inline ephemeral volumes.
11862
+ * rule is the strategy that will dictate the allowable RunAsUser values that may be set.
10835
11863
  */
10836
- allowedCSIDrivers?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedCSIDriver>[]>;
11864
+ rule: pulumi.Input<string>;
11865
+ }
11866
+ /**
11867
+ * RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.
11868
+ */
11869
+ interface RuntimeClassStrategyOptions {
10837
11870
  /**
10838
- * allowedCapabilities is a list of capabilities that can be requested to add to the container. Capabilities in this field may be added at the pod author's discretion. You must not list a capability in both allowedCapabilities and requiredDropCapabilities.
11871
+ * allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of "*" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
10839
11872
  */
10840
- allowedCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11873
+ allowedRuntimeClassNames: pulumi.Input<pulumi.Input<string>[]>;
10841
11874
  /**
10842
- * allowedFlexVolumes is a whitelist of allowed Flexvolumes. Empty or nil indicates that all Flexvolumes may be used. This parameter is effective only when the usage of the Flexvolumes is allowed in the "volumes" field.
11875
+ * defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.
10843
11876
  */
10844
- allowedFlexVolumes?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedFlexVolume>[]>;
11877
+ defaultRuntimeClassName?: pulumi.Input<string>;
11878
+ }
11879
+ /**
11880
+ * SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.
11881
+ */
11882
+ interface SELinuxStrategyOptions {
10845
11883
  /**
10846
- * allowedHostPaths is a white list of allowed host paths. Empty indicates that all host paths may be used.
11884
+ * rule is the strategy that will dictate the allowable labels that may be set.
10847
11885
  */
10848
- allowedHostPaths?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.AllowedHostPath>[]>;
11886
+ rule: pulumi.Input<string>;
10849
11887
  /**
10850
- * AllowedProcMountTypes is a whitelist of allowed ProcMountTypes. Empty or nil indicates that only the DefaultProcMountType may be used. This requires the ProcMountType feature flag to be enabled.
11888
+ * seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
10851
11889
  */
10852
- allowedProcMountTypes?: pulumi.Input<pulumi.Input<string>[]>;
11890
+ seLinuxOptions?: pulumi.Input<inputs.core.v1.SELinuxOptions>;
11891
+ }
11892
+ /**
11893
+ * SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.
11894
+ */
11895
+ interface SupplementalGroupsStrategyOptions {
10853
11896
  /**
10854
- * allowedUnsafeSysctls is a list of explicitly allowed unsafe sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of allowed sysctls. Single * means all unsafe sysctls are allowed. Kubelet has to whitelist all allowed unsafe sysctls explicitly to avoid rejection.
10855
- *
10856
- * Examples: e.g. "foo/*" allows "foo/bar", "foo/baz", etc. e.g. "foo.*" allows "foo.bar", "foo.baz", etc.
11897
+ * ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.
10857
11898
  */
10858
- allowedUnsafeSysctls?: pulumi.Input<pulumi.Input<string>[]>;
11899
+ ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
10859
11900
  /**
10860
- * defaultAddCapabilities is the default set of capabilities that will be added to the container unless the pod spec specifically drops the capability. You may not list a capability in both defaultAddCapabilities and requiredDropCapabilities. Capabilities added here are implicitly allowed, and need not be included in the allowedCapabilities list.
11901
+ * rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
10861
11902
  */
10862
- defaultAddCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11903
+ rule?: pulumi.Input<string>;
11904
+ }
11905
+ }
11906
+ }
11907
+ export declare namespace flowcontrol {
11908
+ namespace v1alpha1 {
11909
+ /**
11910
+ * FlowDistinguisherMethod specifies the method of a flow distinguisher.
11911
+ */
11912
+ interface FlowDistinguisherMethod {
10863
11913
  /**
10864
- * defaultAllowPrivilegeEscalation controls the default setting for whether a process can gain more privileges than its parent process.
11914
+ * `type` is the type of flow distinguisher method The supported types are "ByUser" and "ByNamespace". Required.
10865
11915
  */
10866
- defaultAllowPrivilegeEscalation?: pulumi.Input<boolean>;
11916
+ type: pulumi.Input<string>;
11917
+ }
11918
+ /**
11919
+ * FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a "flow distinguisher".
11920
+ */
11921
+ interface FlowSchema {
10867
11922
  /**
10868
- * forbiddenSysctls is a list of explicitly forbidden sysctls, defaults to none. Each entry is either a plain sysctl name or ends in "*" in which case it is considered as a prefix of forbidden sysctls. Single * means all sysctls are forbidden.
10869
- *
10870
- * Examples: e.g. "foo/*" forbids "foo/bar", "foo/baz", etc. e.g. "foo.*" forbids "foo.bar", "foo.baz", etc.
11923
+ * 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
10871
11924
  */
10872
- forbiddenSysctls?: pulumi.Input<pulumi.Input<string>[]>;
11925
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1">;
10873
11926
  /**
10874
- * fsGroup is the strategy that will dictate what fs group is used by the SecurityContext.
11927
+ * 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
10875
11928
  */
10876
- fsGroup: pulumi.Input<inputs.extensions.v1beta1.FSGroupStrategyOptions>;
11929
+ kind?: pulumi.Input<"FlowSchema">;
10877
11930
  /**
10878
- * hostIPC determines if the policy allows the use of HostIPC in the pod spec.
11931
+ * `metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10879
11932
  */
10880
- hostIPC?: pulumi.Input<boolean>;
11933
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
10881
11934
  /**
10882
- * hostNetwork determines if the policy allows the use of HostNetwork in the pod spec.
11935
+ * `spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
10883
11936
  */
10884
- hostNetwork?: pulumi.Input<boolean>;
11937
+ spec?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaSpec>;
10885
11938
  /**
10886
- * hostPID determines if the policy allows the use of HostPID in the pod spec.
11939
+ * `status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
10887
11940
  */
10888
- hostPID?: pulumi.Input<boolean>;
11941
+ status?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaStatus>;
11942
+ }
11943
+ /**
11944
+ * FlowSchemaCondition describes conditions for a FlowSchema.
11945
+ */
11946
+ interface FlowSchemaCondition {
10889
11947
  /**
10890
- * hostPorts determines which host port ranges are allowed to be exposed.
11948
+ * `lastTransitionTime` is the last time the condition transitioned from one status to another.
10891
11949
  */
10892
- hostPorts?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.HostPortRange>[]>;
11950
+ lastTransitionTime?: pulumi.Input<string>;
10893
11951
  /**
10894
- * privileged determines if a pod can request to be run as privileged.
11952
+ * `message` is a human-readable message indicating details about last transition.
10895
11953
  */
10896
- privileged?: pulumi.Input<boolean>;
11954
+ message?: pulumi.Input<string>;
10897
11955
  /**
10898
- * readOnlyRootFilesystem when set to true will force containers to run with a read only root file system. If the container specifically requests to run with a non-read only root file system the PSP should deny the pod. If set to false the container may run with a read only root file system if it wishes but it will not be forced to.
11956
+ * `reason` is a unique, one-word, CamelCase reason for the condition's last transition.
10899
11957
  */
10900
- readOnlyRootFilesystem?: pulumi.Input<boolean>;
11958
+ reason?: pulumi.Input<string>;
10901
11959
  /**
10902
- * requiredDropCapabilities are the capabilities that will be dropped from the container. These are required to be dropped and cannot be added.
11960
+ * `status` is the status of the condition. Can be True, False, Unknown. Required.
10903
11961
  */
10904
- requiredDropCapabilities?: pulumi.Input<pulumi.Input<string>[]>;
11962
+ status?: pulumi.Input<string>;
10905
11963
  /**
10906
- * RunAsGroup is the strategy that will dictate the allowable RunAsGroup values that may be set. If this field is omitted, the pod's RunAsGroup can take any value. This field requires the RunAsGroup feature gate to be enabled.
11964
+ * `type` is the type of the condition. Required.
10907
11965
  */
10908
- runAsGroup?: pulumi.Input<inputs.extensions.v1beta1.RunAsGroupStrategyOptions>;
11966
+ type?: pulumi.Input<string>;
11967
+ }
11968
+ /**
11969
+ * FlowSchemaSpec describes how the FlowSchema's specification looks like.
11970
+ */
11971
+ interface FlowSchemaSpec {
10909
11972
  /**
10910
- * runAsUser is the strategy that will dictate the allowable RunAsUser values that may be set.
11973
+ * `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.
10911
11974
  */
10912
- runAsUser: pulumi.Input<inputs.extensions.v1beta1.RunAsUserStrategyOptions>;
11975
+ distinguisherMethod?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowDistinguisherMethod>;
10913
11976
  /**
10914
- * runtimeClass is the strategy that will dictate the allowable RuntimeClasses for a pod. If this field is omitted, the pod's runtimeClassName field is unrestricted. Enforcement of this field depends on the RuntimeClass feature gate being enabled.
11977
+ * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be non-negative. Note that if the precedence is not specified or zero, it will be set to 1000 as default.
10915
11978
  */
10916
- runtimeClass?: pulumi.Input<inputs.extensions.v1beta1.RuntimeClassStrategyOptions>;
11979
+ matchingPrecedence?: pulumi.Input<number>;
10917
11980
  /**
10918
- * seLinux is the strategy that will dictate the allowable labels that may be set.
11981
+ * `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.
10919
11982
  */
10920
- seLinux: pulumi.Input<inputs.extensions.v1beta1.SELinuxStrategyOptions>;
11983
+ priorityLevelConfiguration: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationReference>;
10921
11984
  /**
10922
- * supplementalGroups is the strategy that will dictate what supplemental groups are used by the SecurityContext.
11985
+ * `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.
10923
11986
  */
10924
- supplementalGroups: pulumi.Input<inputs.extensions.v1beta1.SupplementalGroupsStrategyOptions>;
11987
+ rules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.PolicyRulesWithSubjects>[]>;
11988
+ }
11989
+ /**
11990
+ * FlowSchemaStatus represents the current state of a FlowSchema.
11991
+ */
11992
+ interface FlowSchemaStatus {
10925
11993
  /**
10926
- * volumes is a white list of allowed volume plugins. Empty indicates that no volumes may be used. To allow all volumes you may use '*'.
11994
+ * `conditions` is a list of the current states of FlowSchema.
10927
11995
  */
10928
- volumes?: pulumi.Input<pulumi.Input<string>[]>;
11996
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaCondition>[]>;
10929
11997
  }
10930
11998
  /**
10931
- * ReplicaSet ensures that a specified number of pod replicas are running at any given time.
11999
+ * GroupSubject holds detailed information for group-kind subject.
10932
12000
  */
10933
- interface ReplicaSet {
12001
+ interface GroupSubject {
10934
12002
  /**
10935
- * 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
12003
+ * name is the user group that matches, or "*" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.
10936
12004
  */
10937
- apiVersion?: pulumi.Input<"extensions/v1beta1">;
12005
+ name: pulumi.Input<string>;
12006
+ }
12007
+ /**
12008
+ * LimitResponse defines how to handle requests that can not be executed right now.
12009
+ */
12010
+ interface LimitResponse {
10938
12011
  /**
10939
- * 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
12012
+ * `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`.
10940
12013
  */
10941
- kind?: pulumi.Input<"ReplicaSet">;
12014
+ queuing?: pulumi.Input<inputs.flowcontrol.v1alpha1.QueuingConfiguration>;
10942
12015
  /**
10943
- * If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
12016
+ * `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required.
10944
12017
  */
10945
- metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
12018
+ type: pulumi.Input<string>;
12019
+ }
12020
+ /**
12021
+ * LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:
12022
+ * * How are requests for this priority level limited?
12023
+ * * What should be done with requests that exceed the limit?
12024
+ */
12025
+ interface LimitedPriorityLevelConfiguration {
10946
12026
  /**
10947
- * Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
12027
+ * `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be exeucting at a given time. ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) --- the number of requests that may be executing at a time --- for each such priority level:
12028
+ *
12029
+ * ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )
12030
+ *
12031
+ * bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other PL). This field has a default value of 30.
10948
12032
  */
10949
- spec?: pulumi.Input<inputs.extensions.v1beta1.ReplicaSetSpec>;
12033
+ assuredConcurrencyShares?: pulumi.Input<number>;
10950
12034
  /**
10951
- * Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
12035
+ * `limitResponse` indicates what to do with requests that can not be executed right now
10952
12036
  */
10953
- status?: pulumi.Input<inputs.extensions.v1beta1.ReplicaSetStatus>;
12037
+ limitResponse?: pulumi.Input<inputs.flowcontrol.v1alpha1.LimitResponse>;
10954
12038
  }
10955
12039
  /**
10956
- * ReplicaSetCondition describes the state of a replica set at a certain point.
12040
+ * NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.
10957
12041
  */
10958
- interface ReplicaSetCondition {
12042
+ interface NonResourcePolicyRule {
10959
12043
  /**
10960
- * The last time the condition transitioned from one status to another.
12044
+ * `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:
12045
+ * - "/healthz" is legal
12046
+ * - "/hea*" is illegal
12047
+ * - "/hea" is legal but matches nothing
12048
+ * - "/hea/*" also matches nothing
12049
+ * - "/healthz/*" matches all per-component health checks.
12050
+ * "*" matches all non-resource urls. if it is present, it must be the only entry. Required.
10961
12051
  */
10962
- lastTransitionTime?: pulumi.Input<string>;
12052
+ nonResourceURLs: pulumi.Input<pulumi.Input<string>[]>;
10963
12053
  /**
10964
- * A human readable message indicating details about the transition.
12054
+ * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it is present, it must be the only entry. Required.
10965
12055
  */
10966
- message?: pulumi.Input<string>;
12056
+ verbs: pulumi.Input<pulumi.Input<string>[]>;
12057
+ }
12058
+ /**
12059
+ * PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.
12060
+ */
12061
+ interface PolicyRulesWithSubjects {
10967
12062
  /**
10968
- * The reason for the condition's last transition.
12063
+ * `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.
10969
12064
  */
10970
- reason?: pulumi.Input<string>;
12065
+ nonResourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.NonResourcePolicyRule>[]>;
10971
12066
  /**
10972
- * Status of the condition, one of True, False, Unknown.
12067
+ * `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.
10973
12068
  */
10974
- status: pulumi.Input<string>;
12069
+ resourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.ResourcePolicyRule>[]>;
10975
12070
  /**
10976
- * Type of replica set condition.
12071
+ * subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.
10977
12072
  */
10978
- type: pulumi.Input<string>;
12073
+ subjects: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.Subject>[]>;
10979
12074
  }
10980
12075
  /**
10981
- * ReplicaSetSpec is the specification of a ReplicaSet.
12076
+ * PriorityLevelConfiguration represents the configuration of a priority level.
10982
12077
  */
10983
- interface ReplicaSetSpec {
12078
+ interface PriorityLevelConfiguration {
10984
12079
  /**
10985
- * Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
12080
+ * 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
10986
12081
  */
10987
- minReadySeconds?: pulumi.Input<number>;
12082
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1">;
10988
12083
  /**
10989
- * Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
12084
+ * 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
10990
12085
  */
10991
- replicas?: pulumi.Input<number>;
12086
+ kind?: pulumi.Input<"PriorityLevelConfiguration">;
10992
12087
  /**
10993
- * Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
12088
+ * `metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
10994
12089
  */
10995
- selector?: pulumi.Input<inputs.meta.v1.LabelSelector>;
12090
+ metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
10996
12091
  /**
10997
- * Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
12092
+ * `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
10998
12093
  */
10999
- template?: pulumi.Input<inputs.core.v1.PodTemplateSpec>;
12094
+ spec?: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec>;
12095
+ /**
12096
+ * `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
12097
+ */
12098
+ status?: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus>;
11000
12099
  }
11001
12100
  /**
11002
- * ReplicaSetStatus represents the current status of a ReplicaSet.
12101
+ * PriorityLevelConfigurationCondition defines the condition of priority level.
11003
12102
  */
11004
- interface ReplicaSetStatus {
11005
- /**
11006
- * The number of available replicas (ready for at least minReadySeconds) for this replica set.
11007
- */
11008
- availableReplicas?: pulumi.Input<number>;
12103
+ interface PriorityLevelConfigurationCondition {
11009
12104
  /**
11010
- * Represents the latest available observations of a replica set's current state.
12105
+ * `lastTransitionTime` is the last time the condition transitioned from one status to another.
11011
12106
  */
11012
- conditions?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.ReplicaSetCondition>[]>;
12107
+ lastTransitionTime?: pulumi.Input<string>;
11013
12108
  /**
11014
- * The number of pods that have labels matching the labels of the pod template of the replicaset.
12109
+ * `message` is a human-readable message indicating details about last transition.
11015
12110
  */
11016
- fullyLabeledReplicas?: pulumi.Input<number>;
12111
+ message?: pulumi.Input<string>;
11017
12112
  /**
11018
- * ObservedGeneration reflects the generation of the most recently observed ReplicaSet.
12113
+ * `reason` is a unique, one-word, CamelCase reason for the condition's last transition.
11019
12114
  */
11020
- observedGeneration?: pulumi.Input<number>;
12115
+ reason?: pulumi.Input<string>;
11021
12116
  /**
11022
- * The number of ready replicas for this replica set.
12117
+ * `status` is the status of the condition. Can be True, False, Unknown. Required.
11023
12118
  */
11024
- readyReplicas?: pulumi.Input<number>;
12119
+ status?: pulumi.Input<string>;
11025
12120
  /**
11026
- * Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller
12121
+ * `type` is the type of the condition. Required.
11027
12122
  */
11028
- replicas: pulumi.Input<number>;
12123
+ type?: pulumi.Input<string>;
11029
12124
  }
11030
12125
  /**
11031
- * DEPRECATED.
12126
+ * PriorityLevelConfigurationReference contains information that points to the "request-priority" being used.
11032
12127
  */
11033
- interface RollbackConfig {
12128
+ interface PriorityLevelConfigurationReference {
11034
12129
  /**
11035
- * The revision to rollback to. If set to 0, rollback to the last revision.
12130
+ * `name` is the name of the priority level configuration being referenced Required.
11036
12131
  */
11037
- revision?: pulumi.Input<number>;
12132
+ name: pulumi.Input<string>;
11038
12133
  }
11039
12134
  /**
11040
- * Spec to control the desired behavior of daemon set rolling update.
12135
+ * PriorityLevelConfigurationSpec specifies the configuration of a priority level.
11041
12136
  */
11042
- interface RollingUpdateDaemonSet {
12137
+ interface PriorityLevelConfigurationSpec {
11043
12138
  /**
11044
- * The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.
12139
+ * `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`.
11045
12140
  */
11046
- maxUnavailable?: pulumi.Input<number | string>;
12141
+ limited?: pulumi.Input<inputs.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration>;
12142
+ /**
12143
+ * `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.
12144
+ */
12145
+ type: pulumi.Input<string>;
11047
12146
  }
11048
12147
  /**
11049
- * Spec to control the desired behavior of rolling update.
12148
+ * PriorityLevelConfigurationStatus represents the current state of a "request-priority".
11050
12149
  */
11051
- interface RollingUpdateDeployment {
11052
- /**
11053
- * The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.
11054
- */
11055
- maxSurge?: pulumi.Input<number | string>;
12150
+ interface PriorityLevelConfigurationStatus {
11056
12151
  /**
11057
- * The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.
12152
+ * `conditions` is the current state of "request-priority".
11058
12153
  */
11059
- maxUnavailable?: pulumi.Input<number | string>;
12154
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition>[]>;
11060
12155
  }
11061
12156
  /**
11062
- * RunAsGroupStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsGroupStrategyOptions from policy API Group instead.
12157
+ * QueuingConfiguration holds the configuration parameters for queuing
11063
12158
  */
11064
- interface RunAsGroupStrategyOptions {
12159
+ interface QueuingConfiguration {
11065
12160
  /**
11066
- * ranges are the allowed ranges of gids that may be used. If you would like to force a single gid then supply a single range with the same start and end. Required for MustRunAs.
12161
+ * `handSize` is a small positive number that configures the shuffle sharding of requests into queues. When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here. The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues). See the user-facing documentation for more extensive guidance on setting this field. This field has a default value of 8.
11067
12162
  */
11068
- ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
12163
+ handSize?: pulumi.Input<number>;
11069
12164
  /**
11070
- * rule is the strategy that will dictate the allowable RunAsGroup values that may be set.
12165
+ * `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected. This value must be positive. If not specified, it will be defaulted to 50.
11071
12166
  */
11072
- rule: pulumi.Input<string>;
12167
+ queueLengthLimit?: pulumi.Input<number>;
12168
+ /**
12169
+ * `queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive. Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant. This field has a default value of 64.
12170
+ */
12171
+ queues?: pulumi.Input<number>;
11073
12172
  }
11074
12173
  /**
11075
- * RunAsUserStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use RunAsUserStrategyOptions from policy API Group instead.
12174
+ * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) least one member of namespaces matches the request.
11076
12175
  */
11077
- interface RunAsUserStrategyOptions {
12176
+ interface ResourcePolicyRule {
11078
12177
  /**
11079
- * ranges are the allowed ranges of uids that may be used. If you would like to force a single uid then supply a single range with the same start and end. Required for MustRunAs.
12178
+ * `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API groups and, if present, must be the only entry. Required.
11080
12179
  */
11081
- ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
12180
+ apiGroups: pulumi.Input<pulumi.Input<string>[]>;
11082
12181
  /**
11083
- * rule is the strategy that will dictate the allowable RunAsUser values that may be set.
12182
+ * `clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.
11084
12183
  */
11085
- rule: pulumi.Input<string>;
11086
- }
11087
- /**
11088
- * RuntimeClassStrategyOptions define the strategy that will dictate the allowable RuntimeClasses for a pod.
11089
- */
11090
- interface RuntimeClassStrategyOptions {
12184
+ clusterScope?: pulumi.Input<boolean>;
11091
12185
  /**
11092
- * allowedRuntimeClassNames is a whitelist of RuntimeClass names that may be specified on a pod. A value of "*" means that any RuntimeClass name is allowed, and must be the only item in the list. An empty list requires the RuntimeClassName field to be unset.
12186
+ * `namespaces` is a list of target namespaces that restricts matches. A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains "*". Note that "*" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.
11093
12187
  */
11094
- allowedRuntimeClassNames: pulumi.Input<pulumi.Input<string>[]>;
12188
+ namespaces?: pulumi.Input<pulumi.Input<string>[]>;
11095
12189
  /**
11096
- * defaultRuntimeClassName is the default RuntimeClassName to set on the pod. The default MUST be allowed by the allowedRuntimeClassNames list. A value of nil does not mutate the Pod.
12190
+ * `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" matches all resources and, if present, must be the only entry. Required.
11097
12191
  */
11098
- defaultRuntimeClassName?: pulumi.Input<string>;
12192
+ resources: pulumi.Input<pulumi.Input<string>[]>;
12193
+ /**
12194
+ * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if present, must be the only entry. Required.
12195
+ */
12196
+ verbs: pulumi.Input<pulumi.Input<string>[]>;
11099
12197
  }
11100
12198
  /**
11101
- * SELinuxStrategyOptions defines the strategy type and any options used to create the strategy. Deprecated: use SELinuxStrategyOptions from policy API Group instead.
12199
+ * ServiceAccountSubject holds detailed information for service-account-kind subject.
11102
12200
  */
11103
- interface SELinuxStrategyOptions {
12201
+ interface ServiceAccountSubject {
11104
12202
  /**
11105
- * rule is the strategy that will dictate the allowable labels that may be set.
12203
+ * `name` is the name of matching ServiceAccount objects, or "*" to match regardless of name. Required.
11106
12204
  */
11107
- rule: pulumi.Input<string>;
12205
+ name: pulumi.Input<string>;
11108
12206
  /**
11109
- * seLinuxOptions required to run as; required for MustRunAs More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
12207
+ * `namespace` is the namespace of matching ServiceAccount objects. Required.
11110
12208
  */
11111
- seLinuxOptions?: pulumi.Input<inputs.core.v1.SELinuxOptions>;
12209
+ namespace: pulumi.Input<string>;
11112
12210
  }
11113
12211
  /**
11114
- * SupplementalGroupsStrategyOptions defines the strategy type and options used to create the strategy. Deprecated: use SupplementalGroupsStrategyOptions from policy API Group instead.
12212
+ * Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.
11115
12213
  */
11116
- interface SupplementalGroupsStrategyOptions {
12214
+ interface Subject {
12215
+ group?: pulumi.Input<inputs.flowcontrol.v1alpha1.GroupSubject>;
11117
12216
  /**
11118
- * ranges are the allowed ranges of supplemental groups. If you would like to force a single supplemental group then supply a single range with the same start and end. Required for MustRunAs.
12217
+ * Required
11119
12218
  */
11120
- ranges?: pulumi.Input<pulumi.Input<inputs.extensions.v1beta1.IDRange>[]>;
12219
+ kind: pulumi.Input<string>;
12220
+ serviceAccount?: pulumi.Input<inputs.flowcontrol.v1alpha1.ServiceAccountSubject>;
12221
+ user?: pulumi.Input<inputs.flowcontrol.v1alpha1.UserSubject>;
12222
+ }
12223
+ /**
12224
+ * UserSubject holds detailed information for user-kind subject.
12225
+ */
12226
+ interface UserSubject {
11121
12227
  /**
11122
- * rule is the strategy that will dictate what supplemental groups is used in the SecurityContext.
12228
+ * `name` is the username that matches, or "*" to match all usernames. Required.
11123
12229
  */
11124
- rule?: pulumi.Input<string>;
12230
+ name: pulumi.Input<string>;
11125
12231
  }
11126
12232
  }
11127
- }
11128
- export declare namespace flowcontrol {
11129
- namespace v1alpha1 {
12233
+ namespace v1beta1 {
11130
12234
  /**
11131
12235
  * FlowDistinguisherMethod specifies the method of a flow distinguisher.
11132
12236
  */
@@ -11143,7 +12247,7 @@ export declare namespace flowcontrol {
11143
12247
  /**
11144
12248
  * 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
11145
12249
  */
11146
- apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1">;
12250
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta1">;
11147
12251
  /**
11148
12252
  * 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
11149
12253
  */
@@ -11155,11 +12259,11 @@ export declare namespace flowcontrol {
11155
12259
  /**
11156
12260
  * `spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11157
12261
  */
11158
- spec?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaSpec>;
12262
+ spec?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaSpec>;
11159
12263
  /**
11160
12264
  * `status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11161
12265
  */
11162
- status?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaStatus>;
12266
+ status?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaStatus>;
11163
12267
  }
11164
12268
  /**
11165
12269
  * FlowSchemaCondition describes conditions for a FlowSchema.
@@ -11193,19 +12297,19 @@ export declare namespace flowcontrol {
11193
12297
  /**
11194
12298
  * `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.
11195
12299
  */
11196
- distinguisherMethod?: pulumi.Input<inputs.flowcontrol.v1alpha1.FlowDistinguisherMethod>;
12300
+ distinguisherMethod?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowDistinguisherMethod>;
11197
12301
  /**
11198
- * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be non-negative. Note that if the precedence is not specified or zero, it will be set to 1000 as default.
12302
+ * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.
11199
12303
  */
11200
12304
  matchingPrecedence?: pulumi.Input<number>;
11201
12305
  /**
11202
12306
  * `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.
11203
12307
  */
11204
- priorityLevelConfiguration: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationReference>;
12308
+ priorityLevelConfiguration: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationReference>;
11205
12309
  /**
11206
12310
  * `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.
11207
12311
  */
11208
- rules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.PolicyRulesWithSubjects>[]>;
12312
+ rules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.PolicyRulesWithSubjects>[]>;
11209
12313
  }
11210
12314
  /**
11211
12315
  * FlowSchemaStatus represents the current state of a FlowSchema.
@@ -11214,7 +12318,7 @@ export declare namespace flowcontrol {
11214
12318
  /**
11215
12319
  * `conditions` is a list of the current states of FlowSchema.
11216
12320
  */
11217
- conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.FlowSchemaCondition>[]>;
12321
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaCondition>[]>;
11218
12322
  }
11219
12323
  /**
11220
12324
  * GroupSubject holds detailed information for group-kind subject.
@@ -11232,7 +12336,7 @@ export declare namespace flowcontrol {
11232
12336
  /**
11233
12337
  * `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`.
11234
12338
  */
11235
- queuing?: pulumi.Input<inputs.flowcontrol.v1alpha1.QueuingConfiguration>;
12339
+ queuing?: pulumi.Input<inputs.flowcontrol.v1beta1.QueuingConfiguration>;
11236
12340
  /**
11237
12341
  * `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required.
11238
12342
  */
@@ -11255,7 +12359,7 @@ export declare namespace flowcontrol {
11255
12359
  /**
11256
12360
  * `limitResponse` indicates what to do with requests that can not be executed right now
11257
12361
  */
11258
- limitResponse?: pulumi.Input<inputs.flowcontrol.v1alpha1.LimitResponse>;
12362
+ limitResponse?: pulumi.Input<inputs.flowcontrol.v1beta1.LimitResponse>;
11259
12363
  }
11260
12364
  /**
11261
12365
  * NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.
@@ -11283,15 +12387,15 @@ export declare namespace flowcontrol {
11283
12387
  /**
11284
12388
  * `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.
11285
12389
  */
11286
- nonResourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.NonResourcePolicyRule>[]>;
12390
+ nonResourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.NonResourcePolicyRule>[]>;
11287
12391
  /**
11288
12392
  * `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.
11289
12393
  */
11290
- resourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.ResourcePolicyRule>[]>;
12394
+ resourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.ResourcePolicyRule>[]>;
11291
12395
  /**
11292
12396
  * subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.
11293
12397
  */
11294
- subjects: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.Subject>[]>;
12398
+ subjects: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.Subject>[]>;
11295
12399
  }
11296
12400
  /**
11297
12401
  * PriorityLevelConfiguration represents the configuration of a priority level.
@@ -11300,7 +12404,7 @@ export declare namespace flowcontrol {
11300
12404
  /**
11301
12405
  * 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
11302
12406
  */
11303
- apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1">;
12407
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta1">;
11304
12408
  /**
11305
12409
  * 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
11306
12410
  */
@@ -11312,11 +12416,11 @@ export declare namespace flowcontrol {
11312
12416
  /**
11313
12417
  * `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11314
12418
  */
11315
- spec?: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationSpec>;
12419
+ spec?: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationSpec>;
11316
12420
  /**
11317
12421
  * `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11318
12422
  */
11319
- status?: pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationStatus>;
12423
+ status?: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationStatus>;
11320
12424
  }
11321
12425
  /**
11322
12426
  * PriorityLevelConfigurationCondition defines the condition of priority level.
@@ -11359,7 +12463,7 @@ export declare namespace flowcontrol {
11359
12463
  /**
11360
12464
  * `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`.
11361
12465
  */
11362
- limited?: pulumi.Input<inputs.flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration>;
12466
+ limited?: pulumi.Input<inputs.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration>;
11363
12467
  /**
11364
12468
  * `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.
11365
12469
  */
@@ -11372,7 +12476,7 @@ export declare namespace flowcontrol {
11372
12476
  /**
11373
12477
  * `conditions` is the current state of "request-priority".
11374
12478
  */
11375
- conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationCondition>[]>;
12479
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationCondition>[]>;
11376
12480
  }
11377
12481
  /**
11378
12482
  * QueuingConfiguration holds the configuration parameters for queuing
@@ -11392,7 +12496,7 @@ export declare namespace flowcontrol {
11392
12496
  queues?: pulumi.Input<number>;
11393
12497
  }
11394
12498
  /**
11395
- * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) least one member of namespaces matches the request.
12499
+ * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==""`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.
11396
12500
  */
11397
12501
  interface ResourcePolicyRule {
11398
12502
  /**
@@ -11433,13 +12537,22 @@ export declare namespace flowcontrol {
11433
12537
  * Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.
11434
12538
  */
11435
12539
  interface Subject {
11436
- group?: pulumi.Input<inputs.flowcontrol.v1alpha1.GroupSubject>;
11437
12540
  /**
11438
- * Required
12541
+ * `group` matches based on user group name.
12542
+ */
12543
+ group?: pulumi.Input<inputs.flowcontrol.v1beta1.GroupSubject>;
12544
+ /**
12545
+ * `kind` indicates which one of the other fields is non-empty. Required
11439
12546
  */
11440
12547
  kind: pulumi.Input<string>;
11441
- serviceAccount?: pulumi.Input<inputs.flowcontrol.v1alpha1.ServiceAccountSubject>;
11442
- user?: pulumi.Input<inputs.flowcontrol.v1alpha1.UserSubject>;
12548
+ /**
12549
+ * `serviceAccount` matches ServiceAccounts.
12550
+ */
12551
+ serviceAccount?: pulumi.Input<inputs.flowcontrol.v1beta1.ServiceAccountSubject>;
12552
+ /**
12553
+ * `user` matches based on username.
12554
+ */
12555
+ user?: pulumi.Input<inputs.flowcontrol.v1beta1.UserSubject>;
11443
12556
  }
11444
12557
  /**
11445
12558
  * UserSubject holds detailed information for user-kind subject.
@@ -11451,7 +12564,7 @@ export declare namespace flowcontrol {
11451
12564
  name: pulumi.Input<string>;
11452
12565
  }
11453
12566
  }
11454
- namespace v1beta1 {
12567
+ namespace v1beta2 {
11455
12568
  /**
11456
12569
  * FlowDistinguisherMethod specifies the method of a flow distinguisher.
11457
12570
  */
@@ -11468,7 +12581,7 @@ export declare namespace flowcontrol {
11468
12581
  /**
11469
12582
  * 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
11470
12583
  */
11471
- apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta1">;
12584
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta2">;
11472
12585
  /**
11473
12586
  * 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
11474
12587
  */
@@ -11480,11 +12593,11 @@ export declare namespace flowcontrol {
11480
12593
  /**
11481
12594
  * `spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11482
12595
  */
11483
- spec?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaSpec>;
12596
+ spec?: pulumi.Input<inputs.flowcontrol.v1beta2.FlowSchemaSpec>;
11484
12597
  /**
11485
12598
  * `status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11486
12599
  */
11487
- status?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaStatus>;
12600
+ status?: pulumi.Input<inputs.flowcontrol.v1beta2.FlowSchemaStatus>;
11488
12601
  }
11489
12602
  /**
11490
12603
  * FlowSchemaCondition describes conditions for a FlowSchema.
@@ -11518,7 +12631,7 @@ export declare namespace flowcontrol {
11518
12631
  /**
11519
12632
  * `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.
11520
12633
  */
11521
- distinguisherMethod?: pulumi.Input<inputs.flowcontrol.v1beta1.FlowDistinguisherMethod>;
12634
+ distinguisherMethod?: pulumi.Input<inputs.flowcontrol.v1beta2.FlowDistinguisherMethod>;
11522
12635
  /**
11523
12636
  * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence. Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.
11524
12637
  */
@@ -11526,11 +12639,11 @@ export declare namespace flowcontrol {
11526
12639
  /**
11527
12640
  * `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.
11528
12641
  */
11529
- priorityLevelConfiguration: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationReference>;
12642
+ priorityLevelConfiguration: pulumi.Input<inputs.flowcontrol.v1beta2.PriorityLevelConfigurationReference>;
11530
12643
  /**
11531
12644
  * `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.
11532
12645
  */
11533
- rules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.PolicyRulesWithSubjects>[]>;
12646
+ rules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.PolicyRulesWithSubjects>[]>;
11534
12647
  }
11535
12648
  /**
11536
12649
  * FlowSchemaStatus represents the current state of a FlowSchema.
@@ -11539,7 +12652,7 @@ export declare namespace flowcontrol {
11539
12652
  /**
11540
12653
  * `conditions` is a list of the current states of FlowSchema.
11541
12654
  */
11542
- conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.FlowSchemaCondition>[]>;
12655
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.FlowSchemaCondition>[]>;
11543
12656
  }
11544
12657
  /**
11545
12658
  * GroupSubject holds detailed information for group-kind subject.
@@ -11557,7 +12670,7 @@ export declare namespace flowcontrol {
11557
12670
  /**
11558
12671
  * `queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `"Queue"`.
11559
12672
  */
11560
- queuing?: pulumi.Input<inputs.flowcontrol.v1beta1.QueuingConfiguration>;
12673
+ queuing?: pulumi.Input<inputs.flowcontrol.v1beta2.QueuingConfiguration>;
11561
12674
  /**
11562
12675
  * `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. "Reject" means that requests that can not be executed upon arrival are rejected. Required.
11563
12676
  */
@@ -11580,7 +12693,7 @@ export declare namespace flowcontrol {
11580
12693
  /**
11581
12694
  * `limitResponse` indicates what to do with requests that can not be executed right now
11582
12695
  */
11583
- limitResponse?: pulumi.Input<inputs.flowcontrol.v1beta1.LimitResponse>;
12696
+ limitResponse?: pulumi.Input<inputs.flowcontrol.v1beta2.LimitResponse>;
11584
12697
  }
11585
12698
  /**
11586
12699
  * NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.
@@ -11608,15 +12721,15 @@ export declare namespace flowcontrol {
11608
12721
  /**
11609
12722
  * `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.
11610
12723
  */
11611
- nonResourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.NonResourcePolicyRule>[]>;
12724
+ nonResourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.NonResourcePolicyRule>[]>;
11612
12725
  /**
11613
12726
  * `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.
11614
12727
  */
11615
- resourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.ResourcePolicyRule>[]>;
12728
+ resourceRules?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.ResourcePolicyRule>[]>;
11616
12729
  /**
11617
12730
  * subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.
11618
12731
  */
11619
- subjects: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.Subject>[]>;
12732
+ subjects: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.Subject>[]>;
11620
12733
  }
11621
12734
  /**
11622
12735
  * PriorityLevelConfiguration represents the configuration of a priority level.
@@ -11625,7 +12738,7 @@ export declare namespace flowcontrol {
11625
12738
  /**
11626
12739
  * 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
11627
12740
  */
11628
- apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta1">;
12741
+ apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1beta2">;
11629
12742
  /**
11630
12743
  * 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
11631
12744
  */
@@ -11637,11 +12750,11 @@ export declare namespace flowcontrol {
11637
12750
  /**
11638
12751
  * `spec` is the specification of the desired behavior of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11639
12752
  */
11640
- spec?: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationSpec>;
12753
+ spec?: pulumi.Input<inputs.flowcontrol.v1beta2.PriorityLevelConfigurationSpec>;
11641
12754
  /**
11642
12755
  * `status` is the current status of a "request-priority". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
11643
12756
  */
11644
- status?: pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationStatus>;
12757
+ status?: pulumi.Input<inputs.flowcontrol.v1beta2.PriorityLevelConfigurationStatus>;
11645
12758
  }
11646
12759
  /**
11647
12760
  * PriorityLevelConfigurationCondition defines the condition of priority level.
@@ -11684,7 +12797,7 @@ export declare namespace flowcontrol {
11684
12797
  /**
11685
12798
  * `limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `"Limited"`.
11686
12799
  */
11687
- limited?: pulumi.Input<inputs.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration>;
12800
+ limited?: pulumi.Input<inputs.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration>;
11688
12801
  /**
11689
12802
  * `type` indicates whether this priority level is subject to limitation on request execution. A value of `"Exempt"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels. A value of `"Limited"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.
11690
12803
  */
@@ -11697,7 +12810,7 @@ export declare namespace flowcontrol {
11697
12810
  /**
11698
12811
  * `conditions` is the current state of "request-priority".
11699
12812
  */
11700
- conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta1.PriorityLevelConfigurationCondition>[]>;
12813
+ conditions?: pulumi.Input<pulumi.Input<inputs.flowcontrol.v1beta2.PriorityLevelConfigurationCondition>[]>;
11701
12814
  }
11702
12815
  /**
11703
12816
  * QueuingConfiguration holds the configuration parameters for queuing
@@ -11717,7 +12830,7 @@ export declare namespace flowcontrol {
11717
12830
  queues?: pulumi.Input<number>;
11718
12831
  }
11719
12832
  /**
11720
- * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) least one member of namespaces matches the request.
12833
+ * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==""`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.
11721
12834
  */
11722
12835
  interface ResourcePolicyRule {
11723
12836
  /**
@@ -11761,7 +12874,7 @@ export declare namespace flowcontrol {
11761
12874
  /**
11762
12875
  * `group` matches based on user group name.
11763
12876
  */
11764
- group?: pulumi.Input<inputs.flowcontrol.v1beta1.GroupSubject>;
12877
+ group?: pulumi.Input<inputs.flowcontrol.v1beta2.GroupSubject>;
11765
12878
  /**
11766
12879
  * `kind` indicates which one of the other fields is non-empty. Required
11767
12880
  */
@@ -11769,11 +12882,11 @@ export declare namespace flowcontrol {
11769
12882
  /**
11770
12883
  * `serviceAccount` matches ServiceAccounts.
11771
12884
  */
11772
- serviceAccount?: pulumi.Input<inputs.flowcontrol.v1beta1.ServiceAccountSubject>;
12885
+ serviceAccount?: pulumi.Input<inputs.flowcontrol.v1beta2.ServiceAccountSubject>;
11773
12886
  /**
11774
12887
  * `user` matches based on username.
11775
12888
  */
11776
- user?: pulumi.Input<inputs.flowcontrol.v1beta1.UserSubject>;
12889
+ user?: pulumi.Input<inputs.flowcontrol.v1beta2.UserSubject>;
11777
12890
  }
11778
12891
  /**
11779
12892
  * UserSubject holds detailed information for user-kind subject.
@@ -12253,7 +13366,7 @@ export declare namespace networking {
12253
13366
  */
12254
13367
  namespace?: pulumi.Input<string>;
12255
13368
  /**
12256
- * Scope represents if this refers to a cluster or namespace scoped resource. This may be set to "Cluster" (default) or "Namespace". Field can be enabled with IngressClassNamespacedParams feature gate.
13369
+ * Scope represents if this refers to a cluster or namespace scoped resource. This may be set to "Cluster" (default) or "Namespace".
12257
13370
  */
12258
13371
  scope?: pulumi.Input<string>;
12259
13372
  }
@@ -13359,7 +14472,7 @@ export declare namespace rbac {
13359
14472
  */
13360
14473
  resources?: pulumi.Input<pulumi.Input<string>[]>;
13361
14474
  /**
13362
- * Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. '*' represents all verbs.
14475
+ * Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.
13363
14476
  */
13364
14477
  verbs: pulumi.Input<pulumi.Input<string>[]>;
13365
14478
  }
@@ -13459,7 +14572,7 @@ export declare namespace rbac {
13459
14572
  clusterRoleSelectors?: pulumi.Input<pulumi.Input<inputs.meta.v1.LabelSelector>[]>;
13460
14573
  }
13461
14574
  /**
13462
- * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.
14575
+ * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20.
13463
14576
  */
13464
14577
  interface ClusterRole {
13465
14578
  /**
@@ -13484,7 +14597,7 @@ export declare namespace rbac {
13484
14597
  rules?: pulumi.Input<pulumi.Input<inputs.rbac.v1alpha1.PolicyRule>[]>;
13485
14598
  }
13486
14599
  /**
13487
- * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.
14600
+ * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20.
13488
14601
  */
13489
14602
  interface ClusterRoleBinding {
13490
14603
  /**
@@ -13517,7 +14630,7 @@ export declare namespace rbac {
13517
14630
  */
13518
14631
  apiGroups?: pulumi.Input<pulumi.Input<string>[]>;
13519
14632
  /**
13520
- * NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.
14633
+ * NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path This name is intentionally different than the internal type so that the DefaultConvert works nicely and because the ordering may be different. Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.
13521
14634
  */
13522
14635
  nonResourceURLs?: pulumi.Input<pulumi.Input<string>[]>;
13523
14636
  /**
@@ -13525,16 +14638,16 @@ export declare namespace rbac {
13525
14638
  */
13526
14639
  resourceNames?: pulumi.Input<pulumi.Input<string>[]>;
13527
14640
  /**
13528
- * Resources is a list of resources this rule applies to. '*' represents all resources.
14641
+ * Resources is a list of resources this rule applies to. ResourceAll represents all resources.
13529
14642
  */
13530
14643
  resources?: pulumi.Input<pulumi.Input<string>[]>;
13531
14644
  /**
13532
- * Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. '*' represents all verbs.
14645
+ * Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.
13533
14646
  */
13534
14647
  verbs: pulumi.Input<pulumi.Input<string>[]>;
13535
14648
  }
13536
14649
  /**
13537
- * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.
14650
+ * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.20.
13538
14651
  */
13539
14652
  interface Role {
13540
14653
  /**
@@ -13555,7 +14668,7 @@ export declare namespace rbac {
13555
14668
  rules?: pulumi.Input<pulumi.Input<inputs.rbac.v1alpha1.PolicyRule>[]>;
13556
14669
  }
13557
14670
  /**
13558
- * RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.
14671
+ * RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20.
13559
14672
  */
13560
14673
  interface RoleBinding {
13561
14674
  /**
@@ -13851,7 +14964,7 @@ export declare namespace scheduling {
13851
14964
  */
13852
14965
  metadata?: pulumi.Input<inputs.meta.v1.ObjectMeta>;
13853
14966
  /**
13854
- * PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is beta-level, gated by the NonPreemptingPriority feature-gate.
14967
+ * PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset. This field is alpha-level and is only honored by servers that enable the NonPreemptingPriority feature.
13855
14968
  */
13856
14969
  preemptionPolicy?: pulumi.Input<string>;
13857
14970
  /**
@@ -13974,7 +15087,7 @@ export declare namespace storage {
13974
15087
  */
13975
15088
  attachRequired?: pulumi.Input<boolean>;
13976
15089
  /**
13977
- * Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is beta, and is only honored by servers that enable the CSIVolumeFSGroupPolicy feature gate.
15090
+ * Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.
13978
15091
  *
13979
15092
  * This field is immutable.
13980
15093
  *
@@ -14003,7 +15116,7 @@ export declare namespace storage {
14003
15116
  *
14004
15117
  * Alternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.
14005
15118
  *
14006
- * This field is immutable.
15119
+ * This field was immutable in Kubernetes <= 1.22 and now is mutable.
14007
15120
  *
14008
15121
  * This is a beta field and only available when the CSIStorageCapacity feature is enabled. The default is false.
14009
15122
  */