typekro 0.33.10 → 0.35.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 (364) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/alchemy/clickhouse-schema/executor.d.ts +25 -0
  3. package/dist/alchemy/clickhouse-schema/executor.d.ts.map +1 -0
  4. package/dist/alchemy/clickhouse-schema/executor.js +144 -0
  5. package/dist/alchemy/clickhouse-schema/executor.js.map +1 -0
  6. package/dist/alchemy/clickhouse-schema/index.d.ts +12 -0
  7. package/dist/alchemy/clickhouse-schema/index.d.ts.map +1 -0
  8. package/dist/alchemy/clickhouse-schema/index.js +11 -0
  9. package/dist/alchemy/clickhouse-schema/index.js.map +1 -0
  10. package/dist/alchemy/clickhouse-schema/resource.d.ts +54 -0
  11. package/dist/alchemy/clickhouse-schema/resource.d.ts.map +1 -0
  12. package/dist/alchemy/clickhouse-schema/resource.js +158 -0
  13. package/dist/alchemy/clickhouse-schema/resource.js.map +1 -0
  14. package/dist/alchemy/clickhouse-schema/runner.d.ts +154 -0
  15. package/dist/alchemy/clickhouse-schema/runner.d.ts.map +1 -0
  16. package/dist/alchemy/clickhouse-schema/runner.js +613 -0
  17. package/dist/alchemy/clickhouse-schema/runner.js.map +1 -0
  18. package/dist/alchemy/clickhouse-schema/sql.d.ts +109 -0
  19. package/dist/alchemy/clickhouse-schema/sql.d.ts.map +1 -0
  20. package/dist/alchemy/clickhouse-schema/sql.js +368 -0
  21. package/dist/alchemy/clickhouse-schema/sql.js.map +1 -0
  22. package/dist/alchemy/clickhouse-schema/types.d.ts +394 -0
  23. package/dist/alchemy/clickhouse-schema/types.d.ts.map +1 -0
  24. package/dist/alchemy/clickhouse-schema/types.js +370 -0
  25. package/dist/alchemy/clickhouse-schema/types.js.map +1 -0
  26. package/dist/alchemy/index.d.ts +1 -0
  27. package/dist/alchemy/index.d.ts.map +1 -1
  28. package/dist/alchemy/index.js +2 -0
  29. package/dist/alchemy/index.js.map +1 -1
  30. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +0 -33
  31. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  32. package/dist/compositions/typekro-runtime/typekro-runtime.js +63 -1
  33. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  34. package/dist/compositions/typekro-runtime/types.d.ts +8 -0
  35. package/dist/compositions/typekro-runtime/types.d.ts.map +1 -1
  36. package/dist/compositions/typekro-runtime/types.js +1 -0
  37. package/dist/compositions/typekro-runtime/types.js.map +1 -1
  38. package/dist/core/aspects/values-merge.d.ts +17 -0
  39. package/dist/core/aspects/values-merge.d.ts.map +1 -1
  40. package/dist/core/aspects/values-merge.js +67 -8
  41. package/dist/core/aspects/values-merge.js.map +1 -1
  42. package/dist/core/deployment/direct-factory.d.ts +9 -0
  43. package/dist/core/deployment/direct-factory.d.ts.map +1 -1
  44. package/dist/core/deployment/direct-factory.js +37 -3
  45. package/dist/core/deployment/direct-factory.js.map +1 -1
  46. package/dist/core/deployment/engine.d.ts +34 -0
  47. package/dist/core/deployment/engine.d.ts.map +1 -1
  48. package/dist/core/deployment/engine.js +173 -29
  49. package/dist/core/deployment/engine.js.map +1 -1
  50. package/dist/core/deployment/index.d.ts +2 -0
  51. package/dist/core/deployment/index.d.ts.map +1 -1
  52. package/dist/core/deployment/index.js +1 -0
  53. package/dist/core/deployment/index.js.map +1 -1
  54. package/dist/core/deployment/k8s-helpers.d.ts +73 -0
  55. package/dist/core/deployment/k8s-helpers.d.ts.map +1 -1
  56. package/dist/core/deployment/k8s-helpers.js +198 -4
  57. package/dist/core/deployment/k8s-helpers.js.map +1 -1
  58. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  59. package/dist/core/deployment/kro-factory.js +21 -1
  60. package/dist/core/deployment/kro-factory.js.map +1 -1
  61. package/dist/core/deployment/status-leaf-resolution.d.ts +101 -0
  62. package/dist/core/deployment/status-leaf-resolution.d.ts.map +1 -0
  63. package/dist/core/deployment/status-leaf-resolution.js +232 -0
  64. package/dist/core/deployment/status-leaf-resolution.js.map +1 -0
  65. package/dist/core/deployment/strategies/base-strategy.d.ts.map +1 -1
  66. package/dist/core/deployment/strategies/base-strategy.js +31 -3
  67. package/dist/core/deployment/strategies/base-strategy.js.map +1 -1
  68. package/dist/core/deployment/strategies/kro-strategy.d.ts.map +1 -1
  69. package/dist/core/deployment/strategies/kro-strategy.js +8 -1
  70. package/dist/core/deployment/strategies/kro-strategy.js.map +1 -1
  71. package/dist/core/kro/index.d.ts +6 -0
  72. package/dist/core/kro/index.d.ts.map +1 -0
  73. package/dist/core/kro/index.js +6 -0
  74. package/dist/core/kro/index.js.map +1 -0
  75. package/dist/core/kro/label-guard-capability.d.ts +141 -0
  76. package/dist/core/kro/label-guard-capability.d.ts.map +1 -0
  77. package/dist/core/kro/label-guard-capability.js +257 -0
  78. package/dist/core/kro/label-guard-capability.js.map +1 -0
  79. package/dist/core/kro/labels.d.ts +56 -0
  80. package/dist/core/kro/labels.d.ts.map +1 -0
  81. package/dist/core/kro/labels.js +62 -0
  82. package/dist/core/kro/labels.js.map +1 -0
  83. package/dist/core/kubernetes/api-capability.d.ts +196 -0
  84. package/dist/core/kubernetes/api-capability.d.ts.map +1 -0
  85. package/dist/core/kubernetes/api-capability.js +301 -0
  86. package/dist/core/kubernetes/api-capability.js.map +1 -0
  87. package/dist/core/kubernetes/index.d.ts +2 -0
  88. package/dist/core/kubernetes/index.d.ts.map +1 -1
  89. package/dist/core/kubernetes/index.js +2 -0
  90. package/dist/core/kubernetes/index.js.map +1 -1
  91. package/dist/core/kubernetes/naming.d.ts +100 -0
  92. package/dist/core/kubernetes/naming.d.ts.map +1 -0
  93. package/dist/core/kubernetes/naming.js +93 -0
  94. package/dist/core/kubernetes/naming.js.map +1 -0
  95. package/dist/core/planning/direct-runtime-adapter.d.ts.map +1 -1
  96. package/dist/core/planning/direct-runtime-adapter.js +54 -17
  97. package/dist/core/planning/direct-runtime-adapter.js.map +1 -1
  98. package/dist/core/planning/planner.d.ts.map +1 -1
  99. package/dist/core/planning/planner.js +17 -0
  100. package/dist/core/planning/planner.js.map +1 -1
  101. package/dist/core/planning/schema.d.ts.map +1 -1
  102. package/dist/core/planning/schema.js +7 -3
  103. package/dist/core/planning/schema.js.map +1 -1
  104. package/dist/core/references/cel-lexical-scanner.d.ts +100 -1
  105. package/dist/core/references/cel-lexical-scanner.d.ts.map +1 -1
  106. package/dist/core/references/cel-lexical-scanner.js +196 -2
  107. package/dist/core/references/cel-lexical-scanner.js.map +1 -1
  108. package/dist/core/references/cel.d.ts +249 -1
  109. package/dist/core/references/cel.d.ts.map +1 -1
  110. package/dist/core/references/cel.js +289 -8
  111. package/dist/core/references/cel.js.map +1 -1
  112. package/dist/core/serialization/arktype-ast.d.ts +21 -0
  113. package/dist/core/serialization/arktype-ast.d.ts.map +1 -0
  114. package/dist/core/serialization/arktype-ast.js +29 -0
  115. package/dist/core/serialization/arktype-ast.js.map +1 -0
  116. package/dist/core/serialization/cel-references.d.ts +133 -32
  117. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  118. package/dist/core/serialization/cel-references.js +908 -109
  119. package/dist/core/serialization/cel-references.js.map +1 -1
  120. package/dist/core/serialization/schema.d.ts +16 -2
  121. package/dist/core/serialization/schema.d.ts.map +1 -1
  122. package/dist/core/serialization/schema.js +113 -21
  123. package/dist/core/serialization/schema.js.map +1 -1
  124. package/dist/core/types/composable.d.ts +7 -1
  125. package/dist/core/types/composable.d.ts.map +1 -1
  126. package/dist/core/types/deployment.d.ts +32 -2
  127. package/dist/core/types/deployment.d.ts.map +1 -1
  128. package/dist/core/types/serialization.d.ts +37 -0
  129. package/dist/core/types/serialization.d.ts.map +1 -1
  130. package/dist/core/validation/cel-dialect.d.ts +246 -0
  131. package/dist/core/validation/cel-dialect.d.ts.map +1 -0
  132. package/dist/core/validation/cel-dialect.js +1997 -0
  133. package/dist/core/validation/cel-dialect.js.map +1 -0
  134. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  135. package/dist/core/validation/cel-validator.js +8 -1
  136. package/dist/core/validation/cel-validator.js.map +1 -1
  137. package/dist/core/validation/literal-status.d.ts +107 -0
  138. package/dist/core/validation/literal-status.d.ts.map +1 -0
  139. package/dist/core/validation/literal-status.js +346 -0
  140. package/dist/core/validation/literal-status.js.map +1 -0
  141. package/dist/core/validation/structural-spec-dependence.d.ts +179 -0
  142. package/dist/core/validation/structural-spec-dependence.d.ts.map +1 -0
  143. package/dist/core/validation/structural-spec-dependence.js +911 -0
  144. package/dist/core/validation/structural-spec-dependence.js.map +1 -0
  145. package/dist/factories/apisix/compositions/apisix-bootstrap.d.ts.map +1 -1
  146. package/dist/factories/apisix/compositions/apisix-bootstrap.js +9 -0
  147. package/dist/factories/apisix/compositions/apisix-bootstrap.js.map +1 -1
  148. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts +6 -0
  149. package/dist/factories/clickhouse/compositions/clickhouse-cluster.d.ts.map +1 -1
  150. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js +273 -23
  151. package/dist/factories/clickhouse/compositions/clickhouse-cluster.js.map +1 -1
  152. package/dist/factories/clickhouse/resources/index.d.ts +1 -0
  153. package/dist/factories/clickhouse/resources/index.d.ts.map +1 -1
  154. package/dist/factories/clickhouse/resources/index.js +1 -0
  155. package/dist/factories/clickhouse/resources/index.js.map +1 -1
  156. package/dist/factories/clickhouse/resources/installation.d.ts.map +1 -1
  157. package/dist/factories/clickhouse/resources/installation.js +31 -4
  158. package/dist/factories/clickhouse/resources/installation.js.map +1 -1
  159. package/dist/factories/clickhouse/resources/s3-backup.d.ts +215 -0
  160. package/dist/factories/clickhouse/resources/s3-backup.d.ts.map +1 -0
  161. package/dist/factories/clickhouse/resources/s3-backup.js +410 -0
  162. package/dist/factories/clickhouse/resources/s3-backup.js.map +1 -0
  163. package/dist/factories/clickhouse/types.d.ts +416 -20
  164. package/dist/factories/clickhouse/types.d.ts.map +1 -1
  165. package/dist/factories/clickhouse/types.js +235 -11
  166. package/dist/factories/clickhouse/types.js.map +1 -1
  167. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts +42 -0
  168. package/dist/factories/clickhouse/utils/helm-values-mapper.d.ts.map +1 -1
  169. package/dist/factories/clickhouse/utils/helm-values-mapper.js +48 -0
  170. package/dist/factories/clickhouse/utils/helm-values-mapper.js.map +1 -1
  171. package/dist/factories/clickhouse/utils/index.d.ts +2 -0
  172. package/dist/factories/clickhouse/utils/index.d.ts.map +1 -1
  173. package/dist/factories/clickhouse/utils/index.js +2 -0
  174. package/dist/factories/clickhouse/utils/index.js.map +1 -1
  175. package/dist/factories/clickhouse/utils/s3-storage.d.ts +503 -0
  176. package/dist/factories/clickhouse/utils/s3-storage.d.ts.map +1 -0
  177. package/dist/factories/clickhouse/utils/s3-storage.js +1139 -0
  178. package/dist/factories/clickhouse/utils/s3-storage.js.map +1 -0
  179. package/dist/factories/clickhouse/utils/validation.d.ts +103 -0
  180. package/dist/factories/clickhouse/utils/validation.d.ts.map +1 -1
  181. package/dist/factories/clickhouse/utils/validation.js +129 -0
  182. package/dist/factories/clickhouse/utils/validation.js.map +1 -1
  183. package/dist/factories/clickhouse/utils/xml.d.ts +87 -0
  184. package/dist/factories/clickhouse/utils/xml.d.ts.map +1 -0
  185. package/dist/factories/clickhouse/utils/xml.js +151 -0
  186. package/dist/factories/clickhouse/utils/xml.js.map +1 -0
  187. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts +57 -0
  188. package/dist/factories/clickstack/compositions/clickstack-bootstrap.d.ts.map +1 -1
  189. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js +266 -7
  190. package/dist/factories/clickstack/compositions/clickstack-bootstrap.js.map +1 -1
  191. package/dist/factories/clickstack/types.d.ts +205 -26
  192. package/dist/factories/clickstack/types.d.ts.map +1 -1
  193. package/dist/factories/clickstack/types.js +106 -8
  194. package/dist/factories/clickstack/types.js.map +1 -1
  195. package/dist/factories/clickstack/utils/collector-config.d.ts +104 -0
  196. package/dist/factories/clickstack/utils/collector-config.d.ts.map +1 -0
  197. package/dist/factories/clickstack/utils/collector-config.js +266 -0
  198. package/dist/factories/clickstack/utils/collector-config.js.map +1 -0
  199. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts +26 -0
  200. package/dist/factories/clickstack/utils/helm-values-mapper.d.ts.map +1 -1
  201. package/dist/factories/clickstack/utils/helm-values-mapper.js +53 -12
  202. package/dist/factories/clickstack/utils/helm-values-mapper.js.map +1 -1
  203. package/dist/factories/clickstack/utils/index.d.ts +2 -0
  204. package/dist/factories/clickstack/utils/index.d.ts.map +1 -1
  205. package/dist/factories/clickstack/utils/index.js +2 -0
  206. package/dist/factories/clickstack/utils/index.js.map +1 -1
  207. package/dist/factories/clickstack/utils/storage.d.ts +449 -0
  208. package/dist/factories/clickstack/utils/storage.d.ts.map +1 -0
  209. package/dist/factories/clickstack/utils/storage.js +698 -0
  210. package/dist/factories/clickstack/utils/storage.js.map +1 -0
  211. package/dist/factories/cnpg/resources/helm.d.ts.map +1 -1
  212. package/dist/factories/cnpg/resources/helm.js +4 -4
  213. package/dist/factories/cnpg/resources/helm.js.map +1 -1
  214. package/dist/factories/cnpg/types.d.ts +10 -1
  215. package/dist/factories/cnpg/types.d.ts.map +1 -1
  216. package/dist/factories/cnpg/types.js.map +1 -1
  217. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts +19 -2
  218. package/dist/factories/cnpg/utils/helm-values-mapper.d.ts.map +1 -1
  219. package/dist/factories/cnpg/utils/helm-values-mapper.js +22 -4
  220. package/dist/factories/cnpg/utils/helm-values-mapper.js.map +1 -1
  221. package/dist/factories/envoy-ai-gateway/compositions/gateway.d.ts.map +1 -1
  222. package/dist/factories/envoy-ai-gateway/compositions/gateway.js +16 -3
  223. package/dist/factories/envoy-ai-gateway/compositions/gateway.js.map +1 -1
  224. package/dist/factories/envoy-ai-gateway/constants.d.ts +5 -2
  225. package/dist/factories/envoy-ai-gateway/constants.d.ts.map +1 -1
  226. package/dist/factories/envoy-ai-gateway/constants.js +5 -2
  227. package/dist/factories/envoy-ai-gateway/constants.js.map +1 -1
  228. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts +12 -0
  229. package/dist/factories/envoy-ai-gateway/resources/gateway.d.ts.map +1 -1
  230. package/dist/factories/envoy-ai-gateway/resources/gateway.js +27 -104
  231. package/dist/factories/envoy-ai-gateway/resources/gateway.js.map +1 -1
  232. package/dist/factories/envoy-ai-gateway/types.d.ts +15 -47
  233. package/dist/factories/envoy-ai-gateway/types.d.ts.map +1 -1
  234. package/dist/factories/envoy-ai-gateway/types.js.map +1 -1
  235. package/dist/factories/gateway-api/constants.d.ts +27 -0
  236. package/dist/factories/gateway-api/constants.d.ts.map +1 -0
  237. package/dist/factories/gateway-api/constants.js +27 -0
  238. package/dist/factories/gateway-api/constants.js.map +1 -0
  239. package/dist/factories/gateway-api/index.d.ts +14 -0
  240. package/dist/factories/gateway-api/index.d.ts.map +1 -0
  241. package/dist/factories/gateway-api/index.js +14 -0
  242. package/dist/factories/gateway-api/index.js.map +1 -0
  243. package/dist/factories/gateway-api/readiness.d.ts +67 -0
  244. package/dist/factories/gateway-api/readiness.d.ts.map +1 -0
  245. package/dist/factories/gateway-api/readiness.js +213 -0
  246. package/dist/factories/gateway-api/readiness.js.map +1 -0
  247. package/dist/factories/gateway-api/resources/gateway.d.ts +91 -0
  248. package/dist/factories/gateway-api/resources/gateway.d.ts.map +1 -0
  249. package/dist/factories/gateway-api/resources/gateway.js +99 -0
  250. package/dist/factories/gateway-api/resources/gateway.js.map +1 -0
  251. package/dist/factories/gateway-api/resources/index.d.ts +2 -0
  252. package/dist/factories/gateway-api/resources/index.d.ts.map +1 -0
  253. package/dist/factories/gateway-api/resources/index.js +2 -0
  254. package/dist/factories/gateway-api/resources/index.js.map +1 -0
  255. package/dist/factories/gateway-api/types.d.ts +1269 -0
  256. package/dist/factories/gateway-api/types.d.ts.map +1 -0
  257. package/dist/factories/gateway-api/types.js +417 -0
  258. package/dist/factories/gateway-api/types.js.map +1 -0
  259. package/dist/factories/helm/readiness-evaluators.d.ts +21 -3
  260. package/dist/factories/helm/readiness-evaluators.d.ts.map +1 -1
  261. package/dist/factories/helm/readiness-evaluators.js +117 -11
  262. package/dist/factories/helm/readiness-evaluators.js.map +1 -1
  263. package/dist/factories/helm/types.d.ts +28 -0
  264. package/dist/factories/helm/types.d.ts.map +1 -1
  265. package/dist/factories/index.d.ts +2 -0
  266. package/dist/factories/index.d.ts.map +1 -1
  267. package/dist/factories/index.js +8 -0
  268. package/dist/factories/index.js.map +1 -1
  269. package/dist/factories/inngest/compositions/inngest-bootstrap.d.ts.map +1 -1
  270. package/dist/factories/inngest/compositions/inngest-bootstrap.js +10 -0
  271. package/dist/factories/inngest/compositions/inngest-bootstrap.js.map +1 -1
  272. package/dist/factories/kubernetes/admission/index.d.ts +2 -0
  273. package/dist/factories/kubernetes/admission/index.d.ts.map +1 -1
  274. package/dist/factories/kubernetes/admission/index.js +2 -0
  275. package/dist/factories/kubernetes/admission/index.js.map +1 -1
  276. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts +108 -0
  277. package/dist/factories/kubernetes/admission/label-propagation-guard.d.ts.map +1 -0
  278. package/dist/factories/kubernetes/admission/label-propagation-guard.js +247 -0
  279. package/dist/factories/kubernetes/admission/label-propagation-guard.js.map +1 -0
  280. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts +286 -0
  281. package/dist/factories/kubernetes/admission/mutating-admission-policy.d.ts.map +1 -0
  282. package/dist/factories/kubernetes/admission/mutating-admission-policy.js +157 -0
  283. package/dist/factories/kubernetes/admission/mutating-admission-policy.js.map +1 -0
  284. package/dist/factories/opensearch/compositions/cluster.d.ts.map +1 -1
  285. package/dist/factories/opensearch/compositions/cluster.js +6 -1
  286. package/dist/factories/opensearch/compositions/cluster.js.map +1 -1
  287. package/dist/factories/ory/compositions/ory-identity-stack.d.ts +8 -8
  288. package/dist/factories/ory/types.d.ts +16 -16
  289. package/dist/factories/rook/compositions/object-storage-claim.d.ts +1 -1
  290. package/dist/factories/rook/compositions/rook-ceph-platform.js +8 -1
  291. package/dist/factories/rook/compositions/rook-ceph-platform.js.map +1 -1
  292. package/dist/factories/rook/types.d.ts +1 -1
  293. package/dist/factories/traefik/compositions/index.d.ts +6 -0
  294. package/dist/factories/traefik/compositions/index.d.ts.map +1 -0
  295. package/dist/factories/traefik/compositions/index.js +6 -0
  296. package/dist/factories/traefik/compositions/index.js.map +1 -0
  297. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts +185 -0
  298. package/dist/factories/traefik/compositions/traefik-bootstrap.d.ts.map +1 -0
  299. package/dist/factories/traefik/compositions/traefik-bootstrap.js +339 -0
  300. package/dist/factories/traefik/compositions/traefik-bootstrap.js.map +1 -0
  301. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts +16 -0
  302. package/dist/factories/traefik/compositions/traefik-helm-repository.d.ts.map +1 -0
  303. package/dist/factories/traefik/compositions/traefik-helm-repository.js +31 -0
  304. package/dist/factories/traefik/compositions/traefik-helm-repository.js.map +1 -0
  305. package/dist/factories/traefik/constants.d.ts +78 -0
  306. package/dist/factories/traefik/constants.d.ts.map +1 -0
  307. package/dist/factories/traefik/constants.js +104 -0
  308. package/dist/factories/traefik/constants.js.map +1 -0
  309. package/dist/factories/traefik/index.d.ts +25 -0
  310. package/dist/factories/traefik/index.d.ts.map +1 -0
  311. package/dist/factories/traefik/index.js +25 -0
  312. package/dist/factories/traefik/index.js.map +1 -0
  313. package/dist/factories/traefik/resources/common.d.ts +68 -0
  314. package/dist/factories/traefik/resources/common.d.ts.map +1 -0
  315. package/dist/factories/traefik/resources/common.js +59 -0
  316. package/dist/factories/traefik/resources/common.js.map +1 -0
  317. package/dist/factories/traefik/resources/gateway.d.ts +85 -0
  318. package/dist/factories/traefik/resources/gateway.d.ts.map +1 -0
  319. package/dist/factories/traefik/resources/gateway.js +109 -0
  320. package/dist/factories/traefik/resources/gateway.js.map +1 -0
  321. package/dist/factories/traefik/resources/helm.d.ts +56 -0
  322. package/dist/factories/traefik/resources/helm.d.ts.map +1 -0
  323. package/dist/factories/traefik/resources/helm.js +131 -0
  324. package/dist/factories/traefik/resources/helm.js.map +1 -0
  325. package/dist/factories/traefik/resources/index.d.ts +10 -0
  326. package/dist/factories/traefik/resources/index.d.ts.map +1 -0
  327. package/dist/factories/traefik/resources/index.js +10 -0
  328. package/dist/factories/traefik/resources/index.js.map +1 -0
  329. package/dist/factories/traefik/resources/middleware.d.ts +169 -0
  330. package/dist/factories/traefik/resources/middleware.d.ts.map +1 -0
  331. package/dist/factories/traefik/resources/middleware.js +225 -0
  332. package/dist/factories/traefik/resources/middleware.js.map +1 -0
  333. package/dist/factories/traefik/resources/routing.d.ts +113 -0
  334. package/dist/factories/traefik/resources/routing.d.ts.map +1 -0
  335. package/dist/factories/traefik/resources/routing.js +119 -0
  336. package/dist/factories/traefik/resources/routing.js.map +1 -0
  337. package/dist/factories/traefik/resources/tls.d.ts +85 -0
  338. package/dist/factories/traefik/resources/tls.d.ts.map +1 -0
  339. package/dist/factories/traefik/resources/tls.js +93 -0
  340. package/dist/factories/traefik/resources/tls.js.map +1 -0
  341. package/dist/factories/traefik/types.d.ts +2690 -0
  342. package/dist/factories/traefik/types.d.ts.map +1 -0
  343. package/dist/factories/traefik/types.js +1084 -0
  344. package/dist/factories/traefik/types.js.map +1 -0
  345. package/dist/factories/traefik/utils/helm-values-mapper.d.ts +198 -0
  346. package/dist/factories/traefik/utils/helm-values-mapper.d.ts.map +1 -0
  347. package/dist/factories/traefik/utils/helm-values-mapper.js +372 -0
  348. package/dist/factories/traefik/utils/helm-values-mapper.js.map +1 -0
  349. package/dist/factories/traefik/utils/index.d.ts +6 -0
  350. package/dist/factories/traefik/utils/index.d.ts.map +1 -0
  351. package/dist/factories/traefik/utils/index.js +6 -0
  352. package/dist/factories/traefik/utils/index.js.map +1 -0
  353. package/dist/factories/traefik/utils/middleware-validation.d.ts +42 -0
  354. package/dist/factories/traefik/utils/middleware-validation.d.ts.map +1 -0
  355. package/dist/factories/traefik/utils/middleware-validation.js +78 -0
  356. package/dist/factories/traefik/utils/middleware-validation.js.map +1 -0
  357. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  358. package/dist/factories/webapp/compositions/web-app-with-processing.js +10 -0
  359. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  360. package/dist/index.d.ts +4 -3
  361. package/dist/index.d.ts.map +1 -1
  362. package/dist/index.js +3 -1
  363. package/dist/index.js.map +1 -1
  364. package/package.json +9 -1
@@ -0,0 +1,410 @@
1
+ /**
2
+ * Scheduled `BACKUP ... TO S3(...)` CronJob for an S3-backed ClickHouse.
3
+ *
4
+ * WHY this exists: with `storage.diskType: 's3'` the bucket holds the part
5
+ * DATA but the part METADATA lives on the node's local disk, so the bucket is
6
+ * not self-describing — losing the node loses the map to the objects. That
7
+ * makes durability a backup story, and an "S3-backed" cluster with no backup
8
+ * is a trap. This factory renders that backup explicitly rather than leaving
9
+ * it to a README.
10
+ *
11
+ * SHAPE OF THE JOB
12
+ * - A timestamped backup name (`%Y%m%d%H%M%S`) is generated per run, so each
13
+ * run is a separate, independently restorable backup under
14
+ * `s3://<bucket>/<prefix>/<timestamp>`.
15
+ * - The `BACKUP` statement carries NO credentials: it executes SERVER-side, and
16
+ * the server picks the destination credentials up from the `<s3>` section the
17
+ * storage compiler renders into `config.d/storage.xml` (matched by endpoint
18
+ * prefix). Keys therefore never reach the query text — and never reach
19
+ * `system.query_log`.
20
+ * - With `retention.days`, the backup runs as an initContainer and a prune
21
+ * container follows it, deleting expired timestamped prefixes. The prune step
22
+ * needs S3 `DeleteObject` on the backup prefix (see the IAM policy in the
23
+ * docs).
24
+ *
25
+ * SHARDED CLUSTERS — WHY `ON CLUSTER` IS NOT OPTIONAL
26
+ * A plain `BACKUP DATABASE db TO S3(...)` is executed by the ONE server the
27
+ * client happened to connect to, and that server only holds its own shard's
28
+ * parts. On a multi-shard cluster that silently produces a PARTIAL backup: it
29
+ * succeeds, it is restorable, and it is missing every other shard's data.
30
+ * ClickHouse's answer is `BACKUP ... ON CLUSTER '<cluster>' TO S3(...)`, which
31
+ * fans the statement out to every host of the cluster and coordinates them
32
+ * through [Zoo]Keeper so that all of them contribute to ONE backup at ONE
33
+ * destination path (the `backup_restore_keeper_*` settings in the BACKUP/
34
+ * RESTORE reference exist for exactly this coordination). No `{shard}` /
35
+ * `{replica}` macros belong in the destination: that convention produces N
36
+ * INDEPENDENT per-shard backups, which is a different (external-tool) design
37
+ * and would need N restore statements.
38
+ *
39
+ * Because the coordination is Keeper-based, `ON CLUSTER` is only rendered for
40
+ * topologies that actually have a Keeper — {@link makeClickHouseCluster}
41
+ * REJECTS a multi-shard/multi-replica topology with a backup schedule and no
42
+ * keeper at construction rather than emitting a statement that would back up
43
+ * one shard.
44
+ *
45
+ * RESTORE is deliberately NOT automated — restoring over a live database is a
46
+ * decision, not a schedule. The procedure is documented in
47
+ * `docs/api/clickhouse/index.md`; in short (matching the backup's own shape):
48
+ * `RESTORE DATABASE <db> [ON CLUSTER '<cluster>'] FROM S3('<endpoint>/<timestamp>')`.
49
+ */
50
+ import { type } from 'arktype';
51
+ import { cronJob } from '../../kubernetes/workloads/cron-job.js';
52
+ import { assertClickHouseClusterName } from '../utils/validation.js';
53
+ import { ResolvedClickHouseS3StorageSchema, S3_ACCESS_KEY_ID_ENV, S3_SECRET_ACCESS_KEY_ENV, clickHouseS3ContainerEnv, clickHouseS3ServiceAccountName, } from '../utils/s3-storage.js';
54
+ /**
55
+ * What `storage` has to be, quoted into the ArkType error on a bad value.
56
+ *
57
+ * Re-exported from `utils/s3-storage.ts`, where it is attached to the `mode`
58
+ * discriminant of the resolved-storage schema; kept on this module's surface
59
+ * because that is where callers of the backup factory look for it.
60
+ */
61
+ export { RESOLVED_S3_STORAGE_REQUIREMENT } from '../utils/s3-storage.js';
62
+ /** Image used for the prune step (the ClickHouse image has no AWS CLI). */
63
+ export const DEFAULT_S3_PRUNE_IMAGE = 'amazon/aws-cli:2.22.35';
64
+ /**
65
+ * The `storage` input: an already-RESOLVED S3 storage.
66
+ *
67
+ * It IS {@link ResolvedClickHouseS3StorageSchema} — the one description of a
68
+ * resolved S3 storage, which `resolveClickHouseStorage()` also asserts its own
69
+ * output against. There is deliberately no second, looser shape here: this
70
+ * factory field-selects `storage.backup.*`, `storage.bucket`, `storage.region`
71
+ * and `storage.auth` to build the CronJob, so the structure it reads has to be
72
+ * one that runtime validation ESTABLISHES rather than one a predicate claims.
73
+ *
74
+ * Re-exported under the old name so `ClickHouseS3BackupCronJobConfigSchema`
75
+ * reads as a schema of its own fields.
76
+ */
77
+ export const ClickHouseS3BackupStorageSchema = ResolvedClickHouseS3StorageSchema;
78
+ /**
79
+ * ArkType schema for ClickHouseS3BackupCronJobConfig.
80
+ *
81
+ * Configuration for {@link clickHouseS3BackupCronJob}.
82
+ */
83
+ export const ClickHouseS3BackupCronJobConfigSchema = type({
84
+ /** CHI name — anchors the CronJob name and the ClickHouse service host. */
85
+ name: 'string',
86
+ /** CHI namespace. */
87
+ namespace: 'string',
88
+ /** ClickHouse server version, used for the `clickhouse-client` image. */
89
+ version: 'string',
90
+ /** Resolved S3 storage (must carry a `backup` schedule). */
91
+ storage: ClickHouseS3BackupStorageSchema,
92
+ /** Native TCP port of the ClickHouse service. */
93
+ nativePort: 'number',
94
+ /**
95
+ * CHI cluster name, required when `onCluster` is set — it becomes the
96
+ * `ON CLUSTER '<name>'` target. Passed to the container as an env var rather
97
+ * than baked into the script text so a schema reference (the runtime
98
+ * `spec.clusterName`) survives serialization the way `database` does.
99
+ */
100
+ 'clusterName?': 'string',
101
+ /**
102
+ * Render `BACKUP ... ON CLUSTER` instead of a single-host statement.
103
+ *
104
+ * BUILD-TIME: true iff the topology has more than one shard or replica, or a
105
+ * Keeper is configured. See the module doc for why a single-host statement is
106
+ * a partial backup on a sharded cluster.
107
+ */
108
+ 'onCluster?': 'boolean',
109
+ /** Resource id for composition references. */
110
+ 'id?': 'string',
111
+ });
112
+ /**
113
+ * Env var carrying the `ON CLUSTER` target into the backup container.
114
+ *
115
+ * `CLICKHOUSE_CLUSTER` is NOT a name `clickhouse-client` interprets, so it
116
+ * cannot collide with the client's own configuration.
117
+ */
118
+ export const BACKUP_CLUSTER_ENV = 'CLICKHOUSE_CLUSTER';
119
+ /**
120
+ * Shell script for the backup step.
121
+ *
122
+ * `set -eu` plus an explicit `--query` exit code means a failed BACKUP fails
123
+ * the Job (and, with `retention`, skips the prune step) rather than reporting
124
+ * success on an empty backup.
125
+ */
126
+ function backupScript(onCluster) {
127
+ // `ON CLUSTER '<name>'` fans the statement out to every host of the cluster
128
+ // and coordinates them into ONE backup through Keeper. Without it the
129
+ // connected host backs up only its own shard — see the module doc.
130
+ //
131
+ // The clause interpolates `$CLUSTER_SQL`, not the raw env var: see
132
+ // `clusterNameGuard()` for why the value is re-checked and re-escaped inside
133
+ // the container even though it is validated on the way in.
134
+ const onClusterClause = onCluster ? " ON CLUSTER '$CLUSTER_SQL'" : '';
135
+ return [
136
+ 'set -eu',
137
+ ...(onCluster ? clusterNameGuard() : []),
138
+ // DEFENCE IN DEPTH, mirroring `clusterNameGuard()`: the destination URL is
139
+ // composed and validated as a WHOLE at construction time (see
140
+ // `composeS3EndpointUrl` in `utils/s3-storage.ts`), and by that check it
141
+ // cannot contain a quote at all. But the value reaching this statement is an
142
+ // env var on a rendered CronJob, so the script escapes it the way
143
+ // ClickHouse escapes a quote in a string literal — doubling it — rather
144
+ // than trusting that the manifest was never edited. The pair's failure mode
145
+ // is a backup written to a nonsense path, never an injected statement; the
146
+ // construction-time validation is what makes the path correct, and this is
147
+ // only what keeps the LITERAL closed if that validation is ever weakened.
148
+ 'ENDPOINT_SQL="$(printf \'%s\' "$BACKUP_ENDPOINT" | sed "s/\'/\'\'/g")"',
149
+ 'NAME="$(date -u +%Y%m%d%H%M%S)"',
150
+ onCluster
151
+ ? 'echo "Backing up database $CLICKHOUSE_DATABASE on cluster' +
152
+ ` $${BACKUP_CLUSTER_ENV} to $BACKUP_ENDPOINT$NAME"`
153
+ : 'echo "Backing up database $CLICKHOUSE_DATABASE to $BACKUP_ENDPOINT$NAME"',
154
+ // The destination credentials come from the server's `<s3>` config section
155
+ // (rendered by the storage compiler and matched by endpoint prefix), so the
156
+ // statement itself carries none — nothing sensitive reaches query_log.
157
+ // The database name is validated as a bare SQL identifier at resolve time;
158
+ // the cluster name and the endpoint are checked and escaped above.
159
+ 'clickhouse-client --host "$CLICKHOUSE_HOST" --port "$CLICKHOUSE_PORT"' +
160
+ ' --user "$CLICKHOUSE_USER" --password "$CLICKHOUSE_PASSWORD"' +
161
+ ` --query "BACKUP DATABASE $CLICKHOUSE_DATABASE${onClusterClause} TO` +
162
+ " S3('$ENDPOINT_SQL$NAME')\"",
163
+ 'echo "Backup $NAME complete"',
164
+ ].join('\n');
165
+ }
166
+ /**
167
+ * Re-validate and escape the `ON CLUSTER` target inside the container.
168
+ *
169
+ * DEFENCE IN DEPTH, and the depth is real: the name is checked on the way in
170
+ * ({@link assertClickHouseClusterName}) only when it is a CONCRETE string, and
171
+ * carried into the RGD as a `pattern=` marker for the kro path — but the value
172
+ * that actually reaches this script is an environment variable, resolved by
173
+ * KRO at instance time and editable on the rendered CronJob afterwards. So the
174
+ * script asserts the same rule itself and REFUSES to run rather than issue a
175
+ * statement built from a name it does not recognise.
176
+ *
177
+ * The escape (doubling `'`, ClickHouse's own string-literal escape) is
178
+ * redundant after that check by construction. It is emitted anyway so the
179
+ * statement stays well-formed if the guard is ever relaxed — the failure mode
180
+ * of the pair is a refused backup, never an injected one.
181
+ */
182
+ function clusterNameGuard() {
183
+ return [
184
+ `CLUSTER="$${BACKUP_CLUSTER_ENV}"`,
185
+ // POSIX `case` globs, matched against the WHOLE word: empty, any
186
+ // disallowed character (the `-` sits last in the bracket expression, where
187
+ // it is literal), a first character that is not a letter, or a trailing
188
+ // dash. Same rule as CLICKHOUSE_CLUSTER_NAME_PATTERN.
189
+ 'case "$CLUSTER" in',
190
+ ' "" | *[!A-Za-z0-9-]* | [!A-Za-z]* | *-)',
191
+ ` echo "Refusing to back up: $${BACKUP_CLUSTER_ENV} is not a cluster identifier" >&2`,
192
+ ' exit 1 ;;',
193
+ 'esac',
194
+ // The Altinity CRD caps `clusters[].name` at 15 characters; a longer value
195
+ // cannot name a real cluster, so it is a bug or an edit, not a backup.
196
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: POSIX shell string length
197
+ 'if [ "${#CLUSTER}" -gt 15 ]; then',
198
+ ` echo "Refusing to back up: $${BACKUP_CLUSTER_ENV} is longer than 15 characters" >&2`,
199
+ ' exit 1',
200
+ 'fi',
201
+ // ClickHouse escapes a quote inside a string literal by doubling it.
202
+ 'CLUSTER_SQL="$(printf \'%s\' "$CLUSTER" | sed "s/\'/\'\'/g")"',
203
+ ];
204
+ }
205
+ /**
206
+ * Shell script for the retention prune step.
207
+ *
208
+ * Backup prefixes are pure-numeric timestamps, so expiry is a string
209
+ * comparison against a cutoff stamp — no date parsing of listing output, and
210
+ * anything that is not a timestamped backup directory is skipped rather than
211
+ * deleted.
212
+ */
213
+ function pruneScript() {
214
+ return [
215
+ 'set -eu',
216
+ 'CUTOFF="$(date -u -d "-$RETENTION_DAYS days" +%Y%m%d%H%M%S)"',
217
+ 'echo "Pruning backups older than $CUTOFF"',
218
+ // The braced form here is a POSIX default-value expansion (the variable is
219
+ // absent for real AWS), the one place braces are actually required.
220
+ // biome-ignore lint/suspicious/noTemplateCurlyInString: POSIX shell default value
221
+ 'if [ -n "${AWS_ENDPOINT_URL:-}" ]; then ENDPOINT_ARGS="--endpoint-url $AWS_ENDPOINT_URL";',
222
+ 'else ENDPOINT_ARGS=""; fi',
223
+ // ENDPOINT_ARGS must word-split into two arguments, so it stays unquoted.
224
+ '# shellcheck disable=SC2086',
225
+ 'aws s3 ls "s3://$BACKUP_BUCKET/$BACKUP_PREFIX/" $ENDPOINT_ARGS |',
226
+ ' awk \'$1 == "PRE" { print $2 }\' | tr -d "/" | while read -r NAME; do',
227
+ // Skip anything that is not a pure-numeric backup timestamp rather than
228
+ // deleting it — the bucket prefix may hold other objects.
229
+ ' case "$NAME" in "" | *[!0-9]*) continue ;; esac',
230
+ ' if [ "$NAME" -lt "$CUTOFF" ]; then',
231
+ ' echo "Deleting expired backup $NAME"',
232
+ ' aws s3 rm --recursive "s3://$BACKUP_BUCKET/$BACKUP_PREFIX/$NAME" $ENDPOINT_ARGS',
233
+ ' fi',
234
+ ' done',
235
+ ].join('\n');
236
+ }
237
+ /** ClickHouse connection env for the backup step. */
238
+ function clickHouseConnectionEnv(config) {
239
+ const backup = config.storage.backup;
240
+ const auth = backup?.auth;
241
+ return [
242
+ {
243
+ name: 'CLICKHOUSE_HOST',
244
+ value: `clickhouse-${config.name}.${config.namespace}.svc.cluster.local`,
245
+ },
246
+ { name: 'CLICKHOUSE_PORT', value: String(config.nativePort) },
247
+ { name: 'CLICKHOUSE_DATABASE', value: backup?.database ?? 'default' },
248
+ auth === undefined
249
+ ? { name: 'CLICKHOUSE_USER', value: 'default' }
250
+ : {
251
+ name: 'CLICKHOUSE_USER',
252
+ valueFrom: {
253
+ secretKeyRef: { name: auth.secretName, key: auth.usernameKey, optional: false },
254
+ },
255
+ },
256
+ auth === undefined
257
+ ? { name: 'CLICKHOUSE_PASSWORD', value: '' }
258
+ : {
259
+ name: 'CLICKHOUSE_PASSWORD',
260
+ valueFrom: {
261
+ secretKeyRef: { name: auth.secretName, key: auth.passwordKey, optional: false },
262
+ },
263
+ },
264
+ { name: 'BACKUP_ENDPOINT', value: backup?.endpointUrl ?? '' },
265
+ ...(config.onCluster === true
266
+ ? // `clusterName` is required when `onCluster` is set (checked by the
267
+ // factory below), but it may legitimately be a schema reference, so it
268
+ // travels as an env value exactly like `database` does.
269
+ [{ name: BACKUP_CLUSTER_ENV, value: config.clusterName }]
270
+ : []),
271
+ ];
272
+ }
273
+ /** AWS env for the prune step: bucket coordinates plus the same credentials. */
274
+ function pruneEnv(config) {
275
+ const backup = config.storage.backup;
276
+ const env = [
277
+ { name: 'BACKUP_BUCKET', value: backup?.bucket ?? '' },
278
+ { name: 'BACKUP_PREFIX', value: backup?.prefix ?? '' },
279
+ { name: 'RETENTION_DAYS', value: String(backup?.retentionDays ?? 0) },
280
+ ];
281
+ if (config.storage.region !== undefined) {
282
+ env.push({ name: 'AWS_REGION', value: config.storage.region });
283
+ }
284
+ if (config.storage.endpoint !== undefined) {
285
+ env.push({ name: 'AWS_ENDPOINT_URL', value: config.storage.endpoint });
286
+ }
287
+ // The AWS CLI reads the standard variable names while the storage compiler's
288
+ // env helper emits ClickHouse-specific ones, so map them here rather than
289
+ // duplicating the secretKeyRef shape. IRSA needs no mapping at all — the CLI
290
+ // picks up the same projected web-identity token as the server.
291
+ //
292
+ // A `Map`, not an object literal, so the lookup below cannot read
293
+ // `Object.prototype`: `({})['constructor']` is a FUNCTION, not `undefined`,
294
+ // so the "unexpected env var" guard would have passed such a name straight
295
+ // through and pushed a container env var whose `name` is not a string. The
296
+ // env names are ours today, but the guard is the thing that has to hold.
297
+ const awsNameByChName = new Map([
298
+ [S3_ACCESS_KEY_ID_ENV, 'AWS_ACCESS_KEY_ID'],
299
+ [S3_SECRET_ACCESS_KEY_ENV, 'AWS_SECRET_ACCESS_KEY'],
300
+ ]);
301
+ for (const entry of clickHouseS3ContainerEnv(config.storage)) {
302
+ const awsName = awsNameByChName.get(entry.name);
303
+ if (awsName === undefined) {
304
+ throw new Error(`clickHouseS3BackupCronJob: unexpected S3 credential env var '${entry.name}'.`);
305
+ }
306
+ env.push({ name: awsName, valueFrom: entry.valueFrom });
307
+ }
308
+ return env;
309
+ }
310
+ /**
311
+ * Create the scheduled backup CronJob for an S3-backed ClickHouse cluster.
312
+ *
313
+ * @param config - Backup CronJob configuration
314
+ * @returns Enhanced CronJob resource with schedule-based readiness evaluation
315
+ * @throws Error when the resolved storage carries no `backup` schedule, when
316
+ * `onCluster` is set without a `clusterName`, or when a concrete
317
+ * `clusterName` is not a bare identifier
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * const backup = clickHouseS3BackupCronJob({
322
+ * name: 'observability',
323
+ * namespace: 'observability',
324
+ * version: '25.12.5',
325
+ * storage: resolved,
326
+ * nativePort: 9000,
327
+ * // Sharded/replicated topology: back up EVERY shard, coordinated by Keeper.
328
+ * onCluster: true,
329
+ * clusterName: 'cluster',
330
+ * id: 'clickhouseBackup',
331
+ * });
332
+ * ```
333
+ */
334
+ export function clickHouseS3BackupCronJob(config) {
335
+ const backup = config.storage.backup;
336
+ if (backup === undefined) {
337
+ throw new Error('clickHouseS3BackupCronJob: the resolved storage carries no backup schedule. ' +
338
+ 'Set storage.backup.schedule to render a backup CronJob.');
339
+ }
340
+ const onCluster = config.onCluster === true;
341
+ if (onCluster && config.clusterName === undefined) {
342
+ throw new Error('clickHouseS3BackupCronJob: `onCluster` requires `clusterName` — it is the ' +
343
+ "`ON CLUSTER '<name>'` target of the BACKUP statement.");
344
+ }
345
+ if (onCluster) {
346
+ // Concrete names only — a schema reference is validated by the generated
347
+ // KRO schema (`ClickHouseClusterNameSchema`) and, at run time, by the
348
+ // guard the script itself carries.
349
+ assertClickHouseClusterName('clickHouseS3BackupCronJob', 'clusterName', config.clusterName);
350
+ }
351
+ const backupContainer = {
352
+ name: 'backup',
353
+ image: `clickhouse/clickhouse-server:${config.version}`,
354
+ command: ['sh', '-c', backupScript(onCluster)],
355
+ env: clickHouseConnectionEnv(config),
356
+ };
357
+ const prune = backup.retentionDays === undefined
358
+ ? undefined
359
+ : {
360
+ name: 'prune',
361
+ image: DEFAULT_S3_PRUNE_IMAGE,
362
+ command: ['sh', '-c', pruneScript()],
363
+ env: pruneEnv(config),
364
+ };
365
+ const serviceAccountName = clickHouseS3ServiceAccountName(config.storage, config.name);
366
+ return cronJob({
367
+ ...(config.id !== undefined && { id: config.id }),
368
+ metadata: {
369
+ name: `${config.name}-s3-backup`,
370
+ namespace: config.namespace,
371
+ labels: {
372
+ 'app.kubernetes.io/name': 'clickhouse-s3-backup',
373
+ 'app.kubernetes.io/instance': config.name,
374
+ 'app.kubernetes.io/managed-by': 'typekro',
375
+ },
376
+ },
377
+ spec: {
378
+ schedule: backup.schedule,
379
+ // A backup that overlaps its predecessor competes for the same server
380
+ // and the same object keys; skip instead.
381
+ concurrencyPolicy: 'Forbid',
382
+ successfulJobsHistoryLimit: 3,
383
+ failedJobsHistoryLimit: 3,
384
+ jobTemplate: {
385
+ spec: {
386
+ backoffLimit: 2,
387
+ template: {
388
+ metadata: {
389
+ labels: {
390
+ 'app.kubernetes.io/name': 'clickhouse-s3-backup',
391
+ 'app.kubernetes.io/instance': config.name,
392
+ },
393
+ },
394
+ spec: {
395
+ restartPolicy: 'Never',
396
+ ...(serviceAccountName !== undefined && { serviceAccountName }),
397
+ // Sequencing: with retention the backup must COMPLETE before the
398
+ // prune reads the listing, and Job containers run in parallel —
399
+ // so the backup becomes an initContainer.
400
+ ...(prune === undefined
401
+ ? { containers: [backupContainer] }
402
+ : { initContainers: [backupContainer], containers: [prune] }),
403
+ },
404
+ },
405
+ },
406
+ },
407
+ },
408
+ });
409
+ }
410
+ //# sourceMappingURL=s3-backup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-backup.js","sourceRoot":"","sources":["../../../../src/factories/clickhouse/resources/s3-backup.ts"],"names":[],"mappings":"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"}