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
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Kind, Resource_Top } from "@k8ts/instruments"
|
|
2
|
+
import { CDK } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { seq } from "doddle"
|
|
4
|
+
import { rbac } from "../../kinds/rbac"
|
|
5
|
+
export interface ClusterRole_Rule<
|
|
6
|
+
Groups extends Kind.Group[] = Kind.Group[],
|
|
7
|
+
Resources extends Kind.Kind<Groups[number]["name"], string, string>[] = Kind.Kind[]
|
|
8
|
+
> {
|
|
9
|
+
resources: Resources
|
|
10
|
+
verbs: Verbs[]
|
|
11
|
+
}
|
|
12
|
+
export type ClusterRole_RuleProducer<Rules extends ClusterRole_Rule> = (
|
|
13
|
+
scope: ClusterRole_Scope
|
|
14
|
+
) => Iterable<Rules>
|
|
15
|
+
class ClusterRole_Scope {
|
|
16
|
+
Resources<const R extends Kind[]>(...resources: R) {
|
|
17
|
+
return {
|
|
18
|
+
verbs(...verbs: Verbs[]) {
|
|
19
|
+
return {
|
|
20
|
+
resources: resources,
|
|
21
|
+
verbs: verbs
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export interface ClusterRole_Props<Rules extends ClusterRole_Rule = ClusterRole_Rule> {
|
|
28
|
+
rules: ClusterRole_RuleProducer<Rules>
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class ClusterRole<Name extends string = string> extends Resource_Top<
|
|
32
|
+
Name,
|
|
33
|
+
ClusterRole_Props
|
|
34
|
+
> {
|
|
35
|
+
get kind() {
|
|
36
|
+
return rbac.v1.ClusterRole._
|
|
37
|
+
}
|
|
38
|
+
constructor(name: Name, props: ClusterRole_Props) {
|
|
39
|
+
super(name, props)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private _fromObject(rule: ClusterRole_Rule) {
|
|
43
|
+
return {
|
|
44
|
+
apiGroups: rule.resources.map(x => x.parent.parent.name),
|
|
45
|
+
resources: rule.resources.map(r => r.plural),
|
|
46
|
+
verbs: rule.verbs
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
protected body(): CDK.KubeClusterRoleProps {
|
|
50
|
+
const rules = seq(this.props.rules(new ClusterRole_Scope()))
|
|
51
|
+
.map(rule => {
|
|
52
|
+
return this._fromObject(rule)
|
|
53
|
+
})
|
|
54
|
+
.toArray()
|
|
55
|
+
.pull()
|
|
56
|
+
return {
|
|
57
|
+
rules: rules
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export type Verbs =
|
|
63
|
+
| "get"
|
|
64
|
+
| "list"
|
|
65
|
+
| "watch"
|
|
66
|
+
| "create"
|
|
67
|
+
| "update"
|
|
68
|
+
| "patch"
|
|
69
|
+
| "delete"
|
|
70
|
+
| "deletecollection"
|
|
71
|
+
|
|
72
|
+
export type ApiGroup =
|
|
73
|
+
| "namespaces"
|
|
74
|
+
| "pods"
|
|
75
|
+
| "services"
|
|
76
|
+
| "endpoints"
|
|
77
|
+
| "persistentvolumeclaims"
|
|
78
|
+
| "events"
|
|
79
|
+
| "configmaps"
|
|
80
|
+
| "secrets"
|
|
81
|
+
| "httproutes"
|
|
82
|
+
| "gateways"
|
|
83
|
+
| "jobs"
|
|
84
|
+
| "cronjobs"
|
|
85
|
+
| "deployments"
|
|
86
|
+
| "replicasets"
|
|
87
|
+
| "statefulsets"
|
|
88
|
+
| "daemonsets"
|
|
89
|
+
| "podtemplates"
|
|
90
|
+
| "clusterroles"
|
|
91
|
+
| "roles"
|
|
92
|
+
| "rolebindings"
|
|
93
|
+
| "clusterrolebindings"
|
|
94
|
+
| "serviceaccounts"
|
|
95
|
+
| "nodes"
|
|
96
|
+
| "persistentvolumes"
|
|
97
|
+
| "storageclasses"
|
|
98
|
+
| "volumeattachments"
|
|
99
|
+
| "persistentvolumeclaims"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Resource_Top } from "@k8ts/instruments"
|
|
2
|
+
import { CDK } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { v1 } from "../../kinds/default"
|
|
4
|
+
export interface ServiceAccount_Props {
|
|
5
|
+
automountToken?: boolean
|
|
6
|
+
imagePullSecrets?: string[]
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class ServiceAccount<Name extends string = string> extends Resource_Top<
|
|
10
|
+
Name,
|
|
11
|
+
ServiceAccount_Props
|
|
12
|
+
> {
|
|
13
|
+
get kind() {
|
|
14
|
+
return v1.ServiceAccount._
|
|
15
|
+
}
|
|
16
|
+
protected body(): CDK.KubeServiceAccountProps {
|
|
17
|
+
const self = this
|
|
18
|
+
return {
|
|
19
|
+
automountServiceAccountToken: self.props.automountToken,
|
|
20
|
+
imagePullSecrets: self.props.imagePullSecrets?.map(name => ({
|
|
21
|
+
name
|
|
22
|
+
}))
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { k8ts } from "../../kind-map"
|
|
4
|
-
import { api } from "../../kinds"
|
|
5
|
-
import { equiv_cdk8s } from "../../node/equiv-cdk8s"
|
|
6
|
-
import { ManifestResource } from "../../node/manifest-resource"
|
|
1
|
+
import { Resource_Top } from "@k8ts/instruments"
|
|
2
|
+
import { v1 } from "../../kinds/default"
|
|
7
3
|
|
|
8
|
-
export interface
|
|
4
|
+
export interface Secret_Props {
|
|
9
5
|
data?: Record<string, string>
|
|
10
6
|
stringData?: Record<string, string>
|
|
11
7
|
}
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
export class Secret<Name extends string = string> extends Resource_Top<Name, Secret_Props> {
|
|
10
|
+
get kind() {
|
|
11
|
+
return v1.Secret._
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
protected body() {
|
|
18
15
|
return {
|
|
19
|
-
data:
|
|
20
|
-
stringData:
|
|
16
|
+
data: this.props.data,
|
|
17
|
+
stringData: this.props.stringData
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
})
|
|
24
|
-
export class Secret extends ManifestResource<Props> {
|
|
25
|
-
readonly kind = api.v1_.Secret
|
|
26
20
|
}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
|
-
import { CDK } from "
|
|
2
|
-
import type { Service } from "./service"
|
|
1
|
+
import { CDK } from "@k8ts/sample-interfaces"
|
|
2
|
+
import type { Service, Service_Ref } from "./service"
|
|
3
3
|
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
name: Port
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export class Port<Port extends string> {
|
|
12
|
-
constructor(readonly props: Props<Port>) {}
|
|
4
|
+
export interface Service_Port_Props<Port extends string> {
|
|
5
|
+
service: Service_Ref<Port>
|
|
6
|
+
name: Port
|
|
7
|
+
}
|
|
13
8
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
export class Port<Port extends string> {
|
|
10
|
+
constructor(readonly props: Service_Port_Props<Port>) {}
|
|
11
|
+
get service() {
|
|
12
|
+
return this.props.service as any as Service<Port>
|
|
13
|
+
}
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
get port() {
|
|
16
|
+
return this.props
|
|
17
|
+
}
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
19
|
+
// TODO: Does this need to resolve ports?
|
|
20
|
+
ref(): CDK.HttpRouteSpecRulesBackendRefs {
|
|
21
|
+
return {
|
|
22
|
+
kind: "Service",
|
|
23
|
+
namespace: this.service.meta.tryGet("namespace"),
|
|
24
|
+
name: this.service.meta.get("name"),
|
|
25
|
+
port: this.service.ports.get(this.props.name).frontend
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
}
|
|
@@ -1,107 +1,99 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
relations,
|
|
5
|
-
ResourceEntity,
|
|
6
|
-
type InputPortMapping
|
|
7
|
-
} from "@k8ts/instruments"
|
|
8
|
-
import { Map } from "immutable"
|
|
9
|
-
import { CDK } from "../../_imports"
|
|
1
|
+
import { Resource_Core_Ref, Resource_Top, type InputPortMapping } from "@k8ts/instruments"
|
|
2
|
+
import { CDK } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { seq } from "doddle"
|
|
10
4
|
import { MakeError } from "../../error"
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { ManifestResource } from "../../node"
|
|
14
|
-
import { equiv_cdk8s } from "../../node/equiv-cdk8s"
|
|
15
|
-
import { Deployment } from "../deployment"
|
|
5
|
+
import { v1 } from "../../kinds/index"
|
|
6
|
+
import { Deployment, type Deployment_Ref } from "../deployment"
|
|
16
7
|
import { toServicePorts } from "../utils/adapters"
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
8
|
+
import { Port } from "./service-port"
|
|
9
|
+
export interface Service_Frontend_ClusterIp {
|
|
10
|
+
type: "ClusterIP"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface Service_Frontend_LoadBalancer {
|
|
14
|
+
type: "LoadBalancer"
|
|
15
|
+
loadBalancerIP?: string
|
|
16
|
+
}
|
|
17
|
+
export type Service_Frontend = Service_Frontend_ClusterIp | Service_Frontend_LoadBalancer
|
|
18
|
+
export interface Service_Props<DeployPorts extends string, ExposedPorts extends DeployPorts> {
|
|
19
|
+
$ports: InputPortMapping<ExposedPorts>
|
|
20
|
+
$backend: Deployment_Ref<DeployPorts>
|
|
21
|
+
$frontend: Service_Frontend
|
|
22
|
+
}
|
|
23
|
+
export interface Service_Ref<ExposedPorts extends string> extends Resource_Core_Ref<v1.Service._> {
|
|
24
|
+
__PORTS__: ExposedPorts
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export class Service<
|
|
28
|
+
Name extends string = string,
|
|
29
|
+
ExposedPorts extends string = string
|
|
30
|
+
> extends Resource_Top<Name, Service_Props<string, ExposedPorts>> {
|
|
31
|
+
__PORTS__!: ExposedPorts
|
|
32
|
+
get kind() {
|
|
33
|
+
return v1.Service._
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
private get backend() {
|
|
37
|
+
return this.props.$backend as Deployment<ExposedPorts>
|
|
27
38
|
}
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
// TODO: Ports force evaluates the backend which is not needed
|
|
40
|
+
get ports() {
|
|
41
|
+
const srcPorts = this.backend.ports.pull()
|
|
42
|
+
const knownPorts = seq(Object.entries(this.props.$ports))
|
|
43
|
+
.filter(([, v]) => v !== undefined)
|
|
44
|
+
.map(([k]) => k)
|
|
45
|
+
.toArray()
|
|
46
|
+
.pull() as ExposedPorts[]
|
|
47
|
+
const svcPorts = srcPorts.pick(...knownPorts).map(this.props.$ports as any)
|
|
48
|
+
return svcPorts
|
|
30
49
|
}
|
|
31
|
-
@k8ts(api.v1_.Service)
|
|
32
|
-
@relations({
|
|
33
|
-
needs: self => ({
|
|
34
|
-
backend: self.backend as ResourceEntity
|
|
35
|
-
})
|
|
36
|
-
})
|
|
37
|
-
@equiv_cdk8s(CDK.KubeService)
|
|
38
|
-
@manifest({
|
|
39
|
-
body(self): CDK.KubeServiceProps {
|
|
40
|
-
const svcPorts = self.ports
|
|
41
|
-
return {
|
|
42
|
-
spec: {
|
|
43
|
-
...self.props.$frontend,
|
|
44
|
-
ports: toServicePorts(svcPorts).toArray(),
|
|
45
|
-
selector: {
|
|
46
|
-
app: self.props.$backend.name
|
|
47
|
-
},
|
|
48
|
-
...(self.props.$frontend.type === "LoadBalancer"
|
|
49
|
-
? {
|
|
50
|
-
allocateLoadBalancerNodePorts: false,
|
|
51
|
-
externalTrafficPolicy: "Local"
|
|
52
|
-
}
|
|
53
|
-
: {})
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
export class Service<ExposedPorts extends string = string> extends ManifestResource<
|
|
59
|
-
Props<string, ExposedPorts>
|
|
60
|
-
> {
|
|
61
|
-
__PORTS__!: ExposedPorts
|
|
62
|
-
kind = api.v1_.Service
|
|
63
50
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// TODO: Ports force evaluates the backend which is not needed
|
|
68
|
-
get ports() {
|
|
69
|
-
const srcPorts = this.backend.ports.pull()
|
|
70
|
-
const knownPorts = Map(this.props.$ports)
|
|
71
|
-
.filter(x => x !== undefined)
|
|
72
|
-
.keySeq()
|
|
73
|
-
.toArray() as ExposedPorts[]
|
|
74
|
-
const svcPorts = srcPorts.pick(...knownPorts).map(this.props.$ports as any)
|
|
75
|
-
return svcPorts
|
|
51
|
+
protected override __needs__() {
|
|
52
|
+
return {
|
|
53
|
+
backend: this.backend
|
|
76
54
|
}
|
|
55
|
+
}
|
|
77
56
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
portRef(name: ExposedPorts) {
|
|
58
|
+
return new Port({
|
|
59
|
+
service: this,
|
|
60
|
+
name: name
|
|
61
|
+
})
|
|
62
|
+
}
|
|
84
63
|
|
|
85
|
-
|
|
86
|
-
|
|
64
|
+
get hostname() {
|
|
65
|
+
return `${this.name}.${this.namespace}.svc.cluster.local`
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private _getPortoPart(port: ExposedPorts, protocol: "http" | "https") {
|
|
69
|
+
const portNumber = this.props.$ports[port]
|
|
70
|
+
if (portNumber === 80 && protocol === "http") {
|
|
71
|
+
return ""
|
|
72
|
+
}
|
|
73
|
+
if (portNumber === 443 && protocol === "https") {
|
|
74
|
+
return ""
|
|
75
|
+
}
|
|
76
|
+
if (portNumber === undefined) {
|
|
77
|
+
throw new MakeError(`Port ${port} is not defined in service ${this.name}`)
|
|
87
78
|
}
|
|
79
|
+
return `:${portNumber}`
|
|
80
|
+
}
|
|
88
81
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
protected body(): CDK.KubeServiceProps {
|
|
83
|
+
const self = this
|
|
84
|
+
const svcPorts = self.ports
|
|
85
|
+
return {
|
|
86
|
+
spec: {
|
|
87
|
+
...self.props.$frontend,
|
|
88
|
+
ports: toServicePorts(svcPorts),
|
|
89
|
+
selector: {
|
|
90
|
+
app: self.props.$backend.name
|
|
91
|
+
}
|
|
99
92
|
}
|
|
100
|
-
return `:${portNumber}`
|
|
101
93
|
}
|
|
94
|
+
}
|
|
102
95
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
96
|
+
address(protocol: "http" | "https", port: ExposedPorts) {
|
|
97
|
+
return `${protocol}://${this.hostname}${this._getPortoPart(port, protocol)}`
|
|
106
98
|
}
|
|
107
99
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PortMap, PortMapEntry, PortSet, PortSetEntry } from "@k8ts/instruments"
|
|
2
|
-
import { CDK } from "
|
|
2
|
+
import { CDK } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { seq } from "doddle"
|
|
3
4
|
export function toContainerPort(entry: PortSetEntry): CDK.ContainerPort {
|
|
4
5
|
return {
|
|
5
6
|
containerPort: entry.port,
|
|
@@ -11,7 +12,7 @@ export function toContainerPort(entry: PortSetEntry): CDK.ContainerPort {
|
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
export function toContainerPorts(ports: PortSet<any>) {
|
|
14
|
-
return ports.values.map(toContainerPort)
|
|
15
|
+
return seq(ports.values.values()).map(toContainerPort).toArray().pull()
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
export function toServicePort(entry: PortMapEntry): CDK.ServicePort {
|
|
@@ -24,5 +25,5 @@ export function toServicePort(entry: PortMapEntry): CDK.ServicePort {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
export function toServicePorts(ports: PortMap<any>) {
|
|
27
|
-
return ports.values.map(toServicePort).
|
|
28
|
+
return seq(ports.values.values()).map(toServicePort).toArray().pull()
|
|
28
29
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { OriginNode, type Origin_Exporter } from "@k8ts/instruments"
|
|
2
2
|
import { Meta } from "@k8ts/metadata"
|
|
3
3
|
import { aseq } from "doddle"
|
|
4
4
|
import Emittery from "emittery"
|
|
5
5
|
import { cloneDeep } from "lodash"
|
|
6
|
-
import type { File } from "../../file"
|
|
7
6
|
import { ResourceLoader, type ResourceLoaderEventsTable } from "./loader"
|
|
8
7
|
import { Manifester, NodeManifest, type ManifesterEventsTable } from "./manifester"
|
|
9
8
|
import { ManifestSaver, type ManifestSaverEventsTable } from "./saver"
|
|
@@ -15,7 +14,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
15
14
|
super()
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
async assemble(inFiles: Iterable<
|
|
17
|
+
async assemble(inFiles: Iterable<Origin_Exporter>) {
|
|
19
18
|
const _emit = async <Name extends keyof AssemblerEventsTable>(
|
|
20
19
|
event: Name,
|
|
21
20
|
payload: AssemblerEventsTable[Name]
|
|
@@ -36,11 +35,12 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
36
35
|
})
|
|
37
36
|
saver.onAny(_emit)
|
|
38
37
|
const reports = aseq(inFiles)
|
|
38
|
+
.map(x => x.node)
|
|
39
39
|
.before(async () => {
|
|
40
40
|
await _emit("stage", { stage: "gathering" })
|
|
41
41
|
})
|
|
42
42
|
.each(async file => {
|
|
43
|
-
await _emit("received-file", { file: file
|
|
43
|
+
await _emit("received-file", { file: file })
|
|
44
44
|
})
|
|
45
45
|
.after(async () => {
|
|
46
46
|
await _emit("stage", { stage: "loading" })
|
|
@@ -50,7 +50,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
50
50
|
const loaded = await loader.load(file)
|
|
51
51
|
loaded.forEach(r => r.meta!.add(this._options.meta))
|
|
52
52
|
return {
|
|
53
|
-
file: file
|
|
53
|
+
file: file,
|
|
54
54
|
resources: loaded.filter(x => !x.isExternal)
|
|
55
55
|
}
|
|
56
56
|
})
|
|
@@ -67,7 +67,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
67
67
|
.pull()
|
|
68
68
|
|
|
69
69
|
return {
|
|
70
|
-
file: file
|
|
70
|
+
file: file,
|
|
71
71
|
resources: manifests
|
|
72
72
|
} satisfies FileNodes
|
|
73
73
|
})
|
|
@@ -131,14 +131,14 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
export interface FileNodes {
|
|
134
|
-
file:
|
|
134
|
+
file: OriginNode
|
|
135
135
|
resources: NodeManifest[]
|
|
136
136
|
}
|
|
137
137
|
export interface Artifact extends NodeManifest {
|
|
138
138
|
yaml: string
|
|
139
139
|
}
|
|
140
140
|
export interface AssembledFile {
|
|
141
|
-
file:
|
|
141
|
+
file: OriginNode
|
|
142
142
|
path: string
|
|
143
143
|
filename: string
|
|
144
144
|
bytes: number
|
|
@@ -170,7 +170,7 @@ export interface AssemblerEventsTable
|
|
|
170
170
|
ManifesterEventsTable,
|
|
171
171
|
ResourceLoaderEventsTable,
|
|
172
172
|
ValidatorEventsTable {
|
|
173
|
-
["received-file"]: { file:
|
|
173
|
+
["received-file"]: { file: OriginNode }
|
|
174
174
|
["stage"]: { stage: AssemblyStage }
|
|
175
175
|
}
|
|
176
176
|
export type AnyAssemblerEvent = {
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { seq } from "doddle"
|
|
1
|
+
import { OriginNode, Resource_Node, type Node, type Resource_Top } from "@k8ts/instruments"
|
|
3
2
|
import Emittery from "emittery"
|
|
4
|
-
import { Map, Set } from "immutable"
|
|
5
3
|
import { MakeError } from "../../error"
|
|
6
|
-
import type { File } from "../../file"
|
|
7
|
-
import { k8ts_namespace } from "./meta"
|
|
8
4
|
export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
|
|
9
5
|
constructor(private readonly _options: ResourceLoaderOptions) {
|
|
10
6
|
super()
|
|
11
7
|
}
|
|
12
8
|
|
|
13
|
-
private
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
resource.meta!.add(k8ts_namespace, {
|
|
17
|
-
"^declared-in": `(${resource.origin.root.name}) ${resource.origin.name}`
|
|
18
|
-
})
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
private _checkNames(resources: Set<ResourceNode>) {
|
|
22
|
-
let names = Map<string, ResourceNode>()
|
|
9
|
+
private _checkNames(resources: Resource_Node[]) {
|
|
10
|
+
let names = new Map<string, Resource_Node>()
|
|
23
11
|
const nameRegexp = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/
|
|
24
12
|
for (const resource of resources) {
|
|
25
13
|
const name = [resource.kind.name, resource.namespace, resource.name]
|
|
@@ -36,16 +24,19 @@ export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
|
|
|
36
24
|
`Invalid resource name ${resource.name}. Must match ${nameRegexp}`
|
|
37
25
|
)
|
|
38
26
|
}
|
|
39
|
-
names
|
|
27
|
+
names.set(name, resource)
|
|
40
28
|
}
|
|
41
29
|
}
|
|
42
30
|
|
|
43
|
-
async load(input:
|
|
31
|
+
async load(input: OriginNode) {
|
|
44
32
|
// TODO: Handle ORIGINS that are referenced but not passed to the runner
|
|
45
|
-
|
|
33
|
+
let resources = [] as Resource_Node[]
|
|
46
34
|
|
|
47
|
-
const addResource = async (res:
|
|
48
|
-
if (
|
|
35
|
+
const addResource = async (res: Node) => {
|
|
36
|
+
if (!(res instanceof Resource_Node)) {
|
|
37
|
+
throw new Error(`Expected ResourceNode, got ${res.constructor.name}`)
|
|
38
|
+
}
|
|
39
|
+
if (resources.some(r => r.equals(res))) {
|
|
49
40
|
return
|
|
50
41
|
}
|
|
51
42
|
if (!res.isRoot) {
|
|
@@ -53,48 +44,41 @@ export class ResourceLoader extends Emittery<ResourceLoaderEventsTable> {
|
|
|
53
44
|
}
|
|
54
45
|
const origin = res.origin
|
|
55
46
|
|
|
56
|
-
if (!origin.isChildOf(
|
|
47
|
+
if (!origin.isChildOf(input)) {
|
|
57
48
|
return
|
|
58
49
|
}
|
|
59
50
|
const event = {
|
|
60
|
-
isExported: res.meta!.has(
|
|
51
|
+
isExported: res.meta!.has(`#k8ts.org/is-exported`),
|
|
61
52
|
resource: res
|
|
62
53
|
} as const
|
|
63
54
|
|
|
64
|
-
this._attachSourceAnnotations(event)
|
|
65
55
|
await this.emit("load", event)
|
|
66
|
-
|
|
56
|
+
origin.entity["__emit__"]("resource/loaded", {
|
|
57
|
+
origin: origin.entity,
|
|
58
|
+
resource: res.entity as Resource_Top
|
|
59
|
+
})
|
|
60
|
+
resources.push(res)
|
|
67
61
|
}
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
seq(input).toArray().pull()
|
|
72
|
-
for (let res of input.__node__.resources) {
|
|
73
|
-
if (ForwardRef.is(res)) {
|
|
74
|
-
throw new MakeError(`Resource ${res} is a forward reference`)
|
|
75
|
-
}
|
|
76
|
-
await addResource(res)
|
|
63
|
+
for (const resource of input.resources) {
|
|
64
|
+
await addResource(resource.node)
|
|
77
65
|
}
|
|
66
|
+
|
|
78
67
|
// Some resources might appear as dependencies to sub-resources that
|
|
79
68
|
// haven't loaded. We can acquire them by getting all the needed resources
|
|
80
|
-
for (const resource of resources
|
|
69
|
+
for (const resource of resources) {
|
|
81
70
|
for (const relation of resource.recursiveRelationsSubtree) {
|
|
82
71
|
await addResource(relation.needed)
|
|
83
72
|
}
|
|
84
73
|
}
|
|
85
74
|
|
|
86
|
-
// The lazy sections might have attached more resources to the origin
|
|
87
|
-
for (const resource of parentOrigin.resources) {
|
|
88
|
-
await addResource(resource)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
75
|
this._checkNames(resources)
|
|
92
|
-
return resources
|
|
76
|
+
return [...resources]
|
|
93
77
|
}
|
|
94
78
|
}
|
|
95
79
|
export interface ResourceLoadedEvent {
|
|
96
80
|
isExported: boolean
|
|
97
|
-
resource:
|
|
81
|
+
resource: Resource_Node
|
|
98
82
|
}
|
|
99
83
|
|
|
100
84
|
export interface ResourceLoaderEventsTable {
|