typekro 0.3.0 → 0.4.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 (443) hide show
  1. package/README.md +142 -1054
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/alchemy/deployers.d.ts +0 -5
  4. package/dist/alchemy/deployers.d.ts.map +1 -1
  5. package/dist/alchemy/deployers.js +25 -72
  6. package/dist/alchemy/deployers.js.map +1 -1
  7. package/dist/core/composition/imperative.d.ts +2 -2
  8. package/dist/core/composition/imperative.d.ts.map +1 -1
  9. package/dist/core/composition/imperative.js +394 -10
  10. package/dist/core/composition/imperative.js.map +1 -1
  11. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts +1 -9
  12. package/dist/core/composition/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  13. package/dist/core/composition/typekro-runtime/typekro-runtime.js +76 -10
  14. package/dist/core/composition/typekro-runtime/typekro-runtime.js.map +1 -1
  15. package/dist/core/composition/typekro-runtime/types.d.ts +8 -5
  16. package/dist/core/composition/typekro-runtime/types.d.ts.map +1 -1
  17. package/dist/core/composition/typekro-runtime/types.js.map +1 -1
  18. package/dist/core/constants/brands.d.ts +20 -0
  19. package/dist/core/constants/brands.d.ts.map +1 -1
  20. package/dist/core/constants/brands.js +20 -0
  21. package/dist/core/constants/brands.js.map +1 -1
  22. package/dist/core/deployment/direct-factory.d.ts +36 -1
  23. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  24. package/dist/core/deployment/direct-factory.js +289 -4
  25. package/dist/core/deployment/direct-factory.js.map +1 -1
  26. package/dist/core/deployment/engine.d.ts +57 -2
  27. package/dist/core/deployment/engine.d.ts.map +1 -1
  28. package/dist/core/deployment/engine.js +677 -49
  29. package/dist/core/deployment/engine.js.map +1 -1
  30. package/dist/core/deployment/event-filter.d.ts.map +1 -1
  31. package/dist/core/deployment/event-filter.js +6 -7
  32. package/dist/core/deployment/event-filter.js.map +1 -1
  33. package/dist/core/deployment/event-monitor.d.ts +36 -2
  34. package/dist/core/deployment/event-monitor.d.ts.map +1 -1
  35. package/dist/core/deployment/event-monitor.js +183 -33
  36. package/dist/core/deployment/event-monitor.js.map +1 -1
  37. package/dist/core/deployment/kro-factory.d.ts +22 -0
  38. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  39. package/dist/core/deployment/kro-factory.js +291 -27
  40. package/dist/core/deployment/kro-factory.js.map +1 -1
  41. package/dist/core/deployment/readiness.d.ts.map +1 -1
  42. package/dist/core/deployment/readiness.js +4 -2
  43. package/dist/core/deployment/readiness.js.map +1 -1
  44. package/dist/core/deployment/rollback-manager.d.ts +2 -1
  45. package/dist/core/deployment/rollback-manager.d.ts.map +1 -1
  46. package/dist/core/deployment/rollback-manager.js +5 -2
  47. package/dist/core/deployment/rollback-manager.js.map +1 -1
  48. package/dist/core/deployment/shared-utilities.js.map +1 -1
  49. package/dist/core/deployment/status-hydrator.d.ts +1 -1
  50. package/dist/core/deployment/status-hydrator.d.ts.map +1 -1
  51. package/dist/core/deployment/status-hydrator.js +8 -5
  52. package/dist/core/deployment/status-hydrator.js.map +1 -1
  53. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  54. package/dist/core/deployment/strategies/base-strategy.js +60 -21
  55. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  56. package/dist/core/deployment/strategies/direct-strategy.d.ts +7 -0
  57. package/dist/core/deployment/strategies/direct-strategy.d.ts.map +1 -1
  58. package/dist/core/deployment/strategies/direct-strategy.js +50 -0
  59. package/dist/core/deployment/strategies/direct-strategy.js.map +1 -1
  60. package/dist/core/deployment/strategies/kro-strategy.d.ts +5 -0
  61. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  62. package/dist/core/deployment/strategies/kro-strategy.js +53 -4
  63. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  64. package/dist/core/evaluation/cel-optimizer.d.ts.map +1 -1
  65. package/dist/core/evaluation/cel-optimizer.js +7 -13
  66. package/dist/core/evaluation/cel-optimizer.js.map +1 -1
  67. package/dist/core/expressions/analyzer.d.ts +6 -6
  68. package/dist/core/expressions/analyzer.d.ts.map +1 -1
  69. package/dist/core/expressions/analyzer.js +40 -75
  70. package/dist/core/expressions/analyzer.js.map +1 -1
  71. package/dist/core/expressions/cel-conversion-engine.d.ts.map +1 -1
  72. package/dist/core/expressions/cel-conversion-engine.js +10 -11
  73. package/dist/core/expressions/cel-conversion-engine.js.map +1 -1
  74. package/dist/core/expressions/composition-integration.d.ts +2 -2
  75. package/dist/core/expressions/composition-integration.d.ts.map +1 -1
  76. package/dist/core/expressions/composition-integration.js +20 -12
  77. package/dist/core/expressions/composition-integration.js.map +1 -1
  78. package/dist/core/expressions/field-hydration-processor.d.ts +4 -1
  79. package/dist/core/expressions/field-hydration-processor.d.ts.map +1 -1
  80. package/dist/core/expressions/field-hydration-processor.js +12 -13
  81. package/dist/core/expressions/field-hydration-processor.js.map +1 -1
  82. package/dist/core/expressions/imperative-analyzer.d.ts.map +1 -1
  83. package/dist/core/expressions/imperative-analyzer.js +193 -49
  84. package/dist/core/expressions/imperative-analyzer.js.map +1 -1
  85. package/dist/core/expressions/index.d.ts +2 -0
  86. package/dist/core/expressions/index.d.ts.map +1 -1
  87. package/dist/core/expressions/index.js +2 -0
  88. package/dist/core/expressions/index.js.map +1 -1
  89. package/dist/core/expressions/magic-proxy-analyzer.d.ts +1 -1
  90. package/dist/core/expressions/magic-proxy-analyzer.d.ts.map +1 -1
  91. package/dist/core/expressions/magic-proxy-analyzer.js +8 -7
  92. package/dist/core/expressions/magic-proxy-analyzer.js.map +1 -1
  93. package/dist/core/expressions/parser.d.ts +163 -0
  94. package/dist/core/expressions/parser.d.ts.map +1 -0
  95. package/dist/core/expressions/parser.js +272 -0
  96. package/dist/core/expressions/parser.js.map +1 -0
  97. package/dist/core/expressions/status-builder-analyzer.d.ts.map +1 -1
  98. package/dist/core/expressions/status-builder-analyzer.js +15 -5
  99. package/dist/core/expressions/status-builder-analyzer.js.map +1 -1
  100. package/dist/core/kubernetes/api.d.ts.map +1 -1
  101. package/dist/core/kubernetes/api.js +5 -6
  102. package/dist/core/kubernetes/api.js.map +1 -1
  103. package/dist/core/kubernetes/bun-api-client.d.ts +95 -0
  104. package/dist/core/kubernetes/bun-api-client.d.ts.map +1 -0
  105. package/dist/core/kubernetes/bun-api-client.js +160 -0
  106. package/dist/core/kubernetes/bun-api-client.js.map +1 -0
  107. package/dist/core/kubernetes/bun-http-library.d.ts +38 -0
  108. package/dist/core/kubernetes/bun-http-library.d.ts.map +1 -0
  109. package/dist/core/kubernetes/bun-http-library.js +133 -0
  110. package/dist/core/kubernetes/bun-http-library.js.map +1 -0
  111. package/dist/core/kubernetes/client-provider.d.ts +3 -0
  112. package/dist/core/kubernetes/client-provider.d.ts.map +1 -1
  113. package/dist/core/kubernetes/client-provider.js +32 -23
  114. package/dist/core/kubernetes/client-provider.js.map +1 -1
  115. package/dist/core/kubernetes/errors.d.ts +189 -0
  116. package/dist/core/kubernetes/errors.d.ts.map +1 -0
  117. package/dist/core/kubernetes/errors.js +298 -0
  118. package/dist/core/kubernetes/errors.js.map +1 -0
  119. package/dist/core/kubernetes/index.d.ts +19 -0
  120. package/dist/core/kubernetes/index.d.ts.map +1 -0
  121. package/dist/core/kubernetes/index.js +23 -0
  122. package/dist/core/kubernetes/index.js.map +1 -0
  123. package/dist/core/kubernetes/type-guards.d.ts +142 -0
  124. package/dist/core/kubernetes/type-guards.d.ts.map +1 -0
  125. package/dist/core/kubernetes/type-guards.js +151 -0
  126. package/dist/core/kubernetes/type-guards.js.map +1 -0
  127. package/dist/core/logging/logger.d.ts.map +1 -1
  128. package/dist/core/logging/logger.js +8 -0
  129. package/dist/core/logging/logger.js.map +1 -1
  130. package/dist/core/readiness/cluster-state.d.ts.map +1 -1
  131. package/dist/core/readiness/cluster-state.js +6 -4
  132. package/dist/core/readiness/cluster-state.js.map +1 -1
  133. package/dist/core/references/cel-evaluator.d.ts.map +1 -1
  134. package/dist/core/references/cel-evaluator.js +12 -2
  135. package/dist/core/references/cel-evaluator.js.map +1 -1
  136. package/dist/core/references/cel.d.ts +13 -1
  137. package/dist/core/references/cel.d.ts.map +1 -1
  138. package/dist/core/references/cel.js +50 -0
  139. package/dist/core/references/cel.js.map +1 -1
  140. package/dist/core/references/resolver.d.ts +28 -1
  141. package/dist/core/references/resolver.d.ts.map +1 -1
  142. package/dist/core/references/resolver.js +325 -11
  143. package/dist/core/references/resolver.js.map +1 -1
  144. package/dist/core/references/schema-proxy.d.ts.map +1 -1
  145. package/dist/core/references/schema-proxy.js +27 -13
  146. package/dist/core/references/schema-proxy.js.map +1 -1
  147. package/dist/core/scope/resolver.d.ts +16 -0
  148. package/dist/core/scope/resolver.d.ts.map +1 -0
  149. package/dist/core/scope/resolver.js +45 -0
  150. package/dist/core/scope/resolver.js.map +1 -0
  151. package/dist/core/serialization/core.d.ts +1 -1
  152. package/dist/core/serialization/core.d.ts.map +1 -1
  153. package/dist/core/serialization/core.js +78 -54
  154. package/dist/core/serialization/core.js.map +1 -1
  155. package/dist/core/types/common.d.ts +23 -1
  156. package/dist/core/types/common.d.ts.map +1 -1
  157. package/dist/core/types/deployment.d.ts +71 -1
  158. package/dist/core/types/deployment.d.ts.map +1 -1
  159. package/dist/core/types/deployment.js +24 -0
  160. package/dist/core/types/deployment.js.map +1 -1
  161. package/dist/core/types/factory-scope.d.ts +42 -0
  162. package/dist/core/types/factory-scope.d.ts.map +1 -0
  163. package/dist/core/types/factory-scope.js +14 -0
  164. package/dist/core/types/factory-scope.js.map +1 -0
  165. package/dist/core/types/kubernetes.d.ts +146 -4
  166. package/dist/core/types/kubernetes.d.ts.map +1 -1
  167. package/dist/core/types/references.d.ts +47 -3
  168. package/dist/core/types/references.d.ts.map +1 -1
  169. package/dist/core/types/references.js.map +1 -1
  170. package/dist/core/types/serialization.d.ts +17 -6
  171. package/dist/core/types/serialization.d.ts.map +1 -1
  172. package/dist/core/utils/crd-patcher.d.ts +30 -0
  173. package/dist/core/utils/crd-patcher.d.ts.map +1 -0
  174. package/dist/core/utils/crd-patcher.js +198 -0
  175. package/dist/core/utils/crd-patcher.js.map +1 -0
  176. package/dist/core/utils/crd-schema-fix.d.ts +108 -0
  177. package/dist/core/utils/crd-schema-fix.d.ts.map +1 -0
  178. package/dist/core/utils/crd-schema-fix.js +245 -0
  179. package/dist/core/utils/crd-schema-fix.js.map +1 -0
  180. package/dist/core/utils/index.d.ts +12 -0
  181. package/dist/core/utils/index.d.ts.map +1 -0
  182. package/dist/core/utils/index.js +12 -0
  183. package/dist/core/utils/index.js.map +1 -0
  184. package/dist/core/utils/minimal-connection-reset-suppression.d.ts +16 -0
  185. package/dist/core/utils/minimal-connection-reset-suppression.d.ts.map +1 -0
  186. package/dist/core/utils/minimal-connection-reset-suppression.js +72 -0
  187. package/dist/core/utils/minimal-connection-reset-suppression.js.map +1 -0
  188. package/dist/core/utils/output-filter.d.ts +16 -0
  189. package/dist/core/utils/output-filter.d.ts.map +1 -0
  190. package/dist/core/utils/output-filter.js +90 -0
  191. package/dist/core/utils/output-filter.js.map +1 -0
  192. package/dist/core/utils/scoped-error-suppression.d.ts +25 -0
  193. package/dist/core/utils/scoped-error-suppression.d.ts.map +1 -0
  194. package/dist/core/utils/scoped-error-suppression.js +226 -0
  195. package/dist/core/utils/scoped-error-suppression.js.map +1 -0
  196. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  197. package/dist/core/validation/cel-validator.js +51 -15
  198. package/dist/core/validation/cel-validator.js.map +1 -1
  199. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts +38 -0
  200. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -0
  201. package/dist/factories/apisix/compositions/apisix-bootstrap.js +280 -0
  202. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -0
  203. package/dist/factories/apisix/compositions/index.d.ts +5 -0
  204. package/dist/factories/apisix/compositions/index.d.ts.map +1 -0
  205. package/dist/factories/apisix/compositions/index.js +5 -0
  206. package/dist/factories/apisix/compositions/index.js.map +1 -0
  207. package/dist/factories/apisix/index.d.ts +11 -0
  208. package/dist/factories/apisix/index.d.ts.map +1 -0
  209. package/dist/factories/apisix/index.js +11 -0
  210. package/dist/factories/apisix/index.js.map +1 -0
  211. package/dist/factories/apisix/resources/helm.d.ts +59 -0
  212. package/dist/factories/apisix/resources/helm.d.ts.map +1 -0
  213. package/dist/factories/apisix/resources/helm.js +175 -0
  214. package/dist/factories/apisix/resources/helm.js.map +1 -0
  215. package/dist/factories/apisix/resources/index.d.ts +5 -0
  216. package/dist/factories/apisix/resources/index.d.ts.map +1 -0
  217. package/dist/factories/apisix/resources/index.js +5 -0
  218. package/dist/factories/apisix/resources/index.js.map +1 -0
  219. package/dist/factories/apisix/types.d.ts +339 -0
  220. package/dist/factories/apisix/types.d.ts.map +1 -0
  221. package/dist/factories/apisix/types.js +88 -0
  222. package/dist/factories/apisix/types.js.map +1 -0
  223. package/dist/factories/apisix/utils/helm-values-mapper.d.ts +19 -0
  224. package/dist/factories/apisix/utils/helm-values-mapper.d.ts.map +1 -0
  225. package/dist/factories/apisix/utils/helm-values-mapper.js +108 -0
  226. package/dist/factories/apisix/utils/helm-values-mapper.js.map +1 -0
  227. package/dist/factories/apisix/utils/index.d.ts +5 -0
  228. package/dist/factories/apisix/utils/index.d.ts.map +1 -0
  229. package/dist/factories/apisix/utils/index.js +5 -0
  230. package/dist/factories/apisix/utils/index.js.map +1 -0
  231. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts +45 -0
  232. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.d.ts.map +1 -0
  233. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js +323 -0
  234. package/dist/factories/cert-manager/compositions/cert-manager-bootstrap.js.map +1 -0
  235. package/dist/factories/cert-manager/compositions/index.d.ts +2 -0
  236. package/dist/factories/cert-manager/compositions/index.d.ts.map +1 -0
  237. package/dist/factories/cert-manager/compositions/index.js +2 -0
  238. package/dist/factories/cert-manager/compositions/index.js.map +1 -0
  239. package/dist/factories/cert-manager/index.d.ts +10 -0
  240. package/dist/factories/cert-manager/index.d.ts.map +1 -0
  241. package/dist/factories/cert-manager/index.js +19 -0
  242. package/dist/factories/cert-manager/index.js.map +1 -0
  243. package/dist/factories/cert-manager/resources/certificates.d.ts +39 -0
  244. package/dist/factories/cert-manager/resources/certificates.d.ts.map +1 -0
  245. package/dist/factories/cert-manager/resources/certificates.js +132 -0
  246. package/dist/factories/cert-manager/resources/certificates.js.map +1 -0
  247. package/dist/factories/cert-manager/resources/challenges.d.ts +113 -0
  248. package/dist/factories/cert-manager/resources/challenges.d.ts.map +1 -0
  249. package/dist/factories/cert-manager/resources/challenges.js +281 -0
  250. package/dist/factories/cert-manager/resources/challenges.js.map +1 -0
  251. package/dist/factories/cert-manager/resources/helm.d.ts +57 -0
  252. package/dist/factories/cert-manager/resources/helm.d.ts.map +1 -0
  253. package/dist/factories/cert-manager/resources/helm.js +390 -0
  254. package/dist/factories/cert-manager/resources/helm.js.map +1 -0
  255. package/dist/factories/cert-manager/resources/index.d.ts +5 -0
  256. package/dist/factories/cert-manager/resources/index.d.ts.map +1 -0
  257. package/dist/factories/cert-manager/resources/index.js +6 -0
  258. package/dist/factories/cert-manager/resources/index.js.map +1 -0
  259. package/dist/factories/cert-manager/resources/issuers.d.ts +79 -0
  260. package/dist/factories/cert-manager/resources/issuers.d.ts.map +1 -0
  261. package/dist/factories/cert-manager/resources/issuers.js +204 -0
  262. package/dist/factories/cert-manager/resources/issuers.js.map +1 -0
  263. package/dist/factories/cert-manager/types.d.ts +1015 -0
  264. package/dist/factories/cert-manager/types.d.ts.map +1 -0
  265. package/dist/factories/cert-manager/types.js +198 -0
  266. package/dist/factories/cert-manager/types.js.map +1 -0
  267. package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts +19 -0
  268. package/dist/factories/cert-manager/utils/helm-values-mapper.d.ts.map +1 -0
  269. package/dist/factories/cert-manager/utils/helm-values-mapper.js +117 -0
  270. package/dist/factories/cert-manager/utils/helm-values-mapper.js.map +1 -0
  271. package/dist/factories/cert-manager/utils/index.d.ts +2 -0
  272. package/dist/factories/cert-manager/utils/index.d.ts.map +1 -0
  273. package/dist/factories/cert-manager/utils/index.js +2 -0
  274. package/dist/factories/cert-manager/utils/index.js.map +1 -0
  275. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts +220 -0
  276. package/dist/factories/cilium/compositions/cilium-bootstrap.d.ts.map +1 -0
  277. package/dist/factories/cilium/compositions/cilium-bootstrap.js +293 -0
  278. package/dist/factories/cilium/compositions/cilium-bootstrap.js.map +1 -0
  279. package/dist/factories/cilium/compositions/index.d.ts +8 -0
  280. package/dist/factories/cilium/compositions/index.d.ts.map +1 -0
  281. package/dist/factories/cilium/compositions/index.js +11 -0
  282. package/dist/factories/cilium/compositions/index.js.map +1 -0
  283. package/dist/factories/cilium/index.d.ts +10 -0
  284. package/dist/factories/cilium/index.d.ts.map +1 -0
  285. package/dist/factories/cilium/index.js +19 -0
  286. package/dist/factories/cilium/index.js.map +1 -0
  287. package/dist/factories/cilium/resources/bgp.d.ts +10 -0
  288. package/dist/factories/cilium/resources/bgp.d.ts.map +1 -0
  289. package/dist/factories/cilium/resources/bgp.js +14 -0
  290. package/dist/factories/cilium/resources/bgp.js.map +1 -0
  291. package/dist/factories/cilium/resources/gateway.d.ts +72 -0
  292. package/dist/factories/cilium/resources/gateway.d.ts.map +1 -0
  293. package/dist/factories/cilium/resources/gateway.js +118 -0
  294. package/dist/factories/cilium/resources/gateway.js.map +1 -0
  295. package/dist/factories/cilium/resources/helm.d.ts +93 -0
  296. package/dist/factories/cilium/resources/helm.d.ts.map +1 -0
  297. package/dist/factories/cilium/resources/helm.js +377 -0
  298. package/dist/factories/cilium/resources/helm.js.map +1 -0
  299. package/dist/factories/cilium/resources/index.d.ts +14 -0
  300. package/dist/factories/cilium/resources/index.d.ts.map +1 -0
  301. package/dist/factories/cilium/resources/index.js +35 -0
  302. package/dist/factories/cilium/resources/index.js.map +1 -0
  303. package/dist/factories/cilium/resources/load-balancer.d.ts +9 -0
  304. package/dist/factories/cilium/resources/load-balancer.d.ts.map +1 -0
  305. package/dist/factories/cilium/resources/load-balancer.js +12 -0
  306. package/dist/factories/cilium/resources/load-balancer.js.map +1 -0
  307. package/dist/factories/cilium/resources/networking.d.ts +202 -0
  308. package/dist/factories/cilium/resources/networking.d.ts.map +1 -0
  309. package/dist/factories/cilium/resources/networking.js +581 -0
  310. package/dist/factories/cilium/resources/networking.js.map +1 -0
  311. package/dist/factories/cilium/resources/observability.d.ts +9 -0
  312. package/dist/factories/cilium/resources/observability.d.ts.map +1 -0
  313. package/dist/factories/cilium/resources/observability.js +11 -0
  314. package/dist/factories/cilium/resources/observability.js.map +1 -0
  315. package/dist/factories/cilium/resources/security.d.ts +10 -0
  316. package/dist/factories/cilium/resources/security.d.ts.map +1 -0
  317. package/dist/factories/cilium/resources/security.js +14 -0
  318. package/dist/factories/cilium/resources/security.js.map +1 -0
  319. package/dist/factories/cilium/types.d.ts +1001 -0
  320. package/dist/factories/cilium/types.d.ts.map +1 -0
  321. package/dist/factories/cilium/types.js +79 -0
  322. package/dist/factories/cilium/types.js.map +1 -0
  323. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts +32 -0
  324. package/dist/factories/external-dns/compositions/external-dns-bootstrap.d.ts.map +1 -0
  325. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js +152 -0
  326. package/dist/factories/external-dns/compositions/external-dns-bootstrap.js.map +1 -0
  327. package/dist/factories/external-dns/compositions/index.d.ts +2 -0
  328. package/dist/factories/external-dns/compositions/index.d.ts.map +1 -0
  329. package/dist/factories/external-dns/compositions/index.js +3 -0
  330. package/dist/factories/external-dns/compositions/index.js.map +1 -0
  331. package/dist/factories/external-dns/index.d.ts +10 -0
  332. package/dist/factories/external-dns/index.d.ts.map +1 -0
  333. package/dist/factories/external-dns/index.js +19 -0
  334. package/dist/factories/external-dns/index.js.map +1 -0
  335. package/dist/factories/external-dns/resources/dns-endpoint.d.ts +54 -0
  336. package/dist/factories/external-dns/resources/dns-endpoint.d.ts.map +1 -0
  337. package/dist/factories/external-dns/resources/dns-endpoint.js +53 -0
  338. package/dist/factories/external-dns/resources/dns-endpoint.js.map +1 -0
  339. package/dist/factories/external-dns/resources/helm.d.ts +57 -0
  340. package/dist/factories/external-dns/resources/helm.d.ts.map +1 -0
  341. package/dist/factories/external-dns/resources/helm.js +435 -0
  342. package/dist/factories/external-dns/resources/helm.js.map +1 -0
  343. package/dist/factories/external-dns/resources/index.d.ts +3 -0
  344. package/dist/factories/external-dns/resources/index.d.ts.map +1 -0
  345. package/dist/factories/external-dns/resources/index.js +4 -0
  346. package/dist/factories/external-dns/resources/index.js.map +1 -0
  347. package/dist/factories/external-dns/types.d.ts +180 -0
  348. package/dist/factories/external-dns/types.d.ts.map +1 -0
  349. package/dist/factories/external-dns/types.js +39 -0
  350. package/dist/factories/external-dns/types.js.map +1 -0
  351. package/dist/factories/flux/git-repository.d.ts +2 -2
  352. package/dist/factories/flux/git-repository.d.ts.map +1 -1
  353. package/dist/factories/helm/types.d.ts +24 -3
  354. package/dist/factories/helm/types.d.ts.map +1 -1
  355. package/dist/factories/index.d.ts +7 -1
  356. package/dist/factories/index.d.ts.map +1 -1
  357. package/dist/factories/index.js +21 -1
  358. package/dist/factories/index.js.map +1 -1
  359. package/dist/factories/kubernetes/config/config-map.d.ts +4 -1
  360. package/dist/factories/kubernetes/config/config-map.d.ts.map +1 -1
  361. package/dist/factories/kubernetes/config/config-map.js +4 -0
  362. package/dist/factories/kubernetes/config/config-map.js.map +1 -1
  363. package/dist/factories/kubernetes/config/secret.d.ts +6 -1
  364. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
  365. package/dist/factories/kubernetes/config/secret.js +4 -0
  366. package/dist/factories/kubernetes/config/secret.js.map +1 -1
  367. package/dist/factories/kubernetes/networking/service.d.ts.map +1 -1
  368. package/dist/factories/kubernetes/networking/service.js +6 -1
  369. package/dist/factories/kubernetes/networking/service.js.map +1 -1
  370. package/dist/factories/kubernetes/rbac/cluster-role-binding.d.ts.map +1 -1
  371. package/dist/factories/kubernetes/rbac/cluster-role-binding.js +1 -1
  372. package/dist/factories/kubernetes/rbac/cluster-role-binding.js.map +1 -1
  373. package/dist/factories/kubernetes/rbac/cluster-role.d.ts.map +1 -1
  374. package/dist/factories/kubernetes/rbac/cluster-role.js +1 -1
  375. package/dist/factories/kubernetes/rbac/cluster-role.js.map +1 -1
  376. package/dist/factories/kubernetes/scheduling/priority-class.d.ts.map +1 -1
  377. package/dist/factories/kubernetes/scheduling/priority-class.js +1 -1
  378. package/dist/factories/kubernetes/scheduling/priority-class.js.map +1 -1
  379. package/dist/factories/kubernetes/storage/storage-class.d.ts.map +1 -1
  380. package/dist/factories/kubernetes/storage/storage-class.js +1 -1
  381. package/dist/factories/kubernetes/storage/storage-class.js.map +1 -1
  382. package/dist/factories/kubernetes/workloads/deployment.d.ts.map +1 -1
  383. package/dist/factories/kubernetes/workloads/deployment.js +9 -4
  384. package/dist/factories/kubernetes/workloads/deployment.js.map +1 -1
  385. package/dist/factories/kubernetes/yaml/yaml-directory.js +2 -2
  386. package/dist/factories/kubernetes/yaml/yaml-directory.js.map +1 -1
  387. package/dist/factories/kubernetes/yaml/yaml-file.d.ts +31 -1
  388. package/dist/factories/kubernetes/yaml/yaml-file.d.ts.map +1 -1
  389. package/dist/factories/kubernetes/yaml/yaml-file.js +80 -7
  390. package/dist/factories/kubernetes/yaml/yaml-file.js.map +1 -1
  391. package/dist/factories/pebble/compositions/index.d.ts +2 -0
  392. package/dist/factories/pebble/compositions/index.d.ts.map +1 -0
  393. package/dist/factories/pebble/compositions/index.js +3 -0
  394. package/dist/factories/pebble/compositions/index.js.map +1 -0
  395. package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts +56 -0
  396. package/dist/factories/pebble/compositions/pebble-bootstrap.d.ts.map +1 -0
  397. package/dist/factories/pebble/compositions/pebble-bootstrap.js +97 -0
  398. package/dist/factories/pebble/compositions/pebble-bootstrap.js.map +1 -0
  399. package/dist/factories/pebble/index.d.ts +10 -0
  400. package/dist/factories/pebble/index.d.ts.map +1 -0
  401. package/dist/factories/pebble/index.js +19 -0
  402. package/dist/factories/pebble/index.js.map +1 -0
  403. package/dist/factories/pebble/resources/helm.d.ts +99 -0
  404. package/dist/factories/pebble/resources/helm.d.ts.map +1 -0
  405. package/dist/factories/pebble/resources/helm.js +167 -0
  406. package/dist/factories/pebble/resources/helm.js.map +1 -0
  407. package/dist/factories/pebble/resources/index.d.ts +2 -0
  408. package/dist/factories/pebble/resources/index.d.ts.map +1 -0
  409. package/dist/factories/pebble/resources/index.js +3 -0
  410. package/dist/factories/pebble/resources/index.js.map +1 -0
  411. package/dist/factories/pebble/types.d.ts +184 -0
  412. package/dist/factories/pebble/types.d.ts.map +1 -0
  413. package/dist/factories/pebble/types.js +23 -0
  414. package/dist/factories/pebble/types.js.map +1 -0
  415. package/dist/factories/pebble/utils/helm-values-mapper.d.ts +21 -0
  416. package/dist/factories/pebble/utils/helm-values-mapper.d.ts.map +1 -0
  417. package/dist/factories/pebble/utils/helm-values-mapper.js +96 -0
  418. package/dist/factories/pebble/utils/helm-values-mapper.js.map +1 -0
  419. package/dist/factories/shared.d.ts +18 -1
  420. package/dist/factories/shared.d.ts.map +1 -1
  421. package/dist/factories/shared.js +89 -8
  422. package/dist/factories/shared.js.map +1 -1
  423. package/dist/factories/simple/config/config-map.d.ts +7 -2
  424. package/dist/factories/simple/config/config-map.d.ts.map +1 -1
  425. package/dist/factories/simple/config/config-map.js +3 -0
  426. package/dist/factories/simple/config/config-map.js.map +1 -1
  427. package/dist/factories/simple/config/secret.d.ts +11 -2
  428. package/dist/factories/simple/config/secret.d.ts.map +1 -1
  429. package/dist/factories/simple/config/secret.js +23 -1
  430. package/dist/factories/simple/config/secret.js.map +1 -1
  431. package/dist/factories/simple/storage/persistent-volume-claim.d.ts.map +1 -1
  432. package/dist/factories/simple/storage/persistent-volume-claim.js +1 -0
  433. package/dist/factories/simple/storage/persistent-volume-claim.js.map +1 -1
  434. package/dist/factories/simple/types.d.ts +5 -1
  435. package/dist/factories/simple/types.d.ts.map +1 -1
  436. package/dist/utils/helpers.d.ts.map +1 -1
  437. package/dist/utils/helpers.js +67 -0
  438. package/dist/utils/helpers.js.map +1 -1
  439. package/dist/utils/type-guards.d.ts +5 -0
  440. package/dist/utils/type-guards.d.ts.map +1 -1
  441. package/dist/utils/type-guards.js +9 -3
  442. package/dist/utils/type-guards.js.map +1 -1
  443. package/package.json +49 -5
@@ -0,0 +1,280 @@
1
+ import { kubernetesComposition } from '../../../index.js';
2
+ import { APISixBootstrapConfigSchema, APISixBootstrapStatusSchema, } from '../types.js';
3
+ import { apisixHelmRepository, apisixHelmRelease } from '../resources/helm.js';
4
+ import { mapAPISixConfigToHelmValues } from '../utils/helm-values-mapper.js';
5
+ import { namespace } from '../../kubernetes/core/namespace.js';
6
+ import { createResource } from '../../shared.js';
7
+ /**
8
+ * Helper function to ensure version has 'v' prefix for image tags if needed
9
+ */
10
+ function _ensureVersionPrefix(version) {
11
+ // APISix versions don't typically use 'v' prefix, so return as-is
12
+ return version;
13
+ }
14
+ /**
15
+ * APISix Bootstrap Composition
16
+ *
17
+ * Creates a complete APISix ingress controller deployment using HelmRepository and HelmRelease resources.
18
+ * Provides comprehensive configuration options and status expressions derived from actual resource status.
19
+ *
20
+ * Features:
21
+ * - Complete APISix deployment (gateway, ingress controller, dashboard, etcd)
22
+ * - Configurable ingress class and gateway settings
23
+ * - Production-ready defaults with customization options
24
+ * - Status expressions for monitoring deployment health
25
+ * - Integration with external-dns and cert-manager
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const apisix = apisixBootstrap({
30
+ * name: 'apisix',
31
+ * namespace: 'apisix-system',
32
+ * version: '2.8.0',
33
+ * ingressController: {
34
+ * enabled: true,
35
+ * config: {
36
+ * kubernetes: {
37
+ * ingressClass: 'apisix'
38
+ * }
39
+ * }
40
+ * },
41
+ * gateway: {
42
+ * type: 'LoadBalancer',
43
+ * http: { enabled: true, servicePort: 80 },
44
+ * https: { enabled: true, servicePort: 443 }
45
+ * }
46
+ * });
47
+ * ```
48
+ */
49
+ export const apisixBootstrap = kubernetesComposition({
50
+ name: 'apisix-bootstrap',
51
+ kind: 'APISixBootstrap',
52
+ spec: APISixBootstrapConfigSchema,
53
+ status: APISixBootstrapStatusSchema,
54
+ }, (spec) => {
55
+ // Extract actual values from spec - these may be KubernetesRef proxies during initial composition
56
+ // but will be actual values during re-execution
57
+ const specName = spec.name;
58
+ const specNamespace = spec.namespace;
59
+ const specVersion = spec.version;
60
+ // Use string coercion to get actual values from potential KubernetesRef proxies
61
+ const actualName = String(specName || 'apisix');
62
+ const actualNamespace = String(specNamespace || 'apisix-system');
63
+ const actualVersion = String(specVersion || '2.8.0');
64
+ // Apply default configuration values using actual string values
65
+ const fullConfig = {
66
+ // Basic defaults - use actual string values
67
+ name: actualName,
68
+ namespace: actualNamespace,
69
+ version: actualVersion,
70
+ installCRDs: spec.installCRDs !== undefined ? spec.installCRDs : true,
71
+ replicaCount: spec.replicaCount || 1,
72
+ // Global defaults
73
+ global: {
74
+ ...spec.global,
75
+ imagePullSecrets: spec.global?.imagePullSecrets || [],
76
+ imageRegistry: spec.global?.imageRegistry || '',
77
+ },
78
+ // Gateway defaults - enable both HTTP and HTTPS with LoadBalancer
79
+ gateway: {
80
+ ...spec.gateway,
81
+ type: spec.gateway?.type || 'LoadBalancer',
82
+ http: {
83
+ enabled: spec.gateway?.http?.enabled !== undefined ? spec.gateway.http.enabled : true,
84
+ servicePort: spec.gateway?.http?.servicePort || 80,
85
+ containerPort: spec.gateway?.http?.containerPort || 9080,
86
+ },
87
+ https: {
88
+ enabled: spec.gateway?.https?.enabled !== undefined ? spec.gateway.https.enabled : true,
89
+ servicePort: spec.gateway?.https?.servicePort || 443,
90
+ containerPort: spec.gateway?.https?.containerPort || 9443,
91
+ },
92
+ },
93
+ // Ingress Controller defaults
94
+ ingressController: {
95
+ ...spec.ingressController,
96
+ enabled: spec.ingressController?.enabled !== undefined ? spec.ingressController.enabled : true,
97
+ extraArgs: spec.ingressController?.extraArgs || [],
98
+ config: {
99
+ ...spec.ingressController?.config,
100
+ kubernetes: {
101
+ ingressClass: spec.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
102
+ // Watch all namespaces by default (empty string means all namespaces)
103
+ watchedNamespace: spec.ingressController?.config?.kubernetes?.watchedNamespace || '',
104
+ },
105
+ },
106
+ },
107
+ // Service Account defaults
108
+ serviceAccount: {
109
+ ...spec.serviceAccount,
110
+ create: spec.serviceAccount?.create !== undefined ? spec.serviceAccount.create : true,
111
+ name: spec.serviceAccount?.name || '',
112
+ },
113
+ // RBAC defaults
114
+ rbac: {
115
+ ...spec.rbac,
116
+ create: spec.rbac?.create !== undefined ? spec.rbac.create : true,
117
+ },
118
+ };
119
+ // Ensure consistent admin key between gateway and ingress controller
120
+ const adminKey = 'edd1c9f034335f136f87ad84b625c8f1';
121
+ // Map configuration to Helm values
122
+ const helmValues = mapAPISixConfigToHelmValues(fullConfig);
123
+ // Configure service type and ports for the gateway
124
+ if (!helmValues.service) {
125
+ helmValues.service = {};
126
+ }
127
+ helmValues.service.type = fullConfig.gateway?.type || 'LoadBalancer';
128
+ // Enable HTTP port
129
+ if (!helmValues.service.http) {
130
+ helmValues.service.http = {};
131
+ }
132
+ helmValues.service.http.enabled = fullConfig.gateway?.http?.enabled !== false;
133
+ // Enable TLS/HTTPS port
134
+ if (!helmValues.service.tls) {
135
+ helmValues.service.tls = {};
136
+ }
137
+ helmValues.service.tls.enabled = fullConfig.gateway?.https?.enabled !== false;
138
+ helmValues.service.tls.servicePort = fullConfig.gateway?.https?.servicePort || 443;
139
+ helmValues.service.tls.containerPort = fullConfig.gateway?.https?.containerPort || 9443;
140
+ // Configure admin API access - allow from all IPs for cluster-internal access
141
+ if (!helmValues.apisix) {
142
+ helmValues.apisix = {};
143
+ }
144
+ helmValues.apisix.admin = {
145
+ allow: {
146
+ ipList: ['0.0.0.0/0'], // Allow from anywhere within the cluster
147
+ },
148
+ };
149
+ // Enable SSL in APISix
150
+ helmValues.apisix.ssl = {
151
+ enabled: true,
152
+ };
153
+ // Create namespace for APISix (required before HelmRelease)
154
+ const _apisixNamespace = namespace({
155
+ metadata: {
156
+ name: actualNamespace,
157
+ labels: {
158
+ 'app.kubernetes.io/name': 'apisix',
159
+ 'app.kubernetes.io/instance': actualName,
160
+ 'app.kubernetes.io/version': actualVersion,
161
+ 'app.kubernetes.io/managed-by': 'typekro',
162
+ },
163
+ },
164
+ id: 'apisixNamespace',
165
+ });
166
+ // Create HelmRepository for APISix charts
167
+ const _helmRepository = apisixHelmRepository({
168
+ name: 'apisix-repo',
169
+ namespace: 'flux-system',
170
+ url: 'https://charts.apiseven.com',
171
+ interval: '1h',
172
+ id: 'apisixHelmRepository',
173
+ });
174
+ // Create HelmRelease for APISix Gateway
175
+ const helmRelease = apisixHelmRelease({
176
+ name: actualName,
177
+ namespace: 'flux-system',
178
+ targetNamespace: actualNamespace,
179
+ chart: 'apisix',
180
+ version: actualVersion,
181
+ interval: '5m',
182
+ timeout: '10m',
183
+ values: helmValues,
184
+ id: 'apisixHelmRelease',
185
+ });
186
+ // Create HelmRelease for APISix Ingress Controller (separate chart)
187
+ // Use actual string values for service names to avoid KubernetesRef serialization issues
188
+ const ingressControllerHelmRelease = apisixHelmRelease({
189
+ name: `${actualName}-ingress-controller`,
190
+ namespace: 'flux-system',
191
+ targetNamespace: actualNamespace,
192
+ chart: 'apisix-ingress-controller',
193
+ version: '0.13.0', // Use a stable version of the ingress controller
194
+ repositoryName: 'apisix-repo', // Use the same repository as the main APISix chart
195
+ interval: '5m',
196
+ timeout: '10m',
197
+ values: {
198
+ config: {
199
+ apisix: {
200
+ // Use actual string values for service configuration
201
+ serviceName: `${actualNamespace}-${actualName}-admin`,
202
+ serviceNamespace: actualNamespace,
203
+ servicePort: 9180,
204
+ adminKey: adminKey, // Use admin key for authentication
205
+ adminAPIVersion: 'v3', // Use v3 API version for APISix 3.9.1
206
+ },
207
+ kubernetes: {
208
+ ingressClass: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
209
+ // Watch all namespaces (empty string means all namespaces)
210
+ watchedNamespace: fullConfig.ingressController?.config?.kubernetes?.watchedNamespace || '',
211
+ },
212
+ // Configure ingress status update with the gateway service
213
+ ingressPublishService: `${actualNamespace}/${actualNamespace}-${actualName}-gateway`,
214
+ },
215
+ serviceAccount: {
216
+ create: true,
217
+ },
218
+ rbac: {
219
+ create: true,
220
+ },
221
+ ingressClass: {
222
+ create: false, // Don't create IngressClass - we create it manually
223
+ },
224
+ },
225
+ id: 'apisixIngressControllerHelmRelease',
226
+ });
227
+ // Create IngressClass for APISix ingress controller
228
+ const _apisixIngressClass = createResource({
229
+ apiVersion: 'networking.k8s.io/v1',
230
+ kind: 'IngressClass',
231
+ metadata: {
232
+ name: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
233
+ labels: {
234
+ 'app.kubernetes.io/name': 'apisix',
235
+ 'app.kubernetes.io/instance': actualName,
236
+ 'app.kubernetes.io/version': actualVersion,
237
+ 'app.kubernetes.io/managed-by': 'typekro',
238
+ },
239
+ },
240
+ spec: {
241
+ controller: 'apisix.apache.org/apisix-ingress',
242
+ },
243
+ id: 'apisixIngressClass',
244
+ }).withReadinessEvaluator(() => ({
245
+ ready: true,
246
+ message: 'IngressClass is ready when created (configuration resource)',
247
+ }));
248
+ // Return status with resources AND dynamic references
249
+ // The imperative pattern expects resources to be returned as part of the status object
250
+ // so they can be referenced by the status fields
251
+ return {
252
+ // Include the resources so they can be referenced
253
+ helmRelease,
254
+ ingressControllerHelmRelease,
255
+ // Status fields with dynamic resource references
256
+ // The magic proxy system will convert these to CEL expressions during serialization
257
+ ready: helmRelease.status.phase === 'Ready' &&
258
+ ingressControllerHelmRelease.status.phase === 'Ready',
259
+ phase: (helmRelease.status.phase === 'Ready' &&
260
+ ingressControllerHelmRelease.status.phase === 'Ready'
261
+ ? 'Ready'
262
+ : 'Installing'),
263
+ gatewayReady: helmRelease.status.phase === 'Ready',
264
+ ingressControllerReady: ingressControllerHelmRelease.status.phase === 'Ready',
265
+ dashboardReady: false, // Dashboard not deployed in this composition
266
+ etcdReady: false, // etcd not deployed in this composition (using external etcd assumed)
267
+ gatewayService: {
268
+ name: `${actualName}-gateway`,
269
+ namespace: actualNamespace,
270
+ type: fullConfig.gateway?.type || 'LoadBalancer',
271
+ clusterIP: '', // Will be populated by actual service
272
+ externalIP: '', // Will be populated by actual service
273
+ },
274
+ ingressClass: {
275
+ name: fullConfig.ingressController?.config?.kubernetes?.ingressClass || 'apisix',
276
+ controller: 'apisix.apache.org/apisix-ingress',
277
+ },
278
+ };
279
+ });
280
+ //# sourceMappingURL=apisix-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apisix-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/apisix-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * APISix Compositions
3
+ */
4
+ export { apisixBootstrap } from './apisix-bootstrap.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * APISix Compositions
3
+ */
4
+ export { apisixBootstrap } from './apisix-bootstrap.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/apisix/compositions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * APISix Ingress Controller Factory
3
+ *
4
+ * Provides TypeKro compositions for deploying APISix ingress controller
5
+ * following the same patterns as cert-manager and external-dns factories.
6
+ */
7
+ export * from './compositions/index.js';
8
+ export * from './resources/index.js';
9
+ export * from './types.js';
10
+ export { mapAPISixConfigToHelmValues as mapAPISixBootstrapConfigToHelmValues, validateAPISixHelmValues } from './utils/index.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/apisix/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * APISix Ingress Controller Factory
3
+ *
4
+ * Provides TypeKro compositions for deploying APISix ingress controller
5
+ * following the same patterns as cert-manager and external-dns factories.
6
+ */
7
+ export * from './compositions/index.js';
8
+ export * from './resources/index.js';
9
+ export * from './types.js';
10
+ export { mapAPISixConfigToHelmValues as mapAPISixBootstrapConfigToHelmValues, validateAPISixHelmValues } from './utils/index.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/apisix/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,2BAA2B,IAAI,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * APISix Helm Resources
3
+ *
4
+ * Factory functions for creating APISix HelmRepository and HelmRelease resources
5
+ * following the same patterns as cert-manager.
6
+ */
7
+ import type { Enhanced } from '../../../core/types/index.js';
8
+ import type { APISixHelmValues } from '../types.js';
9
+ import type { HelmRepositorySpec, HelmRepositoryStatus } from '../../helm/helm-repository.js';
10
+ /**
11
+ * Configuration for APISix HelmRepository
12
+ */
13
+ export interface APISixHelmRepositoryConfig {
14
+ name: string;
15
+ namespace?: string;
16
+ url?: string;
17
+ interval?: string;
18
+ id?: string;
19
+ }
20
+ /**
21
+ * Configuration for APISix HelmRelease
22
+ */
23
+ export interface APISixHelmReleaseConfig {
24
+ name: string;
25
+ namespace?: string;
26
+ targetNamespace?: string;
27
+ chart?: string;
28
+ version?: string;
29
+ interval?: string;
30
+ timeout?: string;
31
+ values?: APISixHelmValues;
32
+ repositoryName?: string;
33
+ id?: string;
34
+ }
35
+ export declare function apisixHelmRepository(config: APISixHelmRepositoryConfig): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
36
+ /**
37
+ * Creates an APISix HelmRelease resource
38
+ *
39
+ * @param config - HelmRelease configuration
40
+ * @returns Enhanced HelmRelease resource
41
+ */
42
+ export declare function apisixHelmRelease(config: APISixHelmReleaseConfig): Enhanced<any, any>;
43
+ /**
44
+ * Maps APISix configuration to Helm values for the HelmRelease
45
+ * This is a simpler version that just passes through the values
46
+ *
47
+ * @param config - The APISix Helm values
48
+ * @returns Helm values object for the APISix chart
49
+ */
50
+ export declare function mapAPISixConfigToHelmValues(config: APISixHelmValues): Record<string, any>;
51
+ /**
52
+ * Readiness evaluator for APISix HelmRelease
53
+ * Checks if the HelmRelease is ready and all components are deployed
54
+ */
55
+ export declare function apisixHelmReleaseReadinessEvaluator(resource: any): {
56
+ ready: boolean;
57
+ message: string;
58
+ };
59
+ //# sourceMappingURL=helm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAuBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAc3H;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CA8CrF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA2DzF;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,GAAG;;;EAyBhE"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * APISix Helm Resources
3
+ *
4
+ * Factory functions for creating APISix HelmRepository and HelmRelease resources
5
+ * following the same patterns as cert-manager.
6
+ */
7
+ import { createResource } from '../../shared.js';
8
+ /**
9
+ * Creates an APISix HelmRepository resource
10
+ *
11
+ * @param config - HelmRepository configuration
12
+ * @returns Enhanced HelmRepository resource
13
+ */
14
+ /**
15
+ * Readiness evaluator for APISix HelmRepository resources
16
+ * HelmRepository is ready when it has a Ready condition with status True
17
+ */
18
+ function apisixHelmRepositoryReadinessEvaluator(resource) {
19
+ const conditions = resource.status?.conditions || [];
20
+ const readyCondition = conditions.find((c) => c.type === 'Ready');
21
+ const isReady = readyCondition?.status === 'True';
22
+ return {
23
+ ready: isReady,
24
+ message: isReady ? 'APISix HelmRepository is ready' : 'APISix HelmRepository is not ready',
25
+ };
26
+ }
27
+ export function apisixHelmRepository(config) {
28
+ return createResource({
29
+ ...(config.id && { id: config.id }),
30
+ apiVersion: 'source.toolkit.fluxcd.io/v1',
31
+ kind: 'HelmRepository',
32
+ metadata: {
33
+ name: config.name,
34
+ namespace: config.namespace || 'flux-system',
35
+ },
36
+ spec: {
37
+ url: config.url || 'https://charts.apiseven.com',
38
+ interval: config.interval || '1h',
39
+ },
40
+ }).withReadinessEvaluator(apisixHelmRepositoryReadinessEvaluator);
41
+ }
42
+ /**
43
+ * Creates an APISix HelmRelease resource
44
+ *
45
+ * @param config - HelmRelease configuration
46
+ * @returns Enhanced HelmRelease resource
47
+ */
48
+ export function apisixHelmRelease(config) {
49
+ // Determine if values should be passed through raw or mapped
50
+ // If values has 'config' key (ingress controller chart structure), pass through raw
51
+ // Otherwise, map using APISix values mapper
52
+ const rawValues = config.values;
53
+ const isRawValues = rawValues && ('config' in rawValues || 'serviceAccount' in rawValues || 'rbac' in rawValues);
54
+ const helmValues = isRawValues ? rawValues : mapAPISixConfigToHelmValues(config.values || {});
55
+ return createResource({
56
+ ...(config.id && { id: config.id }),
57
+ apiVersion: 'helm.toolkit.fluxcd.io/v2',
58
+ kind: 'HelmRelease',
59
+ metadata: {
60
+ name: config.name,
61
+ namespace: config.namespace || 'flux-system',
62
+ },
63
+ spec: {
64
+ interval: config.interval || '5m',
65
+ timeout: config.timeout || '10m',
66
+ chart: {
67
+ spec: {
68
+ chart: config.chart || 'apisix',
69
+ version: config.version || '2.8.0',
70
+ sourceRef: {
71
+ kind: 'HelmRepository',
72
+ name: config.repositoryName || `${config.name.replace('-release', '')}-repo`,
73
+ namespace: config.namespace || 'flux-system'
74
+ }
75
+ }
76
+ },
77
+ targetNamespace: config.targetNamespace || config.namespace || 'apisix',
78
+ install: {
79
+ createNamespace: true,
80
+ remediation: {
81
+ retries: 3
82
+ }
83
+ },
84
+ upgrade: {
85
+ remediation: {
86
+ retries: 3
87
+ }
88
+ },
89
+ values: helmValues,
90
+ },
91
+ }).withReadinessEvaluator(apisixHelmReleaseReadinessEvaluator);
92
+ }
93
+ /**
94
+ * Maps APISix configuration to Helm values for the HelmRelease
95
+ * This is a simpler version that just passes through the values
96
+ *
97
+ * @param config - The APISix Helm values
98
+ * @returns Helm values object for the APISix chart
99
+ */
100
+ export function mapAPISixConfigToHelmValues(config) {
101
+ const values = {
102
+ // Installation configuration - default to true for TypeKro comprehensive deployment
103
+ installCRDs: config.installCRDs ?? true,
104
+ };
105
+ // Global configuration
106
+ if (config.global) {
107
+ values.global = { ...config.global };
108
+ }
109
+ // Replica configuration
110
+ if (config.replicaCount !== undefined) {
111
+ values.replicaCount = config.replicaCount;
112
+ }
113
+ // Gateway configuration
114
+ if (config.gateway) {
115
+ values.gateway = { ...config.gateway };
116
+ }
117
+ // Ingress Controller configuration
118
+ if (config.ingressController) {
119
+ values.ingressController = { ...config.ingressController };
120
+ }
121
+ // APISix configuration
122
+ if (config.apisix) {
123
+ values.apisix = { ...config.apisix };
124
+ }
125
+ // Dashboard configuration
126
+ if (config.dashboard) {
127
+ values.dashboard = { ...config.dashboard };
128
+ }
129
+ // etcd configuration
130
+ if (config.etcd) {
131
+ values.etcd = { ...config.etcd };
132
+ }
133
+ // Service Account configuration
134
+ if (config.serviceAccount) {
135
+ values.serviceAccount = { ...config.serviceAccount };
136
+ }
137
+ // RBAC configuration
138
+ if (config.rbac) {
139
+ values.rbac = { ...config.rbac };
140
+ }
141
+ // Add any additional custom values
142
+ Object.keys(config).forEach(key => {
143
+ if (!values[key] && config[key] !== undefined) {
144
+ values[key] = config[key];
145
+ }
146
+ });
147
+ return values;
148
+ }
149
+ /**
150
+ * Readiness evaluator for APISix HelmRelease
151
+ * Checks if the HelmRelease is ready and all components are deployed
152
+ */
153
+ export function apisixHelmReleaseReadinessEvaluator(resource) {
154
+ const status = resource?.status;
155
+ if (!status) {
156
+ return {
157
+ ready: false,
158
+ message: 'APISix HelmRelease status not available',
159
+ };
160
+ }
161
+ // Check if HelmRelease is ready
162
+ const conditions = status.conditions || [];
163
+ const readyCondition = conditions.find((c) => c.type === 'Ready');
164
+ if (!readyCondition || readyCondition.status !== 'True') {
165
+ return {
166
+ ready: false,
167
+ message: 'APISix HelmRelease is not ready',
168
+ };
169
+ }
170
+ return {
171
+ ready: true,
172
+ message: 'APISix HelmRelease is ready',
173
+ };
174
+ }
175
+ //# sourceMappingURL=helm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.js","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/helm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * APISix Resources
3
+ */
4
+ export * from './helm.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * APISix Resources
3
+ */
4
+ export * from './helm.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/apisix/resources/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC"}