typekro 0.44.0 → 0.45.0

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 (462) hide show
  1. package/dist/core/kubernetes/bun-api-client.d.ts +0 -10
  2. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -1
  3. package/dist/core/kubernetes/bun-api-client.js +77 -3
  4. package/dist/core/kubernetes/bun-api-client.js.map +1 -1
  5. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -1
  6. package/dist/core/kubernetes/bun-http-library.js +5 -1
  7. package/dist/core/kubernetes/bun-http-library.js.map +1 -1
  8. package/dist/core/references/schema-proxy.d.ts +17 -0
  9. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  10. package/dist/core/references/schema-proxy.js +53 -3
  11. package/dist/core/references/schema-proxy.js.map +1 -1
  12. package/dist/core/serialization/schema.d.ts.map +1 -1
  13. package/dist/core/serialization/schema.js +52 -20
  14. package/dist/core/serialization/schema.js.map +1 -1
  15. package/dist/core/types/serialization.d.ts +5 -2
  16. package/dist/core/types/serialization.d.ts.map +1 -1
  17. package/dist/factories/apisix/resources/helm.d.ts +2 -2
  18. package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
  19. package/dist/factories/apisix/resources/helm.js +7 -11
  20. package/dist/factories/apisix/resources/helm.js.map +1 -1
  21. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts +38 -0
  22. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts.map +1 -0
  23. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js +101 -0
  24. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js.map +1 -0
  25. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts +10 -0
  26. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts.map +1 -0
  27. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js +25 -0
  28. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js.map +1 -0
  29. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts +3 -0
  30. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts.map +1 -0
  31. package/dist/factories/aws-load-balancer-controller/compositions/index.js +3 -0
  32. package/dist/factories/aws-load-balancer-controller/compositions/index.js.map +1 -0
  33. package/dist/factories/aws-load-balancer-controller/constants.d.ts +21 -0
  34. package/dist/factories/aws-load-balancer-controller/constants.d.ts.map +1 -0
  35. package/dist/factories/aws-load-balancer-controller/constants.js +29 -0
  36. package/dist/factories/aws-load-balancer-controller/constants.js.map +1 -0
  37. package/dist/factories/aws-load-balancer-controller/index.d.ts +17 -0
  38. package/dist/factories/aws-load-balancer-controller/index.d.ts.map +1 -0
  39. package/dist/factories/aws-load-balancer-controller/index.js +16 -0
  40. package/dist/factories/aws-load-balancer-controller/index.js.map +1 -0
  41. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts +45 -0
  42. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts.map +1 -0
  43. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js +148 -0
  44. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js.map +1 -0
  45. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts +36 -0
  46. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts.map +1 -0
  47. package/dist/factories/aws-load-balancer-controller/resources/helm.js +96 -0
  48. package/dist/factories/aws-load-balancer-controller/resources/helm.js.map +1 -0
  49. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts +3 -0
  50. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts.map +1 -0
  51. package/dist/factories/aws-load-balancer-controller/resources/index.js +3 -0
  52. package/dist/factories/aws-load-balancer-controller/resources/index.js.map +1 -0
  53. package/dist/factories/aws-load-balancer-controller/types.d.ts +267 -0
  54. package/dist/factories/aws-load-balancer-controller/types.d.ts.map +1 -0
  55. package/dist/factories/aws-load-balancer-controller/types.js +81 -0
  56. package/dist/factories/aws-load-balancer-controller/types.js.map +1 -0
  57. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts +27 -0
  58. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts.map +1 -0
  59. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js +171 -0
  60. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js.map +1 -0
  61. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts +2 -0
  62. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts.map +1 -0
  63. package/dist/factories/aws-load-balancer-controller/utils/index.js +2 -0
  64. package/dist/factories/aws-load-balancer-controller/utils/index.js.map +1 -0
  65. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +6 -4
  66. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
  67. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +22 -196
  68. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
  69. package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -1
  70. package/dist/factories/cert-manager/resources/helm.js +30 -51
  71. package/dist/factories/cert-manager/resources/helm.js.map +1 -1
  72. package/dist/factories/cert-manager/types.d.ts +54 -6
  73. package/dist/factories/cert-manager/types.d.ts.map +1 -1
  74. package/dist/factories/cert-manager/types.js +45 -12
  75. package/dist/factories/cert-manager/types.js.map +1 -1
  76. package/dist/factories/cert-manager/utils/helm-values-mapper.js +203 -76
  77. package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -1
  78. package/dist/factories/cilium/resources/helm.d.ts.map +1 -1
  79. package/dist/factories/cilium/resources/helm.js +23 -0
  80. package/dist/factories/cilium/resources/helm.js.map +1 -1
  81. package/dist/factories/cilium/types.d.ts +2 -1
  82. package/dist/factories/cilium/types.d.ts.map +1 -1
  83. package/dist/factories/cilium/types.js.map +1 -1
  84. package/dist/factories/clickhouse/resources/helm.d.ts.map +1 -1
  85. package/dist/factories/clickhouse/resources/helm.js +2 -1
  86. package/dist/factories/clickhouse/resources/helm.js.map +1 -1
  87. package/dist/factories/clickhouse/types.d.ts +2 -1
  88. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  89. package/dist/factories/clickhouse/types.js.map +1 -1
  90. package/dist/factories/clickstack/resources/helm.d.ts.map +1 -1
  91. package/dist/factories/clickstack/resources/helm.js +3 -2
  92. package/dist/factories/clickstack/resources/helm.js.map +1 -1
  93. package/dist/factories/clickstack/types.d.ts +3 -3
  94. package/dist/factories/clickstack/types.d.ts.map +1 -1
  95. package/dist/factories/clickstack/types.js.map +1 -1
  96. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  97. package/dist/factories/cnpg/resources/helm.js +2 -1
  98. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  99. package/dist/factories/cnpg/types.d.ts +2 -1
  100. package/dist/factories/cnpg/types.d.ts.map +1 -1
  101. package/dist/factories/cnpg/types.js.map +1 -1
  102. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts +33 -0
  103. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts.map +1 -0
  104. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js +174 -0
  105. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js.map +1 -0
  106. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts +10 -0
  107. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts.map +1 -0
  108. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js +25 -0
  109. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js.map +1 -0
  110. package/dist/factories/crowdsec/compositions/index.d.ts +3 -0
  111. package/dist/factories/crowdsec/compositions/index.d.ts.map +1 -0
  112. package/dist/factories/crowdsec/compositions/index.js +3 -0
  113. package/dist/factories/crowdsec/compositions/index.js.map +1 -0
  114. package/dist/factories/crowdsec/constants.d.ts +38 -0
  115. package/dist/factories/crowdsec/constants.d.ts.map +1 -0
  116. package/dist/factories/crowdsec/constants.js +42 -0
  117. package/dist/factories/crowdsec/constants.js.map +1 -0
  118. package/dist/factories/crowdsec/index.d.ts +12 -0
  119. package/dist/factories/crowdsec/index.d.ts.map +1 -0
  120. package/dist/factories/crowdsec/index.js +12 -0
  121. package/dist/factories/crowdsec/index.js.map +1 -0
  122. package/dist/factories/crowdsec/resources/helm.d.ts +52 -0
  123. package/dist/factories/crowdsec/resources/helm.d.ts.map +1 -0
  124. package/dist/factories/crowdsec/resources/helm.js +78 -0
  125. package/dist/factories/crowdsec/resources/helm.js.map +1 -0
  126. package/dist/factories/crowdsec/resources/index.d.ts +2 -0
  127. package/dist/factories/crowdsec/resources/index.d.ts.map +1 -0
  128. package/dist/factories/crowdsec/resources/index.js +2 -0
  129. package/dist/factories/crowdsec/resources/index.js.map +1 -0
  130. package/dist/factories/crowdsec/types.d.ts +266 -0
  131. package/dist/factories/crowdsec/types.d.ts.map +1 -0
  132. package/dist/factories/crowdsec/types.js +43 -0
  133. package/dist/factories/crowdsec/types.js.map +1 -0
  134. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts +40 -0
  135. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts.map +1 -0
  136. package/dist/factories/crowdsec/utils/helm-values-mapper.js +473 -0
  137. package/dist/factories/crowdsec/utils/helm-values-mapper.js.map +1 -0
  138. package/dist/factories/crowdsec/utils/index.d.ts +3 -0
  139. package/dist/factories/crowdsec/utils/index.d.ts.map +1 -0
  140. package/dist/factories/crowdsec/utils/index.js +3 -0
  141. package/dist/factories/crowdsec/utils/index.js.map +1 -0
  142. package/dist/factories/crowdsec/utils/net.js +68 -0
  143. package/dist/factories/crowdsec/utils/net.js.map +1 -0
  144. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts +48 -0
  145. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts.map +1 -0
  146. package/dist/factories/crowdsec/utils/traefik-bouncer.js +302 -0
  147. package/dist/factories/crowdsec/utils/traefik-bouncer.js.map +1 -0
  148. package/dist/factories/dagster/resources/helm.d.ts.map +1 -1
  149. package/dist/factories/dagster/resources/helm.js +2 -0
  150. package/dist/factories/dagster/resources/helm.js.map +1 -1
  151. package/dist/factories/dagster/types.d.ts +2 -2
  152. package/dist/factories/dagster/types.d.ts.map +1 -1
  153. package/dist/factories/dagster/types.js.map +1 -1
  154. package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -1
  155. package/dist/factories/envoy-ai-gateway/resources/helm.js +17 -14
  156. package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -1
  157. package/dist/factories/envoy-ai-gateway/types.d.ts +2 -2
  158. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  159. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
  160. package/dist/factories/external-dns/resources/helm.js +2 -0
  161. package/dist/factories/external-dns/resources/helm.js.map +1 -1
  162. package/dist/factories/external-dns/types.d.ts +2 -1
  163. package/dist/factories/external-dns/types.d.ts.map +1 -1
  164. package/dist/factories/external-dns/types.js.map +1 -1
  165. package/dist/factories/harbor/resources/helm.d.ts.map +1 -1
  166. package/dist/factories/harbor/resources/helm.js +11 -7
  167. package/dist/factories/harbor/resources/helm.js.map +1 -1
  168. package/dist/factories/harbor/types.d.ts +2 -1
  169. package/dist/factories/harbor/types.d.ts.map +1 -1
  170. package/dist/factories/harbor/types.js.map +1 -1
  171. package/dist/factories/hatchet/resources/helm.d.ts.map +1 -1
  172. package/dist/factories/hatchet/resources/helm.js +13 -10
  173. package/dist/factories/hatchet/resources/helm.js.map +1 -1
  174. package/dist/factories/hatchet/types.d.ts +2 -1
  175. package/dist/factories/hatchet/types.d.ts.map +1 -1
  176. package/dist/factories/hatchet/types.js.map +1 -1
  177. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  178. package/dist/factories/helm/helm-release.js +3 -31
  179. package/dist/factories/helm/helm-release.js.map +1 -1
  180. package/dist/factories/helm/index.d.ts +3 -1
  181. package/dist/factories/helm/index.d.ts.map +1 -1
  182. package/dist/factories/helm/index.js +1 -0
  183. package/dist/factories/helm/index.js.map +1 -1
  184. package/dist/factories/helm/lifecycle.d.ts +32 -0
  185. package/dist/factories/helm/lifecycle.d.ts.map +1 -0
  186. package/dist/factories/helm/lifecycle.js +165 -0
  187. package/dist/factories/helm/lifecycle.js.map +1 -0
  188. package/dist/factories/helm/types.d.ts +22 -0
  189. package/dist/factories/helm/types.d.ts.map +1 -1
  190. package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
  191. package/dist/factories/inngest/resources/helm.js +2 -0
  192. package/dist/factories/inngest/resources/helm.js.map +1 -1
  193. package/dist/factories/inngest/types.d.ts +2 -1
  194. package/dist/factories/inngest/types.d.ts.map +1 -1
  195. package/dist/factories/inngest/types.js.map +1 -1
  196. package/dist/factories/karpenter/compositions/index.d.ts +3 -0
  197. package/dist/factories/karpenter/compositions/index.d.ts.map +1 -0
  198. package/dist/factories/karpenter/compositions/index.js +3 -0
  199. package/dist/factories/karpenter/compositions/index.js.map +1 -0
  200. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts +34 -0
  201. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts.map +1 -0
  202. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js +150 -0
  203. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js.map +1 -0
  204. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts +10 -0
  205. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts.map +1 -0
  206. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js +25 -0
  207. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js.map +1 -0
  208. package/dist/factories/karpenter/constants.d.ts +67 -0
  209. package/dist/factories/karpenter/constants.d.ts.map +1 -0
  210. package/dist/factories/karpenter/constants.js +65 -0
  211. package/dist/factories/karpenter/constants.js.map +1 -0
  212. package/dist/factories/karpenter/index.d.ts +14 -0
  213. package/dist/factories/karpenter/index.d.ts.map +1 -0
  214. package/dist/factories/karpenter/index.js +14 -0
  215. package/dist/factories/karpenter/index.js.map +1 -0
  216. package/dist/factories/karpenter/resources/ec2-node-class.d.ts +26 -0
  217. package/dist/factories/karpenter/resources/ec2-node-class.d.ts.map +1 -0
  218. package/dist/factories/karpenter/resources/ec2-node-class.js +48 -0
  219. package/dist/factories/karpenter/resources/ec2-node-class.js.map +1 -0
  220. package/dist/factories/karpenter/resources/helm.d.ts +48 -0
  221. package/dist/factories/karpenter/resources/helm.d.ts.map +1 -0
  222. package/dist/factories/karpenter/resources/helm.js +117 -0
  223. package/dist/factories/karpenter/resources/helm.js.map +1 -0
  224. package/dist/factories/karpenter/resources/index.d.ts +5 -0
  225. package/dist/factories/karpenter/resources/index.d.ts.map +1 -0
  226. package/dist/factories/karpenter/resources/index.js +5 -0
  227. package/dist/factories/karpenter/resources/index.js.map +1 -0
  228. package/dist/factories/karpenter/resources/node-pool.d.ts +32 -0
  229. package/dist/factories/karpenter/resources/node-pool.d.ts.map +1 -0
  230. package/dist/factories/karpenter/resources/node-pool.js +80 -0
  231. package/dist/factories/karpenter/resources/node-pool.js.map +1 -0
  232. package/dist/factories/karpenter/resources/readiness.d.ts +21 -0
  233. package/dist/factories/karpenter/resources/readiness.d.ts.map +1 -0
  234. package/dist/factories/karpenter/resources/readiness.js +60 -0
  235. package/dist/factories/karpenter/resources/readiness.js.map +1 -0
  236. package/dist/factories/karpenter/types.d.ts +433 -0
  237. package/dist/factories/karpenter/types.d.ts.map +1 -0
  238. package/dist/factories/karpenter/types.js +59 -0
  239. package/dist/factories/karpenter/types.js.map +1 -0
  240. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts +24 -0
  241. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts.map +1 -0
  242. package/dist/factories/karpenter/utils/helm-values-mapper.js +89 -0
  243. package/dist/factories/karpenter/utils/helm-values-mapper.js.map +1 -0
  244. package/dist/factories/karpenter/utils/index.d.ts +3 -0
  245. package/dist/factories/karpenter/utils/index.d.ts.map +1 -0
  246. package/dist/factories/karpenter/utils/index.js +3 -0
  247. package/dist/factories/karpenter/utils/index.js.map +1 -0
  248. package/dist/factories/karpenter/utils/validation.d.ts +42 -0
  249. package/dist/factories/karpenter/utils/validation.d.ts.map +1 -0
  250. package/dist/factories/karpenter/utils/validation.js +441 -0
  251. package/dist/factories/karpenter/utils/validation.js.map +1 -0
  252. package/dist/factories/keda/compositions/index.d.ts +3 -0
  253. package/dist/factories/keda/compositions/index.d.ts.map +1 -0
  254. package/dist/factories/keda/compositions/index.js +3 -0
  255. package/dist/factories/keda/compositions/index.js.map +1 -0
  256. package/dist/factories/keda/compositions/keda-bootstrap.d.ts +30 -0
  257. package/dist/factories/keda/compositions/keda-bootstrap.d.ts.map +1 -0
  258. package/dist/factories/keda/compositions/keda-bootstrap.js +102 -0
  259. package/dist/factories/keda/compositions/keda-bootstrap.js.map +1 -0
  260. package/dist/factories/keda/compositions/keda-helm-repository.d.ts +10 -0
  261. package/dist/factories/keda/compositions/keda-helm-repository.d.ts.map +1 -0
  262. package/dist/factories/keda/compositions/keda-helm-repository.js +25 -0
  263. package/dist/factories/keda/compositions/keda-helm-repository.js.map +1 -0
  264. package/dist/factories/keda/constants.d.ts +27 -0
  265. package/dist/factories/keda/constants.d.ts.map +1 -0
  266. package/dist/factories/keda/constants.js +27 -0
  267. package/dist/factories/keda/constants.js.map +1 -0
  268. package/dist/factories/keda/index.d.ts +14 -0
  269. package/dist/factories/keda/index.d.ts.map +1 -0
  270. package/dist/factories/keda/index.js +14 -0
  271. package/dist/factories/keda/index.js.map +1 -0
  272. package/dist/factories/keda/resources/helm.d.ts +26 -0
  273. package/dist/factories/keda/resources/helm.d.ts.map +1 -0
  274. package/dist/factories/keda/resources/helm.js +84 -0
  275. package/dist/factories/keda/resources/helm.js.map +1 -0
  276. package/dist/factories/keda/resources/index.d.ts +7 -0
  277. package/dist/factories/keda/resources/index.d.ts.map +1 -0
  278. package/dist/factories/keda/resources/index.js +7 -0
  279. package/dist/factories/keda/resources/index.js.map +1 -0
  280. package/dist/factories/keda/resources/readiness.d.ts +28 -0
  281. package/dist/factories/keda/resources/readiness.d.ts.map +1 -0
  282. package/dist/factories/keda/resources/readiness.js +70 -0
  283. package/dist/factories/keda/resources/readiness.js.map +1 -0
  284. package/dist/factories/keda/resources/scaled-job.d.ts +23 -0
  285. package/dist/factories/keda/resources/scaled-job.d.ts.map +1 -0
  286. package/dist/factories/keda/resources/scaled-job.js +43 -0
  287. package/dist/factories/keda/resources/scaled-job.js.map +1 -0
  288. package/dist/factories/keda/resources/scaled-object.d.ts +33 -0
  289. package/dist/factories/keda/resources/scaled-object.d.ts.map +1 -0
  290. package/dist/factories/keda/resources/scaled-object.js +78 -0
  291. package/dist/factories/keda/resources/scaled-object.js.map +1 -0
  292. package/dist/factories/keda/resources/trigger-authentication.d.ts +28 -0
  293. package/dist/factories/keda/resources/trigger-authentication.d.ts.map +1 -0
  294. package/dist/factories/keda/resources/trigger-authentication.js +52 -0
  295. package/dist/factories/keda/resources/trigger-authentication.js.map +1 -0
  296. package/dist/factories/keda/resources/triggers.d.ts +17 -0
  297. package/dist/factories/keda/resources/triggers.d.ts.map +1 -0
  298. package/dist/factories/keda/resources/triggers.js +21 -0
  299. package/dist/factories/keda/resources/triggers.js.map +1 -0
  300. package/dist/factories/keda/types.d.ts +580 -0
  301. package/dist/factories/keda/types.d.ts.map +1 -0
  302. package/dist/factories/keda/types.js +75 -0
  303. package/dist/factories/keda/types.js.map +1 -0
  304. package/dist/factories/keda/utils/helm-values-mapper.d.ts +21 -0
  305. package/dist/factories/keda/utils/helm-values-mapper.d.ts.map +1 -0
  306. package/dist/factories/keda/utils/helm-values-mapper.js +130 -0
  307. package/dist/factories/keda/utils/helm-values-mapper.js.map +1 -0
  308. package/dist/factories/keda/utils/index.d.ts +3 -0
  309. package/dist/factories/keda/utils/index.d.ts.map +1 -0
  310. package/dist/factories/keda/utils/index.js +3 -0
  311. package/dist/factories/keda/utils/index.js.map +1 -0
  312. package/dist/factories/keda/utils/validation.d.ts +52 -0
  313. package/dist/factories/keda/utils/validation.d.ts.map +1 -0
  314. package/dist/factories/keda/utils/validation.js +482 -0
  315. package/dist/factories/keda/utils/validation.js.map +1 -0
  316. package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -1
  317. package/dist/factories/kubernetes/policy/limit-range.js +27 -1
  318. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
  319. package/dist/factories/nats/resources/helm.d.ts +2 -2
  320. package/dist/factories/nats/resources/helm.d.ts.map +1 -1
  321. package/dist/factories/nats/resources/helm.js +2 -1
  322. package/dist/factories/nats/resources/helm.js.map +1 -1
  323. package/dist/factories/opensearch/resources/helm.d.ts.map +1 -1
  324. package/dist/factories/opensearch/resources/helm.js +2 -1
  325. package/dist/factories/opensearch/resources/helm.js.map +1 -1
  326. package/dist/factories/opensearch/types.d.ts +2 -1
  327. package/dist/factories/opensearch/types.d.ts.map +1 -1
  328. package/dist/factories/opensearch/types.js.map +1 -1
  329. package/dist/factories/ory/resources/helm.d.ts.map +1 -1
  330. package/dist/factories/ory/resources/helm.js +2 -0
  331. package/dist/factories/ory/resources/helm.js.map +1 -1
  332. package/dist/factories/ory/types.d.ts +2 -2
  333. package/dist/factories/ory/types.d.ts.map +1 -1
  334. package/dist/factories/ory/types.js.map +1 -1
  335. package/dist/factories/pebble/resources/helm.d.ts.map +1 -1
  336. package/dist/factories/pebble/resources/helm.js +2 -0
  337. package/dist/factories/pebble/resources/helm.js.map +1 -1
  338. package/dist/factories/pebble/types.d.ts +2 -1
  339. package/dist/factories/pebble/types.d.ts.map +1 -1
  340. package/dist/factories/pebble/types.js.map +1 -1
  341. package/dist/factories/rook/resources/helm.d.ts.map +1 -1
  342. package/dist/factories/rook/resources/helm.js +3 -2
  343. package/dist/factories/rook/resources/helm.js.map +1 -1
  344. package/dist/factories/rook/types.d.ts +2 -1
  345. package/dist/factories/rook/types.d.ts.map +1 -1
  346. package/dist/factories/rook/types.js.map +1 -1
  347. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +43 -36
  348. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -1
  349. package/dist/factories/traefik/compositions/traefik-bootstrap.js +70 -38
  350. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -1
  351. package/dist/factories/traefik/constants.d.ts +6 -0
  352. package/dist/factories/traefik/constants.d.ts.map +1 -1
  353. package/dist/factories/traefik/constants.js +6 -0
  354. package/dist/factories/traefik/constants.js.map +1 -1
  355. package/dist/factories/traefik/resources/common.d.ts +1 -1
  356. package/dist/factories/traefik/resources/common.js +1 -1
  357. package/dist/factories/traefik/resources/helm.d.ts.map +1 -1
  358. package/dist/factories/traefik/resources/helm.js +14 -9
  359. package/dist/factories/traefik/resources/helm.js.map +1 -1
  360. package/dist/factories/traefik/resources/middleware.d.ts +35 -1
  361. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -1
  362. package/dist/factories/traefik/resources/middleware.js +71 -0
  363. package/dist/factories/traefik/resources/middleware.js.map +1 -1
  364. package/dist/factories/traefik/resources/tls.d.ts +22 -1
  365. package/dist/factories/traefik/resources/tls.d.ts.map +1 -1
  366. package/dist/factories/traefik/resources/tls.js +40 -0
  367. package/dist/factories/traefik/resources/tls.js.map +1 -1
  368. package/dist/factories/traefik/types.d.ts +176 -9
  369. package/dist/factories/traefik/types.d.ts.map +1 -1
  370. package/dist/factories/traefik/types.js +111 -2
  371. package/dist/factories/traefik/types.js.map +1 -1
  372. package/dist/factories/traefik/utils/access-log.d.ts +18 -0
  373. package/dist/factories/traefik/utils/access-log.d.ts.map +1 -0
  374. package/dist/factories/traefik/utils/access-log.js +98 -0
  375. package/dist/factories/traefik/utils/access-log.js.map +1 -0
  376. package/dist/factories/traefik/utils/aws-nlb.d.ts +55 -0
  377. package/dist/factories/traefik/utils/aws-nlb.d.ts.map +1 -0
  378. package/dist/factories/traefik/utils/aws-nlb.js +121 -0
  379. package/dist/factories/traefik/utils/aws-nlb.js.map +1 -0
  380. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +30 -40
  381. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -1
  382. package/dist/factories/traefik/utils/helm-values-mapper.js +308 -41
  383. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -1
  384. package/dist/factories/traefik/utils/index.d.ts +5 -0
  385. package/dist/factories/traefik/utils/index.d.ts.map +1 -1
  386. package/dist/factories/traefik/utils/index.js +5 -0
  387. package/dist/factories/traefik/utils/index.js.map +1 -1
  388. package/dist/factories/traefik/utils/middleware-validation.d.ts +0 -17
  389. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -1
  390. package/dist/factories/traefik/utils/middleware-validation.js +15 -17
  391. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -1
  392. package/dist/factories/traefik/utils/plugins.d.ts +38 -0
  393. package/dist/factories/traefik/utils/plugins.d.ts.map +1 -0
  394. package/dist/factories/traefik/utils/plugins.js +175 -0
  395. package/dist/factories/traefik/utils/plugins.js.map +1 -0
  396. package/dist/factories/traefik/utils/proxy-trust.d.ts +48 -0
  397. package/dist/factories/traefik/utils/proxy-trust.d.ts.map +1 -0
  398. package/dist/factories/traefik/utils/proxy-trust.js +514 -0
  399. package/dist/factories/traefik/utils/proxy-trust.js.map +1 -0
  400. package/dist/factories/traefik/utils/trusted-range.d.ts +29 -0
  401. package/dist/factories/traefik/utils/trusted-range.d.ts.map +1 -0
  402. package/dist/factories/traefik/utils/trusted-range.js +80 -0
  403. package/dist/factories/traefik/utils/trusted-range.js.map +1 -0
  404. package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
  405. package/dist/factories/valkey/resources/helm.js +2 -1
  406. package/dist/factories/valkey/resources/helm.js.map +1 -1
  407. package/dist/factories/valkey/types.d.ts +2 -1
  408. package/dist/factories/valkey/types.d.ts.map +1 -1
  409. package/dist/factories/valkey/types.js.map +1 -1
  410. package/dist/factories/vpa/compositions/index.d.ts +3 -0
  411. package/dist/factories/vpa/compositions/index.d.ts.map +1 -0
  412. package/dist/factories/vpa/compositions/index.js +3 -0
  413. package/dist/factories/vpa/compositions/index.js.map +1 -0
  414. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts +30 -0
  415. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts.map +1 -0
  416. package/dist/factories/vpa/compositions/vpa-bootstrap.js +104 -0
  417. package/dist/factories/vpa/compositions/vpa-bootstrap.js.map +1 -0
  418. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts +10 -0
  419. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts.map +1 -0
  420. package/dist/factories/vpa/compositions/vpa-helm-repository.js +25 -0
  421. package/dist/factories/vpa/compositions/vpa-helm-repository.js.map +1 -0
  422. package/dist/factories/vpa/constants.d.ts +77 -0
  423. package/dist/factories/vpa/constants.d.ts.map +1 -0
  424. package/dist/factories/vpa/constants.js +67 -0
  425. package/dist/factories/vpa/constants.js.map +1 -0
  426. package/dist/factories/vpa/index.d.ts +14 -0
  427. package/dist/factories/vpa/index.d.ts.map +1 -0
  428. package/dist/factories/vpa/index.js +14 -0
  429. package/dist/factories/vpa/index.js.map +1 -0
  430. package/dist/factories/vpa/resources/helm.d.ts +28 -0
  431. package/dist/factories/vpa/resources/helm.d.ts.map +1 -0
  432. package/dist/factories/vpa/resources/helm.js +88 -0
  433. package/dist/factories/vpa/resources/helm.js.map +1 -0
  434. package/dist/factories/vpa/resources/index.d.ts +4 -0
  435. package/dist/factories/vpa/resources/index.d.ts.map +1 -0
  436. package/dist/factories/vpa/resources/index.js +4 -0
  437. package/dist/factories/vpa/resources/index.js.map +1 -0
  438. package/dist/factories/vpa/resources/readiness.d.ts +24 -0
  439. package/dist/factories/vpa/resources/readiness.d.ts.map +1 -0
  440. package/dist/factories/vpa/resources/readiness.js +66 -0
  441. package/dist/factories/vpa/resources/readiness.js.map +1 -0
  442. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts +42 -0
  443. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts.map +1 -0
  444. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js +93 -0
  445. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js.map +1 -0
  446. package/dist/factories/vpa/types.d.ts +312 -0
  447. package/dist/factories/vpa/types.d.ts.map +1 -0
  448. package/dist/factories/vpa/types.js +96 -0
  449. package/dist/factories/vpa/types.js.map +1 -0
  450. package/dist/factories/vpa/utils/helm-values-mapper.d.ts +18 -0
  451. package/dist/factories/vpa/utils/helm-values-mapper.d.ts.map +1 -0
  452. package/dist/factories/vpa/utils/helm-values-mapper.js +121 -0
  453. package/dist/factories/vpa/utils/helm-values-mapper.js.map +1 -0
  454. package/dist/factories/vpa/utils/index.d.ts +3 -0
  455. package/dist/factories/vpa/utils/index.d.ts.map +1 -0
  456. package/dist/factories/vpa/utils/index.js +3 -0
  457. package/dist/factories/vpa/utils/index.js.map +1 -0
  458. package/dist/factories/vpa/utils/validation.d.ts +42 -0
  459. package/dist/factories/vpa/utils/validation.d.ts.map +1 -0
  460. package/dist/factories/vpa/utils/validation.js +225 -0
  461. package/dist/factories/vpa/utils/validation.js.map +1 -0
  462. package/package.json +21 -1
@@ -0,0 +1,60 @@
1
+ // Readiness for Karpenter CRs. NodePool and EC2NodeClass both publish a
2
+ // `Ready` condition with a per-condition `observedGeneration`; a `Ready=True`
3
+ // left over from an earlier generation must not count, so a spec update is
4
+ // only ready once Karpenter has evaluated the new generation.
5
+ import { Cel } from '../../../core/references/cel.js';
6
+ /** Evaluate the `Ready` condition of a Karpenter resource of the given kind. */
7
+ export function evaluateKarpenterReadiness(kind, liveResource) {
8
+ const resource = liveResource;
9
+ const conditions = resource?.status?.conditions;
10
+ if (!conditions || conditions.length === 0) {
11
+ return { ready: false, reason: 'StatusMissing', message: `${kind} has no conditions yet` };
12
+ }
13
+ const ready = conditions.find((condition) => condition.type === 'Ready');
14
+ if (!ready) {
15
+ return {
16
+ ready: false,
17
+ reason: 'ReadyConditionMissing',
18
+ message: `${kind} has no Ready condition`,
19
+ };
20
+ }
21
+ const generation = resource?.metadata?.generation;
22
+ if (generation !== undefined &&
23
+ ready.observedGeneration !== undefined &&
24
+ ready.observedGeneration < generation) {
25
+ return {
26
+ ready: false,
27
+ reason: 'StaleCondition',
28
+ message: `${kind} Ready condition is from generation ${ready.observedGeneration}, current is ${generation}`,
29
+ };
30
+ }
31
+ if (ready.status === 'True') {
32
+ return { ready: true, reason: 'Ready', message: ready.message || `${kind} is ready` };
33
+ }
34
+ return {
35
+ ready: false,
36
+ reason: ready.reason || 'NotReady',
37
+ message: ready.message || `${kind} is not ready`,
38
+ };
39
+ }
40
+ /**
41
+ * A status expression that is `true` once every given `NodePool` or
42
+ * `EC2NodeClass` has `Ready=True` for its current generation. Pass several
43
+ * resources rather than joining calls with `&&`, which JavaScript evaluates
44
+ * before TypeKro sees it.
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * return { ready: karpenterReady(nodeClass, pool), nodes: pool.status.nodes };
49
+ * ```
50
+ */
51
+ export function karpenterReady(...resources) {
52
+ const parts = [];
53
+ resources.forEach((resource, index) => {
54
+ if (index > 0)
55
+ parts.push(' && ');
56
+ parts.push('(has(', resource.status.conditions, ') && ', resource.status.conditions, '.exists(c, c.type == "Ready" && c.status == "True" && (has(c.observedGeneration) ? c.observedGeneration >= ', resource.metadata.generation, ' : true)))');
57
+ });
58
+ return Cel.expr(...parts);
59
+ }
60
+ //# sourceMappingURL=readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/readiness.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,8EAA8E;AAC9E,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAStD,gFAAgF;AAChF,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,YAAqB;IAC5E,MAAM,QAAQ,GAAG,YAAwD,CAAC;IAC1E,MAAM,UAAU,GAAG,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC;IAChD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAC7F,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,uBAAuB;YAC/B,OAAO,EAAE,GAAG,IAAI,yBAAyB;SAC1C,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;IAClD,IACE,UAAU,KAAK,SAAS;QACxB,KAAK,CAAC,kBAAkB,KAAK,SAAS;QACtC,KAAK,CAAC,kBAAkB,GAAG,UAAU,EACrC,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,gBAAgB;YACxB,OAAO,EAAE,GAAG,IAAI,uCAAuC,KAAK,CAAC,kBAAkB,gBAAgB,UAAU,EAAE;SAC5G,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;IACxF,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,UAAU;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,eAAe;KACjD,CAAC;AACJ,CAAC;AAID;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,GAAG,SAAsD;IACtF,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CACR,OAAO,EACP,QAAQ,CAAC,MAAM,CAAC,UAAU,EAC1B,OAAO,EACP,QAAQ,CAAC,MAAM,CAAC,UAAU,EAC1B,6GAA6G,EAC7G,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAC5B,YAAY,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,IAAI,CAAU,GAAG,KAAK,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,433 @@
1
+ import { type Type } from 'arktype';
2
+ import type { HelmReleaseLifecycleOptions } from '../helm/types.js';
3
+ import type { KARPENTER_LABELS } from './constants.js';
4
+ /** Status condition as Karpenter publishes it on `NodePool` and `EC2NodeClass`. */
5
+ export interface KarpenterCondition {
6
+ type: string;
7
+ status: 'True' | 'False' | 'Unknown';
8
+ reason?: string;
9
+ message?: string;
10
+ lastTransitionTime?: string;
11
+ observedGeneration?: number;
12
+ }
13
+ /** A node taint. */
14
+ export interface KarpenterTaint {
15
+ key: string;
16
+ value?: string;
17
+ effect: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
18
+ }
19
+ /** Pod toleration for the controller Deployment. */
20
+ export interface KarpenterToleration {
21
+ key?: string;
22
+ operator?: 'Exists' | 'Equal';
23
+ value?: string;
24
+ effect?: 'NoSchedule' | 'PreferNoSchedule' | 'NoExecute';
25
+ tolerationSeconds?: number;
26
+ }
27
+ /** CPU/memory requests and limits. */
28
+ export interface KarpenterResourceRequirements {
29
+ requests?: {
30
+ cpu?: string;
31
+ memory?: string;
32
+ };
33
+ limits?: {
34
+ cpu?: string;
35
+ memory?: string;
36
+ };
37
+ }
38
+ /** A well-known requirement key, or any other label key. */
39
+ export type KarpenterRequirementKey = (typeof KARPENTER_LABELS)[keyof typeof KARPENTER_LABELS] | (string & {});
40
+ /** One scheduling requirement. `Gt`/`Lt`/`Gte`/`Lte` take a single integer value. */
41
+ export interface NodePoolRequirement {
42
+ key: KarpenterRequirementKey;
43
+ operator: 'In' | 'NotIn' | 'Exists' | 'DoesNotExist' | 'Gt' | 'Lt' | 'Gte' | 'Lte';
44
+ values?: string[];
45
+ /** Minimum number of distinct values the scheduler must keep available (1-50). */
46
+ minValues?: number;
47
+ }
48
+ /** Reference to the node class a `NodePool` launches with. */
49
+ export interface NodeClassReference {
50
+ name: string;
51
+ /** @default 'karpenter.k8s.aws' */
52
+ group?: string;
53
+ /** @default 'EC2NodeClass' */
54
+ kind?: string;
55
+ }
56
+ /** Disruption budget. `schedule` and `duration` must be set together. */
57
+ export interface NodePoolDisruptionBudget {
58
+ /** Node count or percentage, e.g. `'10%'` or `'5'`. */
59
+ nodes: string;
60
+ /** Cron schedule (or `@daily` style macro) the budget is active on. */
61
+ schedule?: string;
62
+ /** How long the budget stays active after each `schedule` tick, e.g. `'8h'`. */
63
+ duration?: string;
64
+ /** Disruption methods this budget applies to. All of them when omitted. */
65
+ reasons?: Array<'Underutilized' | 'Empty' | 'Drifted'>;
66
+ }
67
+ /** `spec.disruption` of a `NodePool`. */
68
+ export interface NodePoolDisruption {
69
+ /** @default 'WhenEmptyOrUnderutilized' (CRD default) */
70
+ consolidationPolicy?: 'WhenEmpty' | 'WhenEmptyOrUnderutilized' | 'Balanced';
71
+ /**
72
+ * Duration such as `'30s'`, or `'Never'`. Required by the CRD whenever
73
+ * `disruption` is set; the `'0s'` default applies only when it is omitted.
74
+ */
75
+ consolidateAfter: string;
76
+ budgets?: NodePoolDisruptionBudget[];
77
+ }
78
+ /** `spec` of a `karpenter.sh/v1` `NodePool`. */
79
+ export interface NodePoolSpec {
80
+ template: {
81
+ metadata?: {
82
+ labels?: Record<string, string>;
83
+ annotations?: Record<string, string>;
84
+ };
85
+ spec: {
86
+ nodeClassRef: NodeClassReference;
87
+ requirements: NodePoolRequirement[];
88
+ taints?: KarpenterTaint[];
89
+ /** Taints the node starts with and that a daemon is expected to remove. */
90
+ startupTaints?: KarpenterTaint[];
91
+ /** Node lifetime, e.g. `'720h'`, or `'Never'`. @default '720h' (CRD default) */
92
+ expireAfter?: string;
93
+ /** Upper bound on draining a node before it is forcibly terminated. */
94
+ terminationGracePeriod?: string;
95
+ };
96
+ };
97
+ disruption?: NodePoolDisruption;
98
+ /** Upper bound on the capacity this pool may provision, e.g. `{ cpu: '1000', memory: '4000Gi' }`. */
99
+ limits?: Record<string, string | number>;
100
+ /** Priority against other pools (1-100). Higher wins. */
101
+ weight?: number;
102
+ }
103
+ /** Observed status of a `NodePool`. */
104
+ export interface NodePoolStatus {
105
+ conditions?: KarpenterCondition[];
106
+ /** Capacity currently provisioned by this pool, by resource name. */
107
+ resources?: Record<string, string>;
108
+ /** Number of nodes this pool currently owns. */
109
+ nodes?: number;
110
+ nodeClassObservedGeneration?: number;
111
+ }
112
+ /** Configuration for {@link nodePool}. `NodePool` is cluster-scoped. */
113
+ export interface NodePoolConfig {
114
+ name: string;
115
+ labels?: Record<string, string>;
116
+ annotations?: Record<string, string>;
117
+ spec: NodePoolSpec;
118
+ /** Resource id for composition references. */
119
+ id?: string;
120
+ }
121
+ /**
122
+ * AMI selector term. An `alias` (`al2023@latest`, `bottlerocket@v1.30.0`, ...)
123
+ * must be the only term. `alias`, `id` and `ssmParameter` each select an AMI on
124
+ * their own and must be the only field in their term.
125
+ */
126
+ export interface EC2NodeClassAMISelectorTerm {
127
+ alias?: string;
128
+ id?: string;
129
+ name?: string;
130
+ owner?: string;
131
+ ssmParameter?: string;
132
+ tags?: Record<string, string>;
133
+ }
134
+ /** Subnet selector term: tags or an id. */
135
+ export interface EC2NodeClassSubnetSelectorTerm {
136
+ tags?: Record<string, string>;
137
+ id?: string;
138
+ }
139
+ /** Security group selector term: tags, an id or a name. */
140
+ export interface EC2NodeClassSecurityGroupSelectorTerm {
141
+ tags?: Record<string, string>;
142
+ id?: string;
143
+ name?: string;
144
+ }
145
+ /** EBS settings of a block device mapping. */
146
+ export interface EC2NodeClassEbs {
147
+ /** Size such as `'100Gi'`. */
148
+ volumeSize?: string;
149
+ volumeType?: 'standard' | 'io1' | 'io2' | 'gp2' | 'sc1' | 'st1' | 'gp3';
150
+ iops?: number;
151
+ throughput?: number;
152
+ encrypted?: boolean;
153
+ kmsKeyID?: string;
154
+ deleteOnTermination?: boolean;
155
+ snapshotID?: string;
156
+ /** MiB/s to initialize a volume restored from `snapshotID` (100-300). */
157
+ volumeInitializationRate?: number;
158
+ }
159
+ /** A block device mapping. At most one may set `rootVolume`. */
160
+ export interface EC2NodeClassBlockDeviceMapping {
161
+ deviceName?: string;
162
+ ebs?: EC2NodeClassEbs;
163
+ rootVolume?: boolean;
164
+ }
165
+ /** Instance metadata service options. The CRD defaults to IMDSv2 with a hop limit of 1. */
166
+ export interface EC2NodeClassMetadataOptions {
167
+ httpEndpoint?: 'enabled' | 'disabled';
168
+ httpProtocolIPv6?: 'enabled' | 'disabled';
169
+ /** 1-64. Use 2 only when pods without IRSA/Pod Identity must reach IMDS. */
170
+ httpPutResponseHopLimit?: number;
171
+ /** `'required'` is IMDSv2-only. `'optional'` also allows IMDSv1. */
172
+ httpTokens?: 'required' | 'optional';
173
+ }
174
+ /** Kubelet settings Karpenter applies to the nodes it launches. */
175
+ export interface EC2NodeClassKubelet {
176
+ maxPods?: number;
177
+ podsPerCore?: number;
178
+ /** Keys: `cpu`, `memory`, `ephemeral-storage`, `pid`. */
179
+ systemReserved?: Record<string, string>;
180
+ /** Keys: `cpu`, `memory`, `ephemeral-storage`, `pid`. */
181
+ kubeReserved?: Record<string, string>;
182
+ /** Signal to threshold, e.g. `{ 'memory.available': '5%' }`. */
183
+ evictionHard?: Record<string, string>;
184
+ evictionSoft?: Record<string, string>;
185
+ evictionSoftGracePeriod?: Record<string, string>;
186
+ evictionMaxPodGracePeriod?: number;
187
+ imageGCHighThresholdPercent?: number;
188
+ imageGCLowThresholdPercent?: number;
189
+ cpuCFSQuota?: boolean;
190
+ clusterDNS?: string[];
191
+ }
192
+ /** Fields of an `EC2NodeClass` spec other than the node identity. */
193
+ export interface EC2NodeClassSpecBase {
194
+ /** Required unless `amiSelectorTerms` uses an `alias`. */
195
+ amiFamily?: 'AL2' | 'AL2023' | 'Bottlerocket' | 'Custom' | 'Windows2019' | 'Windows2022' | 'Windows2025';
196
+ amiSelectorTerms: EC2NodeClassAMISelectorTerm[];
197
+ subnetSelectorTerms: EC2NodeClassSubnetSelectorTerm[];
198
+ securityGroupSelectorTerms: EC2NodeClassSecurityGroupSelectorTerm[];
199
+ associatePublicIPAddress?: boolean;
200
+ blockDeviceMappings?: EC2NodeClassBlockDeviceMapping[];
201
+ metadataOptions?: EC2NodeClassMetadataOptions;
202
+ /** Tags applied to instances, volumes and launch templates. */
203
+ tags?: Record<string, string>;
204
+ /** Merged with (or, for `Custom`, replaces) the user data Karpenter generates. */
205
+ userData?: string;
206
+ kubelet?: EC2NodeClassKubelet;
207
+ detailedMonitoring?: boolean;
208
+ instanceStorePolicy?: 'RAID0';
209
+ /** On-demand capacity reservations to launch into (beta, enabled by default). */
210
+ capacityReservationSelectorTerms?: Array<{
211
+ id?: string;
212
+ ownerID?: string;
213
+ tags?: Record<string, string>;
214
+ instanceMatchCriteria?: 'open' | 'targeted';
215
+ }>;
216
+ /** Placement group, by `name` or `id`. */
217
+ placementGroupSelector?: {
218
+ name?: string;
219
+ id?: string;
220
+ };
221
+ /** Network interfaces, e.g. EFA. Must include device 0 on card 0 of type `interface`. */
222
+ networkInterfaces?: Array<{
223
+ networkCardIndex: number;
224
+ deviceIndex: number;
225
+ interfaceType: 'interface' | 'efa-only';
226
+ }>;
227
+ /** IPv4 prefixes per primary ENI (prefix delegation). */
228
+ ipPrefixCount?: number;
229
+ cpuOptions?: {
230
+ nestedVirtualization?: 'enabled' | 'disabled';
231
+ };
232
+ /** Connection tracking timeouts, in seconds. */
233
+ connectionTracking?: {
234
+ tcpEstablishedTimeout?: number;
235
+ udpStreamTimeout?: number;
236
+ udpTimeout?: number;
237
+ };
238
+ /** Launch template context (for AWS Outposts / reserved capacity). */
239
+ context?: string;
240
+ }
241
+ /**
242
+ * `spec` of a `karpenter.k8s.aws/v1` `EC2NodeClass`. Exactly one of `role`
243
+ * (Karpenter manages the instance profile) or `instanceProfile` is set.
244
+ */
245
+ export type EC2NodeClassSpec = EC2NodeClassSpecBase & ({
246
+ role: string;
247
+ instanceProfile?: never;
248
+ } | {
249
+ instanceProfile: string;
250
+ role?: never;
251
+ });
252
+ /** Observed status of an `EC2NodeClass`. */
253
+ export interface EC2NodeClassStatus {
254
+ conditions?: KarpenterCondition[];
255
+ amis?: Array<{
256
+ id: string;
257
+ name?: string;
258
+ }>;
259
+ subnets?: Array<{
260
+ id: string;
261
+ zone: string;
262
+ zoneID?: string;
263
+ }>;
264
+ securityGroups?: Array<{
265
+ id: string;
266
+ name?: string;
267
+ }>;
268
+ instanceProfile?: string;
269
+ capacityReservations?: Array<{
270
+ id: string;
271
+ availabilityZone: string;
272
+ instanceType: string;
273
+ instanceMatchCriteria: 'open' | 'targeted';
274
+ ownerID: string;
275
+ reservationType?: 'default' | 'capacity-block';
276
+ state?: 'active' | 'expiring';
277
+ endTime?: string;
278
+ }>;
279
+ }
280
+ /** Configuration for {@link ec2NodeClass}. `EC2NodeClass` is cluster-scoped. */
281
+ export interface EC2NodeClassConfig {
282
+ name: string;
283
+ labels?: Record<string, string>;
284
+ annotations?: Record<string, string>;
285
+ spec: EC2NodeClassSpec;
286
+ /** Resource id for composition references. */
287
+ id?: string;
288
+ }
289
+ /** Runtime spec of the `karpenterBootstrap` composition. */
290
+ export interface KarpenterBootstrapConfig {
291
+ /** Helm release name. The controller's resources and ServiceAccount take this name. */
292
+ name: string;
293
+ /** Install namespace. @default 'kube-system' */
294
+ namespace?: string;
295
+ /** Chart version for both `karpenter-crd` and `karpenter`. @default '1.14.1' */
296
+ version?: string;
297
+ /** EKS cluster name (`settings.clusterName`). */
298
+ clusterName: string;
299
+ /** API server endpoint. Discovered from EKS when omitted. */
300
+ clusterEndpoint?: string;
301
+ /** SQS queue name for interruption handling. Disabled when omitted. */
302
+ interruptionQueue?: string;
303
+ /** @default 2 */
304
+ replicas?: number;
305
+ /** @default 'info' */
306
+ logLevel?: 'debug' | 'info' | 'error';
307
+ /**
308
+ * `Default` resolves through the node instead of cluster DNS, for a controller
309
+ * that has to start before CoreDNS has anywhere to run. @default 'ClusterFirst'
310
+ */
311
+ dnsPolicy?: 'ClusterFirst' | 'Default';
312
+ serviceAccount?: {
313
+ /** @default the release name */
314
+ name?: string;
315
+ /** IRSA: `{ 'eks.amazonaws.com/role-arn': '<role arn>' }`. Not needed for EKS Pod Identity. */
316
+ annotations?: Record<string, string>;
317
+ };
318
+ podDisruptionBudget?: {
319
+ /** @default 1 */
320
+ maxUnavailable?: number;
321
+ };
322
+ /** Merged with the chart default `kubernetes.io/os: linux`. */
323
+ nodeSelector?: Record<string, string>;
324
+ /**
325
+ * Merged into the chart default, which keeps the controller off nodes that
326
+ * Karpenter itself launched. Lists replace the chart's lists.
327
+ */
328
+ affinity?: Record<string, unknown>;
329
+ /** @default KARPENTER_DEFAULT_TOPOLOGY_SPREAD_CONSTRAINTS */
330
+ topologySpreadConstraints?: Record<string, unknown>[];
331
+ /** @default KARPENTER_DEFAULT_TOLERATIONS */
332
+ tolerations?: KarpenterToleration[];
333
+ /**
334
+ * Controller container resources. Defaults to requests of 1 CPU / 1Gi and a
335
+ * 1Gi memory limit; pass `{}` to set none.
336
+ */
337
+ resources?: KarpenterResourceRequirements;
338
+ }
339
+ /** Status of the `karpenterBootstrap` composition. */
340
+ export interface KarpenterBootstrapStatus {
341
+ ready: boolean;
342
+ failed: boolean;
343
+ phase: 'Ready' | 'Installing' | 'Failed';
344
+ /** Controller chart version Flux installed, read from the `HelmRelease` history. */
345
+ version: string;
346
+ }
347
+ /** ArkType schema for {@link KarpenterBootstrapConfig}. */
348
+ export declare const KarpenterBootstrapConfigSchema: Type<KarpenterBootstrapConfig>;
349
+ /** ArkType schema for {@link KarpenterBootstrapStatus}. */
350
+ export declare const KarpenterBootstrapStatusSchema: Type<KarpenterBootstrapStatus>;
351
+ /** Spec of the shared `HelmRepository` singleton. */
352
+ export interface KarpenterHelmRepositorySingletonSpec {
353
+ name: string;
354
+ namespace: string;
355
+ url: string;
356
+ }
357
+ /** ArkType schema for {@link KarpenterHelmRepositorySingletonSpec}. */
358
+ export declare const KarpenterHelmRepositorySingletonSpecSchema: Type<KarpenterHelmRepositorySingletonSpec>;
359
+ /** ArkType schema for the singleton's status. */
360
+ export declare const KarpenterHelmRepositorySingletonStatusSchema: Type<{
361
+ ready: boolean;
362
+ }>;
363
+ /**
364
+ * Build-time options for {@link makeKarpenterBootstrap}. These decide which
365
+ * resources exist, so they must be concrete.
366
+ *
367
+ * `install`, `upgrade` and `driftDetection` are the Flux lifecycle options
368
+ * every TypeKro HelmRelease factory takes. They apply to the controller
369
+ * release and override its defaults field by field.
370
+ */
371
+ export interface KarpenterBootstrapBuildOptions extends HelmReleaseLifecycleOptions {
372
+ /** Composition name. @default 'karpenter-bootstrap' */
373
+ readonly name?: string;
374
+ /** KRO kind. @default 'KarpenterBootstrap' */
375
+ readonly kind?: string;
376
+ /**
377
+ * Who manages the CRDs. `'karpenter-crd'` (upstream's GitOps recommendation)
378
+ * installs them from the `karpenter-crd` chart before the controller, whose
379
+ * own `crds/` are skipped. `'external'` installs only the controller.
380
+ * @default 'karpenter-crd'
381
+ */
382
+ readonly crds?: 'karpenter-crd' | 'external';
383
+ /**
384
+ * Keep the CRDs, and with them every NodePool and NodeClaim, when the
385
+ * `karpenter-crd` release is uninstalled. @default true
386
+ */
387
+ readonly keepCrdsOnUninstall?: boolean;
388
+ /**
389
+ * `'owned'` makes the namespace part of the graph. `'external'` leaves it to
390
+ * Flux (`install.createNamespace`), which is right for `kube-system`.
391
+ * @default 'external'
392
+ */
393
+ readonly namespaceOwnership?: 'owned' | 'external';
394
+ /** Raw chart values, deep-merged over the mapped values. Plain objects merge; lists replace. */
395
+ readonly values?: Record<string, unknown>;
396
+ }
397
+ /** Configuration for the Karpenter `HelmRepository`. */
398
+ export interface KarpenterHelmRepositoryConfig {
399
+ /** @default DEFAULT_KARPENTER_REPOSITORY_NAME */
400
+ name?: string;
401
+ /** @default 'flux-system' */
402
+ namespace?: string;
403
+ /** @default DEFAULT_KARPENTER_REPOSITORY_URL */
404
+ url?: string;
405
+ /** @default '1h' */
406
+ interval?: string;
407
+ id?: string;
408
+ }
409
+ /** Configuration for the Karpenter `HelmRelease` factories. */
410
+ export interface KarpenterHelmReleaseConfig extends HelmReleaseLifecycleOptions {
411
+ /** `HelmRelease` name, also pinned as the Helm release name. */
412
+ name: string;
413
+ /** Namespace of the `HelmRelease` object. @default 'flux-system' */
414
+ namespace?: string;
415
+ /** Install namespace. @default 'kube-system' */
416
+ targetNamespace?: string;
417
+ /** @default DEFAULT_KARPENTER_CHART_VERSION */
418
+ version?: string;
419
+ /** @default DEFAULT_KARPENTER_REPOSITORY_NAME */
420
+ repositoryName?: string;
421
+ /** @default the `HelmRelease` namespace */
422
+ repositoryNamespace?: string;
423
+ /** Let Flux create the install namespace. @default false */
424
+ createNamespace?: boolean;
425
+ /** Flux `spec.dependsOn`: releases that must be Ready before this one installs or upgrades. */
426
+ dependsOn?: {
427
+ name: string;
428
+ namespace?: string;
429
+ }[];
430
+ values?: Record<string, unknown>;
431
+ id?: string;
432
+ }
433
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/karpenter/types.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAMvD,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,WAAW,CAAC;CACzD;AAED,oDAAoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,GAAG,kBAAkB,GAAG,WAAW,CAAC;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,sCAAsC;AACtC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAMD,4DAA4D;AAC5D,MAAM,MAAM,uBAAuB,GAC/B,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,GAExD,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB,qFAAqF;AACrF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,uBAAuB,CAAC;IAC7B,QAAQ,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IACnF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CACxD;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,WAAW,GAAG,0BAA0B,GAAG,UAAU,CAAC;IAC5E;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QACR,QAAQ,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;QACrF,IAAI,EAAE;YACJ,YAAY,EAAE,kBAAkB,CAAC;YACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC;YACpC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;YAC1B,2EAA2E;YAC3E,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;YACjC,gFAAgF;YAChF,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,uEAAuE;YACvE,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAMD;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,2CAA2C;AAC3C,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,2DAA2D;AAC3D,MAAM,WAAW,qCAAqC;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,gEAAgE;AAChE,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,2FAA2F;AAC3F,MAAM,WAAW,2BAA2B;IAC1C,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC1C,4EAA4E;IAC5E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,SAAS,CAAC,EACN,KAAK,GACL,QAAQ,GACR,cAAc,GACd,QAAQ,GACR,aAAa,GACb,aAAa,GACb,aAAa,CAAC;IAClB,gBAAgB,EAAE,2BAA2B,EAAE,CAAC;IAChD,mBAAmB,EAAE,8BAA8B,EAAE,CAAC;IACtD,0BAA0B,EAAE,qCAAqC,EAAE,CAAC;IACpE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,mBAAmB,CAAC,EAAE,8BAA8B,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,gCAAgC,CAAC,EAAE,KAAK,CAAC;QACvC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,qBAAqB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;KAC7C,CAAC,CAAC;IACH,0CAA0C;IAC1C,sBAAsB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC;KACzC,CAAC,CAAC;IACH,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;KAAE,CAAC;IAC/D,gDAAgD;IAChD,kBAAkB,CAAC,EAAE;QACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GACjD,CACI;IAAsC,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7E;IAAyC,eAAe,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CACnF,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,qBAAqB,EAAE,MAAM,GAAG,UAAU,CAAC;QAC3C,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;QAC/C,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;QAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAMD,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACvC,cAAc,CAAC,EAAE;QACf,gCAAgC;QAChC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,+FAA+F;QAC/F,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,CAAC;IACF,mBAAmB,CAAC,EAAE;QACpB,iBAAiB;QACjB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,6DAA6D;IAC7D,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACtD,6CAA6C;IAC7C,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,6BAA6B,CAAC;CAC3C;AAED,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,2DAA2D;AAC3D,eAAO,MAAM,8BAA8B,EAAE,IAAI,CAAC,wBAAwB,CA0BxE,CAAC;AAEH,2DAA2D;AAC3D,eAAO,MAAM,8BAA8B,EAAE,IAAI,CAAC,wBAAwB,CAKxE,CAAC;AAEH,qDAAqD;AACrD,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,eAAO,MAAM,0CAA0C,EAAE,IAAI,CAAC,oCAAoC,CACZ,CAAC;AAEvF,iDAAiD;AACjD,eAAO,MAAM,4CAA4C,EAAE,IAAI,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAEhF,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,8BAA+B,SAAQ,2BAA2B;IACjF,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnD,gGAAgG;IAChG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,wDAAwD;AACxD,MAAM,WAAW,6BAA6B;IAC5C,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,+DAA+D;AAC/D,MAAM,WAAW,0BAA2B,SAAQ,2BAA2B;IAC7E,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+FAA+F;IAC/F,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,59 @@
1
+ // Karpenter type definitions.
2
+ //
3
+ // Config and status shapes are interfaces, which keeps the published
4
+ // declarations small. Only the bootstrap composition's spec and status need
5
+ // runtime ArkType schemas (KRO builds its SimpleSchema from them), and those
6
+ // are annotated with the interfaces they validate.
7
+ //
8
+ // @see https://karpenter.sh/docs/concepts/nodepools/
9
+ // @see https://karpenter.sh/docs/concepts/nodeclasses/
10
+ import { type } from 'arktype';
11
+ const kubernetesDnsLabel = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 63');
12
+ const resourceList = { 'cpu?': 'string', 'memory?': 'string' };
13
+ /**
14
+ * Release name: a DNS label short enough for the `<name>-crd` release to fit
15
+ * Helm's 53-character release-name limit.
16
+ */
17
+ const releaseName = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 49');
18
+ /** ArkType schema for {@link KarpenterBootstrapConfig}. */
19
+ export const KarpenterBootstrapConfigSchema = type({
20
+ name: releaseName,
21
+ 'namespace?': kubernetesDnsLabel,
22
+ 'version?': 'string > 0',
23
+ clusterName: 'string > 0',
24
+ 'clusterEndpoint?': 'string',
25
+ 'interruptionQueue?': 'string',
26
+ 'replicas?': 'number.integer >= 1',
27
+ 'logLevel?': '"debug" | "info" | "error"',
28
+ 'dnsPolicy?': '"ClusterFirst" | "Default"',
29
+ 'serviceAccount?': {
30
+ 'name?': kubernetesDnsLabel,
31
+ 'annotations?': 'Record<string, string>',
32
+ },
33
+ 'podDisruptionBudget?': { 'maxUnavailable?': 'number.integer >= 0' },
34
+ 'nodeSelector?': 'Record<string, string>',
35
+ 'affinity?': 'Record<string, unknown>',
36
+ 'topologySpreadConstraints?': type('Record<string, unknown>').array(),
37
+ 'tolerations?': type({
38
+ 'key?': 'string',
39
+ 'operator?': '"Exists" | "Equal"',
40
+ 'value?': 'string',
41
+ 'effect?': '"NoSchedule" | "PreferNoSchedule" | "NoExecute"',
42
+ 'tolerationSeconds?': 'number.integer',
43
+ }).array(),
44
+ 'resources?': { 'requests?': resourceList, 'limits?': resourceList },
45
+ });
46
+ /** ArkType schema for {@link KarpenterBootstrapStatus}. */
47
+ export const KarpenterBootstrapStatusSchema = type({
48
+ ready: 'boolean',
49
+ failed: 'boolean',
50
+ phase: '"Ready" | "Installing" | "Failed"',
51
+ version: 'string',
52
+ });
53
+ /** ArkType schema for {@link KarpenterHelmRepositorySingletonSpec}. */
54
+ export const KarpenterHelmRepositorySingletonSpecSchema = type({ name: kubernetesDnsLabel, namespace: kubernetesDnsLabel, url: 'string > 0' });
55
+ /** ArkType schema for the singleton's status. */
56
+ export const KarpenterHelmRepositorySingletonStatusSchema = type({
57
+ ready: 'boolean',
58
+ });
59
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/karpenter/types.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,qEAAqE;AACrE,4EAA4E;AAC5E,6EAA6E;AAC7E,mDAAmD;AACnD,EAAE;AACF,qDAAqD;AACrD,uDAAuD;AAEvD,OAAO,EAAa,IAAI,EAAE,MAAM,SAAS,CAAC;AAoX1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACzF,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAW,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,GAAG,IAAI,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAElF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAAmC,IAAI,CAAC;IACjF,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,YAAY;IACzB,kBAAkB,EAAE,QAAQ;IAC5B,oBAAoB,EAAE,QAAQ;IAC9B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,4BAA4B;IACzC,YAAY,EAAE,4BAA4B;IAC1C,iBAAiB,EAAE;QACjB,OAAO,EAAE,kBAAkB;QAC3B,cAAc,EAAE,wBAAwB;KACzC;IACD,sBAAsB,EAAE,EAAE,iBAAiB,EAAE,qBAAqB,EAAE;IACpE,eAAe,EAAE,wBAAwB;IACzC,WAAW,EAAE,yBAAyB;IACtC,4BAA4B,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE;IACrE,cAAc,EAAE,IAAI,CAAC;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,oBAAoB;QACjC,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,iDAAiD;QAC5D,oBAAoB,EAAE,gBAAgB;KACvC,CAAC,CAAC,KAAK,EAAE;IACV,YAAY,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE;CACrE,CAAC,CAAC;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAAmC,IAAI,CAAC;IACjF,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,mCAAmC;IAC1C,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AASH,uEAAuE;AACvE,MAAM,CAAC,MAAM,0CAA0C,GACrD,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAEvF,iDAAiD;AACjD,MAAM,CAAC,MAAM,4CAA4C,GAA6B,IAAI,CAAC;IACzF,KAAK,EAAE,SAAS;CACjB,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { KarpenterBootstrapConfig } from '../types.js';
2
+ /**
3
+ * Map the bootstrap spec onto `karpenter` chart values.
4
+ *
5
+ * Map values (`nodeSelector`, `affinity`, service account annotations) are
6
+ * merged by Helm with the chart defaults; lists (`tolerations`,
7
+ * `topologySpreadConstraints`) replace them, so their fallbacks restate the
8
+ * chart defaults.
9
+ *
10
+ * @param config - The bootstrap spec. Any field may be a schema reference.
11
+ * @param rawValues - Concrete chart values deep-merged over the result.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * mapKarpenterConfigToHelmValues({
16
+ * name: 'karpenter',
17
+ * clusterName: 'my-cluster',
18
+ * interruptionQueue: 'my-cluster',
19
+ * serviceAccount: { annotations: { 'eks.amazonaws.com/role-arn': 'arn:aws:iam::111122223333:role/KarpenterController' } },
20
+ * });
21
+ * ```
22
+ */
23
+ export declare function mapKarpenterConfigToHelmValues(config: KarpenterBootstrapConfig, rawValues?: Record<string, unknown>): Record<string, unknown>;
24
+ //# sourceMappingURL=helm-values-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AA4B5D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,wBAAwB,EAChC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCzB"}