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,96 @@
1
+ // Vertical Pod Autoscaler 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://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md
9
+ import { type } from 'arktype';
10
+ const kubernetesDnsLabel = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 63');
11
+ // Helm release names are limited to 53 characters.
12
+ const releaseName = type(/^[a-z0-9](?:[-a-z0-9]*[a-z0-9])?$/).and('string <= 53');
13
+ const resourceList = { 'cpu?': 'string', 'memory?': 'string' };
14
+ const toleration = type({
15
+ 'key?': 'string',
16
+ 'operator?': '"Exists" | "Equal"',
17
+ 'value?': 'string',
18
+ 'effect?': '"NoSchedule" | "PreferNoSchedule" | "NoExecute"',
19
+ 'tolerationSeconds?': 'number.integer',
20
+ });
21
+ const componentShape = {
22
+ 'enabled?': 'boolean',
23
+ 'replicas?': 'number.integer >= 0',
24
+ 'resources?': { 'requests?': resourceList, 'limits?': resourceList },
25
+ 'podDisruptionBudget?': {
26
+ 'minAvailable?': 'number.integer >= 0',
27
+ 'maxUnavailable?': 'number.integer >= 0',
28
+ },
29
+ 'nodeSelector?': 'Record<string, string>',
30
+ 'tolerations?': toleration.array(),
31
+ 'affinity?': 'Record<string, unknown>',
32
+ };
33
+ /** ArkType schema for {@link VpaBootstrapConfig}. */
34
+ export const VpaBootstrapConfigSchema = type({
35
+ name: releaseName,
36
+ 'namespace?': kubernetesDnsLabel,
37
+ 'version?': 'string > 0',
38
+ 'recommender?': {
39
+ ...componentShape,
40
+ 'logLevel?': 'number.integer >= 0',
41
+ 'podRecommendationMinCpuMillicores?': 'number.integer >= 0',
42
+ 'podRecommendationMinMemoryMb?': 'number.integer >= 0',
43
+ 'targetCpuPercentile?': '0 < number <= 1',
44
+ 'targetMemoryPercentile?': '0 < number <= 1',
45
+ 'recommendationMarginFraction?': 'number >= 0',
46
+ 'cpuHistogramDecayHalfLife?': 'string > 0',
47
+ 'memoryHistogramDecayHalfLife?': 'string > 0',
48
+ 'memoryAggregationInterval?': 'string > 0',
49
+ 'memoryAggregationIntervalCount?': 'number.integer >= 1',
50
+ 'storage?': '"checkpoint" | "prometheus"',
51
+ 'historyLength?': 'string > 0',
52
+ 'prometheusAddress?': 'string > 0',
53
+ 'recommenderName?': 'string > 0',
54
+ },
55
+ 'updater?': {
56
+ ...componentShape,
57
+ 'minReplicas?': 'number.integer >= 1',
58
+ 'evictionTolerance?': '0 <= number <= 1',
59
+ },
60
+ 'admissionController?': {
61
+ ...componentShape,
62
+ 'certificate?': {
63
+ 'generate?': 'boolean',
64
+ 'secretName?': kubernetesDnsLabel,
65
+ 'secretKeys?': type({ key: 'string > 0', path: 'string > 0' }).array(),
66
+ },
67
+ 'webhook?': {
68
+ 'failurePolicy?': '"Ignore" | "Fail"',
69
+ 'timeoutSeconds?': '1 <= number.integer <= 30',
70
+ 'namespaceSelector?': 'Record<string, unknown>',
71
+ 'objectSelector?': 'Record<string, unknown>',
72
+ 'annotations?': 'Record<string, string>',
73
+ },
74
+ },
75
+ 'metricsServer?': { 'enabled?': 'boolean' },
76
+ 'priorityClassName?': 'string',
77
+ 'serviceAccountAnnotations?': 'Record<string, string>',
78
+ });
79
+ /** ArkType schema for {@link VpaBootstrapStatus}. */
80
+ export const VpaBootstrapStatusSchema = type({
81
+ ready: 'boolean',
82
+ failed: 'boolean',
83
+ phase: '"Ready" | "Installing" | "Failed"',
84
+ version: 'string',
85
+ });
86
+ /** ArkType schema for {@link VpaHelmRepositorySingletonSpec}. */
87
+ export const VpaHelmRepositorySingletonSpecSchema = type({
88
+ name: kubernetesDnsLabel,
89
+ namespace: kubernetesDnsLabel,
90
+ url: 'string > 0',
91
+ });
92
+ /** ArkType schema for the singleton's status. */
93
+ export const VpaHelmRepositorySingletonStatusSchema = type({
94
+ ready: 'boolean',
95
+ });
96
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/vpa/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { VpaBootstrapConfig } from '../types.js';
2
+ /**
3
+ * Map the bootstrap spec onto Fairwinds `vpa` chart values.
4
+ *
5
+ * @param config - The bootstrap spec. Any field may be a schema reference.
6
+ * @param rawValues - Concrete chart values deep-merged over the result.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * mapVpaConfigToHelmValues({
11
+ * name: 'vpa',
12
+ * updater: { enabled: false },
13
+ * admissionController: { enabled: false },
14
+ * });
15
+ * ```
16
+ */
17
+ export declare function mapVpaConfigToHelmValues(config: VpaBootstrapConfig, rawValues?: Record<string, unknown>): Record<string, unknown>;
18
+ //# sourceMappingURL=helm-values-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAA+C,MAAM,aAAa,CAAC;AA+CnG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwFzB"}
@@ -0,0 +1,121 @@
1
+ // Vertical Pod Autoscaler Helm values mapping for the Fairwinds `vpa` chart 5.1.0.
2
+ //
3
+ // Every spec field may be a schema reference in KRO mode, so the mapper only
4
+ // places values into the tree and never branches on them. Defaults go through
5
+ // `Cel.default`, never `??`: a schema proxy is a truthy object.
6
+ //
7
+ // The chart renders each component's `extraArgs` map as `--key=value`, and
8
+ // Helm merges that map with the chart's own (`v`, the two minimum-recommendation
9
+ // flags), so the typed flags below land there key by key.
10
+ import { Cel } from '../../../core/references/cel.js';
11
+ import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
12
+ import { VPA_DEFAULT_RECOMMENDER_FLAGS, VPA_DEFAULT_RESOURCES, VPA_DEFAULT_UPDATER_FLAGS, } from '../constants.js';
13
+ const VPA_DEFAULT_TLS_SECRET_NAME = '{{ include "vpa.fullname" . }}-tls-secret';
14
+ function isPlainObject(value) {
15
+ return (typeof value === 'object' &&
16
+ value !== null &&
17
+ !Array.isArray(value) &&
18
+ !isKubernetesRef(value) &&
19
+ !isCelExpression(value));
20
+ }
21
+ // Plain objects merge key by key; lists, primitives and graph values replace.
22
+ function deepMerge(base, override) {
23
+ const merged = { ...base };
24
+ for (const [key, value] of Object.entries(override)) {
25
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype')
26
+ continue;
27
+ if (value === undefined)
28
+ continue;
29
+ const existing = merged[key];
30
+ merged[key] =
31
+ isPlainObject(existing) && isPlainObject(value) ? deepMerge(existing, value) : value;
32
+ }
33
+ return merged;
34
+ }
35
+ function component(config, defaultResources) {
36
+ return {
37
+ enabled: Cel.default(config?.enabled, true),
38
+ replicaCount: Cel.default(config?.replicas, 1),
39
+ resources: Cel.default(config?.resources, {
40
+ requests: { ...defaultResources.requests },
41
+ }),
42
+ podDisruptionBudget: Cel.default(config?.podDisruptionBudget, { maxUnavailable: 1 }),
43
+ nodeSelector: Cel.default(config?.nodeSelector, {}),
44
+ tolerations: Cel.default(config?.tolerations, []),
45
+ affinity: Cel.default(config?.affinity, {}),
46
+ };
47
+ }
48
+ /**
49
+ * Map the bootstrap spec onto Fairwinds `vpa` chart values.
50
+ *
51
+ * @param config - The bootstrap spec. Any field may be a schema reference.
52
+ * @param rawValues - Concrete chart values deep-merged over the result.
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * mapVpaConfigToHelmValues({
57
+ * name: 'vpa',
58
+ * updater: { enabled: false },
59
+ * admissionController: { enabled: false },
60
+ * });
61
+ * ```
62
+ */
63
+ export function mapVpaConfigToHelmValues(config, rawValues = {}) {
64
+ const recommender = config.recommender;
65
+ const updater = config.updater;
66
+ const admission = config.admissionController;
67
+ const flags = VPA_DEFAULT_RECOMMENDER_FLAGS;
68
+ const mapped = {
69
+ // Fixes every object name to `<name>-<component>`, independent of the chart name.
70
+ fullnameOverride: config.name,
71
+ priorityClassName: Cel.default(config.priorityClassName, ''),
72
+ serviceAccount: {
73
+ create: true,
74
+ annotations: Cel.default(config.serviceAccountAnnotations, {}),
75
+ },
76
+ recommender: {
77
+ ...component(recommender, VPA_DEFAULT_RESOURCES.recommender),
78
+ extraArgs: {
79
+ v: Cel.default(recommender?.logLevel, 4),
80
+ 'pod-recommendation-min-cpu-millicores': Cel.default(recommender?.podRecommendationMinCpuMillicores, flags.podRecommendationMinCpuMillicores),
81
+ 'pod-recommendation-min-memory-mb': Cel.default(recommender?.podRecommendationMinMemoryMb, flags.podRecommendationMinMemoryMb),
82
+ 'target-cpu-percentile': Cel.default(recommender?.targetCpuPercentile, flags.targetCpuPercentile),
83
+ 'target-memory-percentile': Cel.default(recommender?.targetMemoryPercentile, flags.targetMemoryPercentile),
84
+ 'recommendation-margin-fraction': Cel.default(recommender?.recommendationMarginFraction, flags.recommendationMarginFraction),
85
+ 'cpu-histogram-decay-half-life': Cel.default(recommender?.cpuHistogramDecayHalfLife, flags.cpuHistogramDecayHalfLife),
86
+ 'memory-histogram-decay-half-life': Cel.default(recommender?.memoryHistogramDecayHalfLife, flags.memoryHistogramDecayHalfLife),
87
+ 'memory-aggregation-interval': Cel.default(recommender?.memoryAggregationInterval, flags.memoryAggregationInterval),
88
+ 'memory-aggregation-interval-count': Cel.default(recommender?.memoryAggregationIntervalCount, flags.memoryAggregationIntervalCount),
89
+ storage: Cel.default(recommender?.storage, flags.storage),
90
+ 'history-length': Cel.default(recommender?.historyLength, flags.historyLength),
91
+ 'prometheus-address': Cel.default(recommender?.prometheusAddress, flags.prometheusAddress),
92
+ 'recommender-name': Cel.default(recommender?.recommenderName, flags.recommenderName),
93
+ },
94
+ },
95
+ updater: {
96
+ ...component(updater, VPA_DEFAULT_RESOURCES.updater),
97
+ extraArgs: {
98
+ 'min-replicas': Cel.default(updater?.minReplicas, VPA_DEFAULT_UPDATER_FLAGS.minReplicas),
99
+ 'eviction-tolerance': Cel.default(updater?.evictionTolerance, VPA_DEFAULT_UPDATER_FLAGS.evictionTolerance),
100
+ },
101
+ },
102
+ admissionController: {
103
+ ...component(admission, VPA_DEFAULT_RESOURCES.admissionController),
104
+ registerWebhook: false,
105
+ generateCertificate: Cel.default(admission?.certificate?.generate, true),
106
+ // The chart's own default, which it renders through `tpl`: `<name>-tls-secret`.
107
+ secretName: Cel.default(admission?.certificate?.secretName, VPA_DEFAULT_TLS_SECRET_NAME),
108
+ tlsSecretKeys: Cel.default(admission?.certificate?.secretKeys, []),
109
+ mutatingWebhookConfiguration: {
110
+ failurePolicy: Cel.default(admission?.webhook?.failurePolicy, 'Ignore'),
111
+ timeoutSeconds: Cel.default(admission?.webhook?.timeoutSeconds, 5),
112
+ namespaceSelector: Cel.default(admission?.webhook?.namespaceSelector, {}),
113
+ objectSelector: Cel.default(admission?.webhook?.objectSelector, {}),
114
+ annotations: Cel.default(admission?.webhook?.annotations, {}),
115
+ },
116
+ },
117
+ 'metrics-server': { enabled: Cel.default(config.metricsServer?.enabled, false) },
118
+ };
119
+ return deepMerge(mapped, rawValues);
120
+ }
121
+ //# sourceMappingURL=helm-values-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { mapVpaConfigToHelmValues } from './helm-values-mapper.js';
2
+ export { findVpaAutoscalerConflicts, type VpaValidationIssue, validateVerticalPodAutoscalerSpec, validateVpaBootstrapConfig, } from './validation.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { mapVpaConfigToHelmValues } from './helm-values-mapper.js';
2
+ export { findVpaAutoscalerConflicts, validateVerticalPodAutoscalerSpec, validateVpaBootstrapConfig, } from './validation.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,0BAA0B,EAE1B,iCAAiC,EACjC,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { VerticalPodAutoscalerSpec, VpaBootstrapConfig } from '../types.js';
2
+ /** One finding from a VPA validator. */
3
+ export interface VpaValidationIssue {
4
+ severity: 'error' | 'warning';
5
+ /** Dotted path of the offending field, relative to `spec`. */
6
+ path: string;
7
+ message: string;
8
+ }
9
+ /**
10
+ * Validate a `VerticalPodAutoscaler` spec.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const errors = validateVerticalPodAutoscalerSpec(spec).filter((i) => i.severity === 'error');
15
+ * ```
16
+ */
17
+ export declare function validateVerticalPodAutoscalerSpec(spec: VerticalPodAutoscalerSpec): VpaValidationIssue[];
18
+ /**
19
+ * Validate the `vpaBootstrap` spec. All findings are warnings.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * validateVpaBootstrapConfig({ name: 'vpa', admissionController: { enabled: false } });
24
+ * ```
25
+ */
26
+ export declare function validateVpaBootstrapConfig(config: VpaBootstrapConfig): VpaValidationIssue[];
27
+ /**
28
+ * Warnings for autoscalers declared in the current composition that scale the
29
+ * VPA's target on a resource the VPA also sets. Empty outside a composition
30
+ * and for `updateMode: 'Off'`.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * findVpaAutoscalerConflicts(spec, 'default');
35
+ * ```
36
+ */
37
+ export declare function findVpaAutoscalerConflicts(spec: VerticalPodAutoscalerSpec, namespace: string | undefined): VpaValidationIssue[];
38
+ /** Log validator warnings, once per composition run. Used by the factories. */
39
+ export declare function warnVpaIssues(source: string, issues: VpaValidationIssue[]): void;
40
+ /** Throw on validator errors. Used by the factories. */
41
+ export declare function assertNoVpaErrors(name: unknown, issues: VpaValidationIssue[]): void;
42
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/validation.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAEnB,MAAM,aAAa,CAAC;AAErB,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,yBAAyB,GAC9B,kBAAkB,EAAE,CA0DtB;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CA+B3F;AA0DD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,yBAAyB,EAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,kBAAkB,EAAE,CAwCtB;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAKhF;AAED,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAI,CASnF"}
@@ -0,0 +1,225 @@
1
+ // Checks for common Vertical Pod Autoscaler mistakes.
2
+ //
3
+ // Errors are things the API server or the VPA rejects; the factory throws on
4
+ // them. Warnings are legal but usually unintended. Values that are schema
5
+ // references or CEL expressions are only known at reconcile time and are
6
+ // skipped.
7
+ //
8
+ // The HPA check reads the other resources already declared in the current
9
+ // composition. A VPA that sets CPU or memory while an HPA (or a KEDA
10
+ // ScaledObject, which creates one) scales the same workload on that resource
11
+ // makes the two controllers fight: the VPA changes the requests the HPA's
12
+ // utilization is computed against. The KEDA factory makes the same check the
13
+ // other way round, so declaration order does not matter.
14
+ import { getCurrentCompositionContext } from '../../../core/composition/context.js';
15
+ import { TypeKroError } from '../../../core/errors.js';
16
+ import { getComponentLogger } from '../../../core/logging/index.js';
17
+ import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
18
+ const logger = getComponentLogger('vpa-validation');
19
+ const RESOURCES = ['cpu', 'memory'];
20
+ function isGraphValue(value) {
21
+ return isKubernetesRef(value) || isCelExpression(value);
22
+ }
23
+ function concrete(value) {
24
+ return value === undefined || isGraphValue(value) ? undefined : value;
25
+ }
26
+ /**
27
+ * Validate a `VerticalPodAutoscaler` spec.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const errors = validateVerticalPodAutoscalerSpec(spec).filter((i) => i.severity === 'error');
32
+ * ```
33
+ */
34
+ export function validateVerticalPodAutoscalerSpec(spec) {
35
+ const issues = [];
36
+ if (isGraphValue(spec))
37
+ return issues;
38
+ const error = (path, message) => issues.push({ severity: 'error', path, message });
39
+ const warn = (path, message) => issues.push({ severity: 'warning', path, message });
40
+ const target = spec?.targetRef;
41
+ if (!target || (!isGraphValue(target) && (!target.kind || !target.name))) {
42
+ error('targetRef', 'targetRef needs a kind and a name');
43
+ }
44
+ const mode = concrete(spec?.updatePolicy?.updateMode);
45
+ if (mode === 'Auto') {
46
+ warn('updatePolicy.updateMode', '"Auto" is deprecated since VPA 1.5; use "Recreate" or "InPlaceOrRecreate"');
47
+ }
48
+ if (mode === 'InPlace') {
49
+ warn('updatePolicy.updateMode', '"InPlace" needs the InPlace feature gate on the admission controller and the updater ' +
50
+ '(--feature-gates=InPlace=true)');
51
+ }
52
+ const recommenders = concrete(spec?.recommenders);
53
+ if (Array.isArray(recommenders) && recommenders.length > 1) {
54
+ error('recommenders', 'at most one recommender is supported');
55
+ }
56
+ const policies = concrete(spec?.resourcePolicy?.containerPolicies);
57
+ if (Array.isArray(policies)) {
58
+ const seen = new Set();
59
+ policies.forEach((policy, index) => {
60
+ const name = concrete(policy?.containerName);
61
+ if (typeof name === 'string') {
62
+ if (seen.has(name)) {
63
+ error(`resourcePolicy.containerPolicies[${index}].containerName`, `duplicate policy for "${name}"`);
64
+ }
65
+ seen.add(name);
66
+ }
67
+ const controlled = concrete(policy?.controlledResources);
68
+ if (Array.isArray(controlled) && controlled.length === 0) {
69
+ warn(`resourcePolicy.containerPolicies[${index}].controlledResources`, 'an empty list controls nothing; use mode: "Off" to exclude a container');
70
+ }
71
+ });
72
+ }
73
+ return issues;
74
+ }
75
+ /**
76
+ * Validate the `vpaBootstrap` spec. All findings are warnings.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * validateVpaBootstrapConfig({ name: 'vpa', admissionController: { enabled: false } });
81
+ * ```
82
+ */
83
+ export function validateVpaBootstrapConfig(config) {
84
+ const issues = [];
85
+ if (isGraphValue(config))
86
+ return issues;
87
+ const warn = (path, message) => issues.push({ severity: 'warning', path, message });
88
+ const enabled = (value) => concrete(value) !== false;
89
+ if (!enabled(config.recommender?.enabled)) {
90
+ warn('recommender.enabled', 'no VPA gets a recommendation without a recommender');
91
+ }
92
+ if (enabled(config.updater?.enabled) && !enabled(config.admissionController?.enabled)) {
93
+ warn('updater.enabled', 'the updater evicts pods that only the admission controller resizes on restart; ' +
94
+ 'disable both for recommend-only');
95
+ }
96
+ for (const name of ['recommender', 'updater']) {
97
+ const replicas = concrete(config[name]?.replicas);
98
+ if (typeof replicas === 'number' && replicas > 1) {
99
+ warn(`${name}.replicas`, 'this chart grants no leader-election lease, so extra replicas run in parallel');
100
+ }
101
+ }
102
+ const storage = concrete(config.recommender?.storage);
103
+ if (storage === 'prometheus' && concrete(config.recommender?.prometheusAddress) === undefined) {
104
+ warn('recommender.prometheusAddress', 'defaults to http://prometheus.monitoring.svc');
105
+ }
106
+ return issues;
107
+ }
108
+ // A plain clone of a declared resource. `toJSON` drops schema references
109
+ // (functions), so only concrete names are compared.
110
+ function manifestOf(resource) {
111
+ try {
112
+ return JSON.parse(JSON.stringify(resource));
113
+ }
114
+ catch {
115
+ return undefined;
116
+ }
117
+ }
118
+ function hpaResources(spec) {
119
+ if (typeof spec.targetCPUUtilizationPercentage === 'number')
120
+ return ['cpu'];
121
+ const metrics = spec.metrics;
122
+ // autoscaling/v2 without metrics defaults to 80% CPU.
123
+ if (!Array.isArray(metrics) || metrics.length === 0)
124
+ return ['cpu'];
125
+ return RESOURCES.filter((name) => metrics.some((metric) => (metric.resource ?? metric.containerResource)?.name === name));
126
+ }
127
+ function scaledObjectResources(spec) {
128
+ const triggers = spec.triggers;
129
+ if (!Array.isArray(triggers))
130
+ return [];
131
+ return RESOURCES.filter((name) => triggers.some((trigger) => trigger.type === name));
132
+ }
133
+ /**
134
+ * Resources the VPA sets. Containers without a policy of their own follow the
135
+ * `'*'` policy, or get cpu and memory when there is none, so only a `'*'`
136
+ * policy can narrow them; named policies can only add.
137
+ */
138
+ function vpaResources(spec) {
139
+ const list = concrete(spec.resourcePolicy?.containerPolicies);
140
+ const policies = Array.isArray(list) ? list : [];
141
+ const controlledBy = (policy) => {
142
+ if (concrete(policy?.mode) === 'Off')
143
+ return [];
144
+ const resources = concrete(policy?.controlledResources);
145
+ return Array.isArray(resources) ? resources : RESOURCES;
146
+ };
147
+ const star = policies.find((policy) => concrete(policy?.containerName) === '*');
148
+ const controlled = new Set(star ? controlledBy(star) : RESOURCES);
149
+ for (const policy of policies) {
150
+ if (policy !== star)
151
+ for (const name of controlledBy(policy))
152
+ controlled.add(name);
153
+ }
154
+ return RESOURCES.filter((name) => controlled.has(name));
155
+ }
156
+ /**
157
+ * Warnings for autoscalers declared in the current composition that scale the
158
+ * VPA's target on a resource the VPA also sets. Empty outside a composition
159
+ * and for `updateMode: 'Off'`.
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * findVpaAutoscalerConflicts(spec, 'default');
164
+ * ```
165
+ */
166
+ export function findVpaAutoscalerConflicts(spec, namespace) {
167
+ const context = getCurrentCompositionContext();
168
+ if (!context || isGraphValue(spec) || concrete(spec.updatePolicy?.updateMode) === 'Off') {
169
+ return [];
170
+ }
171
+ const kind = concrete(spec.targetRef?.kind);
172
+ const name = concrete(spec.targetRef?.name);
173
+ if (typeof kind !== 'string' || typeof name !== 'string')
174
+ return [];
175
+ const ours = vpaResources(spec);
176
+ const issues = [];
177
+ for (const resource of Object.values(context.resources)) {
178
+ const manifest = manifestOf(resource);
179
+ const other = manifest?.spec;
180
+ if (!manifest || !other)
181
+ continue;
182
+ if (concrete(namespace) !== undefined && manifest.metadata?.namespace !== undefined) {
183
+ if (manifest.metadata.namespace !== namespace)
184
+ continue;
185
+ }
186
+ const isHpa = manifest.kind === 'HorizontalPodAutoscaler';
187
+ const isScaledObject = manifest.kind === 'ScaledObject' && manifest.apiVersion?.startsWith('keda.sh/') === true;
188
+ if (!isHpa && !isScaledObject)
189
+ continue;
190
+ const ref = other.scaleTargetRef;
191
+ // A ScaledObject's scaleTargetRef.kind defaults to Deployment.
192
+ const refKind = ref?.kind ?? (isScaledObject ? 'Deployment' : undefined);
193
+ if (ref?.name !== name || refKind !== kind)
194
+ continue;
195
+ const shared = (isHpa ? hpaResources(other) : scaledObjectResources(other)).filter((r) => ours.includes(r));
196
+ if (shared.length === 0)
197
+ continue;
198
+ issues.push({
199
+ severity: 'warning',
200
+ path: 'updatePolicy.updateMode',
201
+ message: `${manifest.kind} "${manifest.metadata?.name}" also scales ${kind}/${name} on ` +
202
+ `${shared.join(' and ')}; set updateMode "Off", or limit controlledResources to what ` +
203
+ 'the horizontal autoscaler does not use',
204
+ });
205
+ }
206
+ return issues;
207
+ }
208
+ /** Log validator warnings, once per composition run. Used by the factories. */
209
+ export function warnVpaIssues(source, issues) {
210
+ if (getCurrentCompositionContext()?.suppressResourceDiagnostics)
211
+ return;
212
+ for (const issue of issues) {
213
+ if (issue.severity === 'warning')
214
+ logger.warn(`${source}: ${issue.path}: ${issue.message}`);
215
+ }
216
+ }
217
+ /** Throw on validator errors. Used by the factories. */
218
+ export function assertNoVpaErrors(name, issues) {
219
+ const errors = issues.filter((issue) => issue.severity === 'error');
220
+ if (errors.length === 0)
221
+ return;
222
+ const label = typeof name === 'string' && !isGraphValue(name) ? ` "${name}"` : '';
223
+ throw new TypeKroError(`Invalid VerticalPodAutoscaler${label}: ${errors.map((i) => `${i.path}: ${i.message}`).join('; ')}`, 'VPA_INVALID_SPEC', { issues: errors });
224
+ }
225
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/factories/vpa/utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typekro",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "description": "A control plane aware framework for orchestrating kubernetes resources like a programmer.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -26,6 +26,10 @@
26
26
  "import": "./dist/factories/helm/index.js",
27
27
  "types": "./dist/factories/helm/index.d.ts"
28
28
  },
29
+ "./keda": {
30
+ "import": "./dist/factories/keda/index.js",
31
+ "types": "./dist/factories/keda/index.d.ts"
32
+ },
29
33
  "./harbor": {
30
34
  "import": "./dist/factories/harbor/index.js",
31
35
  "types": "./dist/factories/harbor/index.d.ts"
@@ -42,10 +46,18 @@
42
46
  "import": "./dist/factories/kubernetes/index.js",
43
47
  "types": "./dist/factories/kubernetes/index.d.ts"
44
48
  },
49
+ "./vpa": {
50
+ "import": "./dist/factories/vpa/index.js",
51
+ "types": "./dist/factories/vpa/index.d.ts"
52
+ },
45
53
  "./traefik": {
46
54
  "import": "./dist/factories/traefik/index.js",
47
55
  "types": "./dist/factories/traefik/index.d.ts"
48
56
  },
57
+ "./crowdsec": {
58
+ "import": "./dist/factories/crowdsec/index.js",
59
+ "types": "./dist/factories/crowdsec/index.d.ts"
60
+ },
49
61
  "./gateway-api": {
50
62
  "import": "./dist/factories/gateway-api/index.js",
51
63
  "types": "./dist/factories/gateway-api/index.d.ts"
@@ -126,10 +138,18 @@
126
138
  "import": "./dist/factories/hatchet/index.js",
127
139
  "types": "./dist/factories/hatchet/index.d.ts"
128
140
  },
141
+ "./karpenter": {
142
+ "import": "./dist/factories/karpenter/index.js",
143
+ "types": "./dist/factories/karpenter/index.d.ts"
144
+ },
129
145
  "./containers": {
130
146
  "import": "./dist/core/containers/index.js",
131
147
  "types": "./dist/core/containers/index.d.ts"
132
148
  },
149
+ "./aws-load-balancer-controller": {
150
+ "import": "./dist/factories/aws-load-balancer-controller/index.js",
151
+ "types": "./dist/factories/aws-load-balancer-controller/index.d.ts"
152
+ },
133
153
  "./searxng": {
134
154
  "import": "./dist/factories/searxng/index.js",
135
155
  "types": "./dist/factories/searxng/index.d.ts"