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
@@ -1,38 +1,3 @@
1
- /**
2
- * `traefikBootstrap` — the composition that stands Traefik up as a cluster edge.
3
- *
4
- * It owns the whole install: the (optional) namespace, the Flux `HelmRelease`,
5
- * the entrypoint `Service`, and optionally the cluster-default
6
- * `TLSOption`/`TLSStore`. The shared chart `HelmRepository` is delegated to a
7
- * singleton composition so one instance's teardown cannot break another's
8
- * chart source.
9
- *
10
- * **Why the entrypoint Service is owned rather than observed.** The status
11
- * contract publishes the edge's load-balancer address, which means projecting
12
- * the entrypoint Service's `status.loadBalancer`. A projection requires the
13
- * resource to be in the graph. Observing the chart-created Service instead
14
- * (`observedResource`) made every FRESH direct deployment fail: the direct
15
- * engine resolves external references before it applies anything, so it read a
16
- * `Service` that the release had not created yet and treated the `404` as
17
- * fatal — and `dependsOn` cannot reorder that, because the read happens before
18
- * the dependency graph is walked. So the chart's Service is disabled through
19
- * values and this composition creates a typed one selecting the chart's pods.
20
- * The graph therefore has no external reference to any Kubernetes API object.
21
- *
22
- * **Build-time vs runtime.** Options that decide WHICH resources exist — the
23
- * namespace lifecycle, the default TLS resources, the `web` → `websecure`
24
- * redirect, raw chart values — are arguments to {@link makeTraefikBootstrap}
25
- * and are always concrete, so plain JavaScript branches on them are safe. The
26
- * runtime spec carries only values, which may arrive as schema references in
27
- * KRO mode and are therefore only ever placed into the values tree, never
28
- * branched on. This is the ClickStack convention.
29
- *
30
- * @security The dashboard and the insecure API are not reachable through this
31
- * contract: the spec's `dashboard` field is typed as the literal `false`, and
32
- * `mapTraefikConfigToHelmValues` pins `api.dashboard`, `api.insecure`,
33
- * `api.debug` and the dashboard `IngressRoute` off after every other values
34
- * source has been merged.
35
- */
36
1
  import type { CallableComposition } from '../../../core/types/deployment.js';
37
2
  import { type TraefikBootstrapBuildOptions, TraefikBootstrapConfigSchema, TraefikBootstrapStatusSchema } from '../types.js';
38
3
  /**
@@ -103,22 +68,64 @@ export declare const traefikBootstrap: CallableComposition<{
103
68
  service?: {
104
69
  type?: "ClusterIP" | "NodePort" | "LoadBalancer";
105
70
  annotations?: Record<string, string>;
71
+ loadBalancerClass?: string;
72
+ externalTrafficPolicy?: "Cluster" | "Local";
73
+ loadBalancerSourceRanges?: string[];
106
74
  };
107
75
  entrypoints?: {
108
76
  web?: {
77
+ aliasHeadersStrategy?: "delete" | "reject" | "keep";
78
+ requestAcceptGraceTimeout?: string;
79
+ graceTimeOut?: string;
80
+ proxyProtocol?: {
81
+ trustedIPs: string[];
82
+ };
83
+ forwardedHeaders?: {
84
+ trustedIPs: string[];
85
+ };
109
86
  exposedPort?: number;
110
87
  };
111
88
  websecure?: {
112
- exposedPort?: number;
113
89
  readTimeout?: string;
114
90
  writeTimeout?: string;
115
91
  idleTimeout?: string;
92
+ aliasHeadersStrategy?: "delete" | "reject" | "keep";
93
+ requestAcceptGraceTimeout?: string;
94
+ graceTimeOut?: string;
95
+ proxyProtocol?: {
96
+ trustedIPs: string[];
97
+ };
98
+ forwardedHeaders?: {
99
+ trustedIPs: string[];
100
+ };
101
+ exposedPort?: number;
116
102
  };
117
103
  };
118
104
  providers?: {
119
105
  crd?: boolean;
120
106
  gatewayApi?: boolean;
121
107
  kubernetesIngress?: boolean;
108
+ allowEmptyServices?: boolean;
109
+ namespaces?: string[];
110
+ allowCrossNamespace?: boolean;
111
+ };
112
+ terminationGracePeriodSeconds?: number;
113
+ podDisruptionBudget?: {
114
+ enabled?: boolean;
115
+ maxUnavailable?: number;
116
+ };
117
+ scheduling?: {
118
+ nodeSelector?: Record<string, string>;
119
+ tolerations?: {
120
+ key?: string;
121
+ operator?: "Exists" | "Equal";
122
+ value?: string;
123
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute";
124
+ tolerationSeconds?: number;
125
+ }[];
126
+ priorityClassName?: string;
127
+ zoneSpread?: "DoNotSchedule" | "ScheduleAnyway";
128
+ nodeSpread?: "DoNotSchedule" | "ScheduleAnyway";
122
129
  };
123
130
  accessLogs?: boolean;
124
131
  logLevel?: "ERROR" | "TRACE" | "WARN" | "INFO" | "DEBUG" | "FATAL" | "PANIC";
@@ -1 +1 @@
1
- {"version":3,"file":"traefik-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAoB7E,OAAO,EACL,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAuErB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,4BAAiC,GACzC,mBAAmB,CACpB,OAAO,4BAA4B,CAAC,KAAK,EACzC,OAAO,4BAA4B,CAAC,KAAK,CAC1C,CA0LA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAC"}
1
+ {"version":3,"file":"traefik-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAoB7E,OAAO,EACL,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,aAAa,CAAC;AAyErB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,4BAAiC,GACzC,mBAAmB,CACpB,OAAO,4BAA4B,CAAC,KAAK,EACzC,OAAO,4BAA4B,CAAC,KAAK,CAC1C,CA4NA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyB,CAAC"}
@@ -1,38 +1,36 @@
1
- /**
2
- * `traefikBootstrap` — the composition that stands Traefik up as a cluster edge.
3
- *
4
- * It owns the whole install: the (optional) namespace, the Flux `HelmRelease`,
5
- * the entrypoint `Service`, and optionally the cluster-default
6
- * `TLSOption`/`TLSStore`. The shared chart `HelmRepository` is delegated to a
7
- * singleton composition so one instance's teardown cannot break another's
8
- * chart source.
9
- *
10
- * **Why the entrypoint Service is owned rather than observed.** The status
11
- * contract publishes the edge's load-balancer address, which means projecting
12
- * the entrypoint Service's `status.loadBalancer`. A projection requires the
13
- * resource to be in the graph. Observing the chart-created Service instead
14
- * (`observedResource`) made every FRESH direct deployment fail: the direct
15
- * engine resolves external references before it applies anything, so it read a
16
- * `Service` that the release had not created yet and treated the `404` as
17
- * fatal — and `dependsOn` cannot reorder that, because the read happens before
18
- * the dependency graph is walked. So the chart's Service is disabled through
19
- * values and this composition creates a typed one selecting the chart's pods.
20
- * The graph therefore has no external reference to any Kubernetes API object.
21
- *
22
- * **Build-time vs runtime.** Options that decide WHICH resources exist — the
23
- * namespace lifecycle, the default TLS resources, the `web` → `websecure`
24
- * redirect, raw chart values — are arguments to {@link makeTraefikBootstrap}
25
- * and are always concrete, so plain JavaScript branches on them are safe. The
26
- * runtime spec carries only values, which may arrive as schema references in
27
- * KRO mode and are therefore only ever placed into the values tree, never
28
- * branched on. This is the ClickStack convention.
29
- *
30
- * @security The dashboard and the insecure API are not reachable through this
31
- * contract: the spec's `dashboard` field is typed as the literal `false`, and
32
- * `mapTraefikConfigToHelmValues` pins `api.dashboard`, `api.insecure`,
33
- * `api.debug` and the dashboard `IngressRoute` off after every other values
34
- * source has been merged.
35
- */
1
+ // `traefikBootstrap` — the composition that stands Traefik up as a cluster edge.
2
+ //
3
+ // It owns the whole install: the (optional) namespace, the Flux `HelmRelease`,
4
+ // the entrypoint `Service`, and optionally the cluster-default
5
+ // `TLSOption`/`TLSStore`. The shared chart `HelmRepository` is delegated to a
6
+ // singleton composition so one instance's teardown cannot break another's
7
+ // chart source.
8
+ //
9
+ // **Why the entrypoint Service is owned rather than observed.** The status
10
+ // contract publishes the edge's load-balancer address, which means projecting
11
+ // the entrypoint Service's `status.loadBalancer`. A projection requires the
12
+ // resource to be in the graph. Observing the chart-created Service instead
13
+ // (`observedResource`) made every FRESH direct deployment fail: the direct
14
+ // engine resolves external references before it applies anything, so it read a
15
+ // `Service` that the release had not created yet and treated the `404` as
16
+ // fatal — and `dependsOn` cannot reorder that, because the read happens before
17
+ // the dependency graph is walked. So the chart's Service is disabled through
18
+ // values and this composition creates a typed one selecting the chart's pods.
19
+ // The graph therefore has no external reference to any Kubernetes API object.
20
+ //
21
+ // **Build-time vs runtime.** Options that decide WHICH resources exist — the
22
+ // namespace lifecycle, the default TLS resources, the `web` → `websecure`
23
+ // redirect, raw chart values — are arguments to {@link makeTraefikBootstrap}
24
+ // and are always concrete, so plain JavaScript branches on them are safe. The
25
+ // runtime spec carries only values, which may arrive as schema references in
26
+ // KRO mode and are therefore only ever placed into the values tree, never
27
+ // branched on. This is the ClickStack convention.
28
+ //
29
+ // @security The dashboard and the insecure API are not reachable through this
30
+ // contract: the spec's `dashboard` field is typed as the literal `false`, and
31
+ // `mapTraefikConfigToHelmValues` pins `api.dashboard`, `api.insecure`,
32
+ // `api.debug` and the dashboard `IngressRoute` off after every other values
33
+ // source has been merged.
36
34
  import { kubernetesComposition } from '../../../core/composition/imperative.js';
37
35
  import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
38
36
  import { Cel } from '../../../core/references/cel.js';
@@ -42,9 +40,10 @@ import { namespace } from '../../kubernetes/core/namespace.js';
42
40
  import { service } from '../../kubernetes/networking/service.js';
43
41
  import { DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_CRDS_POLICY, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_REPOSITORY_NAME, DEFAULT_TRAEFIK_REPOSITORY_URL, DEFAULT_TRAEFIK_WEB_PORT, DEFAULT_TRAEFIK_WEBSECURE_PORT, TRAEFIK_DEFAULT_TLS_OPTION_NAME, TRAEFIK_DEFAULT_TLS_STORE_NAME, TRAEFIK_POD_NAME_LABEL_VALUE, TRAEFIK_WEB_ENTRYPOINT, TRAEFIK_WEBSECURE_ENTRYPOINT, } from '../constants.js';
44
42
  import { traefikHelmRelease } from '../resources/helm.js';
45
- import { traefikTLSOption, traefikTLSStore } from '../resources/tls.js';
43
+ import { traefikTLSOption, traefikTLSStore, traefikTlsCertificate } from '../resources/tls.js';
46
44
  import { TraefikBootstrapConfigSchema, TraefikBootstrapStatusSchema, } from '../types.js';
47
- import { mapTraefikConfigToHelmValues, traefikEntrypointServiceType, } from '../utils/helm-values-mapper.js';
45
+ import { mapTraefikConfigToHelmValues, traefikEntrypointServiceLoadBalancer, traefikEntrypointServiceType, } from '../utils/helm-values-mapper.js';
46
+ import { traefikProxyTrustSchemaFieldValidations } from '../utils/proxy-trust.js';
48
47
  import { traefikHelmRepositoryBootstrap } from './traefik-helm-repository.js';
49
48
  /**
50
49
  * CEL reading one field of the first load-balancer address the entrypoint
@@ -138,6 +137,7 @@ export function makeTraefikBootstrap(options = {}) {
138
137
  const defaultTlsOption = options.defaultTlsOption;
139
138
  const defaultTlsStore = options.defaultTlsStore;
140
139
  const crdsPolicy = options.crds ?? DEFAULT_TRAEFIK_CRDS_POLICY;
140
+ const dangerouslyTrustAnySource = options.dangerouslyTrustAnySource ?? false;
141
141
  return kubernetesComposition({
142
142
  name: options.name ?? 'traefik-bootstrap',
143
143
  kind: options.kind ?? 'TraefikBootstrap',
@@ -171,6 +171,13 @@ export function makeTraefikBootstrap(options = {}) {
171
171
  });
172
172
  const values = mapTraefikConfigToHelmValues(spec, {
173
173
  redirectWebToWebsecure,
174
+ dangerouslyTrustAnySource,
175
+ ...(options.accessLog ? { accessLog: options.accessLog } : {}),
176
+ ...(options.plugins ? { plugins: options.plugins } : {}),
177
+ ...(options.localPlugins ? { localPlugins: options.localPlugins } : {}),
178
+ ...(options.abortOnPluginFailure === undefined
179
+ ? {}
180
+ : { abortOnPluginFailure: options.abortOnPluginFailure }),
174
181
  targetNamespace: installNamespace,
175
182
  ...(options.values ? { baseValues: options.values } : {}),
176
183
  });
@@ -211,6 +218,20 @@ export function makeTraefikBootstrap(options = {}) {
211
218
  // The TLSOption CRD arrives with the release.
212
219
  tlsOption.dependsOn(release);
213
220
  }
221
+ if (defaultTlsStore?.certificate) {
222
+ // No `dependsOn` between the two: a TLSStore whose Secret does not exist
223
+ // yet is valid, and Traefik serves its self-signed default until
224
+ // cert-manager writes it. Ordering them would hold the store back for
225
+ // the whole ACME order.
226
+ traefikTlsCertificate({
227
+ name: defaultTlsStore.certificate.name ?? defaultTlsStore.defaultCertificateSecretName,
228
+ namespace: installNamespace,
229
+ hostnames: [...defaultTlsStore.certificate.hostnames],
230
+ issuerRef: defaultTlsStore.certificate.issuerRef,
231
+ secretName: defaultTlsStore.defaultCertificateSecretName,
232
+ id: 'traefikDefaultCertificate',
233
+ });
234
+ }
214
235
  if (defaultTlsStore) {
215
236
  const tlsStore = traefikTLSStore({
216
237
  name: defaultTlsStore.name ?? TRAEFIK_DEFAULT_TLS_STORE_NAME,
@@ -247,6 +268,12 @@ export function makeTraefikBootstrap(options = {}) {
247
268
  },
248
269
  spec: {
249
270
  type: traefikEntrypointServiceType(spec),
271
+ // Present only when the spec carries them. Built outside this
272
+ // function: the composition analyzer rewrites expressions it finds in
273
+ // this body, and a conditional spread here made it re-wrap every
274
+ // mixed template in the values tree as a nested `${...}`, which KRO
275
+ // rejects.
276
+ ...traefikEntrypointServiceLoadBalancer(spec),
250
277
  // The chart stamps these two labels on the Traefik pods, and the
251
278
  // values mapper pins both of their sources (`nameOverride`,
252
279
  // `instanceLabelOverride`) so this selector is exact.
@@ -301,7 +328,12 @@ export function makeTraefikBootstrap(options = {}) {
301
328
  // a deploy-time literal here (#188).
302
329
  version: Cel.expr(chartVersionExpression('traefikHelmRelease')),
303
330
  };
304
- });
331
+ },
332
+ // The KRO-mode half of the proxy-trust check: direct mode refuses a `/0`
333
+ // range in the values mapper, KRO mode on the generated CRD.
334
+ dangerouslyTrustAnySource
335
+ ? {}
336
+ : { schemaFieldValidations: traefikProxyTrustSchemaFieldValidations() });
305
337
  }
306
338
  /**
307
339
  * The default Traefik bootstrap composition.
@@ -1 +1 @@
1
- {"version":3,"file":"traefik-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EACzB,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAEL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAS,6BAA6B,CAAC,UAAkB,EAAE,KAAwB;IACjF,MAAM,IAAI,GAAG,GAAG,UAAU,sBAAsB,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,IAAI,oCAAoC,KAAK,IAAI,CAAC;IACtE,OAAO,CACL,OAAO,IAAI,YAAY,IAAI,YAAY;QACvC,WAAW,QAAQ,WAAW,QAAQ,OAAO,KAAK,SAAS;QAC3D,MAAM,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,sBAAsB,CAAC,UAAkB;IAChD,MAAM,OAAO,GAAG,GAAG,UAAU,iBAAiB,CAAC;IAC/C,MAAM,QAAQ,GAAG,GAAG,OAAO,yCAAyC,CAAC;IACrE,OAAO,OAAO,OAAO,aAAa,QAAQ,WAAW,QAAQ,6BAA6B,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAwC,EAAE;IAK1C,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;IAC1E,MAAM,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,IAAI,CAAC;IACtE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAClD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,2BAA2B,CAAC;IAE/D,OAAO,qBAAqB,CAC1B;QACE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,mBAAmB;QACzC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,kBAAkB;QACxC,IAAI,EAAE,4BAA4B;QAClC,MAAM,EAAE,4BAA4B;KACrC,EACD,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAChF,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;QAEnF,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC;gBACR,QAAQ,EAAE;oBACR,IAAI,EAAE,gBAAgB;oBACtB,MAAM,EAAE;wBACN,wBAAwB,EAAE,4BAA4B;wBACtD,4BAA4B,EAAE,IAAI,CAAC,IAAI;wBACvC,8BAA8B,EAAE,SAAS;qBAC1C;iBACF;gBACD,EAAE,EAAE,kBAAkB;aACvB,CAAC,CAAC;QACL,CAAC;QAED,wEAAwE;QACxE,qDAAqD;QACrD,SAAS,CAAC,8BAA8B,EAAE;YACxC,EAAE,EAAE,uBAAuB;YAC3B,IAAI,EAAE;gBACJ,IAAI,EAAE,+BAA+B;gBACrC,SAAS,EAAE,sBAAsB;gBACjC,GAAG,EAAE,8BAA8B;aACpC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,4BAA4B,CAAC,IAAI,EAAE;YAChD,sBAAsB;YACtB,eAAe,EAAE,gBAAgB;YACjC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC,CAAC;QAEH,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,OAAO,GAAG,kBAAkB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,sBAAsB;YACjC,eAAe,EAAE,gBAAgB;YACjC,OAAO,EAAE,YAAY;YACrB,cAAc,EAAE,+BAA+B;YAC/C,mBAAmB,EAAE,sBAAsB;YAC3C,kEAAkE;YAClE,eAAe,EAAE,CAAC,aAAa;YAC/B,IAAI,EAAE,UAAU;YAChB,MAAM;YACN,EAAE,EAAE,oBAAoB;SACzB,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,gBAAgB,CAAC;gBACjC,IAAI,EAAE,gBAAgB,CAAC,IAAI,IAAI,+BAA+B;gBAC9D,SAAS,EAAE,gBAAgB;gBAC3B,IAAI,EAAE;oBACJ,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,GAAG,CAAC,gBAAgB,CAAC,SAAS,KAAK,SAAS;wBAC1C,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC;oBAC9C,GAAG,CAAC,gBAAgB,CAAC,YAAY;wBAC/B,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC,EAAE;wBACtD,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,gBAAgB,CAAC,gBAAgB;wBACnC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,EAAE;wBAC9D,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpF;gBACD,EAAE,EAAE,yBAAyB;aAC9B,CAAC,CAAC;YACH,8CAA8C;YAC9C,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,eAAe,CAAC;gBAC/B,IAAI,EAAE,eAAe,CAAC,IAAI,IAAI,8BAA8B;gBAC5D,SAAS,EAAE,gBAAgB;gBAC3B,IAAI,EAAE;oBACJ,kBAAkB,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,4BAA4B,EAAE;iBACjF;gBACD,EAAE,EAAE,wBAAwB;aAC7B,CAAC,CAAC;YACH,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,sEAAsE;QACtE,sDAAsD;QACtD,EAAE;QACF,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,OAAO,CAAC;YACN,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,gBAAgB;gBAC3B,MAAM,EAAE;oBACN,wBAAwB,EAAE,4BAA4B;oBACtD,4BAA4B,EAAE,IAAI,CAAC,IAAI;oBACvC,8BAA8B,EAAE,SAAS;iBAC1C;gBACD,uEAAuE;gBACvE,sEAAsE;gBACtE,2DAA2D;gBAC3D,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;aACxD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;gBACxC,iEAAiE;gBACjE,4DAA4D;gBAC5D,sDAAsD;gBACtD,QAAQ,EAAE;oBACR,wBAAwB,EAAE,4BAA4B;oBACtD,4BAA4B,EAAE,IAAI,CAAC,IAAI;iBACxC;gBACD,oEAAoE;gBACpE,mEAAmE;gBACnE,qEAAqE;gBACrE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,sBAAsB;wBAC5B,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,wBAAwB,CAAC;wBAC/E,UAAU,EAAE,sBAAsB;wBAClC,QAAQ,EAAE,KAAK;qBAChB;oBACD;wBACE,IAAI,EAAE,4BAA4B;wBAClC,IAAI,EAAE,GAAG,CAAC,OAAO,CACf,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EACxC,8BAA8B,CAC/B;wBACD,UAAU,EAAE,4BAA4B;wBACxC,QAAQ,EAAE,KAAK;qBAChB;iBACF;aACF;YACD,EAAE,EAAE,gBAAgB;SACrB,CAAC,CAAC;QACH,uEAAuE;QACvE,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,4DAA4D;QAC5D,qEAAqE;QACrE,sEAAsE;QACtE,0EAA0E;QAC1E,uDAAuD;QAEvD,MAAM,aAAa,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAE3D,OAAO;YACL,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,YAAY,EAAE;gBACZ,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAS,6BAA6B,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBACvF,EAAE,EAAE,GAAG,CAAC,IAAI,CAAS,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;aAC5E;YACD,qEAAqE;YACrE,uEAAuE;YACvE,gEAAgE;YAChE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAS,8BAA8B,CAAC;YAC7D,sEAAsE;YACtE,uEAAuE;YACvE,qCAAqC;YACrC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAS,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;SACxE,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"traefik-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/traefik/compositions/traefik-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,12 @@ export declare const TRAEFIK_WEB_ENTRYPOINT = "web";
36
36
  export declare const TRAEFIK_WEBSECURE_ENTRYPOINT = "websecure";
37
37
  /** Internal entrypoint serving `/ping`, metrics and (when enabled) the dashboard. */
38
38
  export declare const TRAEFIK_INTERNAL_ENTRYPOINT = "traefik";
39
+ /** Internal entrypoint serving Prometheus metrics. Never published by the Service. */
40
+ export declare const TRAEFIK_METRICS_ENTRYPOINT = "metrics";
41
+ /** Container port of {@link TRAEFIK_METRICS_ENTRYPOINT}, the chart's default. */
42
+ export declare const DEFAULT_TRAEFIK_METRICS_PORT = 9100;
43
+ /** Pod `terminationGracePeriodSeconds`: above the default 10s accept + 30s drain. */
44
+ export declare const DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS = 60;
39
45
  /**
40
46
  * `app.kubernetes.io/name` the chart stamps on the Traefik pods.
41
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,iBAAiB,CAAC;AAE9D,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,2BAA2B;AAC3B,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,YAAY,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,+DAA+D;AAC/D,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,mDAAmD;AACnD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,yDAAyD;AACzD,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAE7D,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,sXA0B3B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,qCAAqC;AACrC,eAAO,MAAM,6BAA6B,WAAW,CAAC;AACtD,gFAAgF;AAChF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,kDAAkD;AAClD,eAAO,MAAM,8BAA8B,qCAAqC,CAAC;AACjF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,iBAAiB,CAAC;AAE9D,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,YAAY,CAAC;AACnD,qEAAqE;AACrE,eAAO,MAAM,6BAA6B,YAAY,CAAC;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,kCAAkC,CAAC;AAE/E,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,2BAA2B;AAC3B,eAAO,MAAM,4BAA4B,cAAc,CAAC;AACxD,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,YAAY,CAAC;AACrD,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,YAAY,CAAC;AACpD,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,OAAO,CAAC;AACjD,qFAAqF;AACrF,eAAO,MAAM,yCAAyC,KAAK,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,YAAY,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,+DAA+D;AAC/D,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,mDAAmD;AACnD,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,yDAAyD;AACzD,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAE7D,8EAA8E;AAC9E,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,sXA0B3B,CAAC"}
@@ -36,6 +36,12 @@ export const TRAEFIK_WEB_ENTRYPOINT = 'web';
36
36
  export const TRAEFIK_WEBSECURE_ENTRYPOINT = 'websecure';
37
37
  /** Internal entrypoint serving `/ping`, metrics and (when enabled) the dashboard. */
38
38
  export const TRAEFIK_INTERNAL_ENTRYPOINT = 'traefik';
39
+ /** Internal entrypoint serving Prometheus metrics. Never published by the Service. */
40
+ export const TRAEFIK_METRICS_ENTRYPOINT = 'metrics';
41
+ /** Container port of {@link TRAEFIK_METRICS_ENTRYPOINT}, the chart's default. */
42
+ export const DEFAULT_TRAEFIK_METRICS_PORT = 9100;
43
+ /** Pod `terminationGracePeriodSeconds`: above the default 10s accept + 30s drain. */
44
+ export const DEFAULT_TRAEFIK_TERMINATION_GRACE_SECONDS = 60;
39
45
  /**
40
46
  * `app.kubernetes.io/name` the chart stamps on the Traefik pods.
41
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,qCAAqC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AACjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAc,CAAC;AAE9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,qFAAqF;AACrF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAE3D,yDAAyD;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,mDAAmD;AACnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AACvD,yDAAyD;AACzD,MAAM,CAAC,MAAM,wCAAwC,GAAG,IAAI,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AACzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,WAAW;IACX,WAAW;IACX,OAAO;IACP,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,QAAQ;IACR,aAAa;IACb,SAAS;IACT,SAAS;IACT,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,QAAQ;IACR,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,OAAO;IACP,aAAa;IACb,kBAAkB;CACV,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/factories/traefik/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAEzD,qCAAqC;AACrC,MAAM,CAAC,MAAM,6BAA6B,GAAG,QAAQ,CAAC;AACtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,8BAA8B,GAAG,kCAAkC,CAAC;AACjF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAc,CAAC;AAE9D,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC;AACnD,qEAAqE;AACrE,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,+BAA+B,CAAC;AAE/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAC5C,2BAA2B;AAC3B,MAAM,CAAC,MAAM,4BAA4B,GAAG,WAAW,CAAC;AACxD,qFAAqF;AACrF,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC;AACrD,sFAAsF;AACtF,MAAM,CAAC,MAAM,0BAA0B,GAAG,SAAS,CAAC;AACpD,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,qFAAqF;AACrF,MAAM,CAAC,MAAM,yCAAyC,GAAG,EAAE,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAE3D,yDAAyD;AACzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAClD,mDAAmD;AACnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AACvD,yDAAyD;AACzD,MAAM,CAAC,MAAM,wCAAwC,GAAG,IAAI,CAAC;AAE7D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AACzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW;IACX,WAAW;IACX,WAAW;IACX,OAAO;IACP,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,QAAQ;IACR,aAAa;IACb,SAAS;IACT,SAAS;IACT,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,QAAQ;IACR,WAAW;IACX,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,OAAO;IACP,aAAa;IACb,kBAAkB;CACV,CAAC"}
@@ -21,7 +21,7 @@ export type TraefikResourceConfig<TSpec extends object> = TraefikResourceMetadat
21
21
  readonly spec: TSpec;
22
22
  };
23
23
  /**
24
- * Readiness evaluator for a Traefik CRD.
24
+ * Readiness evaluator for a Traefik CRD: always ready, as none has a status subresource.
25
25
  *
26
26
  * **Why always-ready:** none of the `traefik.io/v1alpha1` kinds
27
27
  * (`IngressRoute`, `IngressRouteTCP`, `Middleware`, `TLSOption`, `TLSStore`,
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { createAlwaysReadyEvaluator } from '../../../core/readiness/evaluator-factories.js';
8
8
  /**
9
- * Readiness evaluator for a Traefik CRD.
9
+ * Readiness evaluator for a Traefik CRD: always ready, as none has a status subresource.
10
10
  *
11
11
  * **Why always-ready:** none of the `traefik.io/v1alpha1` kinds
12
12
  * (`IngressRoute`, `IngressRouteTCP`, `Middleware`, `TLSOption`, `TLSStore`,
@@ -1 +1 @@
1
- {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU9E,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,CAAC,wBAAwB,CAAC,GAC3C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CA0DjE"}
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAU9E,OAAO,KAAK,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAKrB;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,EAAE,kBAAkB,CAAC,OAAO,CAC/B,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,GAC9C,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAcpD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,CAAC,wBAAwB,CAAC,GAC3C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CA8DjE"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { DEFAULT_FLUX_NAMESPACE } from '../../../core/config/defaults.js';
10
10
  import { createHelmRepositoryReadinessEvaluator, } from '../../helm/helm-repository.js';
11
+ import { helmReleaseLifecycle } from '../../helm/lifecycle.js';
11
12
  import { createLabeledHelmReleaseEvaluator } from '../../helm/readiness-evaluators.js';
12
13
  import { createResource } from '../../shared.js';
13
14
  import { DEFAULT_TRAEFIK_CHART_NAME, DEFAULT_TRAEFIK_CHART_VERSION, DEFAULT_TRAEFIK_CRDS_POLICY, DEFAULT_TRAEFIK_NAMESPACE, DEFAULT_TRAEFIK_REPOSITORY_NAME, DEFAULT_TRAEFIK_REPOSITORY_URL, } from '../constants.js';
@@ -110,15 +111,19 @@ export function traefikHelmRelease(config) {
110
111
  // name from moving when a caller changes the install namespace, which
111
112
  // Helm treats as a different release entirely.
112
113
  releaseName: config.name,
113
- install: {
114
- createNamespace: config.createNamespace ?? false,
115
- crds,
116
- remediation: { retries: 3 },
117
- },
118
- upgrade: {
119
- crds,
120
- remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
121
- },
114
+ // Nested install/upgrade fields override these defaults field by field,
115
+ // so `install.crds` / `upgrade.crds` can still split the shared policy.
116
+ ...helmReleaseLifecycle(config, {
117
+ install: {
118
+ createNamespace: config.createNamespace ?? false,
119
+ crds,
120
+ remediation: { retries: 3 },
121
+ },
122
+ upgrade: {
123
+ crds,
124
+ remediation: { retries: 3, remediateLastFailure: true, strategy: 'rollback' },
125
+ },
126
+ }),
122
127
  // The mapper's output is a graph-aware value tree — refs and CEL
123
128
  // expressions live inside it — so it is handed to Flux as-is. The cast
124
129
  // re-states that: `Composable<>` widens every optional branch of the
@@ -1 +1 @@
1
- {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/helm.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * almost always needs, each of which carries the secure defaults from #172.
8
8
  */
9
9
  import type { Composable, Enhanced } from '../../../core/types/index.js';
10
- import type { TraefikBufferingMiddlewareConfig, TraefikChainMiddlewareConfig, TraefikForwardAuthMiddlewareConfig, TraefikHeadersMiddlewareConfig, TraefikInFlightReqMiddlewareConfig, TraefikMiddlewareSpec, TraefikRateLimitMiddlewareConfig, TraefikRedirectSchemeMiddlewareConfig } from '../types.js';
10
+ import type { TraefikBufferingMiddlewareConfig, TraefikChainMiddlewareConfig, TraefikForwardAuthMiddlewareConfig, TraefikHeadersMiddlewareConfig, TraefikInFlightReqMiddlewareConfig, TraefikMiddlewareSpec, TraefikPluginMiddlewareConfig, TraefikRateLimitMiddlewareConfig, TraefikRedirectSchemeMiddlewareConfig } from '../types.js';
11
11
  import { type TraefikResourceConfig } from './common.js';
12
12
  import type { TraefikNoStatus } from './routing.js';
13
13
  /**
@@ -166,4 +166,38 @@ export declare function traefikBufferingMiddleware(config: Composable<TraefikBuf
166
166
  * ```
167
167
  */
168
168
  export declare function traefikChainMiddleware(config: Composable<TraefikChainMiddlewareConfig>): Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
169
+ /**
170
+ * A `Middleware` that runs a plugin declared on the bootstrap.
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * traefikPluginMiddleware({
175
+ * name: 'crowdsec-bouncer',
176
+ * namespace: 'edge',
177
+ * plugin: 'crowdsec',
178
+ * config: { enabled: true, crowdsecLapiKey: traefikSecretValue('crowdsec-bouncer', 'api-key') },
179
+ * id: 'crowdsecBouncer',
180
+ * });
181
+ * ```
182
+ */
183
+ export declare function traefikPluginMiddleware(config: Composable<TraefikPluginMiddlewareConfig>): Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
184
+ /** The three Middlewares {@link traefikForwardAuthSecurePair} creates. */
185
+ export interface TraefikForwardAuthSecurePair {
186
+ /** Removes `authResponseHeaders` from the client's request. */
187
+ readonly stripIdentityHeaders: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
188
+ readonly forwardAuth: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
189
+ /** Strip, then authorize. Reference this one from routes. */
190
+ readonly chain: Enhanced<TraefikMiddlewareSpec, TraefikNoStatus>;
191
+ }
192
+ /**
193
+ * `forwardAuth` paired with a `headers` Middleware that strips the identity
194
+ * headers from the client's request first, chained under `name`.
195
+ *
196
+ * The strip runs as `<name>-strip-identity`, the authorizer as
197
+ * `<name>-forward-auth`. Header names must be concrete.
198
+ *
199
+ * @throws {TypeKroError} `TRAEFIK_FORWARD_AUTH_INVALID` when `authRequestHeaders`
200
+ * forwards one of the `authResponseHeaders`.
201
+ */
202
+ export declare function traefikForwardAuthSecurePair(config: Composable<TraefikForwardAuthMiddlewareConfig>): TraefikForwardAuthSecurePair;
169
203
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EACV,gCAAgC,EAEhC,4BAA4B,EAE5B,kCAAkC,EAClC,8BAA8B,EAE9B,kCAAkC,EAElC,qBAAqB,EAErB,gCAAgC,EAEhC,qCAAqC,EACtC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,GAC/D,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAMlD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAYlD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAclD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAWlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,UAAU,CAAC,qCAAqC,CAAC,GACxD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAOlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,CAAC,4BAA4B,CAAC,GAC/C,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAGlD"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,KAAK,EACV,gCAAgC,EAEhC,4BAA4B,EAE5B,kCAAkC,EAClC,8BAA8B,EAE9B,kCAAkC,EAElC,qBAAqB,EACrB,6BAA6B,EAE7B,gCAAgC,EAEhC,qCAAqC,EACtC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;;GAMG;AACH,YAAY,EACV,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,aAAa,CAAC;AASrB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,GAC/D,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAMlD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAYlD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAclD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAWlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,CAAC,8BAA8B,CAAC,GACjD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,UAAU,CAAC,qCAAqC,CAAC,GACxD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAOlD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,UAAU,CAAC,gCAAgC,CAAC,GACnD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAElD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,CAAC,4BAA4B,CAAC,GAC/C,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAGlD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,UAAU,CAAC,6BAA6B,CAAC,GAChD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAKlD;AAED,0EAA0E;AAC1E,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IAChF,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;IACvE,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;CAClE;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,UAAU,CAAC,kCAAkC,CAAC,GACrD,4BAA4B,CA8C9B"}
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { createResource } from '../../shared.js';
10
10
  import { TRAEFIK_API_VERSION } from '../constants.js';
11
+ import { TypeKroError } from '../../../core/errors.js';
11
12
  import { assertTraefikMiddlewareSpec } from '../utils/middleware-validation.js';
12
13
  import { traefikResourceDefinition, traefikStatuslessReadinessEvaluator, } from './common.js';
13
14
  function middlewareResource(metadata, spec) {
@@ -213,6 +214,76 @@ export function traefikChainMiddleware(config) {
213
214
  const chain = { middlewares: [...config.middlewares] };
214
215
  return middlewareResource(metadataOf(config), { chain });
215
216
  }
217
+ /**
218
+ * A `Middleware` that runs a plugin declared on the bootstrap.
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * traefikPluginMiddleware({
223
+ * name: 'crowdsec-bouncer',
224
+ * namespace: 'edge',
225
+ * plugin: 'crowdsec',
226
+ * config: { enabled: true, crowdsecLapiKey: traefikSecretValue('crowdsec-bouncer', 'api-key') },
227
+ * id: 'crowdsecBouncer',
228
+ * });
229
+ * ```
230
+ */
231
+ export function traefikPluginMiddleware(config) {
232
+ // The plugin name is a map KEY in the spec, so it must be concrete.
233
+ return middlewareResource(metadataOf(config), {
234
+ plugin: { [config.plugin]: config.config },
235
+ });
236
+ }
237
+ /**
238
+ * `forwardAuth` paired with a `headers` Middleware that strips the identity
239
+ * headers from the client's request first, chained under `name`.
240
+ *
241
+ * The strip runs as `<name>-strip-identity`, the authorizer as
242
+ * `<name>-forward-auth`. Header names must be concrete.
243
+ *
244
+ * @throws {TypeKroError} `TRAEFIK_FORWARD_AUTH_INVALID` when `authRequestHeaders`
245
+ * forwards one of the `authResponseHeaders`.
246
+ */
247
+ export function traefikForwardAuthSecurePair(config) {
248
+ // Traefik 3.7 already replaces each `authResponseHeaders` entry with the
249
+ // authorizer's value (or removes it) on success, so the upstream never sees
250
+ // the client's. It does NOT stop the client's value reaching the authorizer:
251
+ // without an `authRequestHeaders` allowlist every client header is forwarded,
252
+ // and an authorizer that reads, logs or echoes `X-Auth-User` can be fooled.
253
+ // Stripping first closes that, and also holds for older Traefik releases and
254
+ // for anything a later middleware in the chain does with those headers.
255
+ const responseHeaders = [...config.authResponseHeaders];
256
+ const lower = new Set(responseHeaders.map((header) => header.toLowerCase()));
257
+ const forwarded = (config.authRequestHeaders ?? []).filter((header) => lower.has(header.toLowerCase()));
258
+ if (forwarded.length > 0) {
259
+ throw new TypeKroError(`forwardAuth "${String(config.name)}" forwards ${forwarded.join(', ')} to the authorizer, ` +
260
+ 'but those are identity headers it returns. They are stripped from the client request.', 'TRAEFIK_FORWARD_AUTH_INVALID', { forwarded });
261
+ }
262
+ const metadata = metadataOf(config);
263
+ const id = config.id;
264
+ const stripIdentityHeaders = traefikHeadersMiddleware({
265
+ ...metadata,
266
+ name: `${config.name}-strip-identity`,
267
+ // An empty value removes the header.
268
+ headers: {
269
+ customRequestHeaders: Object.fromEntries(responseHeaders.map((header) => [header, ''])),
270
+ },
271
+ ...(id ? { id: `${id}StripIdentity` } : {}),
272
+ });
273
+ const forwardAuth = traefikForwardAuthMiddleware({
274
+ ...config,
275
+ name: `${config.name}-forward-auth`,
276
+ ...(id ? { id: `${id}ForwardAuth` } : {}),
277
+ });
278
+ const ref = (name) => ({ name, namespace: config.namespace });
279
+ const chain = traefikChainMiddleware({
280
+ ...metadata,
281
+ middlewares: [ref(`${config.name}-strip-identity`), ref(`${config.name}-forward-auth`)],
282
+ });
283
+ chain.dependsOn(stripIdentityHeaders);
284
+ chain.dependsOn(forwardAuth);
285
+ return { stripIdentityHeaders, forwardAuth, chain };
286
+ }
216
287
  function metadataOf(config) {
217
288
  return {
218
289
  name: config.name,
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../../src/factories/traefik/resources/middleware.ts"],"names":[],"mappings":"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"}