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
@@ -1,7 +1,10 @@
1
1
  import * as yaml from 'js-yaml';
2
2
  import { isKubernetesRef } from '../../../core/dependencies/type-guards.js';
3
+ import { getComponentLogger } from '../../../core/logging/index.js';
4
+ import { PatchStrategy } from '@kubernetes/client-node';
3
5
  import { PathResolver } from '../../../core/yaml/path-resolver.js';
4
6
  import { registerDeploymentClosure } from '../../shared.js';
7
+ const logger = getComponentLogger('yaml-file');
5
8
  /**
6
9
  * Parse YAML content into Kubernetes manifests
7
10
  */
@@ -15,6 +18,53 @@ function parseYamlManifests(yamlContent) {
15
18
  }
16
19
  return manifests;
17
20
  }
21
+ /**
22
+ * Apply a manifest using server-side apply (PATCH with application/apply-patch+yaml)
23
+ *
24
+ * Server-side apply is safer than replace because it:
25
+ * 1. Merges changes instead of replacing the entire resource
26
+ * 2. Tracks field ownership to prevent conflicts
27
+ * 3. Preserves fields managed by other controllers
28
+ *
29
+ * @param kubernetesApi - The Kubernetes API client
30
+ * @param manifest - The manifest to apply
31
+ * @param fieldManager - The field manager name (identifies who owns the fields)
32
+ * @param forceConflicts - Whether to force ownership of conflicting fields
33
+ */
34
+ async function applyWithServerSideApply(kubernetesApi, manifest, fieldManager, forceConflicts) {
35
+ const resourceName = `${manifest.kind}/${manifest.metadata?.name}`;
36
+ try {
37
+ // Server-side apply uses PATCH with specific content type
38
+ // The kubernetes client's patch method supports this via options
39
+ // IMPORTANT: force parameter is ONLY valid with ServerSideApply strategy
40
+ await kubernetesApi.patch(manifest, undefined, // pretty
41
+ undefined, // dryRun
42
+ fieldManager, // fieldManager
43
+ forceConflicts, // force - only valid with ServerSideApply
44
+ PatchStrategy.ServerSideApply // patchStrategy - required for force to work
45
+ );
46
+ logger.debug('Applied resource using server-side apply', {
47
+ resource: resourceName,
48
+ fieldManager,
49
+ forceConflicts,
50
+ });
51
+ }
52
+ catch (error) {
53
+ // If the resource doesn't exist, create it
54
+ const statusCode = error?.response?.statusCode ||
55
+ error?.statusCode ||
56
+ error?.body?.code;
57
+ if (statusCode === 404) {
58
+ logger.debug('Resource not found, creating with server-side apply', {
59
+ resource: resourceName,
60
+ });
61
+ await kubernetesApi.create(manifest);
62
+ }
63
+ else {
64
+ throw error;
65
+ }
66
+ }
67
+ }
18
68
  /**
19
69
  * Deploy a YAML file during deployment phase
20
70
  *
@@ -61,7 +111,11 @@ export function yamlFile(config) {
61
111
  ? await deploymentContext.resolveReference(config.namespace)
62
112
  : config.namespace;
63
113
  const resolvedContent = await pathResolver.resolveContent(config.path, config.name);
64
- const manifests = parseYamlManifests(resolvedContent.content);
114
+ const rawManifests = parseYamlManifests(resolvedContent.content);
115
+ // Apply optional manifest transform (e.g., CRD schema fixes)
116
+ const manifests = config.manifestTransform
117
+ ? rawManifests.map(config.manifestTransform)
118
+ : rawManifests;
65
119
  const results = [];
66
120
  const strategy = config.deploymentStrategy || 'replace';
67
121
  for (const manifest of manifests) {
@@ -74,14 +128,24 @@ export function yamlFile(config) {
74
128
  // For now, use the Kubernetes API even when alchemy scope is available
75
129
  // TODO: Implement proper alchemy integration for YAML resources
76
130
  if (deploymentContext.kubernetesApi) {
77
- await deploymentContext.kubernetesApi.create(manifest);
131
+ if (strategy === 'serverSideApply') {
132
+ await applyWithServerSideApply(deploymentContext.kubernetesApi, manifest, config.fieldManager || 'typekro', config.forceConflicts || false);
133
+ }
134
+ else {
135
+ await deploymentContext.kubernetesApi.create(manifest);
136
+ }
78
137
  }
79
138
  else {
80
139
  throw new Error('No Kubernetes API available for YAML deployment');
81
140
  }
82
141
  }
83
142
  else if (deploymentContext.kubernetesApi) {
84
- await deploymentContext.kubernetesApi.create(manifest);
143
+ if (strategy === 'serverSideApply') {
144
+ await applyWithServerSideApply(deploymentContext.kubernetesApi, manifest, config.fieldManager || 'typekro', config.forceConflicts || false);
145
+ }
146
+ else {
147
+ await deploymentContext.kubernetesApi.create(manifest);
148
+ }
85
149
  }
86
150
  else {
87
151
  throw new Error('No deployment method available: neither alchemyScope nor kubernetesApi provided');
@@ -94,8 +158,17 @@ export function yamlFile(config) {
94
158
  });
95
159
  }
96
160
  catch (error) {
97
- // Handle conflicts based on deployment strategy
98
- if (error?.response?.statusCode === 409 || error?.statusCode === 409) {
161
+ // Extract status code from various error formats
162
+ const statusCode = error?.response?.statusCode ||
163
+ error?.statusCode ||
164
+ error?.body?.code ||
165
+ (typeof error?.message === 'string' && error.message.includes('HTTP-Code: 409')
166
+ ? 409
167
+ : undefined);
168
+ // Handle conflicts (409) based on deployment strategy
169
+ // Note: 422 validation errors are NOT handled here - they should fail hard
170
+ // as they indicate a real problem with the manifest
171
+ if (statusCode === 409) {
99
172
  const resourceName = `${manifest.kind}/${manifest.metadata?.name}`;
100
173
  if (strategy === 'skipIfExists') {
101
174
  console.log(`⚠️ Skipping existing resource: ${resourceName}`);
@@ -114,7 +187,8 @@ export function yamlFile(config) {
114
187
  // Check if resource exists first
115
188
  let existing;
116
189
  try {
117
- const readResult = await deploymentContext.kubernetesApi.read({
190
+ // In the new API, methods return objects directly (no .body wrapper)
191
+ existing = await deploymentContext.kubernetesApi.read({
118
192
  apiVersion: manifest.apiVersion,
119
193
  kind: manifest.kind,
120
194
  metadata: {
@@ -122,7 +196,6 @@ export function yamlFile(config) {
122
196
  namespace: manifest.metadata?.namespace || 'default',
123
197
  },
124
198
  });
125
- existing = readResult.body;
126
199
  }
127
200
  catch (error) {
128
201
  // If it's a 404, the resource doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"yaml-file.js","sourceRoot":"","sources":["../../../../src/factories/kubernetes/yaml/yaml-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yaml-file.js","sourceRoot":"","sources":["../../../../src/factories/kubernetes/yaml/yaml-file.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './pebble-bootstrap.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/factories/pebble/compositions/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Pebble ACME Test Server bootstrap compositions
2
+ export * from './pebble-bootstrap.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/factories/pebble/compositions/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Pebble ACME Test Server Bootstrap Composition
3
+ *
4
+ * Creates a complete Pebble ACME test server deployment using HelmRepository and HelmRelease resources.
5
+ * Provides comprehensive configuration options and status expressions derived from actual resource status.
6
+ *
7
+ * Features:
8
+ * - Complete Pebble ACME test server deployment (Pebble server + CoreDNS)
9
+ * - Comprehensive configuration schema with ArkType validation
10
+ * - Status expressions using actual resource status fields
11
+ * - ACME and management endpoints derived from service status
12
+ * - Support for both kro and direct deployment strategies
13
+ * - Optimized for fast testing with sensible defaults
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const pebbleFactory = pebbleBootstrap.factory('direct', {
18
+ * namespace: 'pebble-system',
19
+ * waitForReady: true
20
+ * });
21
+ *
22
+ * const instance = await pebbleFactory.deploy({
23
+ * name: 'pebble-acme',
24
+ * namespace: 'pebble-system',
25
+ * pebble: {
26
+ * env: [
27
+ * { name: 'PEBBLE_VA_NOSLEEP', value: '1' },
28
+ * { name: 'PEBBLE_WFE_NONCEREJECT', value: '0' }
29
+ * ]
30
+ * },
31
+ * coredns: {
32
+ * corefileSegment: `
33
+ * template ANY ANY test {
34
+ * answer "{{ .Name }} 60 IN CNAME mysvc.{$PEBBLE_NAMESPACE}.svc.cluster.local"
35
+ * }
36
+ * `
37
+ * }
38
+ * });
39
+ * ```
40
+ */
41
+ export declare const pebbleBootstrap: import("../../../core.js").CallableComposition<{
42
+ name: string;
43
+ namespace?: string;
44
+ version?: string;
45
+ email?: string;
46
+ }, {
47
+ ready: boolean;
48
+ phase: string;
49
+ version: string;
50
+ pebbleReady: boolean;
51
+ corednsReady: boolean;
52
+ acmeEndpoint: string;
53
+ managementEndpoint: string;
54
+ dnsServer: string;
55
+ }>;
56
+ //# sourceMappingURL=pebble-bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pebble-bootstrap.d.ts","sourceRoot":"","sources":["../../../../src/factories/pebble/compositions/pebble-bootstrap.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;EAmD3B,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { kubernetesComposition } from '../../../index.js';
2
+ import { PebbleBootstrapConfigSchema, PebbleBootstrapStatusSchema, } from '../types.js';
3
+ import { pebbleHelmRepository, pebbleHelmRelease } from '../resources/helm.js';
4
+ import { createDefaultPebbleTestingValues } from '../utils/helm-values-mapper.js';
5
+ /**
6
+ * Helper function to ensure version has 'v' prefix for image tags if needed
7
+ */
8
+ function _ensureVersionPrefix(version) {
9
+ return version.startsWith('v') ? version : `v${version}`;
10
+ }
11
+ /**
12
+ * Pebble ACME Test Server Bootstrap Composition
13
+ *
14
+ * Creates a complete Pebble ACME test server deployment using HelmRepository and HelmRelease resources.
15
+ * Provides comprehensive configuration options and status expressions derived from actual resource status.
16
+ *
17
+ * Features:
18
+ * - Complete Pebble ACME test server deployment (Pebble server + CoreDNS)
19
+ * - Comprehensive configuration schema with ArkType validation
20
+ * - Status expressions using actual resource status fields
21
+ * - ACME and management endpoints derived from service status
22
+ * - Support for both kro and direct deployment strategies
23
+ * - Optimized for fast testing with sensible defaults
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const pebbleFactory = pebbleBootstrap.factory('direct', {
28
+ * namespace: 'pebble-system',
29
+ * waitForReady: true
30
+ * });
31
+ *
32
+ * const instance = await pebbleFactory.deploy({
33
+ * name: 'pebble-acme',
34
+ * namespace: 'pebble-system',
35
+ * pebble: {
36
+ * env: [
37
+ * { name: 'PEBBLE_VA_NOSLEEP', value: '1' },
38
+ * { name: 'PEBBLE_WFE_NONCEREJECT', value: '0' }
39
+ * ]
40
+ * },
41
+ * coredns: {
42
+ * corefileSegment: `
43
+ * template ANY ANY test {
44
+ * answer "{{ .Name }} 60 IN CNAME mysvc.{$PEBBLE_NAMESPACE}.svc.cluster.local"
45
+ * }
46
+ * `
47
+ * }
48
+ * });
49
+ * ```
50
+ */
51
+ export const pebbleBootstrap = kubernetesComposition({
52
+ name: 'pebble-bootstrap',
53
+ apiVersion: 'pebble.typekro.dev/v1alpha1',
54
+ kind: 'PebbleBootstrap',
55
+ spec: PebbleBootstrapConfigSchema,
56
+ status: PebbleBootstrapStatusSchema,
57
+ }, (spec) => {
58
+ // Create HelmRepository for Pebble chart
59
+ const helmRepository = pebbleHelmRepository({
60
+ name: `${spec.name}-repo`,
61
+ namespace: 'flux-system',
62
+ url: 'https://jupyterhub.github.io/helm-chart/',
63
+ interval: '5m',
64
+ id: 'pebbleHelmRepository'
65
+ });
66
+ // Use default testing values optimized for fast testing
67
+ const mergedValues = createDefaultPebbleTestingValues();
68
+ // Create HelmRelease for Pebble deployment
69
+ const helmRelease = pebbleHelmRelease({
70
+ name: spec.name,
71
+ namespace: spec.namespace || 'default',
72
+ chart: {
73
+ name: 'pebble',
74
+ version: spec.version || '*',
75
+ },
76
+ repositoryRef: {
77
+ name: `${spec.name}-repo`,
78
+ namespace: 'flux-system',
79
+ },
80
+ values: mergedValues,
81
+ interval: '5m',
82
+ id: 'pebbleHelmRelease'
83
+ });
84
+ // Return status expressions based on actual resource status
85
+ return {
86
+ ready: helmRepository.status.conditions?.some((c) => c.type === 'Ready' && c.status === 'True') &&
87
+ helmRelease.status.conditions?.some((c) => c.type === 'Ready' && c.status === 'True') || false,
88
+ phase: helmRelease.status.conditions?.find((c) => c.type === 'Ready')?.status === 'True' ? 'Ready' : 'Pending',
89
+ version: spec.version || 'latest',
90
+ pebbleReady: helmRelease.status.conditions?.some((c) => c.type === 'Ready' && c.status === 'True') || false,
91
+ corednsReady: helmRelease.status.conditions?.some((c) => c.type === 'Ready' && c.status === 'True') || false,
92
+ acmeEndpoint: `https://${spec.name}.${spec.namespace || 'default'}.svc.cluster.local/dir`,
93
+ managementEndpoint: `https://${spec.name}.${spec.namespace || 'default'}.svc.cluster.local:15000`,
94
+ dnsServer: `${spec.name}-coredns.${spec.namespace || 'default'}.svc.cluster.local`
95
+ };
96
+ });
97
+ //# sourceMappingURL=pebble-bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pebble-bootstrap.js","sourceRoot":"","sources":["../../../../src/factories/pebble/compositions/pebble-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Pebble ACME Test Server Ecosystem Factory Functions
3
+ *
4
+ * This module provides organized access to Pebble ACME test server ecosystem factory functions.
5
+ * Functions are organized by functional area for better maintainability.
6
+ */
7
+ export * from './compositions/index.js';
8
+ export * from './resources/index.js';
9
+ export * from './types.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/factories/pebble/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,cAAc,yBAAyB,CAAC;AAKxC,cAAc,sBAAsB,CAAC;AAKrC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Pebble ACME Test Server Ecosystem Factory Functions
3
+ *
4
+ * This module provides organized access to Pebble ACME test server ecosystem factory functions.
5
+ * Functions are organized by functional area for better maintainability.
6
+ */
7
+ // =============================================================================
8
+ // BOOTSTRAP COMPOSITIONS
9
+ // =============================================================================
10
+ export * from './compositions/index.js';
11
+ // =============================================================================
12
+ // HELM FACTORY FUNCTIONS
13
+ // =============================================================================
14
+ export * from './resources/index.js';
15
+ // =============================================================================
16
+ // TYPE DEFINITIONS
17
+ // =============================================================================
18
+ export * from './types.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/pebble/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,cAAc,yBAAyB,CAAC;AAExC,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAChF,cAAc,sBAAsB,CAAC;AAErC,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAChF,cAAc,YAAY,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Pebble ACME Test Server Helm Integration Resources
3
+ *
4
+ * This module provides wrapper functions for creating Helm resources specifically
5
+ * configured for Pebble ACME test server deployments. These functions wrap the generic Helm factories
6
+ * and provide Pebble-specific configuration interfaces while reusing existing readiness evaluators.
7
+ */
8
+ import type { Enhanced } from '../../../core/types/index.js';
9
+ import type { PebbleHelmRepositoryConfig, PebbleHelmReleaseConfig } from '../types.js';
10
+ import type { HelmReleaseSpec, HelmReleaseStatus } from '../../helm/types.js';
11
+ import type { HelmRepositorySpec, HelmRepositoryStatus } from '../../helm/helm-repository.js';
12
+ /**
13
+ * Wrapper function for creating Pebble HelmRepository resources
14
+ *
15
+ * This function wraps the generic `helmRepository` factory and provides
16
+ * Pebble-specific default configuration (JupyterHub Pebble Helm chart repository).
17
+ * It reuses the existing Helm readiness evaluator.
18
+ *
19
+ * @param config - Pebble HelmRepository configuration
20
+ * @returns Enhanced HelmRepository resource with Pebble-specific settings
21
+ *
22
+ * @example
23
+ * Basic Pebble repository:
24
+ * ```typescript
25
+ * const repo = pebbleHelmRepository({
26
+ * name: 'pebble',
27
+ * namespace: 'flux-system'
28
+ * });
29
+ * ```
30
+ *
31
+ * @example
32
+ * Repository with custom settings:
33
+ * ```typescript
34
+ * const repo = pebbleHelmRepository({
35
+ * name: 'pebble-repo',
36
+ * namespace: 'flux-system',
37
+ * url: 'https://jupyterhub.github.io/helm-chart/',
38
+ * interval: '10m'
39
+ * });
40
+ * ```
41
+ */
42
+ export declare function pebbleHelmRepository(config: PebbleHelmRepositoryConfig): Enhanced<HelmRepositorySpec, HelmRepositoryStatus>;
43
+ /**
44
+ * Wrapper function for creating Pebble HelmRelease resources
45
+ *
46
+ * This function wraps the generic `helmRelease` factory and provides
47
+ * Pebble-specific default configuration (chart name, repository reference).
48
+ * It reuses the existing Helm readiness evaluator.
49
+ *
50
+ * @param config - Pebble HelmRelease configuration
51
+ * @returns Enhanced HelmRelease resource with Pebble-specific settings
52
+ *
53
+ * @example
54
+ * Basic Pebble release:
55
+ * ```typescript
56
+ * const release = pebbleHelmRelease({
57
+ * name: 'pebble',
58
+ * namespace: 'pebble-system',
59
+ * repositoryRef: { name: 'pebble' },
60
+ * values: {
61
+ * pebble: {
62
+ * env: [
63
+ * { name: 'PEBBLE_VA_NOSLEEP', value: '1' },
64
+ * { name: 'PEBBLE_WFE_NONCEREJECT', value: '0' }
65
+ * ]
66
+ * }
67
+ * }
68
+ * });
69
+ * ```
70
+ *
71
+ * @example
72
+ * Pebble release with custom DNS configuration:
73
+ * ```typescript
74
+ * const release = pebbleHelmRelease({
75
+ * name: 'pebble-acme',
76
+ * namespace: 'testing',
77
+ * repositoryRef: { name: 'pebble-repo' },
78
+ * values: {
79
+ * pebble: {
80
+ * config: {
81
+ * pebble: {
82
+ * httpPort: 5002,
83
+ * tlsPort: 5001
84
+ * }
85
+ * }
86
+ * },
87
+ * coredns: {
88
+ * corefileSegment: `
89
+ * template ANY ANY test {
90
+ * answer "{{ .Name }} 60 IN CNAME mysvc.{$PEBBLE_NAMESPACE}.svc.cluster.local"
91
+ * }
92
+ * `
93
+ * }
94
+ * }
95
+ * });
96
+ * ```
97
+ */
98
+ export declare function pebbleHelmRelease(config: PebbleHelmReleaseConfig): Enhanced<HelmReleaseSpec, HelmReleaseStatus>;
99
+ //# sourceMappingURL=helm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helm.d.ts","sourceRoot":"","sources":["../../../../src/factories/pebble/resources/helm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAqB9F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,0BAA0B,GAAG,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAc3H;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAyB/G"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Pebble ACME Test Server Helm Integration Resources
3
+ *
4
+ * This module provides wrapper functions for creating Helm resources specifically
5
+ * configured for Pebble ACME test server deployments. These functions wrap the generic Helm factories
6
+ * and provide Pebble-specific configuration interfaces while reusing existing readiness evaluators.
7
+ */
8
+ import { createResource } from '../../shared.js';
9
+ // =============================================================================
10
+ // PEBBLE HELM REPOSITORY WRAPPER
11
+ // =============================================================================
12
+ /**
13
+ * Readiness evaluator for Pebble HelmRepository resources
14
+ * HelmRepository is ready when it has a Ready condition with status True
15
+ */
16
+ function pebbleHelmRepositoryReadinessEvaluator(resource) {
17
+ const conditions = resource.status?.conditions || [];
18
+ const readyCondition = conditions.find((c) => c.type === 'Ready');
19
+ const isReady = readyCondition?.status === 'True';
20
+ return {
21
+ ready: isReady,
22
+ message: isReady ? 'Pebble HelmRepository is ready' : 'Pebble HelmRepository is not ready',
23
+ };
24
+ }
25
+ /**
26
+ * Wrapper function for creating Pebble HelmRepository resources
27
+ *
28
+ * This function wraps the generic `helmRepository` factory and provides
29
+ * Pebble-specific default configuration (JupyterHub Pebble Helm chart repository).
30
+ * It reuses the existing Helm readiness evaluator.
31
+ *
32
+ * @param config - Pebble HelmRepository configuration
33
+ * @returns Enhanced HelmRepository resource with Pebble-specific settings
34
+ *
35
+ * @example
36
+ * Basic Pebble repository:
37
+ * ```typescript
38
+ * const repo = pebbleHelmRepository({
39
+ * name: 'pebble',
40
+ * namespace: 'flux-system'
41
+ * });
42
+ * ```
43
+ *
44
+ * @example
45
+ * Repository with custom settings:
46
+ * ```typescript
47
+ * const repo = pebbleHelmRepository({
48
+ * name: 'pebble-repo',
49
+ * namespace: 'flux-system',
50
+ * url: 'https://jupyterhub.github.io/helm-chart/',
51
+ * interval: '10m'
52
+ * });
53
+ * ```
54
+ */
55
+ export function pebbleHelmRepository(config) {
56
+ return createResource({
57
+ ...(config.id && { id: config.id }),
58
+ apiVersion: 'source.toolkit.fluxcd.io/v1',
59
+ kind: 'HelmRepository',
60
+ metadata: {
61
+ name: config.name,
62
+ namespace: config.namespace || 'flux-system',
63
+ },
64
+ spec: {
65
+ url: config.url || 'https://jupyterhub.github.io/helm-chart/',
66
+ interval: config.interval || '5m',
67
+ },
68
+ }).withReadinessEvaluator(pebbleHelmRepositoryReadinessEvaluator);
69
+ }
70
+ // =============================================================================
71
+ // PEBBLE HELM RELEASE WRAPPER
72
+ // =============================================================================
73
+ /**
74
+ * Readiness evaluator for Pebble HelmRelease resources
75
+ * HelmRelease is ready when it has a Ready condition with status True
76
+ */
77
+ function pebbleHelmReleaseReadinessEvaluator(resource) {
78
+ const conditions = resource.status?.conditions || [];
79
+ const readyCondition = conditions.find((c) => c.type === 'Ready');
80
+ const isReady = readyCondition?.status === 'True';
81
+ return {
82
+ ready: isReady,
83
+ message: isReady ? 'Pebble HelmRelease is ready' : 'Pebble HelmRelease is not ready',
84
+ };
85
+ }
86
+ /**
87
+ * Wrapper function for creating Pebble HelmRelease resources
88
+ *
89
+ * This function wraps the generic `helmRelease` factory and provides
90
+ * Pebble-specific default configuration (chart name, repository reference).
91
+ * It reuses the existing Helm readiness evaluator.
92
+ *
93
+ * @param config - Pebble HelmRelease configuration
94
+ * @returns Enhanced HelmRelease resource with Pebble-specific settings
95
+ *
96
+ * @example
97
+ * Basic Pebble release:
98
+ * ```typescript
99
+ * const release = pebbleHelmRelease({
100
+ * name: 'pebble',
101
+ * namespace: 'pebble-system',
102
+ * repositoryRef: { name: 'pebble' },
103
+ * values: {
104
+ * pebble: {
105
+ * env: [
106
+ * { name: 'PEBBLE_VA_NOSLEEP', value: '1' },
107
+ * { name: 'PEBBLE_WFE_NONCEREJECT', value: '0' }
108
+ * ]
109
+ * }
110
+ * }
111
+ * });
112
+ * ```
113
+ *
114
+ * @example
115
+ * Pebble release with custom DNS configuration:
116
+ * ```typescript
117
+ * const release = pebbleHelmRelease({
118
+ * name: 'pebble-acme',
119
+ * namespace: 'testing',
120
+ * repositoryRef: { name: 'pebble-repo' },
121
+ * values: {
122
+ * pebble: {
123
+ * config: {
124
+ * pebble: {
125
+ * httpPort: 5002,
126
+ * tlsPort: 5001
127
+ * }
128
+ * }
129
+ * },
130
+ * coredns: {
131
+ * corefileSegment: `
132
+ * template ANY ANY test {
133
+ * answer "{{ .Name }} 60 IN CNAME mysvc.{$PEBBLE_NAMESPACE}.svc.cluster.local"
134
+ * }
135
+ * `
136
+ * }
137
+ * }
138
+ * });
139
+ * ```
140
+ */
141
+ export function pebbleHelmRelease(config) {
142
+ return createResource({
143
+ ...(config.id && { id: config.id }),
144
+ apiVersion: 'helm.toolkit.fluxcd.io/v2',
145
+ kind: 'HelmRelease',
146
+ metadata: {
147
+ name: config.name,
148
+ namespace: config.namespace || 'default',
149
+ },
150
+ spec: {
151
+ chart: {
152
+ spec: {
153
+ chart: config.chart?.name || 'pebble',
154
+ version: config.chart?.version || '*',
155
+ sourceRef: {
156
+ kind: 'HelmRepository',
157
+ name: config.repositoryRef?.name || 'pebble-repo',
158
+ namespace: config.repositoryRef?.namespace || 'flux-system',
159
+ },
160
+ },
161
+ },
162
+ interval: config.interval || '5m',
163
+ ...(config.values && { values: config.values }),
164
+ },
165
+ }).withReadinessEvaluator(pebbleHelmReleaseReadinessEvaluator);
166
+ }
167
+ //# sourceMappingURL=helm.js.map