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.
- package/dist/default-world.d.ts +5 -0
- package/dist/default-world.d.ts.map +1 -0
- package/dist/default-world.js +54 -0
- package/dist/default-world.js.map +1 -0
- package/dist/env/env.d.ts +6 -8
- package/dist/env/env.d.ts.map +1 -1
- package/dist/env/env.js +29 -28
- package/dist/env/env.js.map +1 -1
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/types.d.ts +7 -5
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js +11 -0
- package/dist/env/types.js.map +1 -1
- package/dist/index.d.ts +4 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -31
- package/dist/index.js.map +1 -1
- package/dist/kinds/apps.d.ts +30 -0
- package/dist/kinds/apps.d.ts.map +1 -0
- package/dist/kinds/apps.js +33 -0
- package/dist/kinds/apps.js.map +1 -0
- package/dist/kinds/batch.d.ts +18 -0
- package/dist/kinds/batch.d.ts.map +1 -0
- package/dist/kinds/batch.js +21 -0
- package/dist/kinds/batch.js.map +1 -0
- package/dist/kinds/default.d.ts +74 -0
- package/dist/kinds/default.d.ts.map +1 -0
- package/dist/kinds/default.js +78 -0
- package/dist/kinds/default.js.map +1 -0
- package/dist/kinds/gateway.d.ts +30 -0
- package/dist/kinds/gateway.d.ts.map +1 -0
- package/dist/kinds/gateway.js +33 -0
- package/dist/kinds/gateway.js.map +1 -0
- package/dist/kinds/index.d.ts +9 -0
- package/dist/kinds/index.d.ts.map +1 -0
- package/dist/{_imports/_mix.js → kinds/index.js} +9 -4
- package/dist/kinds/index.js.map +1 -0
- package/dist/kinds/metrics.d.ts +18 -0
- package/dist/kinds/metrics.d.ts.map +1 -0
- package/dist/kinds/metrics.js +21 -0
- package/dist/kinds/metrics.js.map +1 -0
- package/dist/kinds/networking.d.ts +14 -0
- package/dist/kinds/networking.d.ts.map +1 -0
- package/dist/kinds/networking.js +17 -0
- package/dist/kinds/networking.js.map +1 -0
- package/dist/kinds/rbac.d.ts +26 -0
- package/dist/kinds/rbac.d.ts.map +1 -0
- package/dist/kinds/rbac.js +29 -0
- package/dist/kinds/rbac.js.map +1 -0
- package/dist/kinds/storage.d.ts +18 -0
- package/dist/kinds/storage.d.ts.map +1 -0
- package/dist/kinds/storage.js +21 -0
- package/dist/kinds/storage.js.map +1 -0
- package/dist/origins/external.d.ts +8 -0
- package/dist/origins/external.d.ts.map +1 -0
- package/dist/origins/external.js +19 -0
- package/dist/origins/external.js.map +1 -0
- package/dist/origins/file/file.d.ts +24 -0
- package/dist/origins/file/file.d.ts.map +1 -0
- package/dist/{node/sub-resource.js → origins/file/file.js} +51 -32
- package/dist/origins/file/file.js.map +1 -0
- package/dist/origins/file/index.d.ts +4 -0
- package/dist/origins/file/index.d.ts.map +1 -0
- package/dist/{file → origins/file}/index.js +2 -0
- package/dist/origins/file/index.js.map +1 -0
- package/dist/origins/file/modifier.d.ts +10 -0
- package/dist/origins/file/modifier.d.ts.map +1 -0
- package/dist/origins/file/modifier.js +21 -0
- package/dist/origins/file/modifier.js.map +1 -0
- package/dist/origins/file/section.d.ts +18 -0
- package/dist/origins/file/section.d.ts.map +1 -0
- package/dist/{external/index.js → origins/file/section.js} +40 -41
- package/dist/origins/file/section.js.map +1 -0
- package/dist/origins/index.d.ts +4 -0
- package/dist/origins/index.d.ts.map +1 -0
- package/dist/{world → origins}/index.js +2 -0
- package/dist/origins/index.js.map +1 -0
- package/dist/origins/world.d.ts +13 -0
- package/dist/origins/world.d.ts.map +1 -0
- package/dist/origins/world.js +27 -0
- package/dist/origins/world.js.map +1 -0
- package/dist/resources/configmap/configmap.d.ts +10 -12
- package/dist/resources/configmap/configmap.d.ts.map +1 -1
- package/dist/resources/configmap/configmap.js +21 -72
- package/dist/resources/configmap/configmap.js.map +1 -1
- package/dist/resources/cronjob/index.d.ts +12 -12
- package/dist/resources/cronjob/index.d.ts.map +1 -1
- package/dist/resources/cronjob/index.js +29 -86
- package/dist/resources/cronjob/index.js.map +1 -1
- package/dist/resources/deployment/deployment.d.ts +28 -29
- package/dist/resources/deployment/deployment.d.ts.map +1 -1
- package/dist/resources/deployment/deployment.js +59 -109
- package/dist/resources/deployment/deployment.js.map +1 -1
- package/dist/resources/external/index.d.ts +19 -0
- package/dist/resources/external/index.d.ts.map +1 -0
- package/dist/resources/external/index.js +44 -0
- package/dist/resources/external/index.js.map +1 -0
- package/dist/resources/http-route/http-route.d.ts +31 -16
- package/dist/resources/http-route/http-route.d.ts.map +1 -1
- package/dist/resources/http-route/http-route.js +28 -80
- package/dist/resources/http-route/http-route.js.map +1 -1
- package/dist/resources/index.d.ts +4 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +4 -0
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/namespace/namespace.d.ts +10 -11
- package/dist/resources/namespace/namespace.d.ts.map +1 -1
- package/dist/resources/namespace/namespace.js +14 -70
- package/dist/resources/namespace/namespace.js.map +1 -1
- package/dist/resources/persistent/access-mode.d.ts +5 -5
- package/dist/resources/persistent/access-mode.d.ts.map +1 -1
- package/dist/resources/persistent/access-mode.js +2 -2
- package/dist/resources/persistent/access-mode.js.map +1 -1
- package/dist/resources/persistent/block-mode.d.ts +1 -1
- package/dist/resources/persistent/block-mode.d.ts.map +1 -1
- package/dist/resources/persistent/claim/pvc.d.ts +25 -24
- package/dist/resources/persistent/claim/pvc.d.ts.map +1 -1
- package/dist/resources/persistent/claim/pvc.js +40 -91
- package/dist/resources/persistent/claim/pvc.js.map +1 -1
- package/dist/resources/persistent/volume/parse-backend.d.ts +2 -2
- package/dist/resources/persistent/volume/parse-backend.d.ts.map +1 -1
- package/dist/resources/persistent/volume/parse-backend.js.map +1 -1
- package/dist/resources/persistent/volume/pv.d.ts +42 -27
- package/dist/resources/persistent/volume/pv.d.ts.map +1 -1
- package/dist/resources/persistent/volume/pv.js +47 -100
- package/dist/resources/persistent/volume/pv.js.map +1 -1
- package/dist/resources/pod/container/container.d.ts +42 -48
- package/dist/resources/pod/container/container.d.ts.map +1 -1
- package/dist/resources/pod/container/container.js +89 -143
- package/dist/resources/pod/container/container.js.map +1 -1
- package/dist/resources/pod/container/mounts.d.ts +29 -30
- package/dist/resources/pod/container/mounts.d.ts.map +1 -1
- package/dist/resources/pod/container/mounts.js +42 -41
- package/dist/resources/pod/container/mounts.js.map +1 -1
- package/dist/resources/pod/pod-template.d.ts +41 -40
- package/dist/resources/pod/pod-template.d.ts.map +1 -1
- package/dist/resources/pod/pod-template.js +76 -110
- package/dist/resources/pod/pod-template.js.map +1 -1
- package/dist/resources/pod/volume/devices.d.ts +18 -20
- package/dist/resources/pod/volume/devices.d.ts.map +1 -1
- package/dist/resources/pod/volume/devices.js +33 -85
- package/dist/resources/pod/volume/devices.js.map +1 -1
- package/dist/resources/pod/volume/index.d.ts +2 -3
- package/dist/resources/pod/volume/index.d.ts.map +1 -1
- package/dist/resources/pod/volume/index.js +3 -5
- package/dist/resources/pod/volume/index.js.map +1 -1
- package/dist/resources/pod/volume/volumes.d.ts +24 -25
- package/dist/resources/pod/volume/volumes.d.ts.map +1 -1
- package/dist/resources/pod/volume/volumes.js +66 -108
- package/dist/resources/pod/volume/volumes.js.map +1 -1
- package/dist/resources/rbac/cluster-role-binding.d.ts +17 -0
- package/dist/resources/rbac/cluster-role-binding.d.ts.map +1 -0
- package/dist/resources/rbac/cluster-role-binding.js +32 -0
- package/dist/resources/rbac/cluster-role-binding.js.map +1 -0
- package/dist/resources/rbac/cluster-role.d.ts +28 -0
- package/dist/resources/rbac/cluster-role.d.ts.map +1 -0
- package/dist/resources/rbac/cluster-role.js +46 -0
- package/dist/resources/rbac/cluster-role.js.map +1 -0
- package/dist/resources/rbac/service-account.d.ts +11 -0
- package/dist/resources/rbac/service-account.d.ts.map +1 -0
- package/dist/resources/rbac/service-account.js +21 -0
- package/dist/resources/rbac/service-account.js.map +1 -0
- package/dist/resources/secret/index.d.ts +1 -3
- package/dist/resources/secret/index.d.ts.map +1 -1
- package/dist/resources/secret/index.js +4 -25
- package/dist/resources/secret/index.js.map +1 -1
- package/dist/resources/secret/secret.d.ts +8 -4
- package/dist/resources/secret/secret.d.ts.map +1 -1
- package/dist/resources/secret/secret.js +12 -65
- package/dist/resources/secret/secret.js.map +1 -1
- package/dist/resources/service/service-port.d.ts +12 -15
- package/dist/resources/service/service-port.d.ts.map +1 -1
- package/dist/resources/service/service-port.js +21 -24
- package/dist/resources/service/service-port.js.map +1 -1
- package/dist/resources/service/service.d.ts +33 -27
- package/dist/resources/service/service.d.ts.map +1 -1
- package/dist/resources/service/service.js +63 -123
- package/dist/resources/service/service.js.map +1 -1
- package/dist/resources/utils/adapters.d.ts +3 -3
- package/dist/resources/utils/adapters.d.ts.map +1 -1
- package/dist/resources/utils/adapters.js +5 -4
- package/dist/resources/utils/adapters.js.map +1 -1
- package/dist/runner/exporter/assembler.d.ts +5 -6
- package/dist/runner/exporter/assembler.d.ts.map +1 -1
- package/dist/runner/exporter/assembler.js +4 -3
- package/dist/runner/exporter/assembler.js.map +1 -1
- package/dist/runner/exporter/loader.d.ts +3 -5
- package/dist/runner/exporter/loader.d.ts.map +1 -1
- package/dist/runner/exporter/loader.js +18 -31
- package/dist/runner/exporter/loader.js.map +1 -1
- package/dist/runner/exporter/manifester.d.ts +5 -5
- package/dist/runner/exporter/manifester.d.ts.map +1 -1
- package/dist/runner/exporter/manifester.js +11 -3
- package/dist/runner/exporter/manifester.js.map +1 -1
- package/dist/runner/exporter/meta.d.ts +1 -1
- package/dist/runner/exporter/meta.d.ts.map +1 -1
- package/dist/runner/exporter/meta.js +0 -2
- package/dist/runner/exporter/meta.js.map +1 -1
- package/dist/runner/exporter/saver.d.ts +2 -2
- package/dist/runner/exporter/saver.d.ts.map +1 -1
- package/dist/runner/exporter/saver.js.map +1 -1
- package/dist/runner/exporter/serializer.d.ts +4 -4
- package/dist/runner/exporter/serializer.d.ts.map +1 -1
- package/dist/runner/exporter/serializer.js +13 -5
- package/dist/runner/exporter/serializer.js.map +1 -1
- package/dist/runner/exporter/validator.d.ts +2 -2
- package/dist/runner/exporter/validator.d.ts.map +1 -1
- package/dist/runner/exporter/validator.js +1 -14
- package/dist/runner/exporter/validator.js.map +1 -1
- package/dist/runner/paths.d.ts.map +1 -0
- package/dist/runner/paths.js.map +1 -0
- package/dist/runner/runner.d.ts +2 -2
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js +11 -6
- package/dist/runner/runner.js.map +1 -1
- package/dist/runner/summarizer.d.ts +4 -4
- package/dist/runner/summarizer.d.ts.map +1 -1
- package/dist/runner/summarizer.js +3 -3
- package/dist/runner/summarizer.js.map +1 -1
- package/dist/version.d.ts +2 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -1
- package/dist/version.js.map +1 -1
- package/package.json +12 -18
- package/src/default-world.ts +66 -0
- package/src/env/env.ts +42 -36
- package/src/env/index.ts +1 -1
- package/src/env/types.ts +15 -5
- package/src/index.ts +4 -7
- package/src/kinds/apps.ts +30 -0
- package/src/kinds/batch.ts +18 -0
- package/src/kinds/default.ts +81 -0
- package/src/kinds/gateway.ts +30 -0
- package/src/kinds/index.ts +9 -0
- package/src/kinds/metrics.ts +18 -0
- package/src/kinds/networking.ts +14 -0
- package/src/kinds/rbac.ts +26 -0
- package/src/kinds/storage.ts +18 -0
- package/src/origins/external.ts +14 -0
- package/src/origins/file/file.ts +72 -0
- package/src/origins/file/index.ts +3 -0
- package/src/origins/file/modifier.ts +21 -0
- package/src/origins/file/section.ts +43 -0
- package/src/origins/index.ts +3 -0
- package/src/origins/world.ts +40 -0
- package/src/resources/configmap/configmap.ts +26 -31
- package/src/resources/cronjob/index.ts +33 -43
- package/src/resources/deployment/deployment.ts +85 -76
- package/src/resources/external/index.ts +49 -0
- package/src/resources/http-route/http-route.ts +40 -39
- package/src/resources/index.ts +4 -0
- package/src/resources/namespace/namespace.ts +16 -24
- package/src/resources/persistent/access-mode.ts +6 -6
- package/src/resources/persistent/block-mode.ts +1 -1
- package/src/resources/persistent/claim/pvc.ts +54 -55
- package/src/resources/persistent/volume/parse-backend.ts +2 -2
- package/src/resources/persistent/volume/pv.ts +87 -69
- package/src/resources/pod/container/container.ts +113 -120
- package/src/resources/pod/container/mounts.ts +42 -39
- package/src/resources/pod/pod-template.ts +80 -67
- package/src/resources/pod/volume/devices.ts +41 -42
- package/src/resources/pod/volume/index.ts +2 -3
- package/src/resources/pod/volume/volumes.ts +92 -70
- package/src/resources/rbac/cluster-role-binding.ts +40 -0
- package/src/resources/rbac/cluster-role.ts +99 -0
- package/src/resources/rbac/service-account.ts +25 -0
- package/src/resources/secret/index.ts +1 -3
- package/src/resources/secret/secret.ts +11 -17
- package/src/resources/service/service-port.ts +21 -25
- package/src/resources/service/service.ts +84 -92
- package/src/resources/utils/adapters.ts +4 -3
- package/src/runner/exporter/assembler.ts +9 -9
- package/src/runner/exporter/loader.ts +24 -40
- package/src/runner/exporter/manifester.ts +24 -14
- package/src/runner/exporter/meta.ts +0 -1
- package/src/runner/exporter/saver.ts +3 -2
- package/src/runner/exporter/serializer.ts +20 -7
- package/src/runner/exporter/validator.ts +3 -17
- package/src/runner/runner.ts +17 -12
- package/src/runner/summarizer.ts +9 -9
- package/src/version.ts +2 -1
- package/dist/_imports/_mix.d.ts +0 -4
- package/dist/_imports/_mix.d.ts.map +0 -1
- package/dist/_imports/_mix.js.map +0 -1
- package/dist/_imports/acme.cert-manager.io.d.ts +0 -4832
- package/dist/_imports/acme.cert-manager.io.d.ts.map +0 -1
- package/dist/_imports/acme.cert-manager.io.js +0 -2476
- package/dist/_imports/acme.cert-manager.io.js.map +0 -1
- package/dist/_imports/gateway.networking.k8s.io.d.ts +0 -8786
- package/dist/_imports/gateway.networking.k8s.io.d.ts.map +0 -1
- package/dist/_imports/gateway.networking.k8s.io.js +0 -3668
- package/dist/_imports/gateway.networking.k8s.io.js.map +0 -1
- package/dist/_imports/helm.toolkit.fluxcd.io.d.ts +0 -4894
- package/dist/_imports/helm.toolkit.fluxcd.io.d.ts.map +0 -1
- package/dist/_imports/helm.toolkit.fluxcd.io.js +0 -2430
- package/dist/_imports/helm.toolkit.fluxcd.io.js.map +0 -1
- package/dist/_imports/index.d.ts +0 -3
- package/dist/_imports/index.d.ts.map +0 -1
- package/dist/_imports/index.js +0 -39
- package/dist/_imports/index.js.map +0 -1
- package/dist/_imports/k8s.d.ts +0 -18782
- package/dist/_imports/k8s.d.ts.map +0 -1
- package/dist/_imports/k8s.js +0 -12173
- package/dist/_imports/k8s.js.map +0 -1
- package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts +0 -2367
- package/dist/_imports/kustomize.toolkit.fluxcd.io.d.ts.map +0 -1
- package/dist/_imports/kustomize.toolkit.fluxcd.io.js +0 -1285
- package/dist/_imports/kustomize.toolkit.fluxcd.io.js.map +0 -1
- package/dist/_imports/notification.toolkit.fluxcd.io.d.ts +0 -2005
- package/dist/_imports/notification.toolkit.fluxcd.io.d.ts.map +0 -1
- package/dist/_imports/notification.toolkit.fluxcd.io.js +0 -1575
- package/dist/_imports/notification.toolkit.fluxcd.io.js.map +0 -1
- package/dist/_imports/source.toolkit.fluxcd.io.d.ts +0 -4158
- package/dist/_imports/source.toolkit.fluxcd.io.d.ts.map +0 -1
- package/dist/_imports/source.toolkit.fluxcd.io.js +0 -2739
- package/dist/_imports/source.toolkit.fluxcd.io.js.map +0 -1
- package/dist/external/index.d.ts +0 -13
- package/dist/external/index.d.ts.map +0 -1
- package/dist/external/index.js.map +0 -1
- package/dist/file/exports.d.ts +0 -19
- package/dist/file/exports.d.ts.map +0 -1
- package/dist/file/exports.js +0 -53
- package/dist/file/exports.js.map +0 -1
- package/dist/file/factory.d.ts +0 -41
- package/dist/file/factory.d.ts.map +0 -1
- package/dist/file/factory.js +0 -197
- package/dist/file/factory.js.map +0 -1
- package/dist/file/file.d.ts +0 -16
- package/dist/file/file.d.ts.map +0 -1
- package/dist/file/file.js +0 -21
- package/dist/file/file.js.map +0 -1
- package/dist/file/index.d.ts +0 -2
- package/dist/file/index.d.ts.map +0 -1
- package/dist/file/index.js.map +0 -1
- package/dist/file/origin.d.ts +0 -21
- package/dist/file/origin.d.ts.map +0 -1
- package/dist/file/origin.js +0 -27
- package/dist/file/origin.js.map +0 -1
- package/dist/k8ts-sys-kind.d.ts +0 -3
- package/dist/k8ts-sys-kind.d.ts.map +0 -1
- package/dist/k8ts-sys-kind.js +0 -8
- package/dist/k8ts-sys-kind.js.map +0 -1
- package/dist/kind-map.d.ts +0 -12
- package/dist/kind-map.d.ts.map +0 -1
- package/dist/kind-map.js +0 -30
- package/dist/kind-map.js.map +0 -1
- package/dist/kinds.d.ts +0 -115
- package/dist/kinds.d.ts.map +0 -1
- package/dist/kinds.js +0 -95
- package/dist/kinds.js.map +0 -1
- package/dist/meta/k8ts-section.d.ts +0 -3
- package/dist/meta/k8ts-section.d.ts.map +0 -1
- package/dist/meta/k8ts-section.js +0 -10
- package/dist/meta/k8ts-section.js.map +0 -1
- package/dist/node/abs-resource.d.ts +0 -16
- package/dist/node/abs-resource.d.ts.map +0 -1
- package/dist/node/abs-resource.js +0 -79
- package/dist/node/abs-resource.js.map +0 -1
- package/dist/node/dependencies.d.ts +0 -2
- package/dist/node/dependencies.d.ts.map +0 -1
- package/dist/node/dependencies.js +0 -3
- package/dist/node/dependencies.js.map +0 -1
- package/dist/node/equiv-cdk8s.d.ts +0 -9
- package/dist/node/equiv-cdk8s.d.ts.map +0 -1
- package/dist/node/equiv-cdk8s.js +0 -17
- package/dist/node/equiv-cdk8s.js.map +0 -1
- package/dist/node/index.d.ts +0 -5
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.js +0 -12
- package/dist/node/index.js.map +0 -1
- package/dist/node/manifest-resource.d.ts +0 -15
- package/dist/node/manifest-resource.d.ts.map +0 -1
- package/dist/node/manifest-resource.js +0 -20
- package/dist/node/manifest-resource.js.map +0 -1
- package/dist/node/sub-resource.d.ts +0 -8
- package/dist/node/sub-resource.d.ts.map +0 -1
- package/dist/node/sub-resource.js.map +0 -1
- package/dist/node/top-resource.d.ts +0 -7
- package/dist/node/top-resource.d.ts.map +0 -1
- package/dist/node/top-resource.js +0 -8
- package/dist/node/top-resource.js.map +0 -1
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js.map +0 -1
- package/dist/resources/persistent/volume/backend.d.ts +0 -19
- package/dist/resources/persistent/volume/backend.d.ts.map +0 -1
- package/dist/resources/persistent/volume/backend.js +0 -3
- package/dist/resources/persistent/volume/backend.js.map +0 -1
- package/dist/resources/service/frontend.d.ts +0 -11
- package/dist/resources/service/frontend.d.ts.map +0 -1
- package/dist/resources/service/frontend.js +0 -3
- package/dist/resources/service/frontend.js.map +0 -1
- package/dist/runner/exporter/trace-embedder.d.ts +0 -2
- package/dist/runner/exporter/trace-embedder.d.ts.map +0 -1
- package/dist/runner/exporter/trace-embedder.js +0 -3
- package/dist/runner/exporter/trace-embedder.js.map +0 -1
- package/dist/world/index.d.ts +0 -2
- package/dist/world/index.d.ts.map +0 -1
- package/dist/world/index.js.map +0 -1
- package/dist/world/world.d.ts +0 -34
- package/dist/world/world.d.ts.map +0 -1
- package/dist/world/world.js +0 -69
- package/dist/world/world.js.map +0 -1
- package/src/_imports/_mix.ts +0 -3
- package/src/_imports/acme.cert-manager.io.ts +0 -8202
- package/src/_imports/gateway.networking.k8s.io.ts +0 -12226
- package/src/_imports/helm.toolkit.fluxcd.io.ts +0 -6748
- package/src/_imports/index.ts +0 -2
- package/src/_imports/k8s.ts +0 -31028
- package/src/_imports/kustomize.toolkit.fluxcd.io.ts +0 -3369
- package/src/_imports/notification.toolkit.fluxcd.io.ts +0 -2848
- package/src/_imports/source.toolkit.fluxcd.io.ts +0 -6054
- package/src/external/index.ts +0 -34
- package/src/file/exports.ts +0 -66
- package/src/file/factory.ts +0 -199
- package/src/file/file.ts +0 -33
- package/src/file/index.ts +0 -1
- package/src/file/origin.ts +0 -41
- package/src/k8ts-sys-kind.ts +0 -4
- package/src/kind-map.ts +0 -42
- package/src/kinds.ts +0 -158
- package/src/meta/k8ts-section.ts +0 -6
- package/src/node/abs-resource.ts +0 -37
- package/src/node/dependencies.ts +0 -0
- package/src/node/equiv-cdk8s.ts +0 -19
- package/src/node/index.ts +0 -4
- package/src/node/manifest-resource.ts +0 -23
- package/src/node/sub-resource.ts +0 -20
- package/src/node/top-resource.ts +0 -7
- package/src/resources/persistent/volume/backend.ts +0 -20
- package/src/resources/service/frontend.ts +0 -11
- package/src/runner/exporter/trace-embedder.ts +0 -0
- package/src/world/index.ts +0 -1
- package/src/world/world.ts +0 -90
- /package/dist/{paths.d.ts → runner/paths.d.ts} +0 -0
- /package/dist/{paths.js → runner/paths.js} +0 -0
- /package/src/{paths.ts → runner/paths.ts} +0 -0
package/src/resources/index.ts
CHANGED
|
@@ -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 {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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.
|
|
1
|
+
export type Access = Access.Pv_AccessMode_Inputs
|
|
2
2
|
|
|
3
3
|
export namespace Access {
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
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:
|
|
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
|
|
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
|
|
1
|
+
export type Pv_VolumeMode = "Block" | "Filesystem"
|
|
@@ -1,67 +1,66 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CDK } from "
|
|
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 {
|
|
6
|
-
import {
|
|
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 {
|
|
12
|
-
import { Pv } from "../volume"
|
|
8
|
+
import type { Pv_VolumeMode } from "../block-mode"
|
|
9
|
+
import type { Pv, Pv_Ref } from "../volume"
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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 {
|
|
3
|
-
export function parseBackend(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 {
|
|
2
|
-
|
|
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 {
|
|
5
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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 {
|
|
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 {
|
|
20
|
-
import {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
}
|