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,67 @@
1
+ /** API group/version of `NodePool` (and `NodeClaim`). */
2
+ export declare const KARPENTER_API_VERSION = "karpenter.sh/v1";
3
+ /** API group/version of the AWS provider's `EC2NodeClass`. */
4
+ export declare const KARPENTER_AWS_API_VERSION = "karpenter.k8s.aws/v1";
5
+ /** API group of `EC2NodeClass`, as a `nodeClassRef.group`. */
6
+ export declare const KARPENTER_AWS_GROUP = "karpenter.k8s.aws";
7
+ /** Pinned chart version, used for both `karpenter-crd` and `karpenter`. */
8
+ export declare const DEFAULT_KARPENTER_CHART_VERSION = "1.14.1";
9
+ /** Controller chart name inside the OCI registry. */
10
+ export declare const KARPENTER_CHART_NAME = "karpenter";
11
+ /** CRD chart name inside the OCI registry. */
12
+ export declare const KARPENTER_CRD_CHART_NAME = "karpenter-crd";
13
+ /** Official OCI registry holding both charts. */
14
+ export declare const DEFAULT_KARPENTER_REPOSITORY_URL = "oci://public.ecr.aws/karpenter";
15
+ /** `HelmRepository` name owned by the shared singleton composition. */
16
+ export declare const DEFAULT_KARPENTER_REPOSITORY_NAME = "karpenter-repo";
17
+ /** Install namespace, as in the upstream getting-started guide. */
18
+ export declare const DEFAULT_KARPENTER_NAMESPACE = "kube-system";
19
+ /**
20
+ * Well-known label keys usable in `NodePool` requirements. (`karpenter.sh/nodepool`
21
+ * is set on every node but is not allowed as a requirement.)
22
+ *
23
+ * @see https://karpenter.sh/docs/concepts/scheduling/#well-known-labels
24
+ */
25
+ export declare const KARPENTER_LABELS: {
26
+ readonly capacityType: "karpenter.sh/capacity-type";
27
+ readonly instanceType: "node.kubernetes.io/instance-type";
28
+ readonly instanceCategory: "karpenter.k8s.aws/instance-category";
29
+ readonly instanceFamily: "karpenter.k8s.aws/instance-family";
30
+ readonly instanceGeneration: "karpenter.k8s.aws/instance-generation";
31
+ readonly instanceSize: "karpenter.k8s.aws/instance-size";
32
+ readonly instanceCpu: "karpenter.k8s.aws/instance-cpu";
33
+ readonly instanceMemory: "karpenter.k8s.aws/instance-memory";
34
+ readonly zone: "topology.kubernetes.io/zone";
35
+ readonly arch: "kubernetes.io/arch";
36
+ readonly os: "kubernetes.io/os";
37
+ };
38
+ /** Subnet and security-group tag Karpenter's getting-started guide discovers by. */
39
+ export declare const KARPENTER_DISCOVERY_TAG = "karpenter.sh/discovery";
40
+ /**
41
+ * Chart default tolerations, restated because a Helm list value replaces the
42
+ * chart's list rather than merging with it.
43
+ */
44
+ export declare const KARPENTER_DEFAULT_TOLERATIONS: readonly [{
45
+ readonly key: "CriticalAddonsOnly";
46
+ readonly operator: "Exists";
47
+ }];
48
+ /** Chart default topology spread: one controller replica per zone. */
49
+ export declare const KARPENTER_DEFAULT_TOPOLOGY_SPREAD_CONSTRAINTS: readonly [{
50
+ readonly maxSkew: 1;
51
+ readonly topologyKey: "topology.kubernetes.io/zone";
52
+ readonly whenUnsatisfiable: "DoNotSchedule";
53
+ }];
54
+ /**
55
+ * Default controller resources. A BestEffort controller is first to be starved
56
+ * and cannot reschedule onto the nodes it launches. Pass `resources: {}` to opt out.
57
+ */
58
+ export declare const KARPENTER_DEFAULT_RESOURCES: {
59
+ readonly requests: {
60
+ readonly cpu: "1";
61
+ readonly memory: "1Gi";
62
+ };
63
+ readonly limits: {
64
+ readonly memory: "1Gi";
65
+ };
66
+ };
67
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/karpenter/constants.ts"],"names":[],"mappings":"AAOA,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,8DAA8D;AAC9D,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAChE,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,WAAW,CAAC;AACxD,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AACxD,iDAAiD;AACjD,eAAO,MAAM,gCAAgC,mCAAmC,CAAC;AACjF,uEAAuE;AACvE,eAAO,MAAM,iCAAiC,mBAAmB,CAAC;AAClE,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAYnB,CAAC;AAEX,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,6BAA6B;;;EAEhC,CAAC;AAEX,sEAAsE;AACtE,eAAO,MAAM,6CAA6C;;;;EAEhD,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;CAG9B,CAAC"}
@@ -0,0 +1,65 @@
1
+ // Karpenter factory constants.
2
+ //
3
+ // Verified against the official charts `karpenter` and `karpenter-crd` 1.14.1
4
+ // (appVersion `1.14.1`) published at `oci://public.ecr.aws/karpenter`.
5
+ //
6
+ // @see https://karpenter.sh/docs/upgrading/upgrade-guide/#crd-upgrades
7
+ /** API group/version of `NodePool` (and `NodeClaim`). */
8
+ export const KARPENTER_API_VERSION = 'karpenter.sh/v1';
9
+ /** API group/version of the AWS provider's `EC2NodeClass`. */
10
+ export const KARPENTER_AWS_API_VERSION = 'karpenter.k8s.aws/v1';
11
+ /** API group of `EC2NodeClass`, as a `nodeClassRef.group`. */
12
+ export const KARPENTER_AWS_GROUP = 'karpenter.k8s.aws';
13
+ /** Pinned chart version, used for both `karpenter-crd` and `karpenter`. */
14
+ export const DEFAULT_KARPENTER_CHART_VERSION = '1.14.1';
15
+ /** Controller chart name inside the OCI registry. */
16
+ export const KARPENTER_CHART_NAME = 'karpenter';
17
+ /** CRD chart name inside the OCI registry. */
18
+ export const KARPENTER_CRD_CHART_NAME = 'karpenter-crd';
19
+ /** Official OCI registry holding both charts. */
20
+ export const DEFAULT_KARPENTER_REPOSITORY_URL = 'oci://public.ecr.aws/karpenter';
21
+ /** `HelmRepository` name owned by the shared singleton composition. */
22
+ export const DEFAULT_KARPENTER_REPOSITORY_NAME = 'karpenter-repo';
23
+ /** Install namespace, as in the upstream getting-started guide. */
24
+ export const DEFAULT_KARPENTER_NAMESPACE = 'kube-system';
25
+ /**
26
+ * Well-known label keys usable in `NodePool` requirements. (`karpenter.sh/nodepool`
27
+ * is set on every node but is not allowed as a requirement.)
28
+ *
29
+ * @see https://karpenter.sh/docs/concepts/scheduling/#well-known-labels
30
+ */
31
+ export const KARPENTER_LABELS = {
32
+ capacityType: 'karpenter.sh/capacity-type',
33
+ instanceType: 'node.kubernetes.io/instance-type',
34
+ instanceCategory: 'karpenter.k8s.aws/instance-category',
35
+ instanceFamily: 'karpenter.k8s.aws/instance-family',
36
+ instanceGeneration: 'karpenter.k8s.aws/instance-generation',
37
+ instanceSize: 'karpenter.k8s.aws/instance-size',
38
+ instanceCpu: 'karpenter.k8s.aws/instance-cpu',
39
+ instanceMemory: 'karpenter.k8s.aws/instance-memory',
40
+ zone: 'topology.kubernetes.io/zone',
41
+ arch: 'kubernetes.io/arch',
42
+ os: 'kubernetes.io/os',
43
+ };
44
+ /** Subnet and security-group tag Karpenter's getting-started guide discovers by. */
45
+ export const KARPENTER_DISCOVERY_TAG = 'karpenter.sh/discovery';
46
+ /**
47
+ * Chart default tolerations, restated because a Helm list value replaces the
48
+ * chart's list rather than merging with it.
49
+ */
50
+ export const KARPENTER_DEFAULT_TOLERATIONS = [
51
+ { key: 'CriticalAddonsOnly', operator: 'Exists' },
52
+ ];
53
+ /** Chart default topology spread: one controller replica per zone. */
54
+ export const KARPENTER_DEFAULT_TOPOLOGY_SPREAD_CONSTRAINTS = [
55
+ { maxSkew: 1, topologyKey: 'topology.kubernetes.io/zone', whenUnsatisfiable: 'DoNotSchedule' },
56
+ ];
57
+ /**
58
+ * Default controller resources. A BestEffort controller is first to be starved
59
+ * and cannot reschedule onto the nodes it launches. Pass `resources: {}` to opt out.
60
+ */
61
+ export const KARPENTER_DEFAULT_RESOURCES = {
62
+ requests: { cpu: '1', memory: '1Gi' },
63
+ limits: { memory: '1Gi' },
64
+ };
65
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/karpenter/constants.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,EAAE;AACF,uEAAuE;AAEvE,yDAAyD;AACzD,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;AACvD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAChE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,QAAQ,CAAC;AACxD,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;AAChD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACxD,iDAAiD;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,gCAAgC,CAAC;AACjF,uEAAuE;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,gBAAgB,CAAC;AAClE,mEAAmE;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,4BAA4B;IAC1C,YAAY,EAAE,kCAAkC;IAChD,gBAAgB,EAAE,qCAAqC;IACvD,cAAc,EAAE,mCAAmC;IACnD,kBAAkB,EAAE,uCAAuC;IAC3D,YAAY,EAAE,iCAAiC;IAC/C,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE,mCAAmC;IACnD,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,kBAAkB;CACd,CAAC;AAEX,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAE;CACzC,CAAC;AAEX,sEAAsE;AACtE,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,iBAAiB,EAAE,eAAe,EAAE;CACtF,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;IACrC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;CACjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Karpenter for EKS: a Flux bootstrap for the controller plus typed
3
+ * `NodePool` (`karpenter.sh/v1`) and `EC2NodeClass` (`karpenter.k8s.aws/v1`)
4
+ * factories. TypeKro creates no AWS resources.
5
+ *
6
+ * @see docs/api/karpenter/index.md
7
+ * @see https://karpenter.sh/docs/
8
+ */
9
+ export * from './compositions/index.js';
10
+ export * from './constants.js';
11
+ export * from './resources/index.js';
12
+ export * from './types.js';
13
+ export * from './utils/index.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/karpenter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Karpenter for EKS: a Flux bootstrap for the controller plus typed
3
+ * `NodePool` (`karpenter.sh/v1`) and `EC2NodeClass` (`karpenter.k8s.aws/v1`)
4
+ * factories. TypeKro creates no AWS resources.
5
+ *
6
+ * @see docs/api/karpenter/index.md
7
+ * @see https://karpenter.sh/docs/
8
+ */
9
+ export * from './compositions/index.js';
10
+ export * from './constants.js';
11
+ export * from './resources/index.js';
12
+ export * from './types.js';
13
+ export * from './utils/index.js';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/karpenter/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
2
+ import type { EC2NodeClassConfig, EC2NodeClassSpec, EC2NodeClassStatus } from '../types.js';
3
+ /** `EC2NodeClass` readiness: `Ready=True` (AMIs, subnets, security groups and profile resolved). */
4
+ export declare const ec2NodeClassReadinessEvaluator: ReadinessEvaluator<unknown>;
5
+ /**
6
+ * Create a Karpenter `EC2NodeClass`.
7
+ *
8
+ * IMDS options are left to the CRD default (IMDSv2 required, hop limit 1).
9
+ * Throws on the errors {@link validateEC2NodeClassSpec} reports.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * ec2NodeClass({
14
+ * name: 'default',
15
+ * spec: {
16
+ * role: 'KarpenterNodeRole-my-cluster',
17
+ * amiSelectorTerms: [{ alias: 'al2023@latest' }],
18
+ * subnetSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
19
+ * securityGroupSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
20
+ * },
21
+ * id: 'defaultNodeClass',
22
+ * });
23
+ * ```
24
+ */
25
+ export declare function ec2NodeClass(config: Composable<EC2NodeClassConfig>): Enhanced<EC2NodeClassSpec, EC2NodeClassStatus>;
26
+ //# sourceMappingURL=ec2-node-class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ec2-node-class.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/ec2-node-class.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAG7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAQ5F,oGAAoG;AACpG,eAAO,MAAM,8BAA8B,EAAE,kBAAkB,CAAC,OAAO,CAKpE,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,GACrC,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAqBhD"}
@@ -0,0 +1,48 @@
1
+ // Karpenter `EC2NodeClass` factory (`karpenter.k8s.aws/v1`, cluster-scoped).
2
+ import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
3
+ import { createResource } from '../../shared.js';
4
+ import { KARPENTER_AWS_API_VERSION } from '../constants.js';
5
+ import { assertNoKarpenterErrors, validateEC2NodeClassSpec, warnKarpenterIssues, } from '../utils/validation.js';
6
+ import { evaluateKarpenterReadiness } from './readiness.js';
7
+ /** `EC2NodeClass` readiness: `Ready=True` (AMIs, subnets, security groups and profile resolved). */
8
+ export const ec2NodeClassReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.karpenter.ec2-node-class', '1', (resource) => evaluateKarpenterReadiness('EC2NodeClass', resource));
9
+ /**
10
+ * Create a Karpenter `EC2NodeClass`.
11
+ *
12
+ * IMDS options are left to the CRD default (IMDSv2 required, hop limit 1).
13
+ * Throws on the errors {@link validateEC2NodeClassSpec} reports.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * ec2NodeClass({
18
+ * name: 'default',
19
+ * spec: {
20
+ * role: 'KarpenterNodeRole-my-cluster',
21
+ * amiSelectorTerms: [{ alias: 'al2023@latest' }],
22
+ * subnetSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
23
+ * securityGroupSelectorTerms: [{ tags: { 'karpenter.sh/discovery': 'my-cluster' } }],
24
+ * },
25
+ * id: 'defaultNodeClass',
26
+ * });
27
+ * ```
28
+ */
29
+ export function ec2NodeClass(config) {
30
+ const spec = config.spec;
31
+ const issues = validateEC2NodeClassSpec(spec, config.name);
32
+ assertNoKarpenterErrors('EC2NodeClass', config.name, issues);
33
+ warnKarpenterIssues('ec2NodeClass', issues);
34
+ return createResource({
35
+ apiVersion: KARPENTER_AWS_API_VERSION,
36
+ kind: 'EC2NodeClass',
37
+ metadata: {
38
+ name: config.name,
39
+ ...(config.labels ? { labels: config.labels } : {}),
40
+ ...(config.annotations
41
+ ? { annotations: config.annotations }
42
+ : {}),
43
+ },
44
+ spec,
45
+ ...(config.id ? { id: config.id } : {}),
46
+ }, { scope: 'cluster' }).withReadinessEvaluator(ec2NodeClassReadinessEvaluator);
47
+ }
48
+ //# sourceMappingURL=ec2-node-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ec2-node-class.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/ec2-node-class.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,oGAAoG;AACpG,MAAM,CAAC,MAAM,8BAA8B,GACzC,kCAAkC,CAChC,4CAA4C,EAC5C,GAAG,EACH,CAAC,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,cAAc,EAAE,QAAQ,CAAC,CACnE,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAsC;IAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;IAC7C,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;IACrE,uBAAuB,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5C,OAAO,cAAc,CACnB;QACE,UAAU,EAAE,yBAAyB;QACrC,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAqC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR;QACD,IAAI;QACJ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,sBAAsB,CAAC,8BAA8B,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
2
+ import { type HelmRepositorySpec, type HelmRepositoryStatus } from '../../helm/helm-repository.js';
3
+ import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
4
+ import type { KarpenterHelmReleaseConfig, KarpenterHelmRepositoryConfig } from '../types.js';
5
+ /** Karpenter `HelmRelease` readiness (the shared Flux evaluator). */
6
+ export declare const karpenterHelmReleaseReadinessEvaluator: ReadinessEvaluator<unknown>;
7
+ /**
8
+ * Create the Flux `HelmRepository` for the official Karpenter OCI registry.
9
+ *
10
+ * OCI repositories publish no `Ready` condition; readiness falls back to Flux
11
+ * having accepted the object.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * karpenterHelmRepository({ id: 'karpenterRepository' });
16
+ * ```
17
+ */
18
+ export declare function karpenterHelmRepository(config?: Composable<KarpenterHelmRepositoryConfig>): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
19
+ /**
20
+ * Create the `HelmRelease` for the `karpenter-crd` chart.
21
+ *
22
+ * That chart ships the CRDs as templates, so Helm upgrades them with the
23
+ * release. Upstream recommends it over the controller chart's `crds/`
24
+ * directory, which Helm never upgrades.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * karpenterCrdHelmRelease({ name: 'karpenter-crd', id: 'karpenterCrdRelease' });
29
+ * ```
30
+ */
31
+ export declare function karpenterCrdHelmRelease(config: Composable<KarpenterHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
32
+ /**
33
+ * Create the `HelmRelease` for the Karpenter controller chart.
34
+ *
35
+ * The chart's `crds/` directory is skipped on install and upgrade: install the
36
+ * CRDs with {@link karpenterCrdHelmRelease} or manage them elsewhere.
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * karpenterHelmRelease({
41
+ * name: 'karpenter',
42
+ * values: { settings: { clusterName: 'my-cluster' } },
43
+ * id: 'karpenterRelease',
44
+ * });
45
+ * ```
46
+ */
47
+ export declare function karpenterHelmRelease(config: Composable<KarpenterHelmReleaseConfig>): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
48
+ //# sourceMappingURL=helm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/helm.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,KAAK,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAE7F,qEAAqE;AACrE,eAAO,MAAM,sCAAsC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,GAAE,UAAU,CAAC,6BAA6B,CAAM,GACrD,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAepD;AAqDD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAE9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,CAAC,0BAA0B,CAAC,GAC7C,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAE9C"}
@@ -0,0 +1,117 @@
1
+ // Karpenter Helm resources: the shared OCI `HelmRepository` and the two
2
+ // `HelmRelease`s, `karpenter-crd` and `karpenter`.
3
+ import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
4
+ import { createHelmRepositoryReadinessEvaluator, } from '../../helm/helm-repository.js';
5
+ import { helmReleaseLifecycle } from '../../helm/lifecycle.js';
6
+ import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
7
+ import { createResource } from '../../shared.js';
8
+ import { DEFAULT_KARPENTER_CHART_VERSION, DEFAULT_KARPENTER_NAMESPACE, DEFAULT_KARPENTER_REPOSITORY_NAME, DEFAULT_KARPENTER_REPOSITORY_URL, KARPENTER_CHART_NAME, KARPENTER_CRD_CHART_NAME, } from '../constants.js';
9
+ /** Karpenter `HelmRelease` readiness (the shared Flux evaluator). */
10
+ export const karpenterHelmReleaseReadinessEvaluator = createLabeledHelmReleaseEvaluator('Karpenter');
11
+ /**
12
+ * Create the Flux `HelmRepository` for the official Karpenter OCI registry.
13
+ *
14
+ * OCI repositories publish no `Ready` condition; readiness falls back to Flux
15
+ * having accepted the object.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * karpenterHelmRepository({ id: 'karpenterRepository' });
20
+ * ```
21
+ */
22
+ export function karpenterHelmRepository(config = {}) {
23
+ return createResource({
24
+ ...(config.id ? { id: config.id } : {}),
25
+ apiVersion: 'source.toolkit.fluxcd.io/v1',
26
+ kind: 'HelmRepository',
27
+ metadata: {
28
+ name: config.name ?? DEFAULT_KARPENTER_REPOSITORY_NAME,
29
+ namespace: config.namespace ?? DEFAULT_FLUX_NAMESPACE,
30
+ },
31
+ spec: {
32
+ type: 'oci',
33
+ url: config.url ?? DEFAULT_KARPENTER_REPOSITORY_URL,
34
+ interval: config.interval ?? '1h',
35
+ },
36
+ }).withReadinessEvaluator(createHelmRepositoryReadinessEvaluator('Karpenter'));
37
+ }
38
+ function karpenterRelease(chart, crds, config) {
39
+ const namespace = config.namespace ?? DEFAULT_FLUX_NAMESPACE;
40
+ return createResource({
41
+ ...(config.id ? { id: config.id } : {}),
42
+ apiVersion: 'helm.toolkit.fluxcd.io/v2',
43
+ kind: 'HelmRelease',
44
+ metadata: { name: config.name, namespace },
45
+ spec: {
46
+ interval: '10m',
47
+ timeout: '10m',
48
+ chart: {
49
+ spec: {
50
+ chart,
51
+ version: config.version ?? DEFAULT_KARPENTER_CHART_VERSION,
52
+ sourceRef: {
53
+ kind: 'HelmRepository',
54
+ name: config.repositoryName ?? DEFAULT_KARPENTER_REPOSITORY_NAME,
55
+ namespace: config.repositoryNamespace ?? namespace,
56
+ },
57
+ },
58
+ },
59
+ targetNamespace: config.targetNamespace ?? DEFAULT_KARPENTER_NAMESPACE,
60
+ // Pinned so Flux does not compose `<targetNamespace>-<name>`.
61
+ releaseName: config.name,
62
+ // Karpenter's own policy, through the shared lifecycle helper: caller
63
+ // `install`, `upgrade` and `driftDetection` override it field by field.
64
+ // Install and upgrade take their timeout from `spec.timeout`.
65
+ ...helmReleaseLifecycle(config, {
66
+ install: {
67
+ createNamespace: config.createNamespace ?? false,
68
+ ...(crds ? { crds } : {}),
69
+ remediation: { retries: 3 },
70
+ },
71
+ upgrade: {
72
+ ...(crds ? { crds } : {}),
73
+ remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
74
+ },
75
+ driftDetection: { mode: 'enabled' },
76
+ }),
77
+ ...(config.dependsOn
78
+ ? { dependsOn: config.dependsOn }
79
+ : {}),
80
+ ...(config.values ? { values: config.values } : {}),
81
+ },
82
+ }).withReadinessEvaluator(karpenterHelmReleaseReadinessEvaluator);
83
+ }
84
+ /**
85
+ * Create the `HelmRelease` for the `karpenter-crd` chart.
86
+ *
87
+ * That chart ships the CRDs as templates, so Helm upgrades them with the
88
+ * release. Upstream recommends it over the controller chart's `crds/`
89
+ * directory, which Helm never upgrades.
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * karpenterCrdHelmRelease({ name: 'karpenter-crd', id: 'karpenterCrdRelease' });
94
+ * ```
95
+ */
96
+ export function karpenterCrdHelmRelease(config) {
97
+ return karpenterRelease(KARPENTER_CRD_CHART_NAME, undefined, config);
98
+ }
99
+ /**
100
+ * Create the `HelmRelease` for the Karpenter controller chart.
101
+ *
102
+ * The chart's `crds/` directory is skipped on install and upgrade: install the
103
+ * CRDs with {@link karpenterCrdHelmRelease} or manage them elsewhere.
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * karpenterHelmRelease({
108
+ * name: 'karpenter',
109
+ * values: { settings: { clusterName: 'my-cluster' } },
110
+ * id: 'karpenterRelease',
111
+ * });
112
+ * ```
113
+ */
114
+ export function karpenterHelmRelease(config) {
115
+ return karpenterRelease(KARPENTER_CHART_NAME, 'Skip', config);
116
+ }
117
+ //# sourceMappingURL=helm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/helm.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,mDAAmD;AAEnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,sCAAsC,GAGvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iCAAiC,EAAE,MAAM,oCAAoC,CAAC;AAMvF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,iCAAiC,EACjC,gCAAgC,EAChC,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAGzB,qEAAqE;AACrE,MAAM,CAAC,MAAM,sCAAsC,GACjD,iCAAiC,CAAC,WAAW,CAAC,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAoD,EAAE;IAEtD,OAAO,cAAc,CAA2C;QAC9D,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,6BAA6B;QACzC,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,iCAAiC;YACtD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;SACtD;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,gCAAgC;YACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;SAClC;KACF,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,WAAW,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,gBAAgB,CACvB,KAAa,EACb,IAAuC,EACvC,MAA8C;IAE9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC7D,OAAO,cAAc,CAAqC;QACxD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,2BAA2B;QACvC,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE;QAC1C,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE;oBACJ,KAAK;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,+BAA+B;oBAC1D,SAAS,EAAE;wBACT,IAAI,EAAE,gBAAyB;wBAC/B,IAAI,EAAE,MAAM,CAAC,cAAc,IAAI,iCAAiC;wBAChE,SAAS,EAAE,MAAM,CAAC,mBAAmB,IAAI,SAAS;qBACnD;iBACF;aACF;YACD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,2BAA2B;YACtE,8DAA8D;YAC9D,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,sEAAsE;YACtE,wEAAwE;YACxE,8DAA8D;YAC9D,GAAG,oBAAoB,CAAC,MAAM,EAAE;gBAC9B,OAAO,EAAE;oBACP,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,KAAK;oBAChD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;iBAC5B;gBACD,OAAO,EAAE;oBACP,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;iBAC9E;gBACD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACpC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAmD,EAAE;gBAC3E,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/E;KACF,CAAC,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA8C;IAE9C,OAAO,gBAAgB,CAAC,wBAAwB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA8C;IAE9C,OAAO,gBAAgB,CAAC,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './ec2-node-class.js';
2
+ export * from './helm.js';
3
+ export * from './node-pool.js';
4
+ export { karpenterReady } from './readiness.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './ec2-node-class.js';
2
+ export * from './helm.js';
3
+ export * from './node-pool.js';
4
+ export { karpenterReady } from './readiness.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { Composable, Enhanced, ReadinessEvaluator } from '../../../core/types/index.js';
2
+ import type { NodePoolConfig, NodePoolSpec, NodePoolStatus } from '../types.js';
3
+ /** `NodePool` readiness: `Ready=True` for the current generation. */
4
+ export declare const nodePoolReadinessEvaluator: ReadinessEvaluator<unknown>;
5
+ /**
6
+ * Create a Karpenter `NodePool`.
7
+ *
8
+ * `nodeClassRef.group` and `nodeClassRef.kind` default to the AWS
9
+ * `EC2NodeClass`. Throws on the errors {@link validateNodePoolSpec} reports.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * nodePool({
14
+ * name: 'general',
15
+ * spec: {
16
+ * template: {
17
+ * spec: {
18
+ * nodeClassRef: { name: 'default' },
19
+ * requirements: [
20
+ * { key: 'karpenter.sh/capacity-type', operator: 'In', values: ['on-demand'] },
21
+ * { key: 'karpenter.k8s.aws/instance-category', operator: 'In', values: ['c', 'm', 'r'] },
22
+ * ],
23
+ * },
24
+ * },
25
+ * limits: { cpu: '200', memory: '800Gi' },
26
+ * },
27
+ * id: 'generalPool',
28
+ * });
29
+ * ```
30
+ */
31
+ export declare function nodePool(config: Composable<NodePoolConfig>): Enhanced<NodePoolSpec, NodePoolStatus>;
32
+ //# sourceMappingURL=node-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-pool.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/node-pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAI7F,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQhF,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,OAAO,CAGhE,CAAC;AA8BJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,GACjC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAqBxC"}
@@ -0,0 +1,80 @@
1
+ // Karpenter `NodePool` factory (`karpenter.sh/v1`, cluster-scoped).
2
+ import { registerPortableReadinessEvaluator } from '../../../core/readiness/index.js';
3
+ import { isKubernetesRef } from '../../../utils/type-guards.js';
4
+ import { createResource } from '../../shared.js';
5
+ import { KARPENTER_API_VERSION, KARPENTER_AWS_GROUP } from '../constants.js';
6
+ import { assertNoKarpenterErrors, validateNodePoolSpec, warnKarpenterIssues, } from '../utils/validation.js';
7
+ import { evaluateKarpenterReadiness } from './readiness.js';
8
+ /** `NodePool` readiness: `Ready=True` for the current generation. */
9
+ export const nodePoolReadinessEvaluator = registerPortableReadinessEvaluator('typekro.readiness.karpenter.node-pool', '1', (resource) => evaluateKarpenterReadiness('NodePool', resource));
10
+ // A spec (or nodeClassRef) passed whole as a schema reference cannot be
11
+ // spread; it goes through unchanged and must carry group/kind itself.
12
+ function withNodeClassDefaults(spec) {
13
+ const ref = isKubernetesRef(spec) ? undefined : spec.template?.spec?.nodeClassRef;
14
+ if (!ref ||
15
+ isKubernetesRef(spec.template) ||
16
+ isKubernetesRef(spec.template.spec) ||
17
+ isKubernetesRef(ref)) {
18
+ return spec;
19
+ }
20
+ return {
21
+ ...spec,
22
+ template: {
23
+ ...spec.template,
24
+ spec: {
25
+ ...spec.template.spec,
26
+ nodeClassRef: {
27
+ group: ref.group ?? KARPENTER_AWS_GROUP,
28
+ kind: ref.kind ?? 'EC2NodeClass',
29
+ name: ref.name,
30
+ },
31
+ },
32
+ },
33
+ };
34
+ }
35
+ /**
36
+ * Create a Karpenter `NodePool`.
37
+ *
38
+ * `nodeClassRef.group` and `nodeClassRef.kind` default to the AWS
39
+ * `EC2NodeClass`. Throws on the errors {@link validateNodePoolSpec} reports.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * nodePool({
44
+ * name: 'general',
45
+ * spec: {
46
+ * template: {
47
+ * spec: {
48
+ * nodeClassRef: { name: 'default' },
49
+ * requirements: [
50
+ * { key: 'karpenter.sh/capacity-type', operator: 'In', values: ['on-demand'] },
51
+ * { key: 'karpenter.k8s.aws/instance-category', operator: 'In', values: ['c', 'm', 'r'] },
52
+ * ],
53
+ * },
54
+ * },
55
+ * limits: { cpu: '200', memory: '800Gi' },
56
+ * },
57
+ * id: 'generalPool',
58
+ * });
59
+ * ```
60
+ */
61
+ export function nodePool(config) {
62
+ const spec = config.spec;
63
+ const issues = validateNodePoolSpec(spec, config.name);
64
+ assertNoKarpenterErrors('NodePool', config.name, issues);
65
+ warnKarpenterIssues('nodePool', issues);
66
+ return createResource({
67
+ apiVersion: KARPENTER_API_VERSION,
68
+ kind: 'NodePool',
69
+ metadata: {
70
+ name: config.name,
71
+ ...(config.labels ? { labels: config.labels } : {}),
72
+ ...(config.annotations
73
+ ? { annotations: config.annotations }
74
+ : {}),
75
+ },
76
+ spec: withNodeClassDefaults(spec),
77
+ ...(config.id ? { id: config.id } : {}),
78
+ }, { scope: 'cluster' }).withReadinessEvaluator(nodePoolReadinessEvaluator);
79
+ }
80
+ //# sourceMappingURL=node-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-pool.js","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/node-pool.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAE5D,qEAAqE;AACrE,MAAM,CAAC,MAAM,0BAA0B,GACrC,kCAAkC,CAAC,uCAAuC,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC5F,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CACjD,CAAC;AAEJ,wEAAwE;AACxE,sEAAsE;AACtE,SAAS,qBAAqB,CAAC,IAAkB;IAC/C,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,YAAY,CAAC;IAClF,IACE,CAAC,GAAG;QACJ,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9B,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,eAAe,CAAC,GAAG,CAAC,EACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,GAAG,IAAI;QACP,QAAQ,EAAE;YACR,GAAG,IAAI,CAAC,QAAQ;YAChB,IAAI,EAAE;gBACJ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACrB,YAAY,EAAE;oBACZ,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,mBAAmB;oBACvC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,cAAc;oBAChC,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAkC;IAElC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAoB,CAAC;IACzC,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAc,CAAC,CAAC;IACjE,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,cAAc,CACnB;QACE,UAAU,EAAE,qBAAqB;QACjC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAgC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAqC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR;QACD,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Enhanced, ResourceStatus } from '../../../core/types/index.js';
2
+ import type { KarpenterCondition } from '../types.js';
3
+ /** Evaluate the `Ready` condition of a Karpenter resource of the given kind. */
4
+ export declare function evaluateKarpenterReadiness(kind: string, liveResource: unknown): ResourceStatus;
5
+ type KarpenterResource = Enhanced<object, {
6
+ conditions?: KarpenterCondition[];
7
+ }>;
8
+ /**
9
+ * A status expression that is `true` once every given `NodePool` or
10
+ * `EC2NodeClass` has `Ready=True` for its current generation. Pass several
11
+ * resources rather than joining calls with `&&`, which JavaScript evaluates
12
+ * before TypeKro sees it.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * return { ready: karpenterReady(nodeClass, pool), nodes: pool.status.nodes };
17
+ * ```
18
+ */
19
+ export declare function karpenterReady(...resources: [KarpenterResource, ...KarpenterResource[]]): boolean;
20
+ export {};
21
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../../../src/factories/karpenter/resources/readiness.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAc,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOtD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,CAkC9F;AAED,KAAK,iBAAiB,GAAG,QAAQ,CAAC,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAAC,CAAC;AAEjF;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,GAAG,SAAS,EAAE,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAejG"}