k8ts 0.13.2 → 0.14.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 (585) hide show
  1. package/dist/common-world.d.ts +3 -8
  2. package/dist/common-world.d.ts.map +1 -1
  3. package/dist/common-world.js +6 -9
  4. package/dist/common-world.js.map +1 -1
  5. package/dist/env/env.d.ts +7 -7
  6. package/dist/env/env.d.ts.map +1 -1
  7. package/dist/env/env.js +21 -23
  8. package/dist/env/env.js.map +1 -1
  9. package/dist/env/error.d.ts +5 -0
  10. package/dist/env/error.d.ts.map +1 -0
  11. package/dist/env/error.js +12 -0
  12. package/dist/env/error.js.map +1 -0
  13. package/dist/env/index.d.ts +1 -1
  14. package/dist/env/index.d.ts.map +1 -1
  15. package/dist/env/types.d.ts +5 -5
  16. package/dist/env/types.d.ts.map +1 -1
  17. package/dist/gvks/apps.d.ts +29 -0
  18. package/dist/gvks/apps.d.ts.map +1 -0
  19. package/dist/gvks/apps.js.map +1 -0
  20. package/dist/gvks/batch.d.ts +17 -0
  21. package/dist/gvks/batch.d.ts.map +1 -0
  22. package/dist/gvks/batch.js.map +1 -0
  23. package/dist/gvks/default.d.ts +73 -0
  24. package/dist/gvks/default.d.ts.map +1 -0
  25. package/dist/gvks/default.js.map +1 -0
  26. package/dist/gvks/gateway.d.ts +29 -0
  27. package/dist/gvks/gateway.d.ts.map +1 -0
  28. package/dist/gvks/gateway.js.map +1 -0
  29. package/dist/gvks/index.d.ts.map +1 -0
  30. package/dist/gvks/index.js.map +1 -0
  31. package/dist/gvks/metrics.d.ts +17 -0
  32. package/dist/gvks/metrics.d.ts.map +1 -0
  33. package/dist/gvks/metrics.js.map +1 -0
  34. package/dist/gvks/networking.d.ts +13 -0
  35. package/dist/gvks/networking.d.ts.map +1 -0
  36. package/dist/gvks/networking.js.map +1 -0
  37. package/dist/gvks/rbac.d.ts +25 -0
  38. package/dist/gvks/rbac.d.ts.map +1 -0
  39. package/dist/gvks/rbac.js.map +1 -0
  40. package/dist/gvks/storage.d.ts +17 -0
  41. package/dist/gvks/storage.d.ts.map +1 -0
  42. package/dist/gvks/storage.js.map +1 -0
  43. package/dist/index.d.ts +2 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/kinds.d.ts +2 -0
  48. package/dist/kinds.d.ts.map +1 -0
  49. package/dist/kinds.js +18 -0
  50. package/dist/kinds.js.map +1 -0
  51. package/dist/origins/file/file.d.ts +13 -14
  52. package/dist/origins/file/file.d.ts.map +1 -1
  53. package/dist/origins/file/file.js +14 -17
  54. package/dist/origins/file/file.js.map +1 -1
  55. package/dist/origins/file/index.d.ts +0 -1
  56. package/dist/origins/file/index.d.ts.map +1 -1
  57. package/dist/origins/file/index.js +0 -1
  58. package/dist/origins/file/index.js.map +1 -1
  59. package/dist/origins/file/section.d.ts +11 -11
  60. package/dist/origins/file/section.d.ts.map +1 -1
  61. package/dist/origins/file/section.js +15 -13
  62. package/dist/origins/file/section.js.map +1 -1
  63. package/dist/origins/world.d.ts +6 -5
  64. package/dist/origins/world.d.ts.map +1 -1
  65. package/dist/origins/world.js +9 -5
  66. package/dist/origins/world.js.map +1 -1
  67. package/dist/resources/annotations.d.ts +2 -0
  68. package/dist/resources/annotations.d.ts.map +1 -0
  69. package/dist/resources/{persistent/block-mode.js → annotations.js} +1 -1
  70. package/dist/resources/annotations.js.map +1 -0
  71. package/dist/resources/config/configmap.d.ts +7 -7
  72. package/dist/resources/config/configmap.d.ts.map +1 -1
  73. package/dist/resources/config/configmap.js +7 -6
  74. package/dist/resources/config/configmap.js.map +1 -1
  75. package/dist/resources/config/index.d.ts +0 -1
  76. package/dist/resources/config/index.d.ts.map +1 -1
  77. package/dist/resources/config/index.js +0 -1
  78. package/dist/resources/config/index.js.map +1 -1
  79. package/dist/resources/config/resolver.d.ts +2 -2
  80. package/dist/resources/config/resolver.d.ts.map +1 -1
  81. package/dist/resources/config/resolver.js +4 -3
  82. package/dist/resources/config/resolver.js.map +1 -1
  83. package/dist/resources/config/secret.d.ts +7 -14
  84. package/dist/resources/config/secret.d.ts.map +1 -1
  85. package/dist/resources/config/secret.js +6 -4
  86. package/dist/resources/config/secret.js.map +1 -1
  87. package/dist/resources/errors.d.ts +7 -0
  88. package/dist/resources/errors.d.ts.map +1 -0
  89. package/dist/resources/errors.js +12 -0
  90. package/dist/resources/errors.js.map +1 -0
  91. package/dist/resources/hostpath.d.ts +1 -1
  92. package/dist/resources/hostpath.d.ts.map +1 -1
  93. package/dist/resources/index.d.ts +2 -5
  94. package/dist/resources/index.d.ts.map +1 -1
  95. package/dist/resources/index.js +2 -5
  96. package/dist/resources/index.js.map +1 -1
  97. package/dist/resources/namespace/namespace.d.ts +7 -9
  98. package/dist/resources/namespace/namespace.d.ts.map +1 -1
  99. package/dist/resources/namespace/namespace.js +7 -4
  100. package/dist/resources/namespace/namespace.js.map +1 -1
  101. package/dist/resources/network/http-route/http-route.d.ts +19 -0
  102. package/dist/resources/network/http-route/http-route.d.ts.map +1 -0
  103. package/dist/resources/network/http-route/http-route.js +51 -0
  104. package/dist/resources/network/http-route/http-route.js.map +1 -0
  105. package/dist/resources/network/http-route/index.d.ts.map +1 -0
  106. package/dist/resources/network/http-route/index.js.map +1 -0
  107. package/dist/resources/network/index.d.ts +3 -0
  108. package/dist/resources/network/index.d.ts.map +1 -0
  109. package/dist/resources/network/index.js +19 -0
  110. package/dist/resources/network/index.js.map +1 -0
  111. package/dist/resources/network/service/index.d.ts.map +1 -0
  112. package/dist/resources/network/service/index.js.map +1 -0
  113. package/dist/resources/network/service/service-port.d.ts +12 -0
  114. package/dist/resources/network/service/service-port.d.ts.map +1 -0
  115. package/dist/resources/{service → network/service}/service-port.js +5 -5
  116. package/dist/resources/network/service/service-port.js.map +1 -0
  117. package/dist/resources/network/service/service.d.ts +46 -0
  118. package/dist/resources/network/service/service.d.ts.map +1 -0
  119. package/dist/resources/{service → network/service}/service.js +34 -22
  120. package/dist/resources/network/service/service.js.map +1 -0
  121. package/dist/resources/network/service/utils.d.ts +5 -0
  122. package/dist/resources/network/service/utils.d.ts.map +1 -0
  123. package/dist/resources/network/service/utils.js +22 -0
  124. package/dist/resources/network/service/utils.js.map +1 -0
  125. package/dist/resources/persistent/access-mode.d.ts +4 -7
  126. package/dist/resources/persistent/access-mode.d.ts.map +1 -1
  127. package/dist/resources/persistent/access-mode.js +20 -24
  128. package/dist/resources/persistent/access-mode.js.map +1 -1
  129. package/dist/resources/persistent/claim/pvc.d.ts +17 -20
  130. package/dist/resources/persistent/claim/pvc.d.ts.map +1 -1
  131. package/dist/resources/persistent/claim/pvc.js +22 -28
  132. package/dist/resources/persistent/claim/pvc.js.map +1 -1
  133. package/dist/resources/persistent/index.d.ts +1 -1
  134. package/dist/resources/persistent/index.d.ts.map +1 -1
  135. package/dist/resources/persistent/index.js +1 -1
  136. package/dist/resources/persistent/index.js.map +1 -1
  137. package/dist/resources/persistent/volume/parse-backend.d.ts +1 -1
  138. package/dist/resources/persistent/volume/parse-backend.js +3 -3
  139. package/dist/resources/persistent/volume/parse-backend.js.map +1 -1
  140. package/dist/resources/persistent/volume/pv.d.ts +23 -25
  141. package/dist/resources/persistent/volume/pv.d.ts.map +1 -1
  142. package/dist/resources/persistent/volume/pv.js +23 -29
  143. package/dist/resources/persistent/volume/pv.js.map +1 -1
  144. package/dist/resources/persistent/volume-mode.d.ts +2 -0
  145. package/dist/resources/persistent/volume-mode.d.ts.map +1 -0
  146. package/dist/resources/persistent/volume-mode.js +3 -0
  147. package/dist/resources/persistent/volume-mode.js.map +1 -0
  148. package/dist/resources/rbac/cluster-role-binding.d.ts +12 -12
  149. package/dist/resources/rbac/cluster-role-binding.d.ts.map +1 -1
  150. package/dist/resources/rbac/cluster-role-binding.js +12 -10
  151. package/dist/resources/rbac/cluster-role-binding.js.map +1 -1
  152. package/dist/resources/rbac/cluster-role.d.ts +6 -23
  153. package/dist/resources/rbac/cluster-role.d.ts.map +1 -1
  154. package/dist/resources/rbac/cluster-role.js +9 -18
  155. package/dist/resources/rbac/cluster-role.js.map +1 -1
  156. package/dist/resources/rbac/role-props.d.ts +20 -0
  157. package/dist/resources/rbac/role-props.d.ts.map +1 -0
  158. package/dist/resources/rbac/role-props.js +17 -0
  159. package/dist/resources/rbac/role-props.js.map +1 -0
  160. package/dist/resources/rbac/service-account.d.ts +8 -8
  161. package/dist/resources/rbac/service-account.d.ts.map +1 -1
  162. package/dist/resources/rbac/service-account.js +8 -6
  163. package/dist/resources/rbac/service-account.js.map +1 -1
  164. package/dist/resources/workload/cronjob/index.d.ts +21 -0
  165. package/dist/resources/workload/cronjob/index.d.ts.map +1 -0
  166. package/dist/resources/workload/cronjob/index.js +98 -0
  167. package/dist/resources/workload/cronjob/index.js.map +1 -0
  168. package/dist/resources/workload/daemonset/daemonset.d.ts +16 -0
  169. package/dist/resources/workload/daemonset/daemonset.d.ts.map +1 -0
  170. package/dist/resources/workload/daemonset/daemonset.js +117 -0
  171. package/dist/resources/workload/daemonset/daemonset.js.map +1 -0
  172. package/dist/resources/workload/daemonset/index.d.ts +2 -0
  173. package/dist/resources/workload/daemonset/index.d.ts.map +1 -0
  174. package/dist/resources/workload/daemonset/index.js +18 -0
  175. package/dist/resources/workload/daemonset/index.js.map +1 -0
  176. package/dist/resources/workload/daemonset/props.d.ts +15 -0
  177. package/dist/resources/workload/daemonset/props.d.ts.map +1 -0
  178. package/dist/resources/{pod/container/mounts.js → workload/daemonset/props.js} +1 -1
  179. package/dist/resources/workload/daemonset/props.js.map +1 -0
  180. package/dist/resources/workload/deployment/deployment.d.ts +16 -0
  181. package/dist/resources/workload/deployment/deployment.d.ts.map +1 -0
  182. package/dist/resources/{deployment → workload/deployment}/deployment.js +39 -34
  183. package/dist/resources/workload/deployment/deployment.js.map +1 -0
  184. package/dist/resources/workload/deployment/index.d.ts.map +1 -0
  185. package/dist/resources/workload/deployment/index.js.map +1 -0
  186. package/dist/resources/workload/deployment/props.d.ts +17 -0
  187. package/dist/resources/workload/deployment/props.d.ts.map +1 -0
  188. package/dist/{_type/prefix$.js → resources/workload/deployment/props.js} +1 -1
  189. package/dist/resources/workload/deployment/props.js.map +1 -0
  190. package/dist/resources/workload/index.d.ts +7 -0
  191. package/dist/resources/workload/index.d.ts.map +1 -0
  192. package/dist/resources/{pod → workload}/index.js +6 -3
  193. package/dist/resources/workload/index.js.map +1 -0
  194. package/dist/resources/workload/pod/container/container.d.ts +47 -0
  195. package/dist/resources/workload/pod/container/container.d.ts.map +1 -0
  196. package/dist/resources/{pod → workload/pod}/container/container.js +46 -38
  197. package/dist/resources/workload/pod/container/container.js.map +1 -0
  198. package/dist/resources/workload/pod/container/index.d.ts +3 -0
  199. package/dist/resources/workload/pod/container/index.d.ts.map +1 -0
  200. package/dist/resources/{pod → workload/pod}/container/index.js +1 -0
  201. package/dist/resources/workload/pod/container/index.js.map +1 -0
  202. package/dist/resources/workload/pod/container/mounts/device.d.ts +17 -0
  203. package/dist/resources/workload/pod/container/mounts/device.d.ts.map +1 -0
  204. package/dist/resources/workload/pod/container/mounts/device.js +29 -0
  205. package/dist/resources/workload/pod/container/mounts/device.js.map +1 -0
  206. package/dist/resources/workload/pod/container/mounts/volume.d.ts +21 -0
  207. package/dist/resources/workload/pod/container/mounts/volume.d.ts.map +1 -0
  208. package/dist/resources/{pod → workload/pod}/container/mounts/volume.js +9 -7
  209. package/dist/resources/workload/pod/container/mounts/volume.js.map +1 -0
  210. package/dist/resources/workload/pod/container/ref.d.ts +6 -0
  211. package/dist/resources/workload/pod/container/ref.d.ts.map +1 -0
  212. package/dist/{runner/exporter/meta.js → resources/workload/pod/container/ref.js} +1 -1
  213. package/dist/resources/workload/pod/container/ref.js.map +1 -0
  214. package/dist/resources/workload/pod/container/scope.d.ts +25 -0
  215. package/dist/resources/workload/pod/container/scope.d.ts.map +1 -0
  216. package/dist/resources/workload/pod/container/scope.js +50 -0
  217. package/dist/resources/workload/pod/container/scope.js.map +1 -0
  218. package/dist/resources/workload/pod/container/utils.d.ts +5 -0
  219. package/dist/resources/workload/pod/container/utils.d.ts.map +1 -0
  220. package/dist/resources/workload/pod/container/utils.js +18 -0
  221. package/dist/resources/workload/pod/container/utils.js.map +1 -0
  222. package/dist/resources/workload/pod/pod.d.ts +27 -0
  223. package/dist/resources/workload/pod/pod.d.ts.map +1 -0
  224. package/dist/resources/workload/pod/pod.js +78 -0
  225. package/dist/resources/workload/pod/pod.js.map +1 -0
  226. package/dist/resources/workload/pod/volume/devices.d.ts +24 -0
  227. package/dist/resources/workload/pod/volume/devices.d.ts.map +1 -0
  228. package/dist/resources/{pod → workload/pod}/volume/devices.js +11 -9
  229. package/dist/resources/workload/pod/volume/devices.js.map +1 -0
  230. package/dist/resources/workload/pod/volume/index.d.ts +3 -0
  231. package/dist/resources/workload/pod/volume/index.d.ts.map +1 -0
  232. package/dist/resources/workload/pod/volume/index.js +8 -0
  233. package/dist/resources/workload/pod/volume/index.js.map +1 -0
  234. package/dist/resources/workload/pod/volume/volumes.d.ts +74 -0
  235. package/dist/resources/workload/pod/volume/volumes.d.ts.map +1 -0
  236. package/dist/resources/workload/pod/volume/volumes.js +111 -0
  237. package/dist/resources/workload/pod/volume/volumes.js.map +1 -0
  238. package/dist/resources/workload/statefulset/index.d.ts +2 -0
  239. package/dist/resources/workload/statefulset/index.d.ts.map +1 -0
  240. package/dist/resources/workload/statefulset/index.js +18 -0
  241. package/dist/resources/workload/statefulset/index.js.map +1 -0
  242. package/dist/resources/workload/statefulset/props.d.ts +24 -0
  243. package/dist/resources/workload/statefulset/props.d.ts.map +1 -0
  244. package/dist/{runner/proverbs.js → resources/workload/statefulset/props.js} +1 -1
  245. package/dist/resources/workload/statefulset/props.js.map +1 -0
  246. package/dist/resources/workload/statefulset/scope.d.ts +13 -0
  247. package/dist/resources/workload/statefulset/scope.d.ts.map +1 -0
  248. package/dist/resources/workload/statefulset/scope.js +26 -0
  249. package/dist/resources/workload/statefulset/scope.js.map +1 -0
  250. package/dist/resources/workload/statefulset/statefulset.d.ts +22 -0
  251. package/dist/resources/workload/statefulset/statefulset.d.ts.map +1 -0
  252. package/dist/resources/workload/statefulset/statefulset.js +110 -0
  253. package/dist/resources/workload/statefulset/statefulset.js.map +1 -0
  254. package/dist/resources/workload/util.d.ts +4 -0
  255. package/dist/resources/workload/util.d.ts.map +1 -0
  256. package/dist/resources/workload/util.js +10 -0
  257. package/dist/resources/workload/util.js.map +1 -0
  258. package/dist/resources/workload/workload-ref.d.ts +5 -0
  259. package/dist/resources/workload/workload-ref.d.ts.map +1 -0
  260. package/dist/resources/workload/workload-ref.js +3 -0
  261. package/dist/resources/workload/workload-ref.js.map +1 -0
  262. package/dist/runner/{exporter → engine}/assembler.d.ts +15 -14
  263. package/dist/runner/engine/assembler.d.ts.map +1 -0
  264. package/dist/runner/{exporter → engine}/assembler.js +63 -40
  265. package/dist/runner/engine/assembler.js.map +1 -0
  266. package/dist/runner/engine/index.d.ts +3 -0
  267. package/dist/runner/engine/index.d.ts.map +1 -0
  268. package/dist/runner/{exporter → engine}/index.js +1 -1
  269. package/dist/runner/engine/index.js.map +1 -0
  270. package/dist/runner/engine/loader.d.ts +19 -0
  271. package/dist/runner/engine/loader.d.ts.map +1 -0
  272. package/dist/runner/{exporter → engine}/loader.js +18 -19
  273. package/dist/runner/engine/loader.js.map +1 -0
  274. package/dist/runner/{exporter → engine}/manifester.d.ts +8 -8
  275. package/dist/runner/engine/manifester.d.ts.map +1 -0
  276. package/dist/runner/{exporter → engine}/manifester.js +4 -25
  277. package/dist/runner/engine/manifester.js.map +1 -0
  278. package/dist/runner/{exporter → engine}/saver.d.ts +5 -4
  279. package/dist/runner/engine/saver.d.ts.map +1 -0
  280. package/dist/runner/{exporter → engine}/saver.js +5 -10
  281. package/dist/runner/engine/saver.js.map +1 -0
  282. package/dist/runner/engine/serializer.d.ts +20 -0
  283. package/dist/runner/engine/serializer.d.ts.map +1 -0
  284. package/dist/runner/{exporter → engine}/serializer.js +8 -17
  285. package/dist/runner/engine/serializer.js.map +1 -0
  286. package/dist/runner/{exporter → engine}/stage.d.ts +2 -2
  287. package/dist/runner/engine/stage.d.ts.map +1 -0
  288. package/dist/runner/{exporter → engine}/stage.js +10 -10
  289. package/dist/runner/engine/stage.js.map +1 -0
  290. package/dist/runner/error.d.ts +7 -0
  291. package/dist/runner/error.d.ts.map +1 -0
  292. package/dist/runner/error.js +12 -0
  293. package/dist/runner/error.js.map +1 -0
  294. package/dist/runner/index.d.ts +1 -1
  295. package/dist/runner/index.d.ts.map +1 -1
  296. package/dist/runner/index.js +3 -15
  297. package/dist/runner/index.js.map +1 -1
  298. package/dist/runner/runner.d.ts +8 -6
  299. package/dist/runner/runner.d.ts.map +1 -1
  300. package/dist/runner/runner.js +27 -22
  301. package/dist/runner/runner.js.map +1 -1
  302. package/dist/runner/viz/progress-shower.d.ts +11 -0
  303. package/dist/runner/viz/progress-shower.d.ts.map +1 -0
  304. package/dist/runner/viz/progress-shower.js +63 -0
  305. package/dist/runner/viz/progress-shower.js.map +1 -0
  306. package/dist/runner/{summarizer.d.ts → viz/summarizer.d.ts} +5 -5
  307. package/dist/runner/viz/summarizer.d.ts.map +1 -0
  308. package/dist/runner/{summarizer.js → viz/summarizer.js} +9 -10
  309. package/dist/runner/viz/summarizer.js.map +1 -0
  310. package/dist/util/merge.d.ts +2 -0
  311. package/dist/util/merge.d.ts.map +1 -0
  312. package/dist/util/merge.js +3 -0
  313. package/dist/util/merge.js.map +1 -0
  314. package/package.json +12 -12
  315. package/src/common-world.ts +10 -11
  316. package/src/env/env.ts +33 -35
  317. package/src/env/error.ts +7 -0
  318. package/src/env/index.ts +1 -1
  319. package/src/env/types.ts +5 -5
  320. package/src/index.ts +2 -2
  321. package/src/kinds.ts +1 -0
  322. package/src/origins/file/file.ts +25 -33
  323. package/src/origins/file/index.ts +0 -1
  324. package/src/origins/file/section.ts +17 -16
  325. package/src/origins/world.ts +19 -13
  326. package/src/resources/config/configmap.ts +14 -13
  327. package/src/resources/config/index.ts +0 -1
  328. package/src/resources/config/resolver.ts +8 -5
  329. package/src/resources/config/secret.ts +11 -7
  330. package/src/resources/errors.ts +7 -0
  331. package/src/resources/hostpath.ts +1 -1
  332. package/src/resources/index.ts +2 -5
  333. package/src/resources/namespace/namespace.ts +11 -8
  334. package/src/resources/network/http-route/http-route.ts +62 -0
  335. package/src/resources/network/index.ts +2 -0
  336. package/src/resources/network/service/service-port.ts +17 -0
  337. package/src/resources/network/service/service.ts +135 -0
  338. package/src/resources/network/service/utils.ts +20 -0
  339. package/src/resources/persistent/access-mode.ts +20 -24
  340. package/src/resources/persistent/claim/pvc.ts +41 -43
  341. package/src/resources/persistent/index.ts +1 -1
  342. package/src/resources/persistent/volume/parse-backend.ts +3 -3
  343. package/src/resources/persistent/volume/pv.ts +55 -51
  344. package/src/resources/persistent/volume-mode.ts +1 -0
  345. package/src/resources/rbac/cluster-role-binding.ts +19 -17
  346. package/src/resources/rbac/cluster-role.ts +13 -62
  347. package/src/resources/rbac/role-props.ts +26 -0
  348. package/src/resources/rbac/service-account.ts +14 -12
  349. package/src/resources/workload/cronjob/index.ts +74 -0
  350. package/src/resources/workload/daemonset/daemonset.ts +82 -0
  351. package/src/resources/workload/daemonset/index.ts +1 -0
  352. package/src/resources/workload/daemonset/props.ts +19 -0
  353. package/src/resources/workload/deployment/deployment.ts +79 -0
  354. package/src/resources/workload/deployment/props.ts +19 -0
  355. package/src/resources/workload/index.ts +6 -0
  356. package/src/resources/workload/pod/container/container.ts +227 -0
  357. package/src/resources/{pod → workload/pod}/container/index.ts +1 -0
  358. package/src/resources/workload/pod/container/mounts/device.ts +41 -0
  359. package/src/resources/workload/pod/container/mounts/volume.ts +46 -0
  360. package/src/resources/workload/pod/container/ref.ts +6 -0
  361. package/src/resources/workload/pod/container/scope.ts +83 -0
  362. package/src/resources/workload/pod/container/utils.ts +16 -0
  363. package/src/resources/workload/pod/pod.ts +96 -0
  364. package/src/resources/workload/pod/volume/devices.ts +56 -0
  365. package/src/resources/workload/pod/volume/index.ts +2 -0
  366. package/src/resources/workload/pod/volume/volumes.ts +203 -0
  367. package/src/resources/workload/statefulset/index.ts +1 -0
  368. package/src/resources/workload/statefulset/props.ts +34 -0
  369. package/src/resources/workload/statefulset/scope.ts +25 -0
  370. package/src/resources/workload/statefulset/statefulset.ts +137 -0
  371. package/src/resources/workload/util.ts +8 -0
  372. package/src/resources/workload/workload-ref.ts +5 -0
  373. package/src/runner/{exporter → engine}/assembler.ts +83 -54
  374. package/src/runner/engine/index.ts +2 -0
  375. package/src/runner/{exporter → engine}/loader.ts +32 -29
  376. package/src/runner/{exporter → engine}/manifester.ts +20 -32
  377. package/src/runner/{exporter → engine}/saver.ts +8 -9
  378. package/src/runner/{exporter → engine}/serializer.ts +21 -20
  379. package/src/runner/{exporter → engine}/stage.ts +5 -5
  380. package/src/runner/error.ts +7 -0
  381. package/src/runner/index.ts +1 -1
  382. package/src/runner/runner.ts +44 -29
  383. package/src/runner/{exporter → viz}/progress-shower.ts +21 -21
  384. package/src/runner/{summarizer.ts → viz/summarizer.ts} +21 -21
  385. package/dist/_type/prefix$.d.ts +0 -4
  386. package/dist/_type/prefix$.d.ts.map +0 -1
  387. package/dist/_type/prefix$.js.map +0 -1
  388. package/dist/kinds/apps.d.ts +0 -29
  389. package/dist/kinds/apps.d.ts.map +0 -1
  390. package/dist/kinds/apps.js.map +0 -1
  391. package/dist/kinds/batch.d.ts +0 -17
  392. package/dist/kinds/batch.d.ts.map +0 -1
  393. package/dist/kinds/batch.js.map +0 -1
  394. package/dist/kinds/default.d.ts +0 -73
  395. package/dist/kinds/default.d.ts.map +0 -1
  396. package/dist/kinds/default.js.map +0 -1
  397. package/dist/kinds/gateway.d.ts +0 -29
  398. package/dist/kinds/gateway.d.ts.map +0 -1
  399. package/dist/kinds/gateway.js.map +0 -1
  400. package/dist/kinds/index.d.ts.map +0 -1
  401. package/dist/kinds/index.js.map +0 -1
  402. package/dist/kinds/metrics.d.ts +0 -17
  403. package/dist/kinds/metrics.d.ts.map +0 -1
  404. package/dist/kinds/metrics.js.map +0 -1
  405. package/dist/kinds/networking.d.ts +0 -13
  406. package/dist/kinds/networking.d.ts.map +0 -1
  407. package/dist/kinds/networking.js.map +0 -1
  408. package/dist/kinds/rbac.d.ts +0 -25
  409. package/dist/kinds/rbac.d.ts.map +0 -1
  410. package/dist/kinds/rbac.js.map +0 -1
  411. package/dist/kinds/storage.d.ts +0 -17
  412. package/dist/kinds/storage.d.ts.map +0 -1
  413. package/dist/kinds/storage.js.map +0 -1
  414. package/dist/origins/file/modifier.d.ts +0 -10
  415. package/dist/origins/file/modifier.d.ts.map +0 -1
  416. package/dist/origins/file/modifier.js +0 -21
  417. package/dist/origins/file/modifier.js.map +0 -1
  418. package/dist/resources/config/config-keys-of.d.ts +0 -2
  419. package/dist/resources/config/config-keys-of.d.ts.map +0 -1
  420. package/dist/resources/config/config-keys-of.js +0 -3
  421. package/dist/resources/config/config-keys-of.js.map +0 -1
  422. package/dist/resources/config/key-ref.d.ts +0 -7
  423. package/dist/resources/config/key-ref.d.ts.map +0 -1
  424. package/dist/resources/config/key-ref.js +0 -13
  425. package/dist/resources/config/key-ref.js.map +0 -1
  426. package/dist/resources/cronjob/index.d.ts +0 -20
  427. package/dist/resources/cronjob/index.d.ts.map +0 -1
  428. package/dist/resources/cronjob/index.js +0 -37
  429. package/dist/resources/cronjob/index.js.map +0 -1
  430. package/dist/resources/deployment/deployment.d.ts +0 -30
  431. package/dist/resources/deployment/deployment.d.ts.map +0 -1
  432. package/dist/resources/deployment/deployment.js.map +0 -1
  433. package/dist/resources/deployment/index.d.ts.map +0 -1
  434. package/dist/resources/deployment/index.js.map +0 -1
  435. package/dist/resources/http-route/http-route.d.ts +0 -21
  436. package/dist/resources/http-route/http-route.d.ts.map +0 -1
  437. package/dist/resources/http-route/http-route.js +0 -45
  438. package/dist/resources/http-route/http-route.js.map +0 -1
  439. package/dist/resources/http-route/index.d.ts.map +0 -1
  440. package/dist/resources/http-route/index.js.map +0 -1
  441. package/dist/resources/persistent/block-mode.d.ts +0 -2
  442. package/dist/resources/persistent/block-mode.d.ts.map +0 -1
  443. package/dist/resources/persistent/block-mode.js.map +0 -1
  444. package/dist/resources/pod/container/container.d.ts +0 -47
  445. package/dist/resources/pod/container/container.d.ts.map +0 -1
  446. package/dist/resources/pod/container/container.js.map +0 -1
  447. package/dist/resources/pod/container/index.d.ts +0 -2
  448. package/dist/resources/pod/container/index.d.ts.map +0 -1
  449. package/dist/resources/pod/container/index.js.map +0 -1
  450. package/dist/resources/pod/container/mounts/device.d.ts +0 -17
  451. package/dist/resources/pod/container/mounts/device.d.ts.map +0 -1
  452. package/dist/resources/pod/container/mounts/device.js +0 -27
  453. package/dist/resources/pod/container/mounts/device.js.map +0 -1
  454. package/dist/resources/pod/container/mounts/volume.d.ts +0 -21
  455. package/dist/resources/pod/container/mounts/volume.d.ts.map +0 -1
  456. package/dist/resources/pod/container/mounts/volume.js.map +0 -1
  457. package/dist/resources/pod/container/mounts.d.ts +0 -3
  458. package/dist/resources/pod/container/mounts.d.ts.map +0 -1
  459. package/dist/resources/pod/container/mounts.js.map +0 -1
  460. package/dist/resources/pod/index.d.ts +0 -4
  461. package/dist/resources/pod/index.d.ts.map +0 -1
  462. package/dist/resources/pod/index.js.map +0 -1
  463. package/dist/resources/pod/pod-template.d.ts +0 -54
  464. package/dist/resources/pod/pod-template.d.ts.map +0 -1
  465. package/dist/resources/pod/pod-template.js +0 -119
  466. package/dist/resources/pod/pod-template.js.map +0 -1
  467. package/dist/resources/pod/volume/devices.d.ts +0 -24
  468. package/dist/resources/pod/volume/devices.d.ts.map +0 -1
  469. package/dist/resources/pod/volume/devices.js.map +0 -1
  470. package/dist/resources/pod/volume/index.d.ts +0 -3
  471. package/dist/resources/pod/volume/index.d.ts.map +0 -1
  472. package/dist/resources/pod/volume/index.js +0 -8
  473. package/dist/resources/pod/volume/index.js.map +0 -1
  474. package/dist/resources/pod/volume/volumes.d.ts +0 -66
  475. package/dist/resources/pod/volume/volumes.d.ts.map +0 -1
  476. package/dist/resources/pod/volume/volumes.js +0 -97
  477. package/dist/resources/pod/volume/volumes.js.map +0 -1
  478. package/dist/resources/service/index.d.ts.map +0 -1
  479. package/dist/resources/service/index.js.map +0 -1
  480. package/dist/resources/service/service-port.d.ts +0 -12
  481. package/dist/resources/service/service-port.d.ts.map +0 -1
  482. package/dist/resources/service/service-port.js.map +0 -1
  483. package/dist/resources/service/service.d.ts +0 -39
  484. package/dist/resources/service/service.d.ts.map +0 -1
  485. package/dist/resources/service/service.js.map +0 -1
  486. package/dist/resources/utils/adapters.d.ts +0 -7
  487. package/dist/resources/utils/adapters.d.ts.map +0 -1
  488. package/dist/resources/utils/adapters.js +0 -32
  489. package/dist/resources/utils/adapters.js.map +0 -1
  490. package/dist/runner/exporter/assembler.d.ts.map +0 -1
  491. package/dist/runner/exporter/assembler.js.map +0 -1
  492. package/dist/runner/exporter/index.d.ts +0 -3
  493. package/dist/runner/exporter/index.d.ts.map +0 -1
  494. package/dist/runner/exporter/index.js.map +0 -1
  495. package/dist/runner/exporter/loader.d.ts +0 -18
  496. package/dist/runner/exporter/loader.d.ts.map +0 -1
  497. package/dist/runner/exporter/loader.js.map +0 -1
  498. package/dist/runner/exporter/manifester.d.ts.map +0 -1
  499. package/dist/runner/exporter/manifester.js.map +0 -1
  500. package/dist/runner/exporter/meta.d.ts +0 -2
  501. package/dist/runner/exporter/meta.d.ts.map +0 -1
  502. package/dist/runner/exporter/meta.js.map +0 -1
  503. package/dist/runner/exporter/progress-shower.d.ts +0 -11
  504. package/dist/runner/exporter/progress-shower.d.ts.map +0 -1
  505. package/dist/runner/exporter/progress-shower.js +0 -69
  506. package/dist/runner/exporter/progress-shower.js.map +0 -1
  507. package/dist/runner/exporter/saver.d.ts.map +0 -1
  508. package/dist/runner/exporter/saver.js.map +0 -1
  509. package/dist/runner/exporter/serializer.d.ts +0 -19
  510. package/dist/runner/exporter/serializer.d.ts.map +0 -1
  511. package/dist/runner/exporter/serializer.js.map +0 -1
  512. package/dist/runner/exporter/stage.d.ts.map +0 -1
  513. package/dist/runner/exporter/stage.js.map +0 -1
  514. package/dist/runner/exporter/validator.d.ts +0 -16
  515. package/dist/runner/exporter/validator.d.ts.map +0 -1
  516. package/dist/runner/exporter/validator.js +0 -12
  517. package/dist/runner/exporter/validator.js.map +0 -1
  518. package/dist/runner/paths.d.ts +0 -2
  519. package/dist/runner/paths.d.ts.map +0 -1
  520. package/dist/runner/paths.js +0 -5
  521. package/dist/runner/paths.js.map +0 -1
  522. package/dist/runner/proverbs.d.ts +0 -2
  523. package/dist/runner/proverbs.d.ts.map +0 -1
  524. package/dist/runner/proverbs.js.map +0 -1
  525. package/dist/runner/silly/proverbs.d.ts +0 -7
  526. package/dist/runner/silly/proverbs.d.ts.map +0 -1
  527. package/dist/runner/silly/proverbs.js +0 -21
  528. package/dist/runner/silly/proverbs.js.map +0 -1
  529. package/dist/runner/summarizer.d.ts.map +0 -1
  530. package/dist/runner/summarizer.js.map +0 -1
  531. package/proverbs.txt +0 -20
  532. package/src/_type/prefix$.ts +0 -3
  533. package/src/origins/file/modifier.ts +0 -21
  534. package/src/resources/config/key-ref.ts +0 -8
  535. package/src/resources/cronjob/index.ts +0 -50
  536. package/src/resources/deployment/deployment.ts +0 -95
  537. package/src/resources/http-route/http-route.ts +0 -60
  538. package/src/resources/persistent/block-mode.ts +0 -1
  539. package/src/resources/pod/container/container.ts +0 -215
  540. package/src/resources/pod/container/mounts/device.ts +0 -33
  541. package/src/resources/pod/container/mounts/volume.ts +0 -38
  542. package/src/resources/pod/container/mounts.ts +0 -2
  543. package/src/resources/pod/index.ts +0 -3
  544. package/src/resources/pod/pod-template.ts +0 -166
  545. package/src/resources/pod/volume/devices.ts +0 -55
  546. package/src/resources/pod/volume/index.ts +0 -2
  547. package/src/resources/pod/volume/volumes.ts +0 -170
  548. package/src/resources/service/service-port.ts +0 -17
  549. package/src/resources/service/service.ts +0 -101
  550. package/src/resources/utils/adapters.ts +0 -29
  551. package/src/runner/exporter/index.ts +0 -2
  552. package/src/runner/exporter/validator.ts +0 -13
  553. package/src/runner/paths.ts +0 -1
  554. package/src/runner/proverbs.ts +0 -0
  555. package/src/runner/silly/proverbs.ts +0 -14
  556. /package/dist/{kinds → gvks}/apps.js +0 -0
  557. /package/dist/{kinds → gvks}/batch.js +0 -0
  558. /package/dist/{kinds → gvks}/default.js +0 -0
  559. /package/dist/{kinds → gvks}/gateway.js +0 -0
  560. /package/dist/{kinds → gvks}/index.d.ts +0 -0
  561. /package/dist/{kinds → gvks}/index.js +0 -0
  562. /package/dist/{kinds → gvks}/metrics.js +0 -0
  563. /package/dist/{kinds → gvks}/networking.js +0 -0
  564. /package/dist/{kinds → gvks}/rbac.js +0 -0
  565. /package/dist/{kinds → gvks}/storage.js +0 -0
  566. /package/dist/resources/{http-route → network/http-route}/index.d.ts +0 -0
  567. /package/dist/resources/{http-route → network/http-route}/index.js +0 -0
  568. /package/dist/resources/{service → network/service}/index.d.ts +0 -0
  569. /package/dist/resources/{service → network/service}/index.js +0 -0
  570. /package/dist/resources/{deployment → workload/deployment}/index.d.ts +0 -0
  571. /package/dist/resources/{deployment → workload/deployment}/index.js +0 -0
  572. /package/src/{kinds → gvks}/apps.ts +0 -0
  573. /package/src/{kinds → gvks}/batch.ts +0 -0
  574. /package/src/{kinds → gvks}/default.ts +0 -0
  575. /package/src/{kinds → gvks}/gateway.ts +0 -0
  576. /package/src/{kinds → gvks}/index.ts +0 -0
  577. /package/src/{kinds → gvks}/metrics.ts +0 -0
  578. /package/src/{kinds → gvks}/networking.ts +0 -0
  579. /package/src/{kinds → gvks}/rbac.ts +0 -0
  580. /package/src/{kinds → gvks}/storage.ts +0 -0
  581. /package/src/resources/{config/config-keys-of.ts → annotations.ts} +0 -0
  582. /package/src/resources/{http-route → network/http-route}/index.ts +0 -0
  583. /package/src/resources/{service → network/service}/index.ts +0 -0
  584. /package/src/resources/{deployment → workload/deployment}/index.ts +0 -0
  585. /package/src/{runner/exporter/meta.ts → util/merge.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/util/merge.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/util/merge.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k8ts",
3
- "version": "0.13.2",
3
+ "version": "0.14.0",
4
4
  "description": "Powerful framework for building Kubernetes manifests in TypeScript.",
5
5
  "keywords": [
6
6
  "k8ts",
@@ -36,10 +36,10 @@
36
36
  "types": "./dist/index.d.ts"
37
37
  },
38
38
  "./kinds": {
39
- "require": "./dist/kinds/index.js",
40
- "import": "./dist/kinds/index.js",
41
- "default": "./dist/kinds/index.js",
42
- "types": "./dist/kinds/index.d.ts"
39
+ "require": "./dist/kinds.js",
40
+ "import": "./dist/kinds.js",
41
+ "default": "./dist/kinds.js",
42
+ "types": "./dist/kinds.d.ts"
43
43
  }
44
44
  },
45
45
  "main": "dist/index.js",
@@ -62,11 +62,11 @@
62
62
  "test": "tsx --tsconfig ./example/tsconfig.json ./example/run.ts"
63
63
  },
64
64
  "dependencies": {
65
- "@k8ts/sample-interfaces": "^0.6.2",
65
+ "@k8ts/sample-interfaces": "^0.6.3",
66
66
  "chalk": "4.1.2",
67
67
  "dayjs": "^1.11.13",
68
68
  "doddle": "^7.3.1",
69
- "emittery": "0.13.1",
69
+ "eventemitter3": "^5.0.1",
70
70
  "ip-address": "^10.0.1",
71
71
  "js-yaml": "^4.1.0",
72
72
  "lodash": "^4.17.21",
@@ -74,11 +74,11 @@
74
74
  "parjs": "^1.3.9",
75
75
  "simple-git": "^3.27.0",
76
76
  "stacktracey": "^2.1.8",
77
- "what-are-you": "^0.2.0"
77
+ "what-are-you": "^0.3.0"
78
78
  },
79
79
  "devDependencies": {
80
- "@k8ts/instruments": "^0.11.2",
81
- "@k8ts/metadata": "^0.10.2",
80
+ "@k8ts/instruments": "^0.12.0",
81
+ "@k8ts/metadata": "^0.11.0",
82
82
  "@types/chalk": "^2.2.4",
83
83
  "@types/jest": "^29.5.12",
84
84
  "@types/js-yaml": "^4",
@@ -95,8 +95,8 @@
95
95
  "yamprint": "^0.8.4"
96
96
  },
97
97
  "peerDependencies": {
98
- "@k8ts/instruments": "^0.11.2",
99
- "@k8ts/metadata": "^0.10.2"
98
+ "@k8ts/instruments": "^0.12.0",
99
+ "@k8ts/metadata": "^0.11.0"
100
100
  },
101
101
  "engines": {
102
102
  "node": ">=16.0.0"
@@ -1,5 +1,5 @@
1
- import type { Rsc_Ctor_Of } from "@k8ts/instruments"
2
- import { World_Entity, type World_Props } from "./origins"
1
+ import type { ResourceRef_Constructor } from "@k8ts/instruments"
2
+ import { K8tsWorld_Base, type K8tsWorld_Base_Props } from "./origins"
3
3
  import {
4
4
  ClusterRole,
5
5
  ClusterRoleBinding,
@@ -61,13 +61,12 @@ const defaultKindPairs = [
61
61
  ClusterRoleBinding
62
62
  ] as const
63
63
 
64
- export class World<MoreKinds extends Rsc_Ctor_Of[] = []> extends World_Entity<
65
- [...typeof defaultKindPairs, ...MoreKinds]
66
- > {
67
- constructor(name: string, props?: World_Props<[...typeof defaultKindPairs, ...MoreKinds]>) {
68
- props ??= {}
69
- props.kinds ??= []
70
- props.kinds.push(...(defaultKindPairs as any))
71
- super(name, props)
72
- }
64
+ export function K8tsWorld<MoreKinds extends ResourceRef_Constructor[] = []>(
65
+ name: string,
66
+ props?: K8tsWorld_Base_Props<[...typeof defaultKindPairs, ...MoreKinds]>
67
+ ) {
68
+ props ??= {}
69
+ props.kinds ??= []
70
+ props.kinds.push(...(defaultKindPairs as any))
71
+ return new K8tsWorld_Base<[...typeof defaultKindPairs, ...MoreKinds]>(name, props)
73
72
  }
package/src/env/env.ts CHANGED
@@ -1,17 +1,17 @@
1
- import type { Rsc_Ref } from "@k8ts/instruments"
2
- import type { CDK } from "@k8ts/sample-interfaces"
1
+ import type { ResourceRef } from "@k8ts/instruments"
2
+ import type { K8S } from "@k8ts/sample-interfaces"
3
3
  import { seq } from "doddle"
4
- import { isObject } from "what-are-you"
5
- import { MakeError } from "../error"
6
- import { v1 } from "../kinds/index"
7
- import { type Env_From, type Env_Leaf, type Env_Value } from "./types"
4
+ import { isPrimitive } from "what-are-you"
5
+ import { v1 } from "../kinds"
6
+ import { K8tsEnvError } from "./error"
7
+ import { type EnvValue, type EnvValueSource } from "./types"
8
8
  import { isValidEnvVarName } from "./validate-name"
9
9
 
10
- export class EnvBuilder<M extends Record<keyof M, Env_Leaf>> {
10
+ export class EnvBuilder<M extends Record<keyof M, EnvValue>> {
11
11
  constructor(private readonly _env: M) {
12
12
  for (const key of Object.keys(_env)) {
13
13
  if (!isValidEnvVarName(key)) {
14
- throw new MakeError("Invalid environment variable name", {
14
+ throw new K8tsEnvError("Invalid environment variable name", {
15
15
  key: key
16
16
  })
17
17
  }
@@ -22,29 +22,29 @@ export class EnvBuilder<M extends Record<keyof M, Env_Leaf>> {
22
22
  return this._env
23
23
  }
24
24
 
25
- private _envFromSecret(value: Env_From): CDK.EnvVarSource {
25
+ private _envFromSecret(value: EnvValueSource): K8S.EnvVarSource {
26
26
  return {
27
27
  secretKeyRef: {
28
- name: value.$backend.name,
28
+ name: value.$backend.ident.name,
29
29
  key: value.key,
30
30
  optional: value.optional
31
31
  }
32
32
  }
33
33
  }
34
34
 
35
- private _envFromConfigMap<S extends Rsc_Ref<v1.ConfigMap._>>(
36
- value: Env_From
37
- ): CDK.EnvVarSource {
35
+ private _envFromConfigMap<S extends ResourceRef<v1.ConfigMap._>>(
36
+ value: EnvValueSource
37
+ ): K8S.EnvVarSource {
38
38
  return {
39
39
  configMapKeyRef: {
40
- name: value.$backend.name,
40
+ name: value.$backend.ident.name,
41
41
  key: value.key,
42
42
  optional: value.optional
43
43
  }
44
44
  }
45
45
  }
46
46
 
47
- *[Symbol.iterator](): IterableIterator<[string, Env_Value]> {
47
+ *[Symbol.iterator](): IterableIterator<[string, EnvValue]> {
48
48
  for (const entry of Object.entries(this._env)) {
49
49
  yield entry as any
50
50
  }
@@ -53,30 +53,28 @@ export class EnvBuilder<M extends Record<keyof M, Env_Leaf>> {
53
53
  toEnvVars() {
54
54
  return seq(this)
55
55
  .map(([key, value]) => {
56
- if (!isObject(value)) {
56
+ if (isPrimitive(value)) {
57
57
  return {
58
58
  name: key,
59
59
  value: `${value}`
60
60
  }
61
61
  }
62
- const resourceValue = value as any
63
- switch (resourceValue.$backend.kind) {
64
- case v1.Secret._:
65
- return {
66
- name: key,
67
- valueFrom: this._envFromSecret(resourceValue as any)
68
- } satisfies CDK.EnvVar
69
- case v1.ConfigMap._:
70
- return {
71
- name: key,
72
- valueFrom: this._envFromConfigMap(resourceValue as any)
73
- } satisfies CDK.EnvVar
74
- default:
75
- throw new MakeError("Invalid environment variable reference", {
76
- key: key,
77
- value: value
78
- })
62
+ if (value.$backend.is(v1.Secret._)) {
63
+ return {
64
+ name: key,
65
+ valueFrom: this._envFromSecret(value as any)
66
+ } satisfies K8S.EnvVar
67
+ }
68
+ if (value.$backend.is(v1.ConfigMap._)) {
69
+ return {
70
+ name: key,
71
+ valueFrom: this._envFromConfigMap(value as any)
72
+ } satisfies K8S.EnvVar
79
73
  }
74
+ throw new K8tsEnvError("Invalid environment variable reference", {
75
+ key: key,
76
+ value: value
77
+ })
80
78
  })
81
79
  .toArray()
82
80
  .pull()
@@ -90,7 +88,7 @@ export class EnvBuilder<M extends Record<keyof M, Env_Leaf>> {
90
88
  }
91
89
 
92
90
  get entries() {
93
- return Object.entries(this._env) as [string, Env_Leaf][]
91
+ return Object.entries(this._env) as [string, EnvValue][]
94
92
  }
95
93
 
96
94
  static make<M>(env?: M) {
@@ -100,7 +98,7 @@ export class EnvBuilder<M extends Record<keyof M, Env_Leaf>> {
100
98
 
101
99
  export function Env<
102
100
  M extends {
103
- [key in keyof M]: Env_Leaf
101
+ [key in keyof M]: EnvValue
104
102
  }
105
103
  >(env?: M) {
106
104
  return EnvBuilder.make(env)
@@ -0,0 +1,7 @@
1
+ export class K8tsEnvError extends Error {
2
+ override name = "EnvError" as const
3
+ constructor(message: string, details: Record<string, any> = {}) {
4
+ super(message)
5
+ Object.assign(this, details)
6
+ }
7
+ }
package/src/env/index.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { Env, EnvBuilder } from "./env"
2
- export type { Env_From, Env_Leaf, Env_Value } from "./types"
2
+ export type { EnvValue, EnvValuePrimitive, EnvValueSource } from "./types"
package/src/env/types.ts CHANGED
@@ -1,10 +1,10 @@
1
- import type { Rsc_Ref } from "@k8ts/instruments"
1
+ import type { ResourceRef } from "@k8ts/instruments"
2
2
 
3
- export type Env_Value = string | null | number | boolean | bigint | undefined
4
- export interface Env_From {
5
- $backend: Rsc_Ref
3
+ export type EnvValuePrimitive = string | null | number | boolean | bigint | undefined
4
+ export interface EnvValueSource {
5
+ $backend: ResourceRef
6
6
  key: string
7
7
  optional?: boolean
8
8
  }
9
9
 
10
- export type Env_Leaf = string | null | number | boolean | bigint | undefined | Env_From
10
+ export type EnvValue = EnvValuePrimitive | EnvValueSource
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
- export type { CDK } from "@k8ts/sample-interfaces"
2
- export { World } from "./common-world"
1
+ export type { K8S } from "@k8ts/sample-interfaces"
2
+ export { K8tsWorld } from "./common-world"
3
3
  export * from "./origins"
4
4
  export * from "./resources"
5
5
  export * from "./runner"
package/src/kinds.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./gvks/index"
@@ -1,69 +1,61 @@
1
1
  import {
2
- Origin_Exporter,
3
- Rsc_FwRef_Exports,
4
- type Origin_Entity,
2
+ ExporterOrigin,
3
+ ForwardExports,
5
4
  type Origin_Props,
6
- type Rsc_Ctor_Of,
7
- type Rsc_Ref
5
+ type ResourceRef,
6
+ type ResourceRef_Constructor
8
7
  } from "@k8ts/instruments"
9
8
  import { doddlify, seq } from "doddle"
10
9
  import type { v1 } from "../../kinds"
11
- import { Origin_Section, type File_Section_Props } from "./section"
10
+ import { K8tsFile_Section, type K8tsFile_Section_Props } from "./section"
12
11
  export type File_sName = `${string}.yaml`
13
- export interface File_Props<
14
- Kinds extends Rsc_Ctor_Of[] = Rsc_Ctor_Of[],
12
+ export interface K8tsFile_Props<
13
+ Kinds extends ResourceRef_Constructor[] = ResourceRef_Constructor[],
15
14
  Exports extends Kinds[number]["prototype"] = Kinds[number]["prototype"]
16
15
  > extends Origin_Props<Kinds[number]> {
17
16
  kinds?: Kinds
18
- namespace?: Rsc_Ref<v1.Namespace._>
19
- FILE(FILE: Origin_File_Scope<Kinds>): Iterable<Exports | Rsc_FwRef_Exports<Exports>>
17
+ namespace?: ResourceRef<v1.Namespace._>
18
+ resources$($file: K8tsFile_Scope<Kinds>): Iterable<Exports | ForwardExports<Exports>>
20
19
  }
21
- export class Origin_File extends Origin_Exporter<File_Props> {
20
+ export class K8tsFile extends ExporterOrigin<K8tsFile_Props> {
22
21
  #_ = (() => {
23
- this.meta.add("source.k8ts.org/", {
22
+ this.metadata.add("source.k8ts.org/", {
24
23
  "^file": this.name
25
24
  })
26
- this.meta.overwrite("namespace", this._props.namespace?.name)
27
25
  })()
28
26
  get kind() {
29
27
  return "[k8ts] File"
30
28
  }
31
29
 
30
+ get namespace() {
31
+ return this._props.namespace?.ident.name
32
+ }
33
+
32
34
  @doddlify
33
35
  protected __exports__() {
34
36
  return seq(
35
- this._props.FILE.call(this, new Origin_File_Scope(this) as any) as Iterable<Rsc_Ref>
37
+ this._props.resources$.call(
38
+ this,
39
+ new K8tsFile_Scope(this) as any
40
+ ) as Iterable<ResourceRef>
36
41
  ).cache()
37
42
  }
38
43
  }
39
- export function File<
40
- Kinds extends Rsc_Ctor_Of[] = Rsc_Ctor_Of[],
41
- Exports extends Kinds[number]["prototype"] = Kinds[number]["prototype"]
42
- >(parent: Origin_Entity, name: File_sName, props: File_Props<Kinds, Exports>) {
43
- const file = new Origin_File(parent, name, props as any)
44
-
45
- return Rsc_FwRef_Exports<Exports>(file)
46
- }
47
44
 
48
- export class Origin_File_Scope<Kinds extends Rsc_Ctor_Of[]> {
49
- constructor(private readonly _file: Origin_File) {
45
+ export class K8tsFile_Scope<Kinds extends ResourceRef_Constructor[]> {
46
+ constructor(private readonly _file: K8tsFile) {
50
47
  this.on = this._file.on
51
48
  }
52
49
  get __entity__() {
53
50
  return this._file
54
51
  }
55
- on: Origin_File["on"]
52
+ on: K8tsFile["on"]
56
53
 
57
54
  Section<Exported extends Kinds[number]["prototype"] = Kinds[number]["prototype"]>(
58
55
  name: string,
59
- props: File_Section_Props<Exported>
56
+ props: K8tsFile_Section_Props<Exported>
60
57
  ) {
61
- const section: Origin_Section = new Origin_Section(this._file, name, props)
62
- return Rsc_FwRef_Exports<Exported>(section)
58
+ const section: K8tsFile_Section = new K8tsFile_Section(this._file, name, props)
59
+ return ForwardExports<Exported>(section)
63
60
  }
64
61
  }
65
-
66
- export type File<
67
- Kinds extends Rsc_Ctor_Of[] = Rsc_Ctor_Of[],
68
- T extends Kinds[number]["prototype"] = Kinds[number]["prototype"]
69
- > = Rsc_FwRef_Exports<T>
@@ -1,3 +1,2 @@
1
1
  export * from "./file"
2
- export * from "./modifier"
3
2
  export * from "./section"
@@ -1,36 +1,37 @@
1
- import { type Origin_Exporter_Props, type Rsc_Ref, Origin_Exporter } from "@k8ts/instruments"
2
- import { doddle, doddlify, seq } from "doddle"
1
+ import { type OriginExporter_Props, type ResourceRef, ExporterOrigin } from "@k8ts/instruments"
2
+ import { doddlify, seq } from "doddle"
3
3
  import type { v1 } from "../../kinds"
4
4
 
5
- export class File_Section_Scope {
6
- on: Origin_Section["on"]
5
+ export class K8tsFile_Section_Scope {
6
+ on: K8tsFile_Section["on"]
7
7
  get __entity__() {
8
8
  return this._section
9
9
  }
10
- constructor(private readonly _section: Origin_Section) {
10
+ constructor(private readonly _section: K8tsFile_Section) {
11
11
  this.on = this._section.on
12
12
  }
13
13
  }
14
- export interface File_Section_Props<Exported extends Rsc_Ref = Rsc_Ref>
15
- extends Origin_Exporter_Props {
16
- namespace?: Rsc_Ref<v1.Namespace._>
17
- SECTION(SCOPE: File_Section_Scope): Iterable<Exported>
14
+ export interface K8tsFile_Section_Props<Exported extends ResourceRef = ResourceRef>
15
+ extends OriginExporter_Props {
16
+ namespace?: ResourceRef<v1.Namespace._>
17
+ resources$(Section: K8tsFile_Section_Scope): Iterable<Exported>
18
18
  }
19
19
 
20
- export class Origin_Section extends Origin_Exporter<File_Section_Props> {
20
+ export class K8tsFile_Section extends ExporterOrigin<K8tsFile_Section_Props> {
21
21
  get kind() {
22
22
  return "[k8ts] File/Section"
23
23
  }
24
- #_ = doddle(() => {
25
- this.meta.overwrite({
26
- namespace: this._props.namespace?.name
27
- })
28
- }).pull()
29
24
 
25
+ get namespace() {
26
+ return this.__parent__.cast(ExporterOrigin).namespace
27
+ }
30
28
  @doddlify
31
29
  protected __exports__() {
32
30
  return seq(
33
- this._props.SECTION.call(this, new File_Section_Scope(this)) as Iterable<Rsc_Ref>
31
+ this._props.resources$.call(
32
+ this,
33
+ new K8tsFile_Section_Scope(this)
34
+ ) as Iterable<ResourceRef>
34
35
  ).cache()
35
36
  }
36
37
  }
@@ -1,31 +1,37 @@
1
1
  import {
2
- Origin_Entity,
2
+ ForwardExports,
3
+ OriginEntity,
3
4
  type Origin_Props,
4
- type Rsc_Ctor_Of,
5
- type Rsc_FwRef_Exports
5
+ type ResourceRef_Constructor
6
6
  } from "@k8ts/instruments"
7
7
 
8
- import { File, type File_Props, type File_sName } from "./file"
8
+ import { K8tsFile, type File_sName, type K8tsFile_Props } from "./file"
9
9
 
10
- export type World_Props<Kinds extends Rsc_Ctor_Of[]> = Origin_Props<Kinds[number]>
10
+ export type K8tsWorld_Base_Props<Kinds extends ResourceRef_Constructor[]> = Origin_Props<
11
+ Kinds[number]
12
+ >
11
13
 
12
- export class World_Entity<Kinds extends Rsc_Ctor_Of[] = Rsc_Ctor_Of[]> extends Origin_Entity<
13
- World_Props<Kinds>
14
- > {
14
+ export class K8tsWorld_Base<
15
+ Kinds extends ResourceRef_Constructor[] = ResourceRef_Constructor[]
16
+ > extends OriginEntity<K8tsWorld_Base_Props<Kinds>> {
15
17
  get kind() {
16
18
  return "[k8ts] World"
17
19
  }
18
20
  #_ = (() => {
19
- this.meta.add("source.k8ts.org/", {
21
+ this.metadata.add("source.k8ts.org/", {
20
22
  "^world": this.name
21
23
  })
22
24
  })()
23
-
24
- File<Exports extends Rsc_Ctor_Of["prototype"]>(
25
+ get namespace() {
26
+ return undefined
27
+ }
28
+ File<Exports extends ResourceRef_Constructor["prototype"]>(
25
29
  name: File_sName,
26
- props: File_Props<Kinds, Exports>
30
+ props: K8tsFile_Props<Kinds, Exports>
27
31
  ) {
28
- return File(this, name, props) as Rsc_FwRef_Exports<Exports>
32
+ const file = new K8tsFile(this, name, props as any)
33
+
34
+ return ForwardExports<Exports>(file)
29
35
  }
30
36
  }
31
37
 
@@ -1,24 +1,25 @@
1
- import { Rsc_Top, type DataSource } from "@k8ts/instruments"
2
- import { CDK } from "@k8ts/sample-interfaces"
3
- import { v1 } from "../../kinds/default"
1
+ import { K8sResource, type DataSource, type Resource_Props_Top } from "@k8ts/instruments"
2
+ import { K8S } from "@k8ts/sample-interfaces"
3
+ import { merge } from "lodash"
4
+ import { v1 } from "../../gvks/default"
4
5
  import { resolveDataSourceRecord } from "./resolver"
5
- export interface ConfigMap_Props<Keys extends string = string> {
6
- $data: Record<Keys, DataSource>
6
+ export interface ConfigMap_Props<Keys extends string = string> extends Resource_Props_Top {
7
+ $data?: Record<Keys, DataSource>
7
8
  }
8
9
 
9
- export class ConfigMap<Name extends string = string, Keys extends string = string> extends Rsc_Top<
10
- Name,
11
- ConfigMap_Props<Keys>
12
- > {
10
+ export class ConfigMap<
11
+ Name extends string = string,
12
+ Keys extends string = string
13
+ > extends K8sResource<Name, ConfigMap_Props<Keys>> {
13
14
  get keys(): Keys[] {
14
- return Object.keys(this.props.$data) as Keys[]
15
+ return Object.keys(this.props.$data ?? {}) as Keys[]
15
16
  }
16
17
  get kind() {
17
18
  return v1.ConfigMap._
18
19
  }
19
20
 
20
- protected async body(): Promise<CDK.KubeConfigMapProps> {
21
- const resolvedRecord = await resolveDataSourceRecord(this, this.props.$data)
22
- return resolvedRecord
21
+ protected async __body__(): Promise<K8S.KubeConfigMapProps> {
22
+ const resolvedRecord = await resolveDataSourceRecord(this, this.props.$data ?? {})
23
+ return merge(resolvedRecord, this.props.$$manifest)
23
24
  }
24
25
  }
@@ -1,3 +1,2 @@
1
1
  export * from "./configmap"
2
- export * from "./key-ref"
3
2
  export * from "./secret"
@@ -1,8 +1,9 @@
1
- import { DataSource_Lazy, type DataSource, type Rsc_Ref } from "@k8ts/instruments"
1
+ import { isDataSource, type DataSource, type ResourceRef } from "@k8ts/instruments"
2
2
  import { isArrayBufferLike, isTypedArray } from "what-are-you"
3
+ import { K8tsResourceError } from "../errors"
3
4
 
4
5
  export async function resolveDataSourceRecord(
5
- resource: Rsc_Ref,
6
+ resource: ResourceRef,
6
7
  input: Record<string, DataSource>
7
8
  ) {
8
9
  const binaryData: [string, string][] = []
@@ -10,8 +11,8 @@ export async function resolveDataSourceRecord(
10
11
  const entries = Object.entries(input ?? {}) as [string, DataSource][]
11
12
  for (const [k, v] of entries) {
12
13
  let current = v
13
- if (current instanceof DataSource_Lazy) {
14
- current = await current.get()
14
+ if (isDataSource(current)) {
15
+ current = await current.pull()
15
16
  }
16
17
  if (isTypedArray(current) || isArrayBufferLike(current)) {
17
18
  const encoded = Buffer.from(current).toString("base64")
@@ -19,7 +20,9 @@ export async function resolveDataSourceRecord(
19
20
  } else if (typeof current === "string") {
20
21
  data.push([k, current])
21
22
  } else {
22
- throw new Error(`Unsupported DataSource for ConfigMap ${resource} key "${k}"`)
23
+ throw new K8tsResourceError(
24
+ `Unsupported DataSource for ConfigMap ${resource} key "${k}"`
25
+ )
23
26
  }
24
27
  }
25
28
  return {
@@ -1,8 +1,10 @@
1
- import { Rsc_Top, type DataSource } from "@k8ts/instruments"
2
- import { v1 } from "../../kinds/default"
1
+ import { K8sResource, type DataSource, type Resource_Props_Top } from "@k8ts/instruments"
2
+ import { merge } from "lodash"
3
+ import type { K8S } from "../.."
4
+ import { v1 } from "../../gvks/default"
3
5
  import { resolveDataSourceRecord } from "./resolver"
4
6
 
5
- export interface Secret_Data_Entry {
7
+ export interface Secret_Entry {
6
8
  as: "base64" | "plain"
7
9
  value: DataSource
8
10
  }
@@ -16,12 +18,13 @@ export type Secret_Types =
16
18
  | "ssh-auth"
17
19
  | "tls"}`
18
20
  | "bootstrap.kubernetes.io/token"
19
- export interface Secret_Props<Keys extends string = string> {
21
+ export interface Secret_Props<Keys extends string = string>
22
+ extends Resource_Props_Top<K8S.KubeSecretProps> {
20
23
  $type?: Secret_Types
21
24
  $data?: Record<Keys, DataSource>
22
25
  }
23
26
 
24
- export class Secret<Name extends string = string, Keys extends string = string> extends Rsc_Top<
27
+ export class Secret<Name extends string = string, Keys extends string = string> extends K8sResource<
25
28
  Name,
26
29
  Secret_Props<Keys>
27
30
  > {
@@ -32,12 +35,13 @@ export class Secret<Name extends string = string, Keys extends string = string>
32
35
  return v1.Secret._
33
36
  }
34
37
 
35
- protected async body() {
38
+ protected async __body__(): Promise<K8S.KubeSecretProps> {
36
39
  const resolved = await resolveDataSourceRecord(this, this.props.$data ?? {})
37
- return {
40
+ const body = {
38
41
  type: this.props.$type ?? "Opaque",
39
42
  data: resolved.binaryData,
40
43
  stringData: resolved.data
41
44
  }
45
+ return merge(body, this.props.$$manifest)
42
46
  }
43
47
  }
@@ -0,0 +1,7 @@
1
+ export class K8tsResourceError extends Error {
2
+ name = "K8tsResourceError" as const
3
+ constructor(message: string, fields: Record<string, any> & { cause?: Error } = {}) {
4
+ super(message)
5
+ Object.assign(this, fields)
6
+ }
7
+ }
@@ -1,4 +1,4 @@
1
- export type HostPathType =
1
+ export type HostPath_Type =
2
2
  | "DirectoryOrCreate"
3
3
  | "Directory"
4
4
  | "FileOrCreate"
@@ -1,9 +1,6 @@
1
1
  export * from "./config"
2
- export * from "./cronjob"
3
- export * from "./deployment"
4
- export * from "./http-route"
5
2
  export * from "./namespace"
3
+ export * from "./network"
6
4
  export * from "./persistent"
7
- export * from "./pod"
8
5
  export * from "./rbac"
9
- export * from "./service"
6
+ export * from "./workload"