k8ts 0.7.3 → 0.9.1

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 -145
  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 -121
  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,50 +1,53 @@
1
- import type { CDK } from "../../../_imports"
2
- import { api } from "../../../kinds"
3
- import { Volume } from "../volume"
4
- import type { Device } from "../volume/devices"
5
- export type Mount = Mount.ContainerVolumeMount | Mount.ContainerDeviceMount
6
- export namespace Mount {
7
- type Path_Rooted = `/${string}`
8
- export type Path = `${"" | "." | ".."}${Path_Rooted}`
1
+ import { Kind } from "@k8ts/instruments"
2
+ import type { CDK } from "@k8ts/sample-interfaces"
3
+ import { v1 } from "../../../kinds/default"
4
+ import type { Pod_Volume } from "../volume"
5
+ import type { Pod_Device } from "../volume/devices"
6
+ type Path_Rooted = `/${string}`
7
+ export type Container_Mount_Path = `${"" | "." | ".."}${Path_Rooted}`
9
8
 
10
- export interface Props {
11
- readOnly?: boolean
12
- subPath?: string
13
- volume: Volume
9
+ export type Container_Mount = Container_Mount_Volume | Container_Mount_Device
10
+ export interface Container_Mount_Props {
11
+ readOnly?: boolean
12
+ subPath?: string
13
+ volume: Pod_Volume
14
+ }
15
+ export class Container_Mount_Volume {
16
+ get kind() {
17
+ return v1.Pod.Container.VolumeMount._
14
18
  }
15
- export class ContainerVolumeMount {
16
- readonly kind = api.v1_.Pod_.VolumeMount
17
19
 
18
- constructor(readonly props: Props) {}
20
+ constructor(readonly props: Container_Mount_Props) {}
19
21
 
20
- get volume() {
21
- return this.props.volume
22
- }
23
- submanifest(mountPath: string): CDK.VolumeMount {
24
- return {
25
- name: this.props.volume.name,
26
- mountPath: mountPath,
27
- readOnly: this.props.readOnly,
28
- subPath: this.props.subPath
29
- }
22
+ get volume() {
23
+ return this.props.volume
24
+ }
25
+ protected __submanifest__(mountPath: string): CDK.VolumeMount {
26
+ return {
27
+ name: this.props.volume.name,
28
+ mountPath: mountPath,
29
+ readOnly: this.props.readOnly,
30
+ subPath: this.props.subPath
30
31
  }
31
32
  }
33
+ }
32
34
 
33
- export interface DeviceMountProps {
34
- device: Device
35
- }
35
+ export interface Container_Mount_Device_Props {
36
+ device: Pod_Device
37
+ }
36
38
 
37
- export class ContainerDeviceMount {
38
- kind = api.v1_.Pod_.DeviceMount
39
- get volume() {
40
- return this.props.device
41
- }
42
- constructor(readonly props: DeviceMountProps) {}
43
- submanifest(devicePath: string): CDK.VolumeDevice {
44
- return {
45
- devicePath: devicePath,
46
- name: this.props.device.name
47
- }
39
+ export class Container_Mount_Device {
40
+ get kind() {
41
+ return v1.Pod.Container.DeviceMount._ satisfies Kind.SubKind
42
+ }
43
+ get volume() {
44
+ return this.props.device
45
+ }
46
+ constructor(readonly props: Container_Mount_Device_Props) {}
47
+ protected __submanifest__(devicePath: string): CDK.VolumeDevice {
48
+ return {
49
+ devicePath: devicePath,
50
+ name: this.props.device.name
48
51
  }
49
52
  }
50
53
  }
@@ -1,82 +1,95 @@
1
- import { Kinded, manifest, Producer, relations } from "@k8ts/instruments"
1
+ import { Resource_Child, Resource_Min_Ref } from "@k8ts/instruments"
2
+ import { Meta } from "@k8ts/metadata"
3
+ import { CDK } from "@k8ts/sample-interfaces"
2
4
  import { seq } from "doddle"
3
5
  import { omitBy } from "lodash"
4
- import { CDK } from "../../_imports"
5
- import { k8ts } from "../../kind-map"
6
- import { api } from "../../kinds"
7
- import { ManifestResource } from "../../node/manifest-resource"
8
- import { Container } from "./container"
9
- import { Device, Volume } from "./volume"
10
- export type PodTemplate<Ports extends string = string> = PodTemplate.PodTemplate<Ports>
11
- export namespace PodTemplate {
12
- export type PodProps = Omit<CDK.PodSpec, "containers" | "initContainers" | "volumes">
13
- type AbsContainer<Ports extends string> = Kinded<api.v1_.Pod_.Container> & {
14
- __PORTS__: Ports
6
+ import { v1 } from "../../kinds/default"
7
+ import { Container, type Container_Props } from "./container"
8
+ import { Pod_Device, type Pod_Device_Backend } from "./volume/devices"
9
+ import { Pod_Volume, type Pod_Volume_Backend } from "./volume/volumes"
10
+ export type Pod_Props_Original = Omit<CDK.PodSpec, "containers" | "initContainers" | "volumes">
11
+ type Container_Ref<Ports extends string> = Resource_Min_Ref<v1.Pod.Container._> & {
12
+ __PORTS__: Ports
13
+ }
14
+ export type Pod_Container_Producer<Ports extends string> = (
15
+ scope: PodScope
16
+ ) => Iterable<Container_Ref<Ports>>
17
+
18
+ export interface Pod_Props<Ports extends string> extends Pod_Props_Original {
19
+ meta?: Meta.Input
20
+ $POD: Pod_Container_Producer<Ports>
21
+ }
22
+
23
+ export class Pod_Template<Ports extends string = string> extends Resource_Child<Pod_Props<Ports>> {
24
+ get kind() {
25
+ return v1.PodTemplate._
15
26
  }
16
- export type PodContainerProducer<Ports extends string> = Producer<PodScope, AbsContainer<Ports>>
17
- export type Props<Ports extends string> = PodProps & {
18
- $POD: PodContainerProducer<Ports>
27
+ readonly containers = seq(() => this.props.$POD(new PodScope(this)))
28
+ .map(x => {
29
+ return x as Container<Ports>
30
+ })
31
+ .cache()
32
+ readonly mounts = seq(() => this.containers.concatMap(x => x.mounts)).cache()
33
+ readonly volumes = seq(() => this.containers.concatMap(x => x.volumes)).uniq()
34
+ readonly ports = seq(() => this.containers.map(x => x.ports)).reduce((a, b) => a.union(b))
35
+
36
+ protected __kids__() {
37
+ return [...this.containers, ...this.volumes]
19
38
  }
20
- export type HostPortSpec<Ports extends string> = {
21
- [port in Ports]?: {
22
- ip?: string
23
- port?: number
39
+ protected __metadata__() {
40
+ return {
41
+ name: this.name,
42
+ labels: this.meta.labels,
43
+ annotations: this.meta.annotations
24
44
  }
25
45
  }
46
+ readonly meta = Meta.make(this.props.meta ?? {}).add("name", this.name)
26
47
 
27
- @k8ts(api.v1_.PodTemplate)
28
- @relations({
29
- kids: s => [...s.containers, ...s.volumes]
30
- })
31
- @manifest({
32
- body(self): CDK.PodTemplateSpec {
33
- const { meta, props } = self
34
- const containers = self.containers
35
- const initContainers = containers
36
- .filter(c => c.subtype === "init")
37
- .map(x => x.submanifest())
38
- .toArray()
39
- const mainContainers = containers
40
- .filter(c => c.subtype === "main")
41
- .map(x => x.submanifest())
42
- .toArray()
48
+ protected __submanifest__(): CDK.PodTemplateSpec {
49
+ const self = this
50
+ const { props } = self
51
+ const containers = self.containers
52
+ const initContainers = containers
53
+ .filter(c => c.subtype === "init")
54
+ .map(x => x["__submanifest__"]())
55
+ .toArray()
56
+ const mainContainers = containers
57
+ .filter(c => c.subtype === "main")
58
+ .map(x => x["__submanifest__"]())
59
+ .toArray()
43
60
 
44
- const volumes = self.volumes.map(x => x.submanifest()).toArray()
45
- return {
46
- spec: {
47
- ...omitBy(props, (x, k) => k.startsWith("$")),
48
- containers: mainContainers.pull(),
49
- initContainers: initContainers.pull(),
50
- volumes: volumes.pull()
61
+ const volumes = self.volumes
62
+ .map(x => {
63
+ if (x instanceof Pod_Volume) {
64
+ return x["__submanifest__"]()
51
65
  }
66
+ return x["__submanifest__"]()
67
+ })
68
+ .toArray()
69
+ return {
70
+ metadata: self.__metadata__(),
71
+ spec: {
72
+ ...omitBy(props, (x, k) => k.startsWith("$")),
73
+ containers: mainContainers.pull(),
74
+ initContainers: initContainers.pull(),
75
+ volumes: volumes.pull()
52
76
  }
53
77
  }
54
- })
55
- export class PodTemplate<Ports extends string = string> extends ManifestResource<Props<Ports>> {
56
- readonly kind = api.v1_.PodTemplate
57
- readonly containers = seq(() => this.props.$POD(new PodScope(this)))
58
- .map(x => {
59
- return x as Container<Ports>
60
- })
61
- .cache()
62
- readonly mounts = seq(() => this.containers.concatMap(x => x.mounts)).cache()
63
- readonly volumes = seq(() => this.containers.concatMap(x => x.volumes)).uniq()
64
- readonly ports = seq(() => this.containers.map(x => x.ports)).reduce((a, b) => a.union(b))
65
78
  }
79
+ }
66
80
 
67
- export class PodScope {
68
- constructor(private readonly _parent: PodTemplate) {}
69
- Container<Ports extends string>(name: string, options: Container.Props<Ports>) {
70
- return new Container.Container(this._parent, name, "main", options)
71
- }
72
- InitContainer(name: string, options: Container.K8tsProps<never>) {
73
- return new Container.Container(this._parent, name, "init", options)
74
- }
75
- Volume(name: string, options: Volume.Backend) {
76
- return Volume.make(this._parent, name, options)
77
- }
78
- Device(name: string, options: Device.Backend) {
79
- return Device.make(this._parent, name, options)
80
- }
81
+ export class PodScope {
82
+ constructor(private readonly _parent: Pod_Template) {}
83
+ Container<Ports extends string>(name: string, options: Container_Props<Ports>) {
84
+ return new Container(this._parent, name, "main", options)
85
+ }
86
+ InitContainer(name: string, options: Container_Props<never>) {
87
+ return new Container(this._parent, name, "init", options)
88
+ }
89
+ Volume(name: string, options: Pod_Volume_Backend) {
90
+ return Pod_Volume.make(this._parent, name, options)
91
+ }
92
+ Device(name: string, options: Pod_Device_Backend) {
93
+ return new Pod_Device(this._parent, name, options)
81
94
  }
82
95
  }
@@ -1,53 +1,52 @@
1
- import { relations } from "@k8ts/instruments"
2
- import type { CDK } from "../../../_imports"
3
- import { k8ts } from "../../../kind-map"
4
- import { api } from "../../../kinds"
5
- import type { ManifestResource } from "../../../node"
6
- import { SubResource } from "../../../node/sub-resource"
1
+ import type { Resource_Entity } from "@k8ts/instruments"
2
+ import { Resource_Child } from "@k8ts/instruments"
3
+ import type { CDK } from "@k8ts/sample-interfaces"
4
+ import { v1 } from "../../../kinds/default"
7
5
  import { Pvc } from "../../persistent"
8
- import { Mount } from "../container/mounts"
9
- export type Device = Device.PodDevice
10
- export namespace Device {
11
- interface PodDevice_Backend_Pvc {
12
- $backend: Pvc.Pvc<"Block">
13
- readOnly?: boolean
6
+ import { Container_Mount_Device } from "../container/mounts"
7
+ interface Pod_Device_Backend_Pvc {
8
+ $backend: Pvc<"Block">
9
+ readOnly?: boolean
10
+ }
11
+
12
+ export type Pod_Device_Backend = Pod_Device_Backend_Pvc
13
+
14
+ export class Pod_Device extends Resource_Child<Pod_Device_Backend_Pvc> {
15
+ get kind() {
16
+ return v1.Pod.Device._
14
17
  }
15
18
 
16
- export type Backend = PodDevice_Backend_Pvc
17
- @k8ts(api.v1_.Pod_.Device)
18
- @relations({
19
- needs: self => ({
20
- backend: self.backend.$backend
21
- })
22
- })
23
- export class PodDevice extends SubResource<PodDevice_Backend_Pvc> {
24
- readonly kind = api.v1_.Pod_.Device
25
- constructor(
26
- parent: ManifestResource,
27
- name: string,
28
- readonly backend: PodDevice_Backend_Pvc
29
- ) {
30
- super(parent, name, backend)
31
- }
19
+ constructor(
20
+ parent: Resource_Entity,
21
+ name: string,
22
+ readonly backend: Pod_Device_Backend_Pvc
23
+ ) {
24
+ super(parent, name, backend)
25
+ }
32
26
 
33
- submanifest(): CDK.Volume {
34
- return {
35
- name: this.name,
36
- persistentVolumeClaim: {
37
- claimName: this.backend.$backend.name,
38
- readOnly: this.backend.readOnly
39
- }
40
- }
27
+ protected __needs__(): Record<string, Resource_Entity | Resource_Entity[] | undefined> {
28
+ return {
29
+ backend: this.backend.$backend
41
30
  }
31
+ }
42
32
 
43
- Mount() {
44
- return new Mount.ContainerDeviceMount({
45
- device: this
46
- })
33
+ protected __submanifest__(): CDK.Volume {
34
+ return {
35
+ name: this.name,
36
+ persistentVolumeClaim: {
37
+ claimName: this.backend.$backend.name,
38
+ readOnly: this.backend.readOnly
39
+ }
47
40
  }
48
41
  }
49
42
 
50
- export function make(parent: ManifestResource, name: string, input: Backend) {
51
- return new PodDevice(parent, name, input)
43
+ Mount() {
44
+ return new Container_Mount_Device({
45
+ device: this
46
+ })
52
47
  }
53
48
  }
49
+
50
+ export function make(parent: Resource_Entity, name: string, input: Pod_Device_Backend) {
51
+ return new Pod_Device(parent, name, input)
52
+ }
@@ -1,3 +1,2 @@
1
- export { Mount } from "../container/mounts"
2
- export { Device } from "./devices"
3
- export { Volume } from "./volumes"
1
+ export { Pod_Device, type Pod_Device_Backend } from "./devices"
2
+ export { Pod_Volume, type Pod_Volume_Backend } from "./volumes"
@@ -1,94 +1,116 @@
1
- import type { CDK } from "../../../_imports"
1
+ import type { CDK } from "@k8ts/sample-interfaces"
2
2
 
3
- import { relations } from "@k8ts/instruments"
4
- import { k8ts } from "../../../kind-map"
5
- import { api } from "../../../kinds"
6
- import type { ManifestResource } from "../../../node"
7
- import { SubResource } from "../../../node/sub-resource"
3
+ import type { Resource_Entity } from "@k8ts/instruments"
4
+ import { Resource_Child } from "@k8ts/instruments"
5
+ import { v1 } from "../../../kinds/default"
8
6
  import type { ConfigMap } from "../../configmap"
9
- import { Pvc } from "../../persistent"
7
+ import { Pvc, type Pv_VolumeMode } from "../../persistent"
10
8
  import type { Secret } from "../../secret"
11
- import { Mount } from "../container/mounts"
12
- export type Volume<Props extends Volume.Backend = Volume.Backend> = Volume.PodVolume<Props>
13
- export namespace Volume {
14
- interface PodVolume_Backend_Pvc {
15
- $backend: Pvc.Pvc<"Filesystem">
16
- readOnly?: boolean
17
- }
9
+ import { Container_Mount_Volume, type Container_Mount_Props } from "../container/mounts"
18
10
 
19
- interface PodVolume_Backend_ConfigMap {
20
- $backend: ConfigMap
21
- }
22
- interface PodVolume_Backend_Secret {
23
- $backend: Secret
24
- }
25
- export type Backend =
26
- | PodVolume_Backend_Pvc
27
- | PodVolume_Backend_ConfigMap
28
- | PodVolume_Backend_Secret
11
+ interface Pod_Volume_Backend_Pvc<Mode extends Pv_VolumeMode = Pv_VolumeMode> {
12
+ $backend: Pvc<Mode>
13
+ readOnly?: boolean
14
+ }
29
15
 
30
- @k8ts(api.v1_.Pod_.Volume)
31
- @relations({
32
- needs: self => ({
33
- backend: self.props.$backend
34
- })
35
- })
36
- export abstract class PodVolume<Props extends Backend = Backend> extends SubResource<Props> {
37
- readonly kind = api.v1_.Pod_.Volume
16
+ interface Pod_Volume_Backend_ConfigMap {
17
+ $backend: ConfigMap
18
+ }
19
+ interface Pod_Volume_Backend_Secret {
20
+ $backend: Secret
21
+ }
22
+ export type Pod_Volume_Backend<Mode extends Pv_VolumeMode = Pv_VolumeMode> =
23
+ | Pod_Volume_Backend_Pvc<Mode>
24
+ | Pod_Volume_Backend_ConfigMap
25
+ | Pod_Volume_Backend_Secret
38
26
 
39
- abstract submanifest(): CDK.Volume
27
+ export abstract class Pod_Volume<
28
+ Props extends Pod_Volume_Backend = Pod_Volume_Backend
29
+ > extends Resource_Child<Props> {
30
+ get kind() {
31
+ return v1.Pod.Volume._
32
+ }
40
33
 
41
- Mount(options?: Omit<Mount.Props, "volume">) {
42
- return new Mount.ContainerVolumeMount({
43
- volume: this,
44
- ...options
45
- })
34
+ static make<Mode extends Pv_VolumeMode>(
35
+ parent: Resource_Entity,
36
+ name: string,
37
+ backend: Pod_Volume_Backend<Mode>
38
+ ): Pod_Volume<Pod_Volume_Backend<Mode>> {
39
+ switch (backend.$backend.kind.name) {
40
+ case "PersistentVolumeClaim":
41
+ return new Pod_Volume_Pvc<Mode>(
42
+ parent,
43
+ name,
44
+ backend as Pod_Volume_Backend_Pvc<Mode>
45
+ )
46
+ case "ConfigMap":
47
+ return new Pod_Volume_ConfigMap(
48
+ parent,
49
+ name,
50
+ backend as Pod_Volume_Backend_ConfigMap
51
+ )
52
+ case "Secret":
53
+ return new Pod_Volume_Secret(parent, name, backend as Pod_Volume_Backend_Secret)
46
54
  }
47
55
  }
48
56
 
49
- class PvcPodVolume extends PodVolume<PodVolume_Backend_Pvc> {
50
- override submanifest(): CDK.Volume {
51
- return {
52
- name: this.name,
53
- persistentVolumeClaim: {
54
- claimName: this.props.$backend.name,
55
- readOnly: this.props.readOnly
56
- }
57
- }
57
+ protected __needs__(): Record<string, Resource_Entity | Resource_Entity[] | undefined> {
58
+ return {
59
+ backend: this.props.$backend
58
60
  }
59
61
  }
62
+ Mount(options?: Omit<Container_Mount_Props, "volume">) {
63
+ return new Container_Mount_Volume({
64
+ volume: this,
65
+ ...options
66
+ })
67
+ }
68
+
69
+ protected abstract __submanifest__(): CDK.Volume
70
+ }
60
71
 
61
- class ConfigMapPodVolume extends PodVolume<PodVolume_Backend_ConfigMap> {
62
- override submanifest(): CDK.Volume {
63
- return {
64
- name: this.name,
65
- configMap: {
66
- name: this.props.$backend.name
67
- }
72
+ class Pod_Volume_Pvc<Mode extends Pv_VolumeMode> extends Pod_Volume<Pod_Volume_Backend_Pvc<Mode>> {
73
+ protected __submanifest__(): CDK.Volume {
74
+ return {
75
+ name: this.name,
76
+ persistentVolumeClaim: {
77
+ claimName: this.props.$backend.name,
78
+ readOnly: this.props.readOnly
68
79
  }
69
80
  }
70
81
  }
82
+ }
71
83
 
72
- class SecretPodVolume extends PodVolume<PodVolume_Backend_Secret> {
73
- override submanifest(): CDK.Volume {
74
- return {
75
- name: this.name,
76
- secret: {
77
- secretName: this.props.$backend.name
78
- }
84
+ class Pod_Volume_ConfigMap extends Pod_Volume<Pod_Volume_Backend_ConfigMap> {
85
+ protected __submanifest__(): CDK.Volume {
86
+ return {
87
+ name: this.name,
88
+ configMap: {
89
+ name: this.props.$backend.name
79
90
  }
80
91
  }
81
92
  }
93
+ }
82
94
 
83
- export function make(parent: ManifestResource, name: string, input: Backend): PodVolume {
84
- const { $backend } = input
85
- switch ($backend.kind.name) {
86
- case "PersistentVolumeClaim":
87
- return new PvcPodVolume(parent, name, input as PodVolume_Backend_Pvc)
88
- case "ConfigMap":
89
- return new ConfigMapPodVolume(parent, name, input as PodVolume_Backend_ConfigMap)
90
- case "Secret":
91
- return new SecretPodVolume(parent, name, input as PodVolume_Backend_Secret)
95
+ class Pod_Volume_Secret extends Pod_Volume<Pod_Volume_Backend_Secret> {
96
+ protected __submanifest__(): CDK.Volume {
97
+ return {
98
+ name: this.name,
99
+ secret: {
100
+ secretName: this.props.$backend.name
101
+ }
92
102
  }
93
103
  }
94
104
  }
105
+
106
+ export function make(parent: Resource_Entity, name: string, input: Pod_Volume_Backend): Pod_Volume {
107
+ const { $backend } = input
108
+ switch ($backend.kind.name) {
109
+ case "PersistentVolumeClaim":
110
+ return new Pod_Volume_Pvc(parent, name, input as Pod_Volume_Backend_Pvc)
111
+ case "ConfigMap":
112
+ return new Pod_Volume_ConfigMap(parent, name, input as Pod_Volume_Backend_ConfigMap)
113
+ case "Secret":
114
+ return new Pod_Volume_Secret(parent, name, input as Pod_Volume_Backend_Secret)
115
+ }
116
+ }
@@ -0,0 +1,40 @@
1
+ import { Resource_Top } from "@k8ts/instruments"
2
+ import { CDK } from "@k8ts/sample-interfaces"
3
+ import { rbac } from "../../kinds/rbac"
4
+ import type { ClusterRole } from "./cluster-role"
5
+ import type { ServiceAccount } from "./service-account"
6
+
7
+ export interface ClusterRoleBoding_Props {
8
+ $role: ClusterRole
9
+ $subjects: ServiceAccount[]
10
+ }
11
+
12
+ export class ClusterRoleBinding<Name extends string = string> extends Resource_Top<
13
+ Name,
14
+ ClusterRoleBoding_Props
15
+ > {
16
+ get kind() {
17
+ return rbac.v1.ClusterRoleBinding._
18
+ }
19
+
20
+ protected __needs__() {
21
+ return {
22
+ role: this.props.$role,
23
+ subjects: this.props.$subjects
24
+ }
25
+ }
26
+ protected body(): CDK.KubeClusterRoleBindingProps {
27
+ return {
28
+ roleRef: {
29
+ apiGroup: this.props.$role.kind.parent!.text,
30
+ kind: this.props.$role.kind.name,
31
+ name: this.props.$role.name
32
+ },
33
+ subjects: this.props.$subjects.map(sa => ({
34
+ kind: sa.kind.name,
35
+ name: sa.name,
36
+ namespace: sa.namespace!
37
+ }))
38
+ }
39
+ }
40
+ }