k8ts 0.8.1 → 0.9.2

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 (437) hide show
  1. package/dist/default-world.d.ts +5 -0
  2. package/dist/default-world.d.ts.map +1 -0
  3. package/dist/default-world.js +54 -0
  4. package/dist/default-world.js.map +1 -0
  5. package/dist/env/env.d.ts +6 -8
  6. package/dist/env/env.d.ts.map +1 -1
  7. package/dist/env/env.js +29 -28
  8. package/dist/env/env.js.map +1 -1
  9. package/dist/env/index.d.ts +1 -1
  10. package/dist/env/index.d.ts.map +1 -1
  11. package/dist/env/types.d.ts +7 -5
  12. package/dist/env/types.d.ts.map +1 -1
  13. package/dist/env/types.js +11 -0
  14. package/dist/env/types.js.map +1 -1
  15. package/dist/index.d.ts +4 -7
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +5 -31
  18. package/dist/index.js.map +1 -1
  19. package/dist/kinds/apps.d.ts +30 -0
  20. package/dist/kinds/apps.d.ts.map +1 -0
  21. package/dist/kinds/apps.js +33 -0
  22. package/dist/kinds/apps.js.map +1 -0
  23. package/dist/kinds/batch.d.ts +18 -0
  24. package/dist/kinds/batch.d.ts.map +1 -0
  25. package/dist/kinds/batch.js +21 -0
  26. package/dist/kinds/batch.js.map +1 -0
  27. package/dist/kinds/default.d.ts +74 -0
  28. package/dist/kinds/default.d.ts.map +1 -0
  29. package/dist/kinds/default.js +78 -0
  30. package/dist/kinds/default.js.map +1 -0
  31. package/dist/kinds/gateway.d.ts +30 -0
  32. package/dist/kinds/gateway.d.ts.map +1 -0
  33. package/dist/kinds/gateway.js +33 -0
  34. package/dist/kinds/gateway.js.map +1 -0
  35. package/dist/kinds/index.d.ts +9 -0
  36. package/dist/kinds/index.d.ts.map +1 -0
  37. package/dist/{_imports/_mix.js → kinds/index.js} +9 -4
  38. package/dist/kinds/index.js.map +1 -0
  39. package/dist/kinds/metrics.d.ts +18 -0
  40. package/dist/kinds/metrics.d.ts.map +1 -0
  41. package/dist/kinds/metrics.js +21 -0
  42. package/dist/kinds/metrics.js.map +1 -0
  43. package/dist/kinds/networking.d.ts +14 -0
  44. package/dist/kinds/networking.d.ts.map +1 -0
  45. package/dist/kinds/networking.js +17 -0
  46. package/dist/kinds/networking.js.map +1 -0
  47. package/dist/kinds/rbac.d.ts +26 -0
  48. package/dist/kinds/rbac.d.ts.map +1 -0
  49. package/dist/kinds/rbac.js +29 -0
  50. package/dist/kinds/rbac.js.map +1 -0
  51. package/dist/kinds/storage.d.ts +18 -0
  52. package/dist/kinds/storage.d.ts.map +1 -0
  53. package/dist/kinds/storage.js +21 -0
  54. package/dist/kinds/storage.js.map +1 -0
  55. package/dist/origins/external.d.ts +8 -0
  56. package/dist/origins/external.d.ts.map +1 -0
  57. package/dist/origins/external.js +19 -0
  58. package/dist/origins/external.js.map +1 -0
  59. package/dist/origins/file/file.d.ts +24 -0
  60. package/dist/origins/file/file.d.ts.map +1 -0
  61. package/dist/{node/sub-resource.js → origins/file/file.js} +51 -32
  62. package/dist/origins/file/file.js.map +1 -0
  63. package/dist/origins/file/index.d.ts +4 -0
  64. package/dist/origins/file/index.d.ts.map +1 -0
  65. package/dist/{file → origins/file}/index.js +2 -0
  66. package/dist/origins/file/index.js.map +1 -0
  67. package/dist/origins/file/modifier.d.ts +10 -0
  68. package/dist/origins/file/modifier.d.ts.map +1 -0
  69. package/dist/origins/file/modifier.js +21 -0
  70. package/dist/origins/file/modifier.js.map +1 -0
  71. package/dist/origins/file/section.d.ts +18 -0
  72. package/dist/origins/file/section.d.ts.map +1 -0
  73. package/dist/{external/index.js → origins/file/section.js} +40 -41
  74. package/dist/origins/file/section.js.map +1 -0
  75. package/dist/origins/index.d.ts +4 -0
  76. package/dist/origins/index.d.ts.map +1 -0
  77. package/dist/{world → origins}/index.js +2 -0
  78. package/dist/origins/index.js.map +1 -0
  79. package/dist/origins/world.d.ts +13 -0
  80. package/dist/origins/world.d.ts.map +1 -0
  81. package/dist/origins/world.js +27 -0
  82. package/dist/origins/world.js.map +1 -0
  83. package/dist/resources/configmap/configmap.d.ts +10 -12
  84. package/dist/resources/configmap/configmap.d.ts.map +1 -1
  85. package/dist/resources/configmap/configmap.js +21 -72
  86. package/dist/resources/configmap/configmap.js.map +1 -1
  87. package/dist/resources/cronjob/index.d.ts +12 -12
  88. package/dist/resources/cronjob/index.d.ts.map +1 -1
  89. package/dist/resources/cronjob/index.js +29 -86
  90. package/dist/resources/cronjob/index.js.map +1 -1
  91. package/dist/resources/deployment/deployment.d.ts +28 -29
  92. package/dist/resources/deployment/deployment.d.ts.map +1 -1
  93. package/dist/resources/deployment/deployment.js +59 -109
  94. package/dist/resources/deployment/deployment.js.map +1 -1
  95. package/dist/resources/external/index.d.ts +19 -0
  96. package/dist/resources/external/index.d.ts.map +1 -0
  97. package/dist/resources/external/index.js +44 -0
  98. package/dist/resources/external/index.js.map +1 -0
  99. package/dist/resources/http-route/http-route.d.ts +31 -16
  100. package/dist/resources/http-route/http-route.d.ts.map +1 -1
  101. package/dist/resources/http-route/http-route.js +28 -80
  102. package/dist/resources/http-route/http-route.js.map +1 -1
  103. package/dist/resources/index.d.ts +4 -0
  104. package/dist/resources/index.d.ts.map +1 -1
  105. package/dist/resources/index.js +4 -0
  106. package/dist/resources/index.js.map +1 -1
  107. package/dist/resources/namespace/namespace.d.ts +10 -11
  108. package/dist/resources/namespace/namespace.d.ts.map +1 -1
  109. package/dist/resources/namespace/namespace.js +14 -70
  110. package/dist/resources/namespace/namespace.js.map +1 -1
  111. package/dist/resources/persistent/access-mode.d.ts +5 -5
  112. package/dist/resources/persistent/access-mode.d.ts.map +1 -1
  113. package/dist/resources/persistent/access-mode.js +2 -2
  114. package/dist/resources/persistent/access-mode.js.map +1 -1
  115. package/dist/resources/persistent/block-mode.d.ts +1 -1
  116. package/dist/resources/persistent/block-mode.d.ts.map +1 -1
  117. package/dist/resources/persistent/claim/pvc.d.ts +25 -24
  118. package/dist/resources/persistent/claim/pvc.d.ts.map +1 -1
  119. package/dist/resources/persistent/claim/pvc.js +40 -91
  120. package/dist/resources/persistent/claim/pvc.js.map +1 -1
  121. package/dist/resources/persistent/volume/parse-backend.d.ts +2 -2
  122. package/dist/resources/persistent/volume/parse-backend.d.ts.map +1 -1
  123. package/dist/resources/persistent/volume/parse-backend.js.map +1 -1
  124. package/dist/resources/persistent/volume/pv.d.ts +42 -27
  125. package/dist/resources/persistent/volume/pv.d.ts.map +1 -1
  126. package/dist/resources/persistent/volume/pv.js +47 -100
  127. package/dist/resources/persistent/volume/pv.js.map +1 -1
  128. package/dist/resources/pod/container/container.d.ts +42 -48
  129. package/dist/resources/pod/container/container.d.ts.map +1 -1
  130. package/dist/resources/pod/container/container.js +89 -143
  131. package/dist/resources/pod/container/container.js.map +1 -1
  132. package/dist/resources/pod/container/mounts.d.ts +29 -30
  133. package/dist/resources/pod/container/mounts.d.ts.map +1 -1
  134. package/dist/resources/pod/container/mounts.js +42 -41
  135. package/dist/resources/pod/container/mounts.js.map +1 -1
  136. package/dist/resources/pod/pod-template.d.ts +41 -40
  137. package/dist/resources/pod/pod-template.d.ts.map +1 -1
  138. package/dist/resources/pod/pod-template.js +76 -110
  139. package/dist/resources/pod/pod-template.js.map +1 -1
  140. package/dist/resources/pod/volume/devices.d.ts +18 -20
  141. package/dist/resources/pod/volume/devices.d.ts.map +1 -1
  142. package/dist/resources/pod/volume/devices.js +33 -85
  143. package/dist/resources/pod/volume/devices.js.map +1 -1
  144. package/dist/resources/pod/volume/index.d.ts +2 -3
  145. package/dist/resources/pod/volume/index.d.ts.map +1 -1
  146. package/dist/resources/pod/volume/index.js +3 -5
  147. package/dist/resources/pod/volume/index.js.map +1 -1
  148. package/dist/resources/pod/volume/volumes.d.ts +24 -25
  149. package/dist/resources/pod/volume/volumes.d.ts.map +1 -1
  150. package/dist/resources/pod/volume/volumes.js +66 -108
  151. package/dist/resources/pod/volume/volumes.js.map +1 -1
  152. package/dist/resources/rbac/cluster-role-binding.d.ts +17 -0
  153. package/dist/resources/rbac/cluster-role-binding.d.ts.map +1 -0
  154. package/dist/resources/rbac/cluster-role-binding.js +32 -0
  155. package/dist/resources/rbac/cluster-role-binding.js.map +1 -0
  156. package/dist/resources/rbac/cluster-role.d.ts +28 -0
  157. package/dist/resources/rbac/cluster-role.d.ts.map +1 -0
  158. package/dist/resources/rbac/cluster-role.js +46 -0
  159. package/dist/resources/rbac/cluster-role.js.map +1 -0
  160. package/dist/resources/rbac/service-account.d.ts +11 -0
  161. package/dist/resources/rbac/service-account.d.ts.map +1 -0
  162. package/dist/resources/rbac/service-account.js +21 -0
  163. package/dist/resources/rbac/service-account.js.map +1 -0
  164. package/dist/resources/secret/index.d.ts +1 -3
  165. package/dist/resources/secret/index.d.ts.map +1 -1
  166. package/dist/resources/secret/index.js +4 -25
  167. package/dist/resources/secret/index.js.map +1 -1
  168. package/dist/resources/secret/secret.d.ts +8 -4
  169. package/dist/resources/secret/secret.d.ts.map +1 -1
  170. package/dist/resources/secret/secret.js +12 -65
  171. package/dist/resources/secret/secret.js.map +1 -1
  172. package/dist/resources/service/service-port.d.ts +12 -15
  173. package/dist/resources/service/service-port.d.ts.map +1 -1
  174. package/dist/resources/service/service-port.js +21 -24
  175. package/dist/resources/service/service-port.js.map +1 -1
  176. package/dist/resources/service/service.d.ts +33 -27
  177. package/dist/resources/service/service.d.ts.map +1 -1
  178. package/dist/resources/service/service.js +63 -123
  179. package/dist/resources/service/service.js.map +1 -1
  180. package/dist/resources/utils/adapters.d.ts +3 -3
  181. package/dist/resources/utils/adapters.d.ts.map +1 -1
  182. package/dist/resources/utils/adapters.js +5 -4
  183. package/dist/resources/utils/adapters.js.map +1 -1
  184. package/dist/runner/exporter/assembler.d.ts +5 -6
  185. package/dist/runner/exporter/assembler.d.ts.map +1 -1
  186. package/dist/runner/exporter/assembler.js +4 -3
  187. package/dist/runner/exporter/assembler.js.map +1 -1
  188. package/dist/runner/exporter/loader.d.ts +3 -5
  189. package/dist/runner/exporter/loader.d.ts.map +1 -1
  190. package/dist/runner/exporter/loader.js +18 -31
  191. package/dist/runner/exporter/loader.js.map +1 -1
  192. package/dist/runner/exporter/manifester.d.ts +5 -5
  193. package/dist/runner/exporter/manifester.d.ts.map +1 -1
  194. package/dist/runner/exporter/manifester.js +11 -3
  195. package/dist/runner/exporter/manifester.js.map +1 -1
  196. package/dist/runner/exporter/meta.d.ts +1 -1
  197. package/dist/runner/exporter/meta.d.ts.map +1 -1
  198. package/dist/runner/exporter/meta.js +0 -2
  199. package/dist/runner/exporter/meta.js.map +1 -1
  200. package/dist/runner/exporter/saver.d.ts +2 -2
  201. package/dist/runner/exporter/saver.d.ts.map +1 -1
  202. package/dist/runner/exporter/saver.js.map +1 -1
  203. package/dist/runner/exporter/serializer.d.ts +4 -4
  204. package/dist/runner/exporter/serializer.d.ts.map +1 -1
  205. package/dist/runner/exporter/serializer.js +13 -5
  206. package/dist/runner/exporter/serializer.js.map +1 -1
  207. package/dist/runner/exporter/validator.d.ts +2 -2
  208. package/dist/runner/exporter/validator.d.ts.map +1 -1
  209. package/dist/runner/exporter/validator.js +1 -14
  210. package/dist/runner/exporter/validator.js.map +1 -1
  211. package/dist/runner/paths.d.ts.map +1 -0
  212. package/dist/runner/paths.js.map +1 -0
  213. package/dist/runner/runner.d.ts +2 -2
  214. package/dist/runner/runner.d.ts.map +1 -1
  215. package/dist/runner/runner.js +11 -6
  216. package/dist/runner/runner.js.map +1 -1
  217. package/dist/runner/summarizer.d.ts +4 -4
  218. package/dist/runner/summarizer.d.ts.map +1 -1
  219. package/dist/runner/summarizer.js +3 -3
  220. package/dist/runner/summarizer.js.map +1 -1
  221. package/dist/version.d.ts +2 -1
  222. package/dist/version.d.ts.map +1 -1
  223. package/dist/version.js +2 -1
  224. package/dist/version.js.map +1 -1
  225. package/package.json +12 -18
  226. package/src/default-world.ts +66 -0
  227. package/src/env/env.ts +42 -36
  228. package/src/env/index.ts +1 -1
  229. package/src/env/types.ts +15 -5
  230. package/src/index.ts +4 -7
  231. package/src/kinds/apps.ts +30 -0
  232. package/src/kinds/batch.ts +18 -0
  233. package/src/kinds/default.ts +81 -0
  234. package/src/kinds/gateway.ts +30 -0
  235. package/src/kinds/index.ts +9 -0
  236. package/src/kinds/metrics.ts +18 -0
  237. package/src/kinds/networking.ts +14 -0
  238. package/src/kinds/rbac.ts +26 -0
  239. package/src/kinds/storage.ts +18 -0
  240. package/src/origins/external.ts +14 -0
  241. package/src/origins/file/file.ts +72 -0
  242. package/src/origins/file/index.ts +3 -0
  243. package/src/origins/file/modifier.ts +21 -0
  244. package/src/origins/file/section.ts +43 -0
  245. package/src/origins/index.ts +3 -0
  246. package/src/origins/world.ts +40 -0
  247. package/src/resources/configmap/configmap.ts +26 -31
  248. package/src/resources/cronjob/index.ts +33 -43
  249. package/src/resources/deployment/deployment.ts +85 -76
  250. package/src/resources/external/index.ts +49 -0
  251. package/src/resources/http-route/http-route.ts +40 -39
  252. package/src/resources/index.ts +4 -0
  253. package/src/resources/namespace/namespace.ts +16 -24
  254. package/src/resources/persistent/access-mode.ts +6 -6
  255. package/src/resources/persistent/block-mode.ts +1 -1
  256. package/src/resources/persistent/claim/pvc.ts +54 -55
  257. package/src/resources/persistent/volume/parse-backend.ts +2 -2
  258. package/src/resources/persistent/volume/pv.ts +87 -69
  259. package/src/resources/pod/container/container.ts +113 -120
  260. package/src/resources/pod/container/mounts.ts +42 -39
  261. package/src/resources/pod/pod-template.ts +80 -67
  262. package/src/resources/pod/volume/devices.ts +41 -42
  263. package/src/resources/pod/volume/index.ts +2 -3
  264. package/src/resources/pod/volume/volumes.ts +92 -70
  265. package/src/resources/rbac/cluster-role-binding.ts +40 -0
  266. package/src/resources/rbac/cluster-role.ts +99 -0
  267. package/src/resources/rbac/service-account.ts +25 -0
  268. package/src/resources/secret/index.ts +1 -3
  269. package/src/resources/secret/secret.ts +11 -17
  270. package/src/resources/service/service-port.ts +21 -25
  271. package/src/resources/service/service.ts +84 -92
  272. package/src/resources/utils/adapters.ts +4 -3
  273. package/src/runner/exporter/assembler.ts +9 -9
  274. package/src/runner/exporter/loader.ts +24 -40
  275. package/src/runner/exporter/manifester.ts +24 -14
  276. package/src/runner/exporter/meta.ts +0 -1
  277. package/src/runner/exporter/saver.ts +3 -2
  278. package/src/runner/exporter/serializer.ts +20 -7
  279. package/src/runner/exporter/validator.ts +3 -17
  280. package/src/runner/runner.ts +17 -12
  281. package/src/runner/summarizer.ts +9 -9
  282. package/src/version.ts +2 -1
  283. package/dist/_imports/_mix.d.ts +0 -4
  284. package/dist/_imports/_mix.d.ts.map +0 -1
  285. package/dist/_imports/_mix.js.map +0 -1
  286. package/dist/_imports/acme.cert-manager.io.d.ts +0 -4832
  287. package/dist/_imports/acme.cert-manager.io.d.ts.map +0 -1
  288. package/dist/_imports/acme.cert-manager.io.js +0 -2476
  289. package/dist/_imports/acme.cert-manager.io.js.map +0 -1
  290. package/dist/_imports/gateway.networking.k8s.io.d.ts +0 -8786
  291. package/dist/_imports/gateway.networking.k8s.io.d.ts.map +0 -1
  292. package/dist/_imports/gateway.networking.k8s.io.js +0 -3668
  293. package/dist/_imports/gateway.networking.k8s.io.js.map +0 -1
  294. package/dist/_imports/helm.toolkit.fluxcd.io.d.ts +0 -4894
  295. package/dist/_imports/helm.toolkit.fluxcd.io.d.ts.map +0 -1
  296. package/dist/_imports/helm.toolkit.fluxcd.io.js +0 -2430
  297. package/dist/_imports/helm.toolkit.fluxcd.io.js.map +0 -1
  298. package/dist/_imports/index.d.ts +0 -3
  299. package/dist/_imports/index.d.ts.map +0 -1
  300. package/dist/_imports/index.js +0 -39
  301. package/dist/_imports/index.js.map +0 -1
  302. package/dist/_imports/k8s.d.ts +0 -18782
  303. package/dist/_imports/k8s.d.ts.map +0 -1
  304. package/dist/_imports/k8s.js +0 -12173
  305. package/dist/_imports/k8s.js.map +0 -1
  306. package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts +0 -2367
  307. package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts.map +0 -1
  308. package/dist/_imports/kustomize.toolkit.fluxcd.io.js +0 -1285
  309. package/dist/_imports/kustomize.toolkit.fluxcd.io.js.map +0 -1
  310. package/dist/_imports/notification.toolkit.fluxcd.io.d.ts +0 -2005
  311. package/dist/_imports/notification.toolkit.fluxcd.io.d.ts.map +0 -1
  312. package/dist/_imports/notification.toolkit.fluxcd.io.js +0 -1575
  313. package/dist/_imports/notification.toolkit.fluxcd.io.js.map +0 -1
  314. package/dist/_imports/source.toolkit.fluxcd.io.d.ts +0 -4158
  315. package/dist/_imports/source.toolkit.fluxcd.io.d.ts.map +0 -1
  316. package/dist/_imports/source.toolkit.fluxcd.io.js +0 -2739
  317. package/dist/_imports/source.toolkit.fluxcd.io.js.map +0 -1
  318. package/dist/external/index.d.ts +0 -13
  319. package/dist/external/index.d.ts.map +0 -1
  320. package/dist/external/index.js.map +0 -1
  321. package/dist/file/exports.d.ts +0 -19
  322. package/dist/file/exports.d.ts.map +0 -1
  323. package/dist/file/exports.js +0 -53
  324. package/dist/file/exports.js.map +0 -1
  325. package/dist/file/factory.d.ts +0 -41
  326. package/dist/file/factory.d.ts.map +0 -1
  327. package/dist/file/factory.js +0 -197
  328. package/dist/file/factory.js.map +0 -1
  329. package/dist/file/file.d.ts +0 -16
  330. package/dist/file/file.d.ts.map +0 -1
  331. package/dist/file/file.js +0 -21
  332. package/dist/file/file.js.map +0 -1
  333. package/dist/file/index.d.ts +0 -2
  334. package/dist/file/index.d.ts.map +0 -1
  335. package/dist/file/index.js.map +0 -1
  336. package/dist/file/origin.d.ts +0 -21
  337. package/dist/file/origin.d.ts.map +0 -1
  338. package/dist/file/origin.js +0 -27
  339. package/dist/file/origin.js.map +0 -1
  340. package/dist/k8ts-sys-kind.d.ts +0 -3
  341. package/dist/k8ts-sys-kind.d.ts.map +0 -1
  342. package/dist/k8ts-sys-kind.js +0 -8
  343. package/dist/k8ts-sys-kind.js.map +0 -1
  344. package/dist/kind-map.d.ts +0 -12
  345. package/dist/kind-map.d.ts.map +0 -1
  346. package/dist/kind-map.js +0 -30
  347. package/dist/kind-map.js.map +0 -1
  348. package/dist/kinds.d.ts +0 -115
  349. package/dist/kinds.d.ts.map +0 -1
  350. package/dist/kinds.js +0 -95
  351. package/dist/kinds.js.map +0 -1
  352. package/dist/meta/k8ts-section.d.ts +0 -3
  353. package/dist/meta/k8ts-section.d.ts.map +0 -1
  354. package/dist/meta/k8ts-section.js +0 -10
  355. package/dist/meta/k8ts-section.js.map +0 -1
  356. package/dist/node/abs-resource.d.ts +0 -16
  357. package/dist/node/abs-resource.d.ts.map +0 -1
  358. package/dist/node/abs-resource.js +0 -79
  359. package/dist/node/abs-resource.js.map +0 -1
  360. package/dist/node/dependencies.d.ts +0 -2
  361. package/dist/node/dependencies.d.ts.map +0 -1
  362. package/dist/node/dependencies.js +0 -3
  363. package/dist/node/dependencies.js.map +0 -1
  364. package/dist/node/equiv-cdk8s.d.ts +0 -9
  365. package/dist/node/equiv-cdk8s.d.ts.map +0 -1
  366. package/dist/node/equiv-cdk8s.js +0 -17
  367. package/dist/node/equiv-cdk8s.js.map +0 -1
  368. package/dist/node/index.d.ts +0 -5
  369. package/dist/node/index.d.ts.map +0 -1
  370. package/dist/node/index.js +0 -12
  371. package/dist/node/index.js.map +0 -1
  372. package/dist/node/manifest-resource.d.ts +0 -15
  373. package/dist/node/manifest-resource.d.ts.map +0 -1
  374. package/dist/node/manifest-resource.js +0 -20
  375. package/dist/node/manifest-resource.js.map +0 -1
  376. package/dist/node/sub-resource.d.ts +0 -8
  377. package/dist/node/sub-resource.d.ts.map +0 -1
  378. package/dist/node/sub-resource.js.map +0 -1
  379. package/dist/node/top-resource.d.ts +0 -7
  380. package/dist/node/top-resource.d.ts.map +0 -1
  381. package/dist/node/top-resource.js +0 -8
  382. package/dist/node/top-resource.js.map +0 -1
  383. package/dist/paths.d.ts.map +0 -1
  384. package/dist/paths.js.map +0 -1
  385. package/dist/resources/persistent/volume/backend.d.ts +0 -19
  386. package/dist/resources/persistent/volume/backend.d.ts.map +0 -1
  387. package/dist/resources/persistent/volume/backend.js +0 -3
  388. package/dist/resources/persistent/volume/backend.js.map +0 -1
  389. package/dist/resources/service/frontend.d.ts +0 -11
  390. package/dist/resources/service/frontend.d.ts.map +0 -1
  391. package/dist/resources/service/frontend.js +0 -3
  392. package/dist/resources/service/frontend.js.map +0 -1
  393. package/dist/runner/exporter/trace-embedder.d.ts +0 -2
  394. package/dist/runner/exporter/trace-embedder.d.ts.map +0 -1
  395. package/dist/runner/exporter/trace-embedder.js +0 -3
  396. package/dist/runner/exporter/trace-embedder.js.map +0 -1
  397. package/dist/world/index.d.ts +0 -2
  398. package/dist/world/index.d.ts.map +0 -1
  399. package/dist/world/index.js.map +0 -1
  400. package/dist/world/world.d.ts +0 -34
  401. package/dist/world/world.d.ts.map +0 -1
  402. package/dist/world/world.js +0 -69
  403. package/dist/world/world.js.map +0 -1
  404. package/src/_imports/_mix.ts +0 -3
  405. package/src/_imports/acme.cert-manager.io.ts +0 -8202
  406. package/src/_imports/gateway.networking.k8s.io.ts +0 -12226
  407. package/src/_imports/helm.toolkit.fluxcd.io.ts +0 -6748
  408. package/src/_imports/index.ts +0 -2
  409. package/src/_imports/k8s.ts +0 -31028
  410. package/src/_imports/kustomize.toolkit.fluxcd.io.ts +0 -3369
  411. package/src/_imports/notification.toolkit.fluxcd.io.ts +0 -2848
  412. package/src/_imports/source.toolkit.fluxcd.io.ts +0 -6054
  413. package/src/external/index.ts +0 -34
  414. package/src/file/exports.ts +0 -66
  415. package/src/file/factory.ts +0 -199
  416. package/src/file/file.ts +0 -33
  417. package/src/file/index.ts +0 -1
  418. package/src/file/origin.ts +0 -41
  419. package/src/k8ts-sys-kind.ts +0 -4
  420. package/src/kind-map.ts +0 -42
  421. package/src/kinds.ts +0 -158
  422. package/src/meta/k8ts-section.ts +0 -6
  423. package/src/node/abs-resource.ts +0 -37
  424. package/src/node/dependencies.ts +0 -0
  425. package/src/node/equiv-cdk8s.ts +0 -19
  426. package/src/node/index.ts +0 -4
  427. package/src/node/manifest-resource.ts +0 -23
  428. package/src/node/sub-resource.ts +0 -20
  429. package/src/node/top-resource.ts +0 -7
  430. package/src/resources/persistent/volume/backend.ts +0 -20
  431. package/src/resources/service/frontend.ts +0 -11
  432. package/src/runner/exporter/trace-embedder.ts +0 -0
  433. package/src/world/index.ts +0 -1
  434. package/src/world/world.ts +0 -90
  435. /package/dist/{paths.d.ts → runner/paths.d.ts} +0 -0
  436. /package/dist/{paths.js → runner/paths.js} +0 -0
  437. /package/src/{paths.ts → runner/paths.ts} +0 -0
@@ -1,9 +1,13 @@
1
1
  export * from "./configmap"
2
2
  export * from "./cronjob"
3
3
  export * from "./deployment"
4
+ export * from "./external"
4
5
  export * from "./http-route/http-route"
5
6
  export * from "./namespace"
6
7
  export * from "./persistent"
7
8
  export * from "./pod"
9
+ export * from "./rbac/cluster-role"
10
+ export * from "./rbac/cluster-role-binding"
11
+ export * from "./rbac/service-account"
8
12
  export * from "./secret"
9
13
  export * from "./service"
@@ -1,27 +1,19 @@
1
- import { manifest, relations, type Origin } from "@k8ts/instruments"
2
- import { Meta, MutableMeta } from "@k8ts/metadata"
3
- import { CDK } from "../../_imports"
4
- import { k8ts } from "../../kind-map"
5
- import { api } from "../../kinds"
6
- import { equiv_cdk8s } from "../../node/equiv-cdk8s"
7
- import { ManifestResource } from "../../node/manifest-resource"
8
- export type Namespace = Namespace.Namespace
9
- export namespace Namespace {
10
- export interface Props {}
11
- @k8ts(api.v1_.Namespace)
12
- @relations("none")
13
- @equiv_cdk8s(CDK.KubeNamespace)
14
- @manifest({
15
- body(self): CDK.KubeNamespaceProps {
16
- return {
17
- spec: {}
18
- }
19
- }
20
- })
21
- export class Namespace extends ManifestResource<Props> {
22
- override kind = api.v1_.Namespace
23
- constructor(origin: Origin, meta: Meta | MutableMeta, props?: Props) {
24
- super(origin, meta.toMutable(), props ?? {})
1
+ import { Resource_Top } from "@k8ts/instruments"
2
+ import { v1 } from "../../kinds/default"
3
+ export interface Namespace_Props {}
4
+
5
+ export class Namespace<Name extends string = string> extends Resource_Top<Name, Namespace_Props> {
6
+ constructor(name: Name, props: Namespace_Props = {}) {
7
+ super(name, props)
8
+ }
9
+ declare name: Name
10
+ get kind() {
11
+ return v1.Namespace._
12
+ }
13
+
14
+ protected body() {
15
+ return {
16
+ spec: {}
25
17
  }
26
18
  }
27
19
  }
@@ -1,11 +1,11 @@
1
- export type Access = Access.Inputs
1
+ export type Access = Access.Pv_AccessMode_Inputs
2
2
 
3
3
  export namespace Access {
4
- export type Mode = "ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany"
5
- export type Input = Mode | "RWX" | "ROX" | "RWO"
6
- export type Inputs = Input | Input[]
4
+ export type Pv_AccessMode = "ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany"
5
+ export type Pv_AccessMode_Input = Pv_AccessMode | "RWX" | "ROX" | "RWO"
6
+ export type Pv_AccessMode_Inputs = Pv_AccessMode_Input | Pv_AccessMode_Input[]
7
7
 
8
- function parseOne(mode: Input): Mode {
8
+ function parseOne(mode: Pv_AccessMode_Input): Pv_AccessMode {
9
9
  switch (mode) {
10
10
  case "RWX":
11
11
  case "ReadWriteMany":
@@ -19,7 +19,7 @@ export namespace Access {
19
19
  }
20
20
  }
21
21
 
22
- export function parse(modes: Inputs): Mode[] {
22
+ export function pv_parseAccessMode(modes: Pv_AccessMode_Inputs): Pv_AccessMode[] {
23
23
  if (Array.isArray(modes)) {
24
24
  return modes.map(parseOne)
25
25
  } else {
@@ -1 +1 @@
1
- export type DataMode = "Block" | "Filesystem"
1
+ export type Pv_VolumeMode = "Block" | "Filesystem"
@@ -1,67 +1,66 @@
1
- import { manifest, relations, ResourcesSpec, Unit } from "@k8ts/instruments"
2
- import { CDK } from "../../../_imports"
1
+ import { Resource_Top, ResourcesSpec, Unit, type Resource_Full_Ref } from "@k8ts/instruments"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
3
  import { Prefix$ } from "../../../_type/prefix$"
4
4
  import { MakeError } from "../../../error"
5
- import { External } from "../../../external"
6
- import { k8ts } from "../../../kind-map"
7
- import { api } from "../../../kinds"
8
- import { ManifestResource } from "../../../node"
9
- import { equiv_cdk8s } from "../../../node/equiv-cdk8s"
5
+ import { v1 } from "../../../kinds/default"
6
+ import { storage } from "../../../kinds/storage"
10
7
  import { Access } from "../access-mode"
11
- import type { DataMode } from "../block-mode"
12
- import { Pv } from "../volume"
8
+ import type { Pv_VolumeMode } from "../block-mode"
9
+ import type { Pv, Pv_Ref } from "../volume"
13
10
 
14
- export type Pvc<T extends DataMode = DataMode> = Pvc.Pvc<T>
15
- export namespace Pvc {
16
- const pvc_ResourcesSpec = ResourcesSpec.make({
17
- storage: Unit.Data
18
- })
19
- type PvcResourceSpec = typeof pvc_ResourcesSpec
20
- type PvcResources = Prefix$<PvcResourceSpec["__INPUT__"]>
21
- export interface Props<Mode extends DataMode> extends PvcResources {
22
- $accessModes: Access
23
- $mode?: Mode
24
- $storageClass?: External<api.storage_.v1_.StorageClass>
25
- $bind?: Pv.AbsPv<Mode>
11
+ const StorageClassKind = storage.v1.StorageClass._
12
+
13
+ const pvc_ResourcesSpec = ResourcesSpec.make({
14
+ storage: Unit.Data
15
+ })
16
+ type Pvc_Resources = Prefix$<(typeof pvc_ResourcesSpec)["__INPUT__"]>
17
+ export interface Pvc_Props<Mode extends Pv_VolumeMode> extends Pvc_Resources {
18
+ $accessModes: Access
19
+ $mode?: Mode
20
+ $storageClass?: Resource_Full_Ref<typeof StorageClassKind>
21
+ $bind?: Pv_Ref<Mode>
22
+ }
23
+
24
+ export class Pvc<Mode extends Pv_VolumeMode, Name extends string = string> extends Resource_Top<
25
+ Name,
26
+ Pvc_Props<Mode>
27
+ > {
28
+ declare name: Name
29
+ get kind() {
30
+ return v1.PersistentVolumeClaim._
26
31
  }
27
32
 
28
- @k8ts(api.v1_.PersistentVolumeClaim)
29
- @equiv_cdk8s(CDK.KubePersistentVolumeClaim)
30
- @relations({
31
- needs: self => ({
33
+ protected __needs__() {
34
+ const self = this
35
+ return {
32
36
  bind: self.bound,
33
37
  storageClass: self.props.$storageClass
34
- })
35
- })
36
- @manifest({
37
- body(self): CDK.KubePersistentVolumeClaimProps {
38
- const { $storage, $accessModes, $mode, $storageClass, $bind } = self.props
39
- const nAccessModes = Access.parse($accessModes)
40
- if (!$bind && !$storageClass) {
41
- throw new MakeError(
42
- `While manifesting ${self.node.format("source")}, PVC that doesn't have a $bind must have a $storageClass.`
43
- )
44
- }
45
- return {
46
- spec: {
47
- accessModes: nAccessModes,
48
- volumeName: self.props.$bind?.name,
49
- volumeMode: $mode,
50
- resources: pvc_ResourcesSpec
51
- .parse({
52
- storage: $storage
53
- })
54
- .toObject(),
55
- storageClassName: self.props.$storageClass?.name ?? "standard"
56
- }
57
- }
58
38
  }
59
- })
60
- export class Pvc<Mode extends DataMode = DataMode> extends ManifestResource<Props<Mode>> {
61
- kind = api.v1_.PersistentVolumeClaim
62
-
63
- get bound() {
64
- return this.props.$bind as Pv<Mode>
39
+ }
40
+ protected body(): CDK.KubePersistentVolumeClaimProps {
41
+ const self = this
42
+ const { $storage, $accessModes, $mode, $storageClass, $bind } = self.props
43
+ const nAccessModes = Access.pv_parseAccessMode($accessModes)
44
+ if (!$bind && !$storageClass) {
45
+ throw new MakeError(
46
+ `While manifesting ${self.node.format("source")}, PVC that doesn't have a $bind must have a $storageClass.`
47
+ )
65
48
  }
49
+ return {
50
+ spec: {
51
+ accessModes: nAccessModes,
52
+ volumeName: self.props.$bind?.name,
53
+ volumeMode: $mode,
54
+ resources: pvc_ResourcesSpec
55
+ .parse({
56
+ storage: $storage
57
+ })
58
+ .toObject(),
59
+ storageClassName: self.props.$storageClass?.name ?? "standard"
60
+ }
61
+ }
62
+ }
63
+ get bound() {
64
+ return this.props.$bind as Pv<Mode> | undefined
66
65
  }
67
66
  }
@@ -1,6 +1,6 @@
1
1
  import { MakeError } from "../../../error"
2
- import { Backend } from "./backend"
3
- export function parseBackend(backend?: Backend) {
2
+ import type { Pv_Backend } from "./pv"
3
+ export function parseBackend(backend?: Pv_Backend) {
4
4
  switch (backend?.type) {
5
5
  case undefined:
6
6
  case null:
@@ -1,82 +1,100 @@
1
- import { manifest, Refable, relations, type Unit } from "@k8ts/instruments"
2
- import { CDK } from "../../../_imports"
1
+ import {
2
+ Resource_Core_Ref,
3
+ Resource_Top,
4
+ type Resource_Full_Ref,
5
+ type Unit
6
+ } from "@k8ts/instruments"
7
+ import { CDK } from "@k8ts/sample-interfaces"
3
8
  import { MakeError } from "../../../error"
4
- import { External } from "../../../external"
5
- import { k8ts } from "../../../kind-map"
6
- import { api } from "../../../kinds"
7
- import { equiv_cdk8s } from "../../../node/equiv-cdk8s"
8
- import { ManifestResource } from "../../../node/manifest-resource"
9
+ import { v1 } from "../../../kinds/default"
10
+ import { storage } from "../../../kinds/storage"
9
11
  import { Access } from "../access-mode"
10
- import type { DataMode } from "../block-mode"
11
- import { Backend as Backend_ } from "./backend"
12
+ import type { Pv_VolumeMode } from "../block-mode"
12
13
  import { parseBackend } from "./parse-backend"
13
14
 
14
- export type Pv<T extends DataMode = DataMode> = Pv.Pv<T>
15
- export namespace Pv {
16
- export import Backend = Backend_
17
- export interface Props<Mode extends DataMode = DataMode> {
18
- $accessModes: Access
19
- $storageClass?: External<api.storage_.v1_.StorageClass>
20
- $mode?: Mode
21
- reclaimPolicy?: Reclaim
22
- $capacity: Unit.Data
23
- $backend?: Backend
24
- mountOptions?: string[]
25
- nodeAffinity?: CDK.VolumeNodeAffinity
26
- }
27
- export type Reclaim = "Retain" | "Delete" | "Recycle"
28
- export type AbsPv<Mode extends DataMode = DataMode> = Refable<api.v1_.PersistentVolume> & {
15
+ const StorageClassKind = storage.v1.StorageClass._
16
+
17
+ export interface Pv_Backend_HostPath {
18
+ type: "HostPath"
19
+ hostpathType: string
20
+ path: string
21
+ }
22
+ export interface Pv_Backend_Local {
23
+ type: "Local"
24
+ path: string
25
+ }
26
+ export interface Pv_Backend_Nfs {
27
+ type: "NFS"
28
+ server: string
29
+ path: string
30
+ }
31
+
32
+ export type Pv_Backend = Pv_Backend_HostPath | Pv_Backend_Local | Pv_Backend_Nfs
33
+ export interface Pv_Props_K8ts<Mode extends Pv_VolumeMode = Pv_VolumeMode> {
34
+ $accessModes: Access
35
+ $storageClass?: Resource_Full_Ref<storage.v1.StorageClass._>
36
+ $mode?: Mode
37
+ reclaimPolicy?: Reclaim
38
+ $capacity: Unit.Data
39
+ $backend?: Pv_Backend
40
+ mountOptions?: string[]
41
+ nodeAffinity?: CDK.VolumeNodeAffinity
42
+ }
43
+ export type Reclaim = "Retain" | "Delete" | "Recycle"
44
+ export type Pv_Ref<Mode extends Pv_VolumeMode = Pv_VolumeMode> =
45
+ Resource_Core_Ref<v1.PersistentVolume._> & {
29
46
  __MODE__: Mode
30
47
  }
31
- @equiv_cdk8s(CDK.KubePersistentVolume)
32
- @manifest({
33
- body(self) {
34
- const pvProps = self.props
35
- const accessModes = Access.parse(pvProps.$accessModes)
36
- if (self.props.$backend?.type === "Local") {
37
- if (!pvProps.nodeAffinity) {
38
- throw new MakeError(
39
- `While manifesting ${self.node.format("source")}, PV with Local backend must have nodeAffinity.`
40
- )
41
- }
42
- }
43
- if (!self.props.$backend && !self.props.$storageClass) {
48
+
49
+ export class Pv<
50
+ Mode extends Pv_VolumeMode = "Filesystem",
51
+ Name extends string = string
52
+ > extends Resource_Top<Name, Pv_Props_K8ts<Mode>> {
53
+ __MODE__!: Mode
54
+ get kind() {
55
+ return v1.PersistentVolume._
56
+ }
57
+
58
+ protected __needs__() {
59
+ return {
60
+ storageClass: this.props.$storageClass
61
+ }
62
+ }
63
+ protected body() {
64
+ const self = this
65
+ const pvProps = self.props
66
+ const accessModes = Access.pv_parseAccessMode(pvProps.$accessModes)
67
+ if (self.props.$backend?.type === "Local") {
68
+ if (!pvProps.nodeAffinity) {
44
69
  throw new MakeError(
45
- `While manifesting ${self.node.format("source")}, PV that doesn't have a $backend must have a $storageClass.`
70
+ `While manifesting ${self.node.format("source")}, PV with Local backend must have nodeAffinity.`
46
71
  )
47
72
  }
48
- let base: CDK.PersistentVolumeSpec = {
49
- accessModes,
50
- storageClassName: pvProps.$storageClass?.name ?? "standard",
51
- capacity: pvProps.$capacity
52
- ? {
53
- storage: CDK.Quantity.fromString(pvProps.$capacity)
54
- }
55
- : undefined,
56
- volumeMode: pvProps.$mode ?? "Filesystem",
57
- mountOptions: pvProps.mountOptions,
58
- persistentVolumeReclaimPolicy: pvProps.reclaimPolicy ?? "Retain",
59
- nodeAffinity: pvProps.nodeAffinity
60
- }
61
- base = {
62
- ...base,
63
- ...parseBackend(pvProps.$backend)
64
- }
65
- return {
66
- spec: base
67
- }
68
73
  }
69
- })
70
- @k8ts(api.v1_.PersistentVolume)
71
- @relations({
72
- needs(self) {
73
- return {
74
- storageClass: self.props.$storageClass
75
- }
74
+ if (!self.props.$backend && !self.props.$storageClass) {
75
+ throw new MakeError(
76
+ `While manifesting ${self.node.format("source")}, PV that doesn't have a $backend must have a $storageClass.`
77
+ )
78
+ }
79
+ let base: CDK.PersistentVolumeSpec = {
80
+ accessModes,
81
+ storageClassName: pvProps.$storageClass?.name ?? "standard",
82
+ capacity: pvProps.$capacity
83
+ ? {
84
+ storage: CDK.Quantity.fromString(pvProps.$capacity)
85
+ }
86
+ : undefined,
87
+ volumeMode: pvProps.$mode ?? "Filesystem",
88
+ mountOptions: pvProps.mountOptions,
89
+ persistentVolumeReclaimPolicy: pvProps.reclaimPolicy ?? "Retain",
90
+ nodeAffinity: pvProps.nodeAffinity
91
+ }
92
+ base = {
93
+ ...base,
94
+ ...parseBackend(pvProps.$backend)
95
+ }
96
+ return {
97
+ spec: base
76
98
  }
77
- })
78
- export class Pv<Mode extends DataMode = DataMode> extends ManifestResource<Props<Mode>> {
79
- __MODE__!: Mode
80
- readonly kind = api.v1_.PersistentVolume
81
99
  }
82
100
  }
@@ -1,148 +1,141 @@
1
1
  import {
2
- Kinded,
3
2
  PortSet,
4
- relations,
5
3
  ResourcesSpec,
6
4
  Unit,
7
- WritableDeep,
8
5
  type CmdBuilder,
9
6
  type InputPortSetRecord,
10
7
  type TaggedImage
11
8
  } from "@k8ts/instruments"
12
- import { Map } from "immutable"
13
- import type { CDK } from "../../../_imports"
9
+ import type { CDK } from "@k8ts/sample-interfaces"
14
10
  import { toContainerPorts } from "../../utils/adapters"
15
11
 
12
+ import type { Resource_Entity, Resource_Min_Ref, Resource_Top } from "@k8ts/instruments"
13
+ import { Resource_Child } from "@k8ts/instruments"
16
14
  import { seq } from "doddle"
17
15
  import { mapKeys, mapValues, omitBy } from "lodash"
18
16
  import { Env, type InputEnvMapping } from "../../../env"
19
- import { k8ts } from "../../../kind-map"
20
- import { api } from "../../../kinds"
21
- import type { ManifestResource } from "../../../node"
22
- import { SubResource } from "../../../node/sub-resource"
23
- import { Mount as Mount_ } from "./mounts"
24
- export type Container<Ports extends string = string> = Container.Container<Ports>
25
- export namespace Container {
26
- export import Mount = Mount_
27
- const container_ResourcesSpec = ResourcesSpec.make({
28
- cpu: Unit.Cpu,
29
- memory: Unit.Data
30
- })
17
+ import { v1 } from "../../../kinds/default"
18
+ import { Container_Mount_Device, type Container_Mount } from "./mounts"
19
+ const container_ResourcesSpec = ResourcesSpec.make({
20
+ cpu: Unit.Cpu,
21
+ memory: Unit.Data
22
+ })
31
23
 
32
- type Resources = (typeof container_ResourcesSpec)["__INPUT__"]
33
- type SomeMount = Kinded<api.v1_.Pod_.DeviceMount | api.v1_.Pod_.VolumeMount>
34
- export type Mounts = {
35
- [key: string]: SomeMount
24
+ type Container_Resources = (typeof container_ResourcesSpec)["__INPUT__"]
25
+ type Container_Mount_Some = Resource_Min_Ref<
26
+ v1.Pod.Container.DeviceMount._ | v1.Pod.Container.VolumeMount._
27
+ >
28
+ export type Container_Mounts = {
29
+ [key: string]: Container_Mount_Some
30
+ }
31
+ interface Container_Props_K8ts<Ports extends string = never> {
32
+ $image: TaggedImage
33
+ $ports?: InputPortSetRecord<Ports>
34
+ $command?: CmdBuilder
35
+ $mounts?: Container_Mounts
36
+ $env?: InputEnvMapping
37
+ $resources?: Container_Resources
38
+ }
39
+
40
+ export type Container_Props<Ports extends string = never> = Container_Props_K8ts<Ports> &
41
+ Omit<CDK.Container, keyof Container_Props_K8ts | "name">
42
+
43
+ export class Container<Ports extends string = string> extends Resource_Child<
44
+ Container_Props<Ports>
45
+ > {
46
+ __PORTS__!: Ports
47
+ get kind() {
48
+ return v1.Pod.Container._
36
49
  }
37
- interface K8tsPropsClean<Ports extends string = never> {
38
- image: TaggedImage
39
- ports?: InputPortSetRecord<Ports>
40
- command?: CmdBuilder
41
- mounts?: Mounts
42
- env?: InputEnvMapping
43
- resources?: Resources
50
+
51
+ protected __needs__(): Record<string, Resource_Entity | Resource_Entity[] | undefined> {
52
+ const a = this.mounts
53
+ return mapValues(
54
+ mapKeys(a, x => x.path),
55
+ x => x.mount.volume
56
+ )
44
57
  }
45
- export type K8tsProps<Ports extends string = never> = {
46
- [key in keyof K8tsPropsClean<Ports> as `$${key}`]: K8tsPropsClean<Ports>[key]
58
+ get mounts() {
59
+ return seq(Object.entries(this.props.$mounts ?? {}))
60
+ .map(([path, mount]) => {
61
+ return {
62
+ mount: mount as Container_Mount,
63
+ path: path as string
64
+ }
65
+ })
66
+ .toArray()
67
+ .pull()
47
68
  }
48
- export type Props<Ports extends string = never> = K8tsProps<Ports> &
49
- WritableDeep<Omit<CDK.Container, keyof K8tsPropsClean | "name">>
50
-
51
- @k8ts(api.v1_.Pod_.Container)
52
- @relations({
53
- needs: self => {
54
- const a = self.mounts
55
- return mapValues(
56
- mapKeys(a, x => x.path),
57
- x => x.mount.volume
58
- )
59
- }
60
- })
61
- export class Container<Ports extends string = string> extends SubResource<Props<Ports>> {
62
- __PORTS__!: Ports
63
- readonly kind = api.v1_.Pod_.Container
64
69
 
65
- get mounts() {
66
- return Map(this.props.$mounts ?? {})
67
- .mapEntries(([path, mount]) => {
68
- return [
69
- mount,
70
- {
71
- mount: mount as Mount.ContainerVolumeMount | Mount.ContainerDeviceMount,
72
- path: path as string
73
- }
74
- ]
75
- })
76
- .valueSeq()
77
- .toArray()
78
- }
79
-
80
- get volumes() {
81
- return seq(this.mounts.map(x => x.mount.volume))
82
- .uniq()
70
+ get volumes() {
71
+ return seq(this.mounts.map(x => x.mount.volume))
72
+ .uniq()
73
+ .toArray()
74
+ .pull()
75
+ }
76
+ get ports() {
77
+ return PortSet.make(this.props.$ports)
78
+ }
79
+ protected __submanifest__(): CDK.Container {
80
+ const self = this
81
+ const { $image, $ports, $command, $env } = self.props
82
+ const untaggedProps = omitBy(self.props, (_, k) => k.startsWith("$"))
83
+ let resourcesObject = self._resources()?.toObject()
84
+ const containerPorts =
85
+ $ports &&
86
+ seq(toContainerPorts(PortSet.make($ports)).values())
83
87
  .toArray()
84
88
  .pull()
89
+ const container: CDK.Container = {
90
+ ...untaggedProps,
91
+ name: self.name,
92
+ image: $image.toString(),
93
+ ports: containerPorts,
94
+ resources: resourcesObject,
95
+ command: $command?.toArray(),
96
+ env: Env($env).toEnvVars(),
97
+ ...self._groupedMounts()
85
98
  }
86
- get ports() {
87
- return PortSet.make(this.props.$ports)
88
- }
89
- submanifest(): CDK.Container {
90
- const self = this
91
- const { $image, $ports, $command, $env } = self.props
92
- const untaggedProps = omitBy(self.props, (_, k) => k.startsWith("$"))
93
- let resourcesObject = self._resources()?.toObject()
94
-
95
- const container: CDK.Container = {
96
- ...untaggedProps,
97
- name: self.name,
98
- image: $image.toString(),
99
- ports: $ports && toContainerPorts(PortSet.make($ports)).valueSeq().toArray(),
100
- resources: resourcesObject,
101
- command: $command?.toArray(),
102
- env: Env($env).toEnvVars(),
103
- ...self._groupedMounts()
104
- }
105
- return container
106
- }
107
- constructor(
108
- parent: ManifestResource,
109
- name: string,
110
- readonly subtype: "init" | "main",
111
- override readonly props: Props<Ports>
112
- ) {
113
- super(parent, name, props)
114
- }
99
+ return container
100
+ }
101
+ constructor(
102
+ parent: Resource_Entity,
103
+ name: string,
104
+ readonly subtype: "init" | "main",
105
+ override readonly props: Container_Props<Ports>
106
+ ) {
107
+ super(parent, name, props)
108
+ }
115
109
 
116
- private _groupedMounts() {
117
- const x = {
118
- volumeMounts: [],
119
- volumeDevices: []
120
- } as Pick<CDK.Container, "volumeMounts" | "volumeDevices">
121
- for (const mnt of this.mounts) {
122
- const { mount, path } = mnt
123
- if (mount instanceof Mount.ContainerDeviceMount) {
124
- x.volumeDevices!.push(mount.submanifest(path))
125
- } else {
126
- x.volumeMounts!.push(mount.submanifest(path))
127
- }
110
+ private _groupedMounts() {
111
+ const x = {
112
+ volumeMounts: [],
113
+ volumeDevices: []
114
+ } as Pick<CDK.Container, "volumeMounts" | "volumeDevices">
115
+ for (const mnt of this.mounts) {
116
+ const { mount, path } = mnt
117
+ if (mount instanceof Container_Mount_Device) {
118
+ x.volumeDevices!.push(mount["__submanifest__"](path))
119
+ } else {
120
+ x.volumeMounts!.push(mount["__submanifest__"](path))
128
121
  }
129
- return x
130
122
  }
131
- private _resources() {
132
- if (!this.props.$resources) {
133
- return undefined
134
- }
135
- const result = container_ResourcesSpec.parse(this.props.$resources)
136
- return result
123
+ return x
124
+ }
125
+ private _resources() {
126
+ if (!this.props.$resources) {
127
+ return undefined
137
128
  }
129
+ const result = container_ResourcesSpec.parse(this.props.$resources)
130
+ return result
138
131
  }
132
+ }
139
133
 
140
- export function make<Ports extends string>(
141
- parent: ManifestResource,
142
- name: string,
143
- subtype: "init" | "main",
144
- props: Props<Ports>
145
- ) {
146
- return new Container(parent, name, subtype, props)
147
- }
134
+ export function make<Ports extends string>(
135
+ parent: Resource_Top,
136
+ name: string,
137
+ subtype: "init" | "main",
138
+ props: Container_Props<Ports>
139
+ ) {
140
+ return new Container(parent, name, subtype, props)
148
141
  }