typekro 0.44.1 → 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 (459) 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/references/schema-proxy.d.ts +17 -0
  6. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  7. package/dist/core/references/schema-proxy.js +53 -3
  8. package/dist/core/references/schema-proxy.js.map +1 -1
  9. package/dist/core/serialization/schema.d.ts.map +1 -1
  10. package/dist/core/serialization/schema.js +52 -20
  11. package/dist/core/serialization/schema.js.map +1 -1
  12. package/dist/core/types/serialization.d.ts +5 -2
  13. package/dist/core/types/serialization.d.ts.map +1 -1
  14. package/dist/factories/apisix/resources/helm.d.ts +2 -2
  15. package/dist/factories/apisix/resources/helm.d.ts.map +1 -1
  16. package/dist/factories/apisix/resources/helm.js +7 -11
  17. package/dist/factories/apisix/resources/helm.js.map +1 -1
  18. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts +38 -0
  19. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.d.ts.map +1 -0
  20. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js +101 -0
  21. package/dist/factories/aws-load-balancer-controller/compositions/bootstrap.js.map +1 -0
  22. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts +10 -0
  23. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.d.ts.map +1 -0
  24. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js +25 -0
  25. package/dist/factories/aws-load-balancer-controller/compositions/helm-repository.js.map +1 -0
  26. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts +3 -0
  27. package/dist/factories/aws-load-balancer-controller/compositions/index.d.ts.map +1 -0
  28. package/dist/factories/aws-load-balancer-controller/compositions/index.js +3 -0
  29. package/dist/factories/aws-load-balancer-controller/compositions/index.js.map +1 -0
  30. package/dist/factories/aws-load-balancer-controller/constants.d.ts +21 -0
  31. package/dist/factories/aws-load-balancer-controller/constants.d.ts.map +1 -0
  32. package/dist/factories/aws-load-balancer-controller/constants.js +29 -0
  33. package/dist/factories/aws-load-balancer-controller/constants.js.map +1 -0
  34. package/dist/factories/aws-load-balancer-controller/index.d.ts +17 -0
  35. package/dist/factories/aws-load-balancer-controller/index.d.ts.map +1 -0
  36. package/dist/factories/aws-load-balancer-controller/index.js +16 -0
  37. package/dist/factories/aws-load-balancer-controller/index.js.map +1 -0
  38. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts +45 -0
  39. package/dist/factories/aws-load-balancer-controller/resources/elbv2.d.ts.map +1 -0
  40. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js +148 -0
  41. package/dist/factories/aws-load-balancer-controller/resources/elbv2.js.map +1 -0
  42. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts +36 -0
  43. package/dist/factories/aws-load-balancer-controller/resources/helm.d.ts.map +1 -0
  44. package/dist/factories/aws-load-balancer-controller/resources/helm.js +96 -0
  45. package/dist/factories/aws-load-balancer-controller/resources/helm.js.map +1 -0
  46. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts +3 -0
  47. package/dist/factories/aws-load-balancer-controller/resources/index.d.ts.map +1 -0
  48. package/dist/factories/aws-load-balancer-controller/resources/index.js +3 -0
  49. package/dist/factories/aws-load-balancer-controller/resources/index.js.map +1 -0
  50. package/dist/factories/aws-load-balancer-controller/types.d.ts +267 -0
  51. package/dist/factories/aws-load-balancer-controller/types.d.ts.map +1 -0
  52. package/dist/factories/aws-load-balancer-controller/types.js +81 -0
  53. package/dist/factories/aws-load-balancer-controller/types.js.map +1 -0
  54. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts +27 -0
  55. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.d.ts.map +1 -0
  56. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js +171 -0
  57. package/dist/factories/aws-load-balancer-controller/utils/helm-values-mapper.js.map +1 -0
  58. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts +2 -0
  59. package/dist/factories/aws-load-balancer-controller/utils/index.d.ts.map +1 -0
  60. package/dist/factories/aws-load-balancer-controller/utils/index.js +2 -0
  61. package/dist/factories/aws-load-balancer-controller/utils/index.js.map +1 -0
  62. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +6 -4
  63. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -1
  64. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +22 -196
  65. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -1
  66. package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -1
  67. package/dist/factories/cert-manager/resources/helm.js +30 -51
  68. package/dist/factories/cert-manager/resources/helm.js.map +1 -1
  69. package/dist/factories/cert-manager/types.d.ts +54 -6
  70. package/dist/factories/cert-manager/types.d.ts.map +1 -1
  71. package/dist/factories/cert-manager/types.js +45 -12
  72. package/dist/factories/cert-manager/types.js.map +1 -1
  73. package/dist/factories/cert-manager/utils/helm-values-mapper.js +203 -76
  74. package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -1
  75. package/dist/factories/cilium/resources/helm.d.ts.map +1 -1
  76. package/dist/factories/cilium/resources/helm.js +23 -0
  77. package/dist/factories/cilium/resources/helm.js.map +1 -1
  78. package/dist/factories/cilium/types.d.ts +2 -1
  79. package/dist/factories/cilium/types.d.ts.map +1 -1
  80. package/dist/factories/cilium/types.js.map +1 -1
  81. package/dist/factories/clickhouse/resources/helm.d.ts.map +1 -1
  82. package/dist/factories/clickhouse/resources/helm.js +2 -1
  83. package/dist/factories/clickhouse/resources/helm.js.map +1 -1
  84. package/dist/factories/clickhouse/types.d.ts +2 -1
  85. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  86. package/dist/factories/clickhouse/types.js.map +1 -1
  87. package/dist/factories/clickstack/resources/helm.d.ts.map +1 -1
  88. package/dist/factories/clickstack/resources/helm.js +3 -2
  89. package/dist/factories/clickstack/resources/helm.js.map +1 -1
  90. package/dist/factories/clickstack/types.d.ts +3 -3
  91. package/dist/factories/clickstack/types.d.ts.map +1 -1
  92. package/dist/factories/clickstack/types.js.map +1 -1
  93. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  94. package/dist/factories/cnpg/resources/helm.js +2 -1
  95. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  96. package/dist/factories/cnpg/types.d.ts +2 -1
  97. package/dist/factories/cnpg/types.d.ts.map +1 -1
  98. package/dist/factories/cnpg/types.js.map +1 -1
  99. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts +33 -0
  100. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.d.ts.map +1 -0
  101. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js +174 -0
  102. package/dist/factories/crowdsec/compositions/crowdsec-bootstrap.js.map +1 -0
  103. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts +10 -0
  104. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.d.ts.map +1 -0
  105. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js +25 -0
  106. package/dist/factories/crowdsec/compositions/crowdsec-helm-repository.js.map +1 -0
  107. package/dist/factories/crowdsec/compositions/index.d.ts +3 -0
  108. package/dist/factories/crowdsec/compositions/index.d.ts.map +1 -0
  109. package/dist/factories/crowdsec/compositions/index.js +3 -0
  110. package/dist/factories/crowdsec/compositions/index.js.map +1 -0
  111. package/dist/factories/crowdsec/constants.d.ts +38 -0
  112. package/dist/factories/crowdsec/constants.d.ts.map +1 -0
  113. package/dist/factories/crowdsec/constants.js +42 -0
  114. package/dist/factories/crowdsec/constants.js.map +1 -0
  115. package/dist/factories/crowdsec/index.d.ts +12 -0
  116. package/dist/factories/crowdsec/index.d.ts.map +1 -0
  117. package/dist/factories/crowdsec/index.js +12 -0
  118. package/dist/factories/crowdsec/index.js.map +1 -0
  119. package/dist/factories/crowdsec/resources/helm.d.ts +52 -0
  120. package/dist/factories/crowdsec/resources/helm.d.ts.map +1 -0
  121. package/dist/factories/crowdsec/resources/helm.js +78 -0
  122. package/dist/factories/crowdsec/resources/helm.js.map +1 -0
  123. package/dist/factories/crowdsec/resources/index.d.ts +2 -0
  124. package/dist/factories/crowdsec/resources/index.d.ts.map +1 -0
  125. package/dist/factories/crowdsec/resources/index.js +2 -0
  126. package/dist/factories/crowdsec/resources/index.js.map +1 -0
  127. package/dist/factories/crowdsec/types.d.ts +266 -0
  128. package/dist/factories/crowdsec/types.d.ts.map +1 -0
  129. package/dist/factories/crowdsec/types.js +43 -0
  130. package/dist/factories/crowdsec/types.js.map +1 -0
  131. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts +40 -0
  132. package/dist/factories/crowdsec/utils/helm-values-mapper.d.ts.map +1 -0
  133. package/dist/factories/crowdsec/utils/helm-values-mapper.js +473 -0
  134. package/dist/factories/crowdsec/utils/helm-values-mapper.js.map +1 -0
  135. package/dist/factories/crowdsec/utils/index.d.ts +3 -0
  136. package/dist/factories/crowdsec/utils/index.d.ts.map +1 -0
  137. package/dist/factories/crowdsec/utils/index.js +3 -0
  138. package/dist/factories/crowdsec/utils/index.js.map +1 -0
  139. package/dist/factories/crowdsec/utils/net.js +68 -0
  140. package/dist/factories/crowdsec/utils/net.js.map +1 -0
  141. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts +48 -0
  142. package/dist/factories/crowdsec/utils/traefik-bouncer.d.ts.map +1 -0
  143. package/dist/factories/crowdsec/utils/traefik-bouncer.js +302 -0
  144. package/dist/factories/crowdsec/utils/traefik-bouncer.js.map +1 -0
  145. package/dist/factories/dagster/resources/helm.d.ts.map +1 -1
  146. package/dist/factories/dagster/resources/helm.js +2 -0
  147. package/dist/factories/dagster/resources/helm.js.map +1 -1
  148. package/dist/factories/dagster/types.d.ts +2 -2
  149. package/dist/factories/dagster/types.d.ts.map +1 -1
  150. package/dist/factories/dagster/types.js.map +1 -1
  151. package/dist/factories/envoy-ai-gateway/resources/helm.d.ts.map +1 -1
  152. package/dist/factories/envoy-ai-gateway/resources/helm.js +17 -14
  153. package/dist/factories/envoy-ai-gateway/resources/helm.js.map +1 -1
  154. package/dist/factories/envoy-ai-gateway/types.d.ts +2 -2
  155. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  156. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -1
  157. package/dist/factories/external-dns/resources/helm.js +2 -0
  158. package/dist/factories/external-dns/resources/helm.js.map +1 -1
  159. package/dist/factories/external-dns/types.d.ts +2 -1
  160. package/dist/factories/external-dns/types.d.ts.map +1 -1
  161. package/dist/factories/external-dns/types.js.map +1 -1
  162. package/dist/factories/harbor/resources/helm.d.ts.map +1 -1
  163. package/dist/factories/harbor/resources/helm.js +11 -7
  164. package/dist/factories/harbor/resources/helm.js.map +1 -1
  165. package/dist/factories/harbor/types.d.ts +2 -1
  166. package/dist/factories/harbor/types.d.ts.map +1 -1
  167. package/dist/factories/harbor/types.js.map +1 -1
  168. package/dist/factories/hatchet/resources/helm.d.ts.map +1 -1
  169. package/dist/factories/hatchet/resources/helm.js +13 -10
  170. package/dist/factories/hatchet/resources/helm.js.map +1 -1
  171. package/dist/factories/hatchet/types.d.ts +2 -1
  172. package/dist/factories/hatchet/types.d.ts.map +1 -1
  173. package/dist/factories/hatchet/types.js.map +1 -1
  174. package/dist/factories/helm/helm-release.d.ts.map +1 -1
  175. package/dist/factories/helm/helm-release.js +3 -31
  176. package/dist/factories/helm/helm-release.js.map +1 -1
  177. package/dist/factories/helm/index.d.ts +3 -1
  178. package/dist/factories/helm/index.d.ts.map +1 -1
  179. package/dist/factories/helm/index.js +1 -0
  180. package/dist/factories/helm/index.js.map +1 -1
  181. package/dist/factories/helm/lifecycle.d.ts +32 -0
  182. package/dist/factories/helm/lifecycle.d.ts.map +1 -0
  183. package/dist/factories/helm/lifecycle.js +165 -0
  184. package/dist/factories/helm/lifecycle.js.map +1 -0
  185. package/dist/factories/helm/types.d.ts +22 -0
  186. package/dist/factories/helm/types.d.ts.map +1 -1
  187. package/dist/factories/inngest/resources/helm.d.ts.map +1 -1
  188. package/dist/factories/inngest/resources/helm.js +2 -0
  189. package/dist/factories/inngest/resources/helm.js.map +1 -1
  190. package/dist/factories/inngest/types.d.ts +2 -1
  191. package/dist/factories/inngest/types.d.ts.map +1 -1
  192. package/dist/factories/inngest/types.js.map +1 -1
  193. package/dist/factories/karpenter/compositions/index.d.ts +3 -0
  194. package/dist/factories/karpenter/compositions/index.d.ts.map +1 -0
  195. package/dist/factories/karpenter/compositions/index.js +3 -0
  196. package/dist/factories/karpenter/compositions/index.js.map +1 -0
  197. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts +34 -0
  198. package/dist/factories/karpenter/compositions/karpenter-bootstrap.d.ts.map +1 -0
  199. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js +150 -0
  200. package/dist/factories/karpenter/compositions/karpenter-bootstrap.js.map +1 -0
  201. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts +10 -0
  202. package/dist/factories/karpenter/compositions/karpenter-helm-repository.d.ts.map +1 -0
  203. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js +25 -0
  204. package/dist/factories/karpenter/compositions/karpenter-helm-repository.js.map +1 -0
  205. package/dist/factories/karpenter/constants.d.ts +67 -0
  206. package/dist/factories/karpenter/constants.d.ts.map +1 -0
  207. package/dist/factories/karpenter/constants.js +65 -0
  208. package/dist/factories/karpenter/constants.js.map +1 -0
  209. package/dist/factories/karpenter/index.d.ts +14 -0
  210. package/dist/factories/karpenter/index.d.ts.map +1 -0
  211. package/dist/factories/karpenter/index.js +14 -0
  212. package/dist/factories/karpenter/index.js.map +1 -0
  213. package/dist/factories/karpenter/resources/ec2-node-class.d.ts +26 -0
  214. package/dist/factories/karpenter/resources/ec2-node-class.d.ts.map +1 -0
  215. package/dist/factories/karpenter/resources/ec2-node-class.js +48 -0
  216. package/dist/factories/karpenter/resources/ec2-node-class.js.map +1 -0
  217. package/dist/factories/karpenter/resources/helm.d.ts +48 -0
  218. package/dist/factories/karpenter/resources/helm.d.ts.map +1 -0
  219. package/dist/factories/karpenter/resources/helm.js +117 -0
  220. package/dist/factories/karpenter/resources/helm.js.map +1 -0
  221. package/dist/factories/karpenter/resources/index.d.ts +5 -0
  222. package/dist/factories/karpenter/resources/index.d.ts.map +1 -0
  223. package/dist/factories/karpenter/resources/index.js +5 -0
  224. package/dist/factories/karpenter/resources/index.js.map +1 -0
  225. package/dist/factories/karpenter/resources/node-pool.d.ts +32 -0
  226. package/dist/factories/karpenter/resources/node-pool.d.ts.map +1 -0
  227. package/dist/factories/karpenter/resources/node-pool.js +80 -0
  228. package/dist/factories/karpenter/resources/node-pool.js.map +1 -0
  229. package/dist/factories/karpenter/resources/readiness.d.ts +21 -0
  230. package/dist/factories/karpenter/resources/readiness.d.ts.map +1 -0
  231. package/dist/factories/karpenter/resources/readiness.js +60 -0
  232. package/dist/factories/karpenter/resources/readiness.js.map +1 -0
  233. package/dist/factories/karpenter/types.d.ts +433 -0
  234. package/dist/factories/karpenter/types.d.ts.map +1 -0
  235. package/dist/factories/karpenter/types.js +59 -0
  236. package/dist/factories/karpenter/types.js.map +1 -0
  237. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts +24 -0
  238. package/dist/factories/karpenter/utils/helm-values-mapper.d.ts.map +1 -0
  239. package/dist/factories/karpenter/utils/helm-values-mapper.js +89 -0
  240. package/dist/factories/karpenter/utils/helm-values-mapper.js.map +1 -0
  241. package/dist/factories/karpenter/utils/index.d.ts +3 -0
  242. package/dist/factories/karpenter/utils/index.d.ts.map +1 -0
  243. package/dist/factories/karpenter/utils/index.js +3 -0
  244. package/dist/factories/karpenter/utils/index.js.map +1 -0
  245. package/dist/factories/karpenter/utils/validation.d.ts +42 -0
  246. package/dist/factories/karpenter/utils/validation.d.ts.map +1 -0
  247. package/dist/factories/karpenter/utils/validation.js +441 -0
  248. package/dist/factories/karpenter/utils/validation.js.map +1 -0
  249. package/dist/factories/keda/compositions/index.d.ts +3 -0
  250. package/dist/factories/keda/compositions/index.d.ts.map +1 -0
  251. package/dist/factories/keda/compositions/index.js +3 -0
  252. package/dist/factories/keda/compositions/index.js.map +1 -0
  253. package/dist/factories/keda/compositions/keda-bootstrap.d.ts +30 -0
  254. package/dist/factories/keda/compositions/keda-bootstrap.d.ts.map +1 -0
  255. package/dist/factories/keda/compositions/keda-bootstrap.js +102 -0
  256. package/dist/factories/keda/compositions/keda-bootstrap.js.map +1 -0
  257. package/dist/factories/keda/compositions/keda-helm-repository.d.ts +10 -0
  258. package/dist/factories/keda/compositions/keda-helm-repository.d.ts.map +1 -0
  259. package/dist/factories/keda/compositions/keda-helm-repository.js +25 -0
  260. package/dist/factories/keda/compositions/keda-helm-repository.js.map +1 -0
  261. package/dist/factories/keda/constants.d.ts +27 -0
  262. package/dist/factories/keda/constants.d.ts.map +1 -0
  263. package/dist/factories/keda/constants.js +27 -0
  264. package/dist/factories/keda/constants.js.map +1 -0
  265. package/dist/factories/keda/index.d.ts +14 -0
  266. package/dist/factories/keda/index.d.ts.map +1 -0
  267. package/dist/factories/keda/index.js +14 -0
  268. package/dist/factories/keda/index.js.map +1 -0
  269. package/dist/factories/keda/resources/helm.d.ts +26 -0
  270. package/dist/factories/keda/resources/helm.d.ts.map +1 -0
  271. package/dist/factories/keda/resources/helm.js +84 -0
  272. package/dist/factories/keda/resources/helm.js.map +1 -0
  273. package/dist/factories/keda/resources/index.d.ts +7 -0
  274. package/dist/factories/keda/resources/index.d.ts.map +1 -0
  275. package/dist/factories/keda/resources/index.js +7 -0
  276. package/dist/factories/keda/resources/index.js.map +1 -0
  277. package/dist/factories/keda/resources/readiness.d.ts +28 -0
  278. package/dist/factories/keda/resources/readiness.d.ts.map +1 -0
  279. package/dist/factories/keda/resources/readiness.js +70 -0
  280. package/dist/factories/keda/resources/readiness.js.map +1 -0
  281. package/dist/factories/keda/resources/scaled-job.d.ts +23 -0
  282. package/dist/factories/keda/resources/scaled-job.d.ts.map +1 -0
  283. package/dist/factories/keda/resources/scaled-job.js +43 -0
  284. package/dist/factories/keda/resources/scaled-job.js.map +1 -0
  285. package/dist/factories/keda/resources/scaled-object.d.ts +33 -0
  286. package/dist/factories/keda/resources/scaled-object.d.ts.map +1 -0
  287. package/dist/factories/keda/resources/scaled-object.js +78 -0
  288. package/dist/factories/keda/resources/scaled-object.js.map +1 -0
  289. package/dist/factories/keda/resources/trigger-authentication.d.ts +28 -0
  290. package/dist/factories/keda/resources/trigger-authentication.d.ts.map +1 -0
  291. package/dist/factories/keda/resources/trigger-authentication.js +52 -0
  292. package/dist/factories/keda/resources/trigger-authentication.js.map +1 -0
  293. package/dist/factories/keda/resources/triggers.d.ts +17 -0
  294. package/dist/factories/keda/resources/triggers.d.ts.map +1 -0
  295. package/dist/factories/keda/resources/triggers.js +21 -0
  296. package/dist/factories/keda/resources/triggers.js.map +1 -0
  297. package/dist/factories/keda/types.d.ts +580 -0
  298. package/dist/factories/keda/types.d.ts.map +1 -0
  299. package/dist/factories/keda/types.js +75 -0
  300. package/dist/factories/keda/types.js.map +1 -0
  301. package/dist/factories/keda/utils/helm-values-mapper.d.ts +21 -0
  302. package/dist/factories/keda/utils/helm-values-mapper.d.ts.map +1 -0
  303. package/dist/factories/keda/utils/helm-values-mapper.js +130 -0
  304. package/dist/factories/keda/utils/helm-values-mapper.js.map +1 -0
  305. package/dist/factories/keda/utils/index.d.ts +3 -0
  306. package/dist/factories/keda/utils/index.d.ts.map +1 -0
  307. package/dist/factories/keda/utils/index.js +3 -0
  308. package/dist/factories/keda/utils/index.js.map +1 -0
  309. package/dist/factories/keda/utils/validation.d.ts +52 -0
  310. package/dist/factories/keda/utils/validation.d.ts.map +1 -0
  311. package/dist/factories/keda/utils/validation.js +482 -0
  312. package/dist/factories/keda/utils/validation.js.map +1 -0
  313. package/dist/factories/kubernetes/policy/limit-range.d.ts.map +1 -1
  314. package/dist/factories/kubernetes/policy/limit-range.js +27 -1
  315. package/dist/factories/kubernetes/policy/limit-range.js.map +1 -1
  316. package/dist/factories/nats/resources/helm.d.ts +2 -2
  317. package/dist/factories/nats/resources/helm.d.ts.map +1 -1
  318. package/dist/factories/nats/resources/helm.js +2 -1
  319. package/dist/factories/nats/resources/helm.js.map +1 -1
  320. package/dist/factories/opensearch/resources/helm.d.ts.map +1 -1
  321. package/dist/factories/opensearch/resources/helm.js +2 -1
  322. package/dist/factories/opensearch/resources/helm.js.map +1 -1
  323. package/dist/factories/opensearch/types.d.ts +2 -1
  324. package/dist/factories/opensearch/types.d.ts.map +1 -1
  325. package/dist/factories/opensearch/types.js.map +1 -1
  326. package/dist/factories/ory/resources/helm.d.ts.map +1 -1
  327. package/dist/factories/ory/resources/helm.js +2 -0
  328. package/dist/factories/ory/resources/helm.js.map +1 -1
  329. package/dist/factories/ory/types.d.ts +2 -2
  330. package/dist/factories/ory/types.d.ts.map +1 -1
  331. package/dist/factories/ory/types.js.map +1 -1
  332. package/dist/factories/pebble/resources/helm.d.ts.map +1 -1
  333. package/dist/factories/pebble/resources/helm.js +2 -0
  334. package/dist/factories/pebble/resources/helm.js.map +1 -1
  335. package/dist/factories/pebble/types.d.ts +2 -1
  336. package/dist/factories/pebble/types.d.ts.map +1 -1
  337. package/dist/factories/pebble/types.js.map +1 -1
  338. package/dist/factories/rook/resources/helm.d.ts.map +1 -1
  339. package/dist/factories/rook/resources/helm.js +3 -2
  340. package/dist/factories/rook/resources/helm.js.map +1 -1
  341. package/dist/factories/rook/types.d.ts +2 -1
  342. package/dist/factories/rook/types.d.ts.map +1 -1
  343. package/dist/factories/rook/types.js.map +1 -1
  344. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +43 -36
  345. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -1
  346. package/dist/factories/traefik/compositions/traefik-bootstrap.js +70 -38
  347. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -1
  348. package/dist/factories/traefik/constants.d.ts +6 -0
  349. package/dist/factories/traefik/constants.d.ts.map +1 -1
  350. package/dist/factories/traefik/constants.js +6 -0
  351. package/dist/factories/traefik/constants.js.map +1 -1
  352. package/dist/factories/traefik/resources/common.d.ts +1 -1
  353. package/dist/factories/traefik/resources/common.js +1 -1
  354. package/dist/factories/traefik/resources/helm.d.ts.map +1 -1
  355. package/dist/factories/traefik/resources/helm.js +14 -9
  356. package/dist/factories/traefik/resources/helm.js.map +1 -1
  357. package/dist/factories/traefik/resources/middleware.d.ts +35 -1
  358. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -1
  359. package/dist/factories/traefik/resources/middleware.js +71 -0
  360. package/dist/factories/traefik/resources/middleware.js.map +1 -1
  361. package/dist/factories/traefik/resources/tls.d.ts +22 -1
  362. package/dist/factories/traefik/resources/tls.d.ts.map +1 -1
  363. package/dist/factories/traefik/resources/tls.js +40 -0
  364. package/dist/factories/traefik/resources/tls.js.map +1 -1
  365. package/dist/factories/traefik/types.d.ts +176 -9
  366. package/dist/factories/traefik/types.d.ts.map +1 -1
  367. package/dist/factories/traefik/types.js +111 -2
  368. package/dist/factories/traefik/types.js.map +1 -1
  369. package/dist/factories/traefik/utils/access-log.d.ts +18 -0
  370. package/dist/factories/traefik/utils/access-log.d.ts.map +1 -0
  371. package/dist/factories/traefik/utils/access-log.js +98 -0
  372. package/dist/factories/traefik/utils/access-log.js.map +1 -0
  373. package/dist/factories/traefik/utils/aws-nlb.d.ts +55 -0
  374. package/dist/factories/traefik/utils/aws-nlb.d.ts.map +1 -0
  375. package/dist/factories/traefik/utils/aws-nlb.js +121 -0
  376. package/dist/factories/traefik/utils/aws-nlb.js.map +1 -0
  377. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +30 -40
  378. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -1
  379. package/dist/factories/traefik/utils/helm-values-mapper.js +308 -41
  380. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -1
  381. package/dist/factories/traefik/utils/index.d.ts +5 -0
  382. package/dist/factories/traefik/utils/index.d.ts.map +1 -1
  383. package/dist/factories/traefik/utils/index.js +5 -0
  384. package/dist/factories/traefik/utils/index.js.map +1 -1
  385. package/dist/factories/traefik/utils/middleware-validation.d.ts +0 -17
  386. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -1
  387. package/dist/factories/traefik/utils/middleware-validation.js +15 -17
  388. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -1
  389. package/dist/factories/traefik/utils/plugins.d.ts +38 -0
  390. package/dist/factories/traefik/utils/plugins.d.ts.map +1 -0
  391. package/dist/factories/traefik/utils/plugins.js +175 -0
  392. package/dist/factories/traefik/utils/plugins.js.map +1 -0
  393. package/dist/factories/traefik/utils/proxy-trust.d.ts +48 -0
  394. package/dist/factories/traefik/utils/proxy-trust.d.ts.map +1 -0
  395. package/dist/factories/traefik/utils/proxy-trust.js +514 -0
  396. package/dist/factories/traefik/utils/proxy-trust.js.map +1 -0
  397. package/dist/factories/traefik/utils/trusted-range.d.ts +29 -0
  398. package/dist/factories/traefik/utils/trusted-range.d.ts.map +1 -0
  399. package/dist/factories/traefik/utils/trusted-range.js +80 -0
  400. package/dist/factories/traefik/utils/trusted-range.js.map +1 -0
  401. package/dist/factories/valkey/resources/helm.d.ts.map +1 -1
  402. package/dist/factories/valkey/resources/helm.js +2 -1
  403. package/dist/factories/valkey/resources/helm.js.map +1 -1
  404. package/dist/factories/valkey/types.d.ts +2 -1
  405. package/dist/factories/valkey/types.d.ts.map +1 -1
  406. package/dist/factories/valkey/types.js.map +1 -1
  407. package/dist/factories/vpa/compositions/index.d.ts +3 -0
  408. package/dist/factories/vpa/compositions/index.d.ts.map +1 -0
  409. package/dist/factories/vpa/compositions/index.js +3 -0
  410. package/dist/factories/vpa/compositions/index.js.map +1 -0
  411. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts +30 -0
  412. package/dist/factories/vpa/compositions/vpa-bootstrap.d.ts.map +1 -0
  413. package/dist/factories/vpa/compositions/vpa-bootstrap.js +104 -0
  414. package/dist/factories/vpa/compositions/vpa-bootstrap.js.map +1 -0
  415. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts +10 -0
  416. package/dist/factories/vpa/compositions/vpa-helm-repository.d.ts.map +1 -0
  417. package/dist/factories/vpa/compositions/vpa-helm-repository.js +25 -0
  418. package/dist/factories/vpa/compositions/vpa-helm-repository.js.map +1 -0
  419. package/dist/factories/vpa/constants.d.ts +77 -0
  420. package/dist/factories/vpa/constants.d.ts.map +1 -0
  421. package/dist/factories/vpa/constants.js +67 -0
  422. package/dist/factories/vpa/constants.js.map +1 -0
  423. package/dist/factories/vpa/index.d.ts +14 -0
  424. package/dist/factories/vpa/index.d.ts.map +1 -0
  425. package/dist/factories/vpa/index.js +14 -0
  426. package/dist/factories/vpa/index.js.map +1 -0
  427. package/dist/factories/vpa/resources/helm.d.ts +28 -0
  428. package/dist/factories/vpa/resources/helm.d.ts.map +1 -0
  429. package/dist/factories/vpa/resources/helm.js +88 -0
  430. package/dist/factories/vpa/resources/helm.js.map +1 -0
  431. package/dist/factories/vpa/resources/index.d.ts +4 -0
  432. package/dist/factories/vpa/resources/index.d.ts.map +1 -0
  433. package/dist/factories/vpa/resources/index.js +4 -0
  434. package/dist/factories/vpa/resources/index.js.map +1 -0
  435. package/dist/factories/vpa/resources/readiness.d.ts +24 -0
  436. package/dist/factories/vpa/resources/readiness.d.ts.map +1 -0
  437. package/dist/factories/vpa/resources/readiness.js +66 -0
  438. package/dist/factories/vpa/resources/readiness.js.map +1 -0
  439. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts +42 -0
  440. package/dist/factories/vpa/resources/vertical-pod-autoscaler.d.ts.map +1 -0
  441. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js +93 -0
  442. package/dist/factories/vpa/resources/vertical-pod-autoscaler.js.map +1 -0
  443. package/dist/factories/vpa/types.d.ts +312 -0
  444. package/dist/factories/vpa/types.d.ts.map +1 -0
  445. package/dist/factories/vpa/types.js +96 -0
  446. package/dist/factories/vpa/types.js.map +1 -0
  447. package/dist/factories/vpa/utils/helm-values-mapper.d.ts +18 -0
  448. package/dist/factories/vpa/utils/helm-values-mapper.d.ts.map +1 -0
  449. package/dist/factories/vpa/utils/helm-values-mapper.js +121 -0
  450. package/dist/factories/vpa/utils/helm-values-mapper.js.map +1 -0
  451. package/dist/factories/vpa/utils/index.d.ts +3 -0
  452. package/dist/factories/vpa/utils/index.d.ts.map +1 -0
  453. package/dist/factories/vpa/utils/index.js +3 -0
  454. package/dist/factories/vpa/utils/index.js.map +1 -0
  455. package/dist/factories/vpa/utils/validation.d.ts +42 -0
  456. package/dist/factories/vpa/utils/validation.d.ts.map +1 -0
  457. package/dist/factories/vpa/utils/validation.js +225 -0
  458. package/dist/factories/vpa/utils/validation.js.map +1 -0
  459. package/package.json +21 -1
@@ -0,0 +1,267 @@
1
+ import type { V1LabelSelector, V1ResourceRequirements, V1Toleration, V1TopologySpreadConstraint } from '@kubernetes/client-node';
2
+ import { type Type } from 'arktype';
3
+ import type { HelmReleaseLifecycleOptions } from '../helm/types.js';
4
+ /** Runtime spec of the AWS Load Balancer Controller bootstrap. */
5
+ export interface AwsLoadBalancerControllerBootstrapConfig {
6
+ /** Helm release name. The service account name does not follow it. */
7
+ name: string;
8
+ /** Install namespace. @default 'kube-system' */
9
+ namespace?: string;
10
+ /** Chart version. @default DEFAULT_AWS_LBC_CHART_VERSION */
11
+ chartVersion?: string;
12
+ /** EKS cluster name. Required by the chart. */
13
+ clusterName: string;
14
+ /** AWS region. Discovered from instance metadata when unset. */
15
+ region?: string;
16
+ /** VPC ID. Discovered from instance metadata when unset. */
17
+ vpcId?: string;
18
+ /** Controller replicas. @default 2 (chart default) */
19
+ replicaCount?: number;
20
+ /** Override the controller image, e.g. a regional or private ECR mirror. */
21
+ image?: {
22
+ repository?: string;
23
+ tag?: string;
24
+ pullPolicy?: 'Always' | 'IfNotPresent' | 'Never';
25
+ };
26
+ /**
27
+ * The controller's service account, named `aws-load-balancer-controller`
28
+ * unless `name` is set. TypeKro creates no IAM: put the IRSA role in
29
+ * `annotations` (`eks.amazonaws.com/role-arn`), or associate an EKS Pod
30
+ * Identity with that name in this namespace.
31
+ */
32
+ serviceAccount?: {
33
+ create?: boolean;
34
+ name?: string;
35
+ annotations?: Record<string, string>;
36
+ };
37
+ /** PodDisruptionBudget spec. Rendered only above 1 replica. @default { maxUnavailable: 1 } */
38
+ podDisruptionBudget?: {
39
+ minAvailable?: number;
40
+ maxUnavailable?: number;
41
+ };
42
+ topologySpreadConstraints?: V1TopologySpreadConstraint[];
43
+ /**
44
+ * Make the controller the default for every new `type: LoadBalancer`
45
+ * Service. @default false, so Services owned by another controller are
46
+ * never taken over.
47
+ */
48
+ enableServiceMutatorWebhook?: boolean;
49
+ /** Create the `alb` IngressClass. @default true (chart default) */
50
+ createIngressClassResource?: boolean;
51
+ /** IngressClass name the controller serves. @default 'alb' (chart default) */
52
+ ingressClass?: string;
53
+ /**
54
+ * Default target type for Ingresses and Services. `ip` needs pod IPs routable
55
+ * from the VPC (Amazon VPC CNI, Cilium ENI mode); use `instance` with an
56
+ * overlay CNI such as Cilium in VXLAN/Geneve mode. @default 'ip'
57
+ */
58
+ defaultTargetType?: 'ip' | 'instance';
59
+ resources?: V1ResourceRequirements;
60
+ nodeSelector?: Record<string, string>;
61
+ tolerations?: V1Toleration[];
62
+ logLevel?: 'info' | 'debug';
63
+ }
64
+ /** Status of the AWS Load Balancer Controller bootstrap. */
65
+ export interface AwsLoadBalancerControllerBootstrapStatus {
66
+ ready: boolean;
67
+ failed: boolean;
68
+ phase: 'Ready' | 'Installing' | 'Failed';
69
+ /** Chart version Flux installed, read from the release history. */
70
+ version: string;
71
+ }
72
+ /** Build-time options of {@link makeAwsLoadBalancerControllerBootstrap}. Must be concrete. */
73
+ export interface AwsLoadBalancerControllerBootstrapOptions extends HelmReleaseLifecycleOptions {
74
+ /** Composition name. @default 'aws-load-balancer-controller-bootstrap' */
75
+ name?: string;
76
+ /** Custom resource kind. @default 'AwsLoadBalancerControllerBootstrap' */
77
+ kind?: string;
78
+ /**
79
+ * Raw chart values for settings the spec does not map, applied at build
80
+ * time. Setting a value the spec maps (`image`, `serviceAccount.annotations`,
81
+ * `resources`, ...) throws: set it through the spec, per instance. A
82
+ * `podDisruptionBudget` here replaces the default PDB (use it for a
83
+ * percentage); an instance's `spec.podDisruptionBudget` replaces it whole.
84
+ */
85
+ values?: Record<string, unknown>;
86
+ }
87
+ /** ArkType schema for {@link AwsLoadBalancerControllerBootstrapConfig}. */
88
+ export declare const AwsLoadBalancerControllerBootstrapConfigSchema: Type<AwsLoadBalancerControllerBootstrapConfig>;
89
+ /** ArkType schema for {@link AwsLoadBalancerControllerBootstrapStatus}. */
90
+ export declare const AwsLoadBalancerControllerBootstrapStatusSchema: Type<AwsLoadBalancerControllerBootstrapStatus>;
91
+ /** Config of the eks-charts `HelmRepository`. */
92
+ export interface AwsLoadBalancerControllerHelmRepositoryConfig {
93
+ /** @default DEFAULT_AWS_LBC_REPOSITORY_NAME */
94
+ name?: string;
95
+ /** @default 'flux-system' */
96
+ namespace?: string;
97
+ /** @default DEFAULT_AWS_LBC_REPOSITORY_URL */
98
+ url?: string;
99
+ /** @default '1h' */
100
+ interval?: string;
101
+ id?: string;
102
+ }
103
+ /** Config of the controller `HelmRelease`. */
104
+ export interface AwsLoadBalancerControllerHelmReleaseConfig extends HelmReleaseLifecycleOptions {
105
+ /** Release name. */
106
+ name: string;
107
+ /** Namespace of the HelmRelease object. @default 'flux-system' */
108
+ namespace?: string;
109
+ /** Namespace the controller is installed into. @default 'kube-system' */
110
+ targetNamespace?: string;
111
+ /** @default DEFAULT_AWS_LBC_CHART_VERSION */
112
+ version?: string;
113
+ /** @default DEFAULT_AWS_LBC_REPOSITORY_NAME */
114
+ repositoryName?: string;
115
+ /** @default the HelmRelease namespace */
116
+ repositoryNamespace?: string;
117
+ /** @default '10m' */
118
+ interval?: string;
119
+ /** Chart values. Build them with `mapAwsLoadBalancerControllerConfigToHelmValues`. */
120
+ values?: Record<string, unknown>;
121
+ id?: string;
122
+ }
123
+ /** Spec of the shared eks-charts `HelmRepository` singleton. */
124
+ export interface AwsLoadBalancerControllerHelmRepositorySingletonSpec {
125
+ name: string;
126
+ namespace: string;
127
+ url: string;
128
+ }
129
+ export declare const AwsLoadBalancerControllerHelmRepositorySingletonSpecSchema: Type<AwsLoadBalancerControllerHelmRepositorySingletonSpec>;
130
+ export declare const AwsLoadBalancerControllerHelmRepositorySingletonStatusSchema: Type<{
131
+ ready: boolean;
132
+ }>;
133
+ /** A port on a Service or pod: a number or a port name. */
134
+ export type AwsLbcPort = number | string;
135
+ /**
136
+ * The target group a `TargetGroupBinding` binds to: its ARN, its name, or both.
137
+ * The CRD makes neither field required, but the controller's webhook rejects a
138
+ * binding with neither, so the type requires at least one. With both set, the
139
+ * controller uses the ARN and does not look the name up.
140
+ */
141
+ export type TargetGroupBindingTargetGroup = {
142
+ /** ARN of an existing target group. Takes precedence over `targetGroupName`. */
143
+ targetGroupARN: string;
144
+ /** Name of an existing target group. Ignored while `targetGroupARN` is set. */
145
+ targetGroupName?: string;
146
+ } | {
147
+ /** ARN of an existing target group. Takes precedence over `targetGroupName`. */
148
+ targetGroupARN?: string;
149
+ /** Name of an existing target group, which the controller resolves to its ARN. */
150
+ targetGroupName: string;
151
+ };
152
+ /** Spec of an `elbv2.k8s.aws/v1beta1` `TargetGroupBinding`. */
153
+ export type TargetGroupBindingSpec = TargetGroupBindingSpecFields & TargetGroupBindingTargetGroup;
154
+ /** The `TargetGroupBinding` spec fields other than the target group itself. */
155
+ export interface TargetGroupBindingSpecFields {
156
+ /** The Service (and its port) whose endpoints become targets. */
157
+ serviceRef: {
158
+ name: string;
159
+ port: AwsLbcPort;
160
+ };
161
+ targetType?: 'instance' | 'ip';
162
+ /** Protocol of a target group the controller looks up by name. */
163
+ targetGroupProtocol?: 'HTTP' | 'HTTPS' | 'TCP' | 'TLS' | 'UDP' | 'TCP_UDP' | 'QUIC' | 'TCP_QUIC';
164
+ ipAddressType?: 'ipv4' | 'ipv6';
165
+ /** Security group rules the controller manages so the load balancer reaches the targets. */
166
+ networking?: {
167
+ ingress?: {
168
+ from: ({
169
+ ipBlock: {
170
+ cidr: string;
171
+ };
172
+ } | {
173
+ securityGroup: {
174
+ groupID: string;
175
+ };
176
+ })[];
177
+ /** Required by the CRD. An empty port entry opens every TCP port. */
178
+ ports: {
179
+ port?: AwsLbcPort;
180
+ protocol?: 'TCP' | 'UDP';
181
+ }[];
182
+ }[];
183
+ };
184
+ /** Restrict `instance` targets to matching nodes. */
185
+ nodeSelector?: V1LabelSelector;
186
+ vpcID?: string;
187
+ multiClusterTargetGroup?: boolean;
188
+ /** Assume this role to reach a target group in another account. */
189
+ iamRoleArnToAssume?: string;
190
+ assumeRoleExternalId?: string;
191
+ }
192
+ /** Status of a `TargetGroupBinding`. */
193
+ export interface TargetGroupBindingStatus {
194
+ observedGeneration?: number;
195
+ conditions?: {
196
+ type: string;
197
+ status: string;
198
+ reason?: string;
199
+ message?: string;
200
+ }[];
201
+ }
202
+ /** Config of {@link targetGroupBinding}. */
203
+ export interface TargetGroupBindingConfig {
204
+ name: string;
205
+ namespace?: string;
206
+ spec: TargetGroupBindingSpec;
207
+ id?: string;
208
+ }
209
+ /** Spec of a cluster-scoped `elbv2.k8s.aws/v1beta1` `IngressClassParams`. */
210
+ export interface IngressClassParamsSpec {
211
+ /** Ingresses from these namespaces only may use the class. */
212
+ namespaceSelector?: V1LabelSelector;
213
+ /** Merge every Ingress of the class into one ALB. */
214
+ group?: {
215
+ name: string;
216
+ };
217
+ scheme?: 'internal' | 'internet-facing';
218
+ ipAddressType?: 'ipv4' | 'dualstack' | 'dualstack-without-public-ipv4';
219
+ targetType?: 'instance' | 'ip';
220
+ /** Subnets by ID or by tag. Otherwise the controller discovers them by tag. */
221
+ subnets?: {
222
+ ids?: string[];
223
+ tags?: Record<string, string[]>;
224
+ };
225
+ tags?: {
226
+ key: string;
227
+ value: string;
228
+ }[];
229
+ loadBalancerAttributes?: {
230
+ key: string;
231
+ value: string;
232
+ }[];
233
+ loadBalancerName?: string;
234
+ sslPolicy?: string;
235
+ certificateArn?: string[];
236
+ inboundCIDRs?: string[];
237
+ /** Managed prefix lists allowed to reach the load balancer. */
238
+ prefixListsIDs?: string[];
239
+ /** Redirect HTTP to this HTTPS port on every Ingress of the class. */
240
+ sslRedirectPort?: string;
241
+ wafv2AclArn?: string;
242
+ wafv2AclName?: string;
243
+ /** Per-listener attributes, keyed by port and protocol. */
244
+ listeners?: {
245
+ port?: number;
246
+ protocol?: string;
247
+ listenerAttributes?: {
248
+ key: string;
249
+ value: string;
250
+ }[];
251
+ }[];
252
+ /** Pre-provisioned ALB capacity. */
253
+ minimumLoadBalancerCapacity?: {
254
+ capacityUnits: number;
255
+ };
256
+ /** Take the load balancer's IPv4 addresses from an IPAM pool. */
257
+ ipamConfiguration?: {
258
+ ipv4IPAMPoolId?: string;
259
+ };
260
+ }
261
+ /** Config of {@link ingressClassParams}. */
262
+ export interface IngressClassParamsConfig {
263
+ name: string;
264
+ spec?: IngressClassParamsSpec;
265
+ id?: string;
266
+ }
267
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/factories/aws-load-balancer-controller/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ // AWS Load Balancer Controller types.
2
+ //
3
+ // Config contracts are interfaces and each ArkType schema is annotated with
4
+ // its interface, so the published declarations stay small; the schemas are
5
+ // what validates direct-mode input and generates the KRO SimpleSchema.
6
+ import { type } from 'arktype';
7
+ const imageSchema = {
8
+ 'repository?': 'string > 0',
9
+ 'tag?': 'string > 0',
10
+ 'pullPolicy?': '"Always" | "IfNotPresent" | "Never"',
11
+ };
12
+ const labelSelectorSchema = {
13
+ 'matchLabels?': 'Record<string, string>',
14
+ 'matchExpressions?': type({
15
+ key: 'string',
16
+ operator: 'string',
17
+ 'values?': 'string[]',
18
+ }).array(),
19
+ };
20
+ /** ArkType schema for {@link AwsLoadBalancerControllerBootstrapConfig}. */
21
+ export const AwsLoadBalancerControllerBootstrapConfigSchema = type({
22
+ name: 'string > 0',
23
+ 'namespace?': 'string > 0',
24
+ 'chartVersion?': 'string > 0',
25
+ clusterName: 'string > 0',
26
+ 'region?': 'string > 0',
27
+ 'vpcId?': 'string > 0',
28
+ 'replicaCount?': 'number.integer >= 1',
29
+ 'image?': imageSchema,
30
+ 'serviceAccount?': {
31
+ 'create?': 'boolean',
32
+ 'name?': 'string > 0',
33
+ 'annotations?': 'Record<string, string>',
34
+ },
35
+ // Integers only: a `number | string` union collapses to a schemaless
36
+ // `object` in KRO's SimpleSchema, which rejects a plain integer, and the
37
+ // chart passes these straight into the PDB, where a string must be a
38
+ // percentage. For a percentage, set `podDisruptionBudget` in build-time
39
+ // `values`; it becomes the default an instance's PDB replaces.
40
+ 'podDisruptionBudget?': {
41
+ 'minAvailable?': 'number.integer >= 0',
42
+ 'maxUnavailable?': 'number.integer >= 0',
43
+ },
44
+ 'topologySpreadConstraints?': type({
45
+ maxSkew: 'number.integer > 0',
46
+ topologyKey: 'string',
47
+ whenUnsatisfiable: '"DoNotSchedule" | "ScheduleAnyway"',
48
+ 'labelSelector?': labelSelectorSchema,
49
+ 'minDomains?': 'number.integer > 0',
50
+ 'matchLabelKeys?': 'string[]',
51
+ 'nodeAffinityPolicy?': '"Honor" | "Ignore"',
52
+ 'nodeTaintsPolicy?': '"Honor" | "Ignore"',
53
+ }).array(),
54
+ 'enableServiceMutatorWebhook?': 'boolean',
55
+ 'createIngressClassResource?': 'boolean',
56
+ 'ingressClass?': 'string > 0',
57
+ 'defaultTargetType?': '"ip" | "instance"',
58
+ 'resources?': {
59
+ 'limits?': 'Record<string, string>',
60
+ 'requests?': 'Record<string, string>',
61
+ },
62
+ 'nodeSelector?': 'Record<string, string>',
63
+ 'tolerations?': type({
64
+ 'key?': 'string',
65
+ 'operator?': '"Exists" | "Equal"',
66
+ 'value?': 'string',
67
+ 'effect?': '"NoSchedule" | "PreferNoSchedule" | "NoExecute"',
68
+ 'tolerationSeconds?': 'number.integer',
69
+ }).array(),
70
+ 'logLevel?': '"info" | "debug"',
71
+ });
72
+ /** ArkType schema for {@link AwsLoadBalancerControllerBootstrapStatus}. */
73
+ export const AwsLoadBalancerControllerBootstrapStatusSchema = type({
74
+ ready: 'boolean',
75
+ failed: 'boolean',
76
+ phase: '"Ready" | "Installing" | "Failed"',
77
+ version: 'string',
78
+ });
79
+ export const AwsLoadBalancerControllerHelmRepositorySingletonSpecSchema = type({ name: 'string > 0', namespace: 'string > 0', url: 'string > 0' });
80
+ export const AwsLoadBalancerControllerHelmRepositorySingletonStatusSchema = type({ ready: 'boolean' });
81
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/factories/aws-load-balancer-controller/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AAQvE,OAAO,EAAa,IAAI,EAAE,MAAM,SAAS,CAAC;AAkF1C,MAAM,WAAW,GAAG;IAClB,aAAa,EAAE,YAAY;IAC3B,MAAM,EAAE,YAAY;IACpB,aAAa,EAAE,qCAAqC;CAC5C,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,cAAc,EAAE,wBAAwB;IACxC,mBAAmB,EAAE,IAAI,CAAC;QACxB,GAAG,EAAE,QAAQ;QACb,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,UAAU;KACtB,CAAC,CAAC,KAAK,EAAE;CACF,CAAC;AAEX,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8CAA8C,GACzD,IAAI,CAAC;IACH,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,YAAY;IAC1B,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,YAAY;IACzB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,YAAY;IACtB,eAAe,EAAE,qBAAqB;IACtC,QAAQ,EAAE,WAAW;IACrB,iBAAiB,EAAE;QACjB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,YAAY;QACrB,cAAc,EAAE,wBAAwB;KACzC;IACD,qEAAqE;IACrE,yEAAyE;IACzE,qEAAqE;IACrE,wEAAwE;IACxE,+DAA+D;IAC/D,sBAAsB,EAAE;QACtB,eAAe,EAAE,qBAAqB;QACtC,iBAAiB,EAAE,qBAAqB;KACzC;IACD,4BAA4B,EAAE,IAAI,CAAC;QACjC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,QAAQ;QACrB,iBAAiB,EAAE,oCAAoC;QACvD,gBAAgB,EAAE,mBAAmB;QACrC,aAAa,EAAE,oBAAoB;QACnC,iBAAiB,EAAE,UAAU;QAC7B,qBAAqB,EAAE,oBAAoB;QAC3C,mBAAmB,EAAE,oBAAoB;KAC1C,CAAC,CAAC,KAAK,EAAE;IACV,8BAA8B,EAAE,SAAS;IACzC,6BAA6B,EAAE,SAAS;IACxC,eAAe,EAAE,YAAY;IAC7B,oBAAoB,EAAE,mBAAmB;IACzC,YAAY,EAAE;QACZ,SAAS,EAAE,wBAAwB;QACnC,WAAW,EAAE,wBAAwB;KACtC;IACD,eAAe,EAAE,wBAAwB;IACzC,cAAc,EAAE,IAAI,CAAC;QACnB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE,oBAAoB;QACjC,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,iDAAiD;QAC5D,oBAAoB,EAAE,gBAAgB;KACvC,CAAC,CAAC,KAAK,EAAE;IACV,WAAW,EAAE,kBAAkB;CAChC,CAAC,CAAC;AAEL,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8CAA8C,GACzD,IAAI,CAAC;IACH,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,mCAAmC;IAC1C,OAAO,EAAE,QAAQ;CAClB,CAAC,CAAC;AA+CL,MAAM,CAAC,MAAM,0DAA0D,GACrE,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,4DAA4D,GAEpE,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { AwsLoadBalancerControllerBootstrapConfig } from '../types.js';
2
+ /**
3
+ * Reject build-time `values` that set a chart value the spec maps, at any
4
+ * depth (`image.tag` falls under the spec's `image`).
5
+ *
6
+ * @throws {ValidationError} naming the spec field to use instead.
7
+ */
8
+ export declare function assertAwsLoadBalancerControllerBuildTimeValues(values: Record<string, unknown> | undefined): void;
9
+ /**
10
+ * Map the bootstrap spec to `aws-load-balancer-controller` chart values.
11
+ *
12
+ * Works on a concrete spec (direct mode) and on the schema proxy (KRO mode).
13
+ * `values` is a concrete, build-time overlay for chart settings the spec does
14
+ * not map; setting one the spec maps throws (see
15
+ * {@link assertAwsLoadBalancerControllerBuildTimeValues}). Its
16
+ * `podDisruptionBudget` replaces the TypeKro default PDB, and an instance's own
17
+ * `spec.podDisruptionBudget` replaces either one whole, so its two exclusive
18
+ * fields never combine. Both modes render the same result.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * mapAwsLoadBalancerControllerConfigToHelmValues({ name: 'lbc', clusterName: 'prod' });
23
+ * // { clusterName: 'prod', defaultTargetType: 'ip', keepTLSSecret: true, ... }
24
+ * ```
25
+ */
26
+ export declare function mapAwsLoadBalancerControllerConfigToHelmValues(config: AwsLoadBalancerControllerBootstrapConfig, values?: Record<string, unknown>): Record<string, unknown>;
27
+ //# sourceMappingURL=helm-values-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.d.ts","sourceRoot":"","sources":["../../../../src/factories/aws-load-balancer-controller/utils/helm-values-mapper.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,aAAa,CAAC;AA+D5E;;;;;GAKG;AACH,wBAAgB,8CAA8C,CAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,IAAI,CA8BN;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,8CAA8C,CAC5D,MAAM,EAAE,wCAAwC,EAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8CzB"}
@@ -0,0 +1,171 @@
1
+ import { isMergeableValuesObject } from '../../../core/aspects/values-merge.js';
2
+ import { ValidationError } from '../../../core/errors.js';
3
+ import { Cel } from '../../../core/references/cel.js';
4
+ import { isCelExpression, isKubernetesRef } from '../../../utils/type-guards.js';
5
+ import { DEFAULT_AWS_LBC_NAME } from '../constants.js';
6
+ // In KRO mode every optional spec field is a schema proxy, and a proxy is
7
+ // truthy, never `undefined`. So the mapper never branches on a spec value and
8
+ // never spreads one. It places each field into the values tree as-is: the
9
+ // serializer renders an unset optional field as `omit()`, which leaves the
10
+ // chart's own default in place. Where TypeKro's default differs from the
11
+ // chart's, `Cel.default` applies it (plain `??` for concrete direct values).
12
+ // Drop `undefined` leaves and empty objects from a concrete tree. Graph values
13
+ // (schema references and CEL expressions) are kept whole.
14
+ function prune(value) {
15
+ if (value === null ||
16
+ typeof value !== 'object' ||
17
+ Array.isArray(value) ||
18
+ isKubernetesRef(value) ||
19
+ isCelExpression(value)) {
20
+ return value;
21
+ }
22
+ const pruned = {};
23
+ for (const [key, child] of Object.entries(value)) {
24
+ const next = prune(child);
25
+ if (next !== undefined)
26
+ pruned[key] = next;
27
+ }
28
+ return Object.keys(pruned).length > 0 ? pruned : undefined;
29
+ }
30
+ // Chart values the spec maps, named by their chart path, which is also the
31
+ // spec field that feeds them. Build-time `values` may not set these: a KRO
32
+ // instance's value is a schema reference the overlay could only replace, so
33
+ // an overlay would silently drop what the instance sets (an IRSA role
34
+ // annotation, a private image repository), in direct mode as well to keep the
35
+ // two modes alike. `podDisruptionBudget` is handled separately below.
36
+ const SPEC_MAPPED_VALUES = new Set([
37
+ 'clusterName',
38
+ 'region',
39
+ 'vpcId',
40
+ 'replicaCount',
41
+ 'image',
42
+ 'serviceAccount.create',
43
+ 'serviceAccount.name',
44
+ 'serviceAccount.annotations',
45
+ 'topologySpreadConstraints',
46
+ 'enableServiceMutatorWebhook',
47
+ 'createIngressClassResource',
48
+ 'ingressClass',
49
+ 'defaultTargetType',
50
+ 'resources',
51
+ 'nodeSelector',
52
+ 'tolerations',
53
+ 'logLevel',
54
+ ]);
55
+ // A section the mapper builds field by field. An overlay may add the fields
56
+ // the spec does not map (e.g. `serviceAccount.automountServiceAccountToken`).
57
+ const MAPPER_SECTION = 'serviceAccount';
58
+ function isUnsafeKey(key) {
59
+ return key === '__proto__' || key === 'constructor' || key === 'prototype';
60
+ }
61
+ /**
62
+ * Reject build-time `values` that set a chart value the spec maps, at any
63
+ * depth (`image.tag` falls under the spec's `image`).
64
+ *
65
+ * @throws {ValidationError} naming the spec field to use instead.
66
+ */
67
+ export function assertAwsLoadBalancerControllerBuildTimeValues(values) {
68
+ if (!values)
69
+ return;
70
+ const conflicts = [];
71
+ for (const [key, value] of Object.entries(values)) {
72
+ if (isUnsafeKey(key))
73
+ continue;
74
+ if (key === MAPPER_SECTION) {
75
+ if (!isMergeableValuesObject(value)) {
76
+ conflicts.push(key);
77
+ continue;
78
+ }
79
+ for (const field of Object.keys(value)) {
80
+ if (SPEC_MAPPED_VALUES.has(`${key}.${field}`))
81
+ conflicts.push(`${key}.${field}`);
82
+ }
83
+ }
84
+ else if (SPEC_MAPPED_VALUES.has(key)) {
85
+ conflicts.push(key);
86
+ }
87
+ }
88
+ if (conflicts.length === 0)
89
+ return;
90
+ const paths = conflicts.map((path) => `values.${path}`).join(', ');
91
+ throw new ValidationError(`AWS Load Balancer Controller build-time ${paths} ${conflicts.length === 1 ? 'sets a chart value' : 'set chart values'} the spec maps. ` +
92
+ 'Set it through the spec instead (' +
93
+ conflicts.map((path) => `spec.${path}`).join(', ') +
94
+ "): build-time values cannot merge with an instance's spec, and replacing it would " +
95
+ 'drop what the instance sets, such as an IRSA role annotation or a private image repository.', 'AwsLoadBalancerControllerBootstrap', 'values', `values.${conflicts[0]}`, conflicts.map((path) => `Move values.${path} to spec.${path}.`));
96
+ }
97
+ // Lay the checked overlay over the mapped values: new keys are added, and the
98
+ // service-account section takes the overlay's extra fields.
99
+ function applyOverlay(base, overlay) {
100
+ const merged = { ...base };
101
+ for (const [key, value] of Object.entries(overlay)) {
102
+ if (isUnsafeKey(key))
103
+ continue;
104
+ const current = merged[key];
105
+ merged[key] =
106
+ key === MAPPER_SECTION && isMergeableValuesObject(current) && isMergeableValuesObject(value)
107
+ ? applyOverlay(current, value)
108
+ : value;
109
+ }
110
+ return merged;
111
+ }
112
+ /**
113
+ * Map the bootstrap spec to `aws-load-balancer-controller` chart values.
114
+ *
115
+ * Works on a concrete spec (direct mode) and on the schema proxy (KRO mode).
116
+ * `values` is a concrete, build-time overlay for chart settings the spec does
117
+ * not map; setting one the spec maps throws (see
118
+ * {@link assertAwsLoadBalancerControllerBuildTimeValues}). Its
119
+ * `podDisruptionBudget` replaces the TypeKro default PDB, and an instance's own
120
+ * `spec.podDisruptionBudget` replaces either one whole, so its two exclusive
121
+ * fields never combine. Both modes render the same result.
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * mapAwsLoadBalancerControllerConfigToHelmValues({ name: 'lbc', clusterName: 'prod' });
126
+ * // { clusterName: 'prod', defaultTargetType: 'ip', keepTLSSecret: true, ... }
127
+ * ```
128
+ */
129
+ export function mapAwsLoadBalancerControllerConfigToHelmValues(config, values) {
130
+ assertAwsLoadBalancerControllerBuildTimeValues(values);
131
+ const { podDisruptionBudget: overlayPdb, ...overlay } = values ?? {};
132
+ const mapped = {
133
+ clusterName: config.clusterName,
134
+ region: config.region,
135
+ vpcId: config.vpcId,
136
+ replicaCount: config.replicaCount,
137
+ image: config.image,
138
+ serviceAccount: {
139
+ create: Cel.default(config.serviceAccount?.create, true),
140
+ // Pinned rather than derived from the release name, so the IRSA trust
141
+ // policy or Pod Identity association has a name that cannot drift.
142
+ name: Cel.default(config.serviceAccount?.name, DEFAULT_AWS_LBC_NAME),
143
+ annotations: config.serviceAccount?.annotations,
144
+ },
145
+ // The chart renders a PDB only above one replica, and its default is none.
146
+ // A build-time PDB (say a percentage, which the integer-only spec field
147
+ // cannot express) replaces TypeKro's default; an instance's own PDB
148
+ // replaces either one whole.
149
+ podDisruptionBudget: Cel.default(config.podDisruptionBudget, (overlayPdb ?? { maxUnavailable: 1 })),
150
+ topologySpreadConstraints: config.topologySpreadConstraints,
151
+ // Off by default: the webhook makes this controller claim every new
152
+ // `type: LoadBalancer` Service, including ones another controller owns.
153
+ enableServiceMutatorWebhook: Cel.default(config.enableServiceMutatorWebhook, false),
154
+ createIngressClassResource: config.createIngressClassResource,
155
+ ingressClass: config.ingressClass,
156
+ // `ip` targets pods directly (VPC CNI); the chart's `instance` default
157
+ // routes through NodePorts.
158
+ defaultTargetType: Cel.default(config.defaultTargetType, 'ip'),
159
+ resources: config.resources,
160
+ nodeSelector: config.nodeSelector,
161
+ tolerations: config.tolerations,
162
+ logLevel: config.logLevel,
163
+ // The chart regenerates the self-signed webhook certificate on every
164
+ // upgrade unless told to keep it, which briefly breaks the webhooks while
165
+ // the new CA bundle propagates.
166
+ keepTLSSecret: true,
167
+ };
168
+ const pruned = (prune(mapped) ?? {});
169
+ return applyOverlay(pruned, overlay);
170
+ }
171
+ //# sourceMappingURL=helm-values-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm-values-mapper.js","sourceRoot":"","sources":["../../../../src/factories/aws-load-balancer-controller/utils/helm-values-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { mapAwsLoadBalancerControllerConfigToHelmValues } from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/aws-load-balancer-controller/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8CAA8C,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { mapAwsLoadBalancerControllerConfigToHelmValues } from './helm-values-mapper.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/aws-load-balancer-controller/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8CAA8C,EAAE,MAAM,yBAAyB,CAAC"}
@@ -24,16 +24,18 @@ import { CertManagerBootstrapConfigSchema, CertManagerBootstrapStatusSchema } fr
24
24
  * name: 'cert-manager',
25
25
  * namespace: 'cert-manager',
26
26
  * version: '1.19.3',
27
- * installCRDs: true,
27
+ * crds: { enabled: true, keep: true },
28
+ * replicaCount: 2,
28
29
  * controller: {
29
30
  * resources: {
30
31
  * requests: { cpu: '100m', memory: '128Mi' },
31
32
  * limits: { cpu: '500m', memory: '512Mi' }
32
- * }
33
+ * },
34
+ * podDisruptionBudget: { enabled: true }
33
35
  * },
34
36
  * webhook: {
35
- * enabled: true,
36
- * replicaCount: 2
37
+ * replicaCount: 2,
38
+ * podDisruptionBudget: { enabled: true }
37
39
  * },
38
40
  * prometheus: {
39
41
  * enabled: true,
@@ -1 +1 @@
1
- {"version":3,"file":"cert-manager-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/cert-manager/compositions/cert-manager-bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAK7E,OAAO,EAEL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CACpD,OAAO,gCAAgC,CAAC,KAAK,EAC7C,OAAO,gCAAgC,CAAC,KAAK,CA4Q9C,CAAC"}
1
+ {"version":3,"file":"cert-manager-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/cert-manager/compositions/cert-manager-bootstrap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,EAEL,gCAAgC,EAChC,gCAAgC,EACjC,MAAM,aAAa,CAAC;AAOrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAAmB,CACpD,OAAO,gCAAgC,CAAC,KAAK,EAC7C,OAAO,gCAAgC,CAAC,KAAK,CA4E9C,CAAC"}