k8ts 0.13.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common-world.d.ts +3 -8
- package/dist/common-world.d.ts.map +1 -1
- package/dist/common-world.js +6 -9
- package/dist/common-world.js.map +1 -1
- package/dist/env/env.d.ts +7 -7
- package/dist/env/env.d.ts.map +1 -1
- package/dist/env/env.js +21 -23
- package/dist/env/env.js.map +1 -1
- package/dist/env/error.d.ts +5 -0
- package/dist/env/error.d.ts.map +1 -0
- package/dist/env/error.js +12 -0
- package/dist/env/error.js.map +1 -0
- package/dist/env/index.d.ts +1 -1
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/types.d.ts +5 -5
- package/dist/env/types.d.ts.map +1 -1
- package/dist/gvks/apps.d.ts +29 -0
- package/dist/gvks/apps.d.ts.map +1 -0
- package/dist/gvks/apps.js.map +1 -0
- package/dist/gvks/batch.d.ts +17 -0
- package/dist/gvks/batch.d.ts.map +1 -0
- package/dist/gvks/batch.js.map +1 -0
- package/dist/gvks/default.d.ts +73 -0
- package/dist/gvks/default.d.ts.map +1 -0
- package/dist/gvks/default.js.map +1 -0
- package/dist/gvks/gateway.d.ts +29 -0
- package/dist/gvks/gateway.d.ts.map +1 -0
- package/dist/gvks/gateway.js.map +1 -0
- package/dist/gvks/index.d.ts.map +1 -0
- package/dist/gvks/index.js.map +1 -0
- package/dist/gvks/metrics.d.ts +17 -0
- package/dist/gvks/metrics.d.ts.map +1 -0
- package/dist/gvks/metrics.js.map +1 -0
- package/dist/gvks/networking.d.ts +13 -0
- package/dist/gvks/networking.d.ts.map +1 -0
- package/dist/gvks/networking.js.map +1 -0
- package/dist/gvks/rbac.d.ts +25 -0
- package/dist/gvks/rbac.d.ts.map +1 -0
- package/dist/gvks/rbac.js.map +1 -0
- package/dist/gvks/storage.d.ts +17 -0
- package/dist/gvks/storage.d.ts.map +1 -0
- package/dist/gvks/storage.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/kinds.d.ts +2 -0
- package/dist/kinds.d.ts.map +1 -0
- package/dist/kinds.js +18 -0
- package/dist/kinds.js.map +1 -0
- package/dist/origins/file/file.d.ts +13 -14
- package/dist/origins/file/file.d.ts.map +1 -1
- package/dist/origins/file/file.js +14 -17
- package/dist/origins/file/file.js.map +1 -1
- package/dist/origins/file/index.d.ts +0 -1
- package/dist/origins/file/index.d.ts.map +1 -1
- package/dist/origins/file/index.js +0 -1
- package/dist/origins/file/index.js.map +1 -1
- package/dist/origins/file/section.d.ts +11 -11
- package/dist/origins/file/section.d.ts.map +1 -1
- package/dist/origins/file/section.js +15 -13
- package/dist/origins/file/section.js.map +1 -1
- package/dist/origins/world.d.ts +6 -5
- package/dist/origins/world.d.ts.map +1 -1
- package/dist/origins/world.js +9 -5
- package/dist/origins/world.js.map +1 -1
- package/dist/resources/annotations.d.ts +2 -0
- package/dist/resources/annotations.d.ts.map +1 -0
- package/dist/resources/{persistent/block-mode.js → annotations.js} +1 -1
- package/dist/resources/annotations.js.map +1 -0
- package/dist/resources/config/configmap.d.ts +7 -7
- package/dist/resources/config/configmap.d.ts.map +1 -1
- package/dist/resources/config/configmap.js +7 -6
- package/dist/resources/config/configmap.js.map +1 -1
- package/dist/resources/config/index.d.ts +0 -1
- package/dist/resources/config/index.d.ts.map +1 -1
- package/dist/resources/config/index.js +0 -1
- package/dist/resources/config/index.js.map +1 -1
- package/dist/resources/config/resolver.d.ts +2 -2
- package/dist/resources/config/resolver.d.ts.map +1 -1
- package/dist/resources/config/resolver.js +4 -3
- package/dist/resources/config/resolver.js.map +1 -1
- package/dist/resources/config/secret.d.ts +7 -14
- package/dist/resources/config/secret.d.ts.map +1 -1
- package/dist/resources/config/secret.js +6 -4
- package/dist/resources/config/secret.js.map +1 -1
- package/dist/resources/errors.d.ts +7 -0
- package/dist/resources/errors.d.ts.map +1 -0
- package/dist/resources/errors.js +12 -0
- package/dist/resources/errors.js.map +1 -0
- package/dist/resources/hostpath.d.ts +1 -1
- package/dist/resources/hostpath.d.ts.map +1 -1
- package/dist/resources/index.d.ts +2 -5
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +2 -5
- package/dist/resources/index.js.map +1 -1
- package/dist/resources/namespace/namespace.d.ts +7 -9
- package/dist/resources/namespace/namespace.d.ts.map +1 -1
- package/dist/resources/namespace/namespace.js +7 -4
- package/dist/resources/namespace/namespace.js.map +1 -1
- package/dist/resources/network/http-route/http-route.d.ts +19 -0
- package/dist/resources/network/http-route/http-route.d.ts.map +1 -0
- package/dist/resources/network/http-route/http-route.js +51 -0
- package/dist/resources/network/http-route/http-route.js.map +1 -0
- package/dist/resources/network/http-route/index.d.ts.map +1 -0
- package/dist/resources/network/http-route/index.js.map +1 -0
- package/dist/resources/network/index.d.ts +3 -0
- package/dist/resources/network/index.d.ts.map +1 -0
- package/dist/resources/network/index.js +19 -0
- package/dist/resources/network/index.js.map +1 -0
- package/dist/resources/network/service/index.d.ts.map +1 -0
- package/dist/resources/network/service/index.js.map +1 -0
- package/dist/resources/network/service/service-port.d.ts +12 -0
- package/dist/resources/network/service/service-port.d.ts.map +1 -0
- package/dist/resources/{service → network/service}/service-port.js +5 -5
- package/dist/resources/network/service/service-port.js.map +1 -0
- package/dist/resources/network/service/service.d.ts +46 -0
- package/dist/resources/network/service/service.d.ts.map +1 -0
- package/dist/resources/{service → network/service}/service.js +34 -22
- package/dist/resources/network/service/service.js.map +1 -0
- package/dist/resources/network/service/utils.d.ts +5 -0
- package/dist/resources/network/service/utils.d.ts.map +1 -0
- package/dist/resources/network/service/utils.js +22 -0
- package/dist/resources/network/service/utils.js.map +1 -0
- package/dist/resources/persistent/access-mode.d.ts +4 -7
- package/dist/resources/persistent/access-mode.d.ts.map +1 -1
- package/dist/resources/persistent/access-mode.js +20 -24
- package/dist/resources/persistent/access-mode.js.map +1 -1
- package/dist/resources/persistent/claim/pvc.d.ts +17 -20
- package/dist/resources/persistent/claim/pvc.d.ts.map +1 -1
- package/dist/resources/persistent/claim/pvc.js +22 -28
- package/dist/resources/persistent/claim/pvc.js.map +1 -1
- package/dist/resources/persistent/index.d.ts +1 -1
- package/dist/resources/persistent/index.d.ts.map +1 -1
- package/dist/resources/persistent/index.js +1 -1
- package/dist/resources/persistent/index.js.map +1 -1
- package/dist/resources/persistent/volume/parse-backend.d.ts +1 -1
- package/dist/resources/persistent/volume/parse-backend.js +3 -3
- package/dist/resources/persistent/volume/parse-backend.js.map +1 -1
- package/dist/resources/persistent/volume/pv.d.ts +23 -25
- package/dist/resources/persistent/volume/pv.d.ts.map +1 -1
- package/dist/resources/persistent/volume/pv.js +23 -29
- package/dist/resources/persistent/volume/pv.js.map +1 -1
- package/dist/resources/persistent/volume-mode.d.ts +2 -0
- package/dist/resources/persistent/volume-mode.d.ts.map +1 -0
- package/dist/resources/persistent/volume-mode.js +3 -0
- package/dist/resources/persistent/volume-mode.js.map +1 -0
- package/dist/resources/rbac/cluster-role-binding.d.ts +12 -12
- package/dist/resources/rbac/cluster-role-binding.d.ts.map +1 -1
- package/dist/resources/rbac/cluster-role-binding.js +12 -10
- package/dist/resources/rbac/cluster-role-binding.js.map +1 -1
- package/dist/resources/rbac/cluster-role.d.ts +6 -23
- package/dist/resources/rbac/cluster-role.d.ts.map +1 -1
- package/dist/resources/rbac/cluster-role.js +9 -18
- package/dist/resources/rbac/cluster-role.js.map +1 -1
- package/dist/resources/rbac/role-props.d.ts +20 -0
- package/dist/resources/rbac/role-props.d.ts.map +1 -0
- package/dist/resources/rbac/role-props.js +17 -0
- package/dist/resources/rbac/role-props.js.map +1 -0
- package/dist/resources/rbac/service-account.d.ts +8 -8
- package/dist/resources/rbac/service-account.d.ts.map +1 -1
- package/dist/resources/rbac/service-account.js +8 -6
- package/dist/resources/rbac/service-account.js.map +1 -1
- package/dist/resources/workload/cronjob/index.d.ts +21 -0
- package/dist/resources/workload/cronjob/index.d.ts.map +1 -0
- package/dist/resources/workload/cronjob/index.js +98 -0
- package/dist/resources/workload/cronjob/index.js.map +1 -0
- package/dist/resources/workload/daemonset/daemonset.d.ts +16 -0
- package/dist/resources/workload/daemonset/daemonset.d.ts.map +1 -0
- package/dist/resources/workload/daemonset/daemonset.js +117 -0
- package/dist/resources/workload/daemonset/daemonset.js.map +1 -0
- package/dist/resources/workload/daemonset/index.d.ts +2 -0
- package/dist/resources/workload/daemonset/index.d.ts.map +1 -0
- package/dist/resources/workload/daemonset/index.js +18 -0
- package/dist/resources/workload/daemonset/index.js.map +1 -0
- package/dist/resources/workload/daemonset/props.d.ts +15 -0
- package/dist/resources/workload/daemonset/props.d.ts.map +1 -0
- package/dist/resources/{pod/container/mounts.js → workload/daemonset/props.js} +1 -1
- package/dist/resources/workload/daemonset/props.js.map +1 -0
- package/dist/resources/workload/deployment/deployment.d.ts +16 -0
- package/dist/resources/workload/deployment/deployment.d.ts.map +1 -0
- package/dist/resources/{deployment → workload/deployment}/deployment.js +39 -34
- package/dist/resources/workload/deployment/deployment.js.map +1 -0
- package/dist/resources/workload/deployment/index.d.ts.map +1 -0
- package/dist/resources/workload/deployment/index.js.map +1 -0
- package/dist/resources/workload/deployment/props.d.ts +17 -0
- package/dist/resources/workload/deployment/props.d.ts.map +1 -0
- package/dist/{_type/prefix$.js → resources/workload/deployment/props.js} +1 -1
- package/dist/resources/workload/deployment/props.js.map +1 -0
- package/dist/resources/workload/index.d.ts +7 -0
- package/dist/resources/workload/index.d.ts.map +1 -0
- package/dist/resources/{pod → workload}/index.js +6 -3
- package/dist/resources/workload/index.js.map +1 -0
- package/dist/resources/workload/pod/container/container.d.ts +47 -0
- package/dist/resources/workload/pod/container/container.d.ts.map +1 -0
- package/dist/resources/{pod → workload/pod}/container/container.js +46 -38
- package/dist/resources/workload/pod/container/container.js.map +1 -0
- package/dist/resources/workload/pod/container/index.d.ts +3 -0
- package/dist/resources/workload/pod/container/index.d.ts.map +1 -0
- package/dist/resources/{pod → workload/pod}/container/index.js +1 -0
- package/dist/resources/workload/pod/container/index.js.map +1 -0
- package/dist/resources/workload/pod/container/mounts/device.d.ts +17 -0
- package/dist/resources/workload/pod/container/mounts/device.d.ts.map +1 -0
- package/dist/resources/workload/pod/container/mounts/device.js +29 -0
- package/dist/resources/workload/pod/container/mounts/device.js.map +1 -0
- package/dist/resources/workload/pod/container/mounts/volume.d.ts +21 -0
- package/dist/resources/workload/pod/container/mounts/volume.d.ts.map +1 -0
- package/dist/resources/{pod → workload/pod}/container/mounts/volume.js +9 -7
- package/dist/resources/workload/pod/container/mounts/volume.js.map +1 -0
- package/dist/resources/workload/pod/container/ref.d.ts +6 -0
- package/dist/resources/workload/pod/container/ref.d.ts.map +1 -0
- package/dist/{runner/exporter/meta.js → resources/workload/pod/container/ref.js} +1 -1
- package/dist/resources/workload/pod/container/ref.js.map +1 -0
- package/dist/resources/workload/pod/container/scope.d.ts +25 -0
- package/dist/resources/workload/pod/container/scope.d.ts.map +1 -0
- package/dist/resources/workload/pod/container/scope.js +50 -0
- package/dist/resources/workload/pod/container/scope.js.map +1 -0
- package/dist/resources/workload/pod/container/utils.d.ts +5 -0
- package/dist/resources/workload/pod/container/utils.d.ts.map +1 -0
- package/dist/resources/workload/pod/container/utils.js +18 -0
- package/dist/resources/workload/pod/container/utils.js.map +1 -0
- package/dist/resources/workload/pod/pod.d.ts +27 -0
- package/dist/resources/workload/pod/pod.d.ts.map +1 -0
- package/dist/resources/workload/pod/pod.js +78 -0
- package/dist/resources/workload/pod/pod.js.map +1 -0
- package/dist/resources/workload/pod/volume/devices.d.ts +24 -0
- package/dist/resources/workload/pod/volume/devices.d.ts.map +1 -0
- package/dist/resources/{pod → workload/pod}/volume/devices.js +11 -9
- package/dist/resources/workload/pod/volume/devices.js.map +1 -0
- package/dist/resources/workload/pod/volume/index.d.ts +3 -0
- package/dist/resources/workload/pod/volume/index.d.ts.map +1 -0
- package/dist/resources/workload/pod/volume/index.js +8 -0
- package/dist/resources/workload/pod/volume/index.js.map +1 -0
- package/dist/resources/workload/pod/volume/volumes.d.ts +74 -0
- package/dist/resources/workload/pod/volume/volumes.d.ts.map +1 -0
- package/dist/resources/workload/pod/volume/volumes.js +111 -0
- package/dist/resources/workload/pod/volume/volumes.js.map +1 -0
- package/dist/resources/workload/statefulset/index.d.ts +2 -0
- package/dist/resources/workload/statefulset/index.d.ts.map +1 -0
- package/dist/resources/workload/statefulset/index.js +18 -0
- package/dist/resources/workload/statefulset/index.js.map +1 -0
- package/dist/resources/workload/statefulset/props.d.ts +24 -0
- package/dist/resources/workload/statefulset/props.d.ts.map +1 -0
- package/dist/{runner/proverbs.js → resources/workload/statefulset/props.js} +1 -1
- package/dist/resources/workload/statefulset/props.js.map +1 -0
- package/dist/resources/workload/statefulset/scope.d.ts +13 -0
- package/dist/resources/workload/statefulset/scope.d.ts.map +1 -0
- package/dist/resources/workload/statefulset/scope.js +26 -0
- package/dist/resources/workload/statefulset/scope.js.map +1 -0
- package/dist/resources/workload/statefulset/statefulset.d.ts +22 -0
- package/dist/resources/workload/statefulset/statefulset.d.ts.map +1 -0
- package/dist/resources/workload/statefulset/statefulset.js +110 -0
- package/dist/resources/workload/statefulset/statefulset.js.map +1 -0
- package/dist/resources/workload/util.d.ts +4 -0
- package/dist/resources/workload/util.d.ts.map +1 -0
- package/dist/resources/workload/util.js +10 -0
- package/dist/resources/workload/util.js.map +1 -0
- package/dist/resources/workload/workload-ref.d.ts +5 -0
- package/dist/resources/workload/workload-ref.d.ts.map +1 -0
- package/dist/resources/workload/workload-ref.js +3 -0
- package/dist/resources/workload/workload-ref.js.map +1 -0
- package/dist/runner/{exporter → engine}/assembler.d.ts +15 -14
- package/dist/runner/engine/assembler.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/assembler.js +63 -40
- package/dist/runner/engine/assembler.js.map +1 -0
- package/dist/runner/engine/index.d.ts +3 -0
- package/dist/runner/engine/index.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/index.js +1 -1
- package/dist/runner/engine/index.js.map +1 -0
- package/dist/runner/engine/loader.d.ts +19 -0
- package/dist/runner/engine/loader.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/loader.js +18 -19
- package/dist/runner/engine/loader.js.map +1 -0
- package/dist/runner/{exporter → engine}/manifester.d.ts +8 -8
- package/dist/runner/engine/manifester.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/manifester.js +4 -25
- package/dist/runner/engine/manifester.js.map +1 -0
- package/dist/runner/{exporter → engine}/saver.d.ts +5 -4
- package/dist/runner/engine/saver.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/saver.js +5 -10
- package/dist/runner/engine/saver.js.map +1 -0
- package/dist/runner/engine/serializer.d.ts +20 -0
- package/dist/runner/engine/serializer.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/serializer.js +8 -17
- package/dist/runner/engine/serializer.js.map +1 -0
- package/dist/runner/{exporter → engine}/stage.d.ts +2 -2
- package/dist/runner/engine/stage.d.ts.map +1 -0
- package/dist/runner/{exporter → engine}/stage.js +10 -10
- package/dist/runner/engine/stage.js.map +1 -0
- package/dist/runner/error.d.ts +7 -0
- package/dist/runner/error.d.ts.map +1 -0
- package/dist/runner/error.js +12 -0
- package/dist/runner/error.js.map +1 -0
- package/dist/runner/index.d.ts +1 -1
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/index.js +3 -15
- package/dist/runner/index.js.map +1 -1
- package/dist/runner/runner.d.ts +8 -6
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js +27 -22
- package/dist/runner/runner.js.map +1 -1
- package/dist/runner/viz/progress-shower.d.ts +11 -0
- package/dist/runner/viz/progress-shower.d.ts.map +1 -0
- package/dist/runner/viz/progress-shower.js +63 -0
- package/dist/runner/viz/progress-shower.js.map +1 -0
- package/dist/runner/{summarizer.d.ts → viz/summarizer.d.ts} +5 -5
- package/dist/runner/viz/summarizer.d.ts.map +1 -0
- package/dist/runner/{summarizer.js → viz/summarizer.js} +9 -10
- package/dist/runner/viz/summarizer.js.map +1 -0
- package/dist/util/merge.d.ts +2 -0
- package/dist/util/merge.d.ts.map +1 -0
- package/dist/util/merge.js +3 -0
- package/dist/util/merge.js.map +1 -0
- package/package.json +12 -12
- package/src/common-world.ts +10 -11
- package/src/env/env.ts +33 -35
- package/src/env/error.ts +7 -0
- package/src/env/index.ts +1 -1
- package/src/env/types.ts +5 -5
- package/src/index.ts +2 -2
- package/src/kinds.ts +1 -0
- package/src/origins/file/file.ts +25 -33
- package/src/origins/file/index.ts +0 -1
- package/src/origins/file/section.ts +17 -16
- package/src/origins/world.ts +19 -13
- package/src/resources/config/configmap.ts +14 -13
- package/src/resources/config/index.ts +0 -1
- package/src/resources/config/resolver.ts +8 -5
- package/src/resources/config/secret.ts +11 -7
- package/src/resources/errors.ts +7 -0
- package/src/resources/hostpath.ts +1 -1
- package/src/resources/index.ts +2 -5
- package/src/resources/namespace/namespace.ts +11 -8
- package/src/resources/network/http-route/http-route.ts +62 -0
- package/src/resources/network/index.ts +2 -0
- package/src/resources/network/service/service-port.ts +17 -0
- package/src/resources/network/service/service.ts +135 -0
- package/src/resources/network/service/utils.ts +20 -0
- package/src/resources/persistent/access-mode.ts +20 -24
- package/src/resources/persistent/claim/pvc.ts +41 -43
- package/src/resources/persistent/index.ts +1 -1
- package/src/resources/persistent/volume/parse-backend.ts +3 -3
- package/src/resources/persistent/volume/pv.ts +55 -51
- package/src/resources/persistent/volume-mode.ts +1 -0
- package/src/resources/rbac/cluster-role-binding.ts +19 -17
- package/src/resources/rbac/cluster-role.ts +13 -62
- package/src/resources/rbac/role-props.ts +26 -0
- package/src/resources/rbac/service-account.ts +14 -12
- package/src/resources/workload/cronjob/index.ts +74 -0
- package/src/resources/workload/daemonset/daemonset.ts +82 -0
- package/src/resources/workload/daemonset/index.ts +1 -0
- package/src/resources/workload/daemonset/props.ts +19 -0
- package/src/resources/workload/deployment/deployment.ts +79 -0
- package/src/resources/workload/deployment/props.ts +19 -0
- package/src/resources/workload/index.ts +6 -0
- package/src/resources/workload/pod/container/container.ts +227 -0
- package/src/resources/{pod → workload/pod}/container/index.ts +1 -0
- package/src/resources/workload/pod/container/mounts/device.ts +41 -0
- package/src/resources/workload/pod/container/mounts/volume.ts +46 -0
- package/src/resources/workload/pod/container/ref.ts +6 -0
- package/src/resources/workload/pod/container/scope.ts +83 -0
- package/src/resources/workload/pod/container/utils.ts +16 -0
- package/src/resources/workload/pod/pod.ts +96 -0
- package/src/resources/workload/pod/volume/devices.ts +56 -0
- package/src/resources/workload/pod/volume/index.ts +2 -0
- package/src/resources/workload/pod/volume/volumes.ts +203 -0
- package/src/resources/workload/statefulset/index.ts +1 -0
- package/src/resources/workload/statefulset/props.ts +34 -0
- package/src/resources/workload/statefulset/scope.ts +25 -0
- package/src/resources/workload/statefulset/statefulset.ts +137 -0
- package/src/resources/workload/util.ts +8 -0
- package/src/resources/workload/workload-ref.ts +5 -0
- package/src/runner/{exporter → engine}/assembler.ts +83 -54
- package/src/runner/engine/index.ts +2 -0
- package/src/runner/{exporter → engine}/loader.ts +32 -29
- package/src/runner/{exporter → engine}/manifester.ts +20 -32
- package/src/runner/{exporter → engine}/saver.ts +8 -9
- package/src/runner/{exporter → engine}/serializer.ts +21 -20
- package/src/runner/{exporter → engine}/stage.ts +5 -5
- package/src/runner/error.ts +7 -0
- package/src/runner/index.ts +1 -1
- package/src/runner/runner.ts +44 -29
- package/src/runner/{exporter → viz}/progress-shower.ts +21 -21
- package/src/runner/{summarizer.ts → viz/summarizer.ts} +21 -21
- package/dist/_type/prefix$.d.ts +0 -4
- package/dist/_type/prefix$.d.ts.map +0 -1
- package/dist/_type/prefix$.js.map +0 -1
- package/dist/kinds/apps.d.ts +0 -29
- package/dist/kinds/apps.d.ts.map +0 -1
- package/dist/kinds/apps.js.map +0 -1
- package/dist/kinds/batch.d.ts +0 -17
- package/dist/kinds/batch.d.ts.map +0 -1
- package/dist/kinds/batch.js.map +0 -1
- package/dist/kinds/default.d.ts +0 -73
- package/dist/kinds/default.d.ts.map +0 -1
- package/dist/kinds/default.js.map +0 -1
- package/dist/kinds/gateway.d.ts +0 -29
- package/dist/kinds/gateway.d.ts.map +0 -1
- package/dist/kinds/gateway.js.map +0 -1
- package/dist/kinds/index.d.ts.map +0 -1
- package/dist/kinds/index.js.map +0 -1
- package/dist/kinds/metrics.d.ts +0 -17
- package/dist/kinds/metrics.d.ts.map +0 -1
- package/dist/kinds/metrics.js.map +0 -1
- package/dist/kinds/networking.d.ts +0 -13
- package/dist/kinds/networking.d.ts.map +0 -1
- package/dist/kinds/networking.js.map +0 -1
- package/dist/kinds/rbac.d.ts +0 -25
- package/dist/kinds/rbac.d.ts.map +0 -1
- package/dist/kinds/rbac.js.map +0 -1
- package/dist/kinds/storage.d.ts +0 -17
- package/dist/kinds/storage.d.ts.map +0 -1
- package/dist/kinds/storage.js.map +0 -1
- package/dist/origins/file/modifier.d.ts +0 -10
- package/dist/origins/file/modifier.d.ts.map +0 -1
- package/dist/origins/file/modifier.js +0 -21
- package/dist/origins/file/modifier.js.map +0 -1
- package/dist/resources/config/config-keys-of.d.ts +0 -2
- package/dist/resources/config/config-keys-of.d.ts.map +0 -1
- package/dist/resources/config/config-keys-of.js +0 -3
- package/dist/resources/config/config-keys-of.js.map +0 -1
- package/dist/resources/config/key-ref.d.ts +0 -7
- package/dist/resources/config/key-ref.d.ts.map +0 -1
- package/dist/resources/config/key-ref.js +0 -13
- package/dist/resources/config/key-ref.js.map +0 -1
- package/dist/resources/cronjob/index.d.ts +0 -20
- package/dist/resources/cronjob/index.d.ts.map +0 -1
- package/dist/resources/cronjob/index.js +0 -37
- package/dist/resources/cronjob/index.js.map +0 -1
- package/dist/resources/deployment/deployment.d.ts +0 -30
- package/dist/resources/deployment/deployment.d.ts.map +0 -1
- package/dist/resources/deployment/deployment.js.map +0 -1
- package/dist/resources/deployment/index.d.ts.map +0 -1
- package/dist/resources/deployment/index.js.map +0 -1
- package/dist/resources/http-route/http-route.d.ts +0 -21
- package/dist/resources/http-route/http-route.d.ts.map +0 -1
- package/dist/resources/http-route/http-route.js +0 -45
- package/dist/resources/http-route/http-route.js.map +0 -1
- package/dist/resources/http-route/index.d.ts.map +0 -1
- package/dist/resources/http-route/index.js.map +0 -1
- package/dist/resources/persistent/block-mode.d.ts +0 -2
- package/dist/resources/persistent/block-mode.d.ts.map +0 -1
- package/dist/resources/persistent/block-mode.js.map +0 -1
- package/dist/resources/pod/container/container.d.ts +0 -47
- package/dist/resources/pod/container/container.d.ts.map +0 -1
- package/dist/resources/pod/container/container.js.map +0 -1
- package/dist/resources/pod/container/index.d.ts +0 -2
- package/dist/resources/pod/container/index.d.ts.map +0 -1
- package/dist/resources/pod/container/index.js.map +0 -1
- package/dist/resources/pod/container/mounts/device.d.ts +0 -17
- package/dist/resources/pod/container/mounts/device.d.ts.map +0 -1
- package/dist/resources/pod/container/mounts/device.js +0 -27
- package/dist/resources/pod/container/mounts/device.js.map +0 -1
- package/dist/resources/pod/container/mounts/volume.d.ts +0 -21
- package/dist/resources/pod/container/mounts/volume.d.ts.map +0 -1
- package/dist/resources/pod/container/mounts/volume.js.map +0 -1
- package/dist/resources/pod/container/mounts.d.ts +0 -3
- package/dist/resources/pod/container/mounts.d.ts.map +0 -1
- package/dist/resources/pod/container/mounts.js.map +0 -1
- package/dist/resources/pod/index.d.ts +0 -4
- package/dist/resources/pod/index.d.ts.map +0 -1
- package/dist/resources/pod/index.js.map +0 -1
- package/dist/resources/pod/pod-template.d.ts +0 -54
- package/dist/resources/pod/pod-template.d.ts.map +0 -1
- package/dist/resources/pod/pod-template.js +0 -119
- package/dist/resources/pod/pod-template.js.map +0 -1
- package/dist/resources/pod/volume/devices.d.ts +0 -24
- package/dist/resources/pod/volume/devices.d.ts.map +0 -1
- package/dist/resources/pod/volume/devices.js.map +0 -1
- package/dist/resources/pod/volume/index.d.ts +0 -3
- package/dist/resources/pod/volume/index.d.ts.map +0 -1
- package/dist/resources/pod/volume/index.js +0 -8
- package/dist/resources/pod/volume/index.js.map +0 -1
- package/dist/resources/pod/volume/volumes.d.ts +0 -66
- package/dist/resources/pod/volume/volumes.d.ts.map +0 -1
- package/dist/resources/pod/volume/volumes.js +0 -97
- package/dist/resources/pod/volume/volumes.js.map +0 -1
- package/dist/resources/service/index.d.ts.map +0 -1
- package/dist/resources/service/index.js.map +0 -1
- package/dist/resources/service/service-port.d.ts +0 -12
- package/dist/resources/service/service-port.d.ts.map +0 -1
- package/dist/resources/service/service-port.js.map +0 -1
- package/dist/resources/service/service.d.ts +0 -39
- package/dist/resources/service/service.d.ts.map +0 -1
- package/dist/resources/service/service.js.map +0 -1
- package/dist/resources/utils/adapters.d.ts +0 -7
- package/dist/resources/utils/adapters.d.ts.map +0 -1
- package/dist/resources/utils/adapters.js +0 -32
- package/dist/resources/utils/adapters.js.map +0 -1
- package/dist/runner/exporter/assembler.d.ts.map +0 -1
- package/dist/runner/exporter/assembler.js.map +0 -1
- package/dist/runner/exporter/index.d.ts +0 -3
- package/dist/runner/exporter/index.d.ts.map +0 -1
- package/dist/runner/exporter/index.js.map +0 -1
- package/dist/runner/exporter/loader.d.ts +0 -18
- package/dist/runner/exporter/loader.d.ts.map +0 -1
- package/dist/runner/exporter/loader.js.map +0 -1
- package/dist/runner/exporter/manifester.d.ts.map +0 -1
- package/dist/runner/exporter/manifester.js.map +0 -1
- package/dist/runner/exporter/meta.d.ts +0 -2
- package/dist/runner/exporter/meta.d.ts.map +0 -1
- package/dist/runner/exporter/meta.js.map +0 -1
- package/dist/runner/exporter/progress-shower.d.ts +0 -11
- package/dist/runner/exporter/progress-shower.d.ts.map +0 -1
- package/dist/runner/exporter/progress-shower.js +0 -69
- package/dist/runner/exporter/progress-shower.js.map +0 -1
- package/dist/runner/exporter/saver.d.ts.map +0 -1
- package/dist/runner/exporter/saver.js.map +0 -1
- package/dist/runner/exporter/serializer.d.ts +0 -19
- package/dist/runner/exporter/serializer.d.ts.map +0 -1
- package/dist/runner/exporter/serializer.js.map +0 -1
- package/dist/runner/exporter/stage.d.ts.map +0 -1
- package/dist/runner/exporter/stage.js.map +0 -1
- package/dist/runner/exporter/validator.d.ts +0 -16
- package/dist/runner/exporter/validator.d.ts.map +0 -1
- package/dist/runner/exporter/validator.js +0 -12
- package/dist/runner/exporter/validator.js.map +0 -1
- package/dist/runner/paths.d.ts +0 -2
- package/dist/runner/paths.d.ts.map +0 -1
- package/dist/runner/paths.js +0 -5
- package/dist/runner/paths.js.map +0 -1
- package/dist/runner/proverbs.d.ts +0 -2
- package/dist/runner/proverbs.d.ts.map +0 -1
- package/dist/runner/proverbs.js.map +0 -1
- package/dist/runner/silly/proverbs.d.ts +0 -7
- package/dist/runner/silly/proverbs.d.ts.map +0 -1
- package/dist/runner/silly/proverbs.js +0 -21
- package/dist/runner/silly/proverbs.js.map +0 -1
- package/dist/runner/summarizer.d.ts.map +0 -1
- package/dist/runner/summarizer.js.map +0 -1
- package/proverbs.txt +0 -20
- package/src/_type/prefix$.ts +0 -3
- package/src/origins/file/modifier.ts +0 -21
- package/src/resources/config/key-ref.ts +0 -8
- package/src/resources/cronjob/index.ts +0 -50
- package/src/resources/deployment/deployment.ts +0 -95
- package/src/resources/http-route/http-route.ts +0 -60
- package/src/resources/persistent/block-mode.ts +0 -1
- package/src/resources/pod/container/container.ts +0 -215
- package/src/resources/pod/container/mounts/device.ts +0 -33
- package/src/resources/pod/container/mounts/volume.ts +0 -38
- package/src/resources/pod/container/mounts.ts +0 -2
- package/src/resources/pod/index.ts +0 -3
- package/src/resources/pod/pod-template.ts +0 -166
- package/src/resources/pod/volume/devices.ts +0 -55
- package/src/resources/pod/volume/index.ts +0 -2
- package/src/resources/pod/volume/volumes.ts +0 -170
- package/src/resources/service/service-port.ts +0 -17
- package/src/resources/service/service.ts +0 -101
- package/src/resources/utils/adapters.ts +0 -29
- package/src/runner/exporter/index.ts +0 -2
- package/src/runner/exporter/validator.ts +0 -13
- package/src/runner/paths.ts +0 -1
- package/src/runner/proverbs.ts +0 -0
- package/src/runner/silly/proverbs.ts +0 -14
- /package/dist/{kinds → gvks}/apps.js +0 -0
- /package/dist/{kinds → gvks}/batch.js +0 -0
- /package/dist/{kinds → gvks}/default.js +0 -0
- /package/dist/{kinds → gvks}/gateway.js +0 -0
- /package/dist/{kinds → gvks}/index.d.ts +0 -0
- /package/dist/{kinds → gvks}/index.js +0 -0
- /package/dist/{kinds → gvks}/metrics.js +0 -0
- /package/dist/{kinds → gvks}/networking.js +0 -0
- /package/dist/{kinds → gvks}/rbac.js +0 -0
- /package/dist/{kinds → gvks}/storage.js +0 -0
- /package/dist/resources/{http-route → network/http-route}/index.d.ts +0 -0
- /package/dist/resources/{http-route → network/http-route}/index.js +0 -0
- /package/dist/resources/{service → network/service}/index.d.ts +0 -0
- /package/dist/resources/{service → network/service}/index.js +0 -0
- /package/dist/resources/{deployment → workload/deployment}/index.d.ts +0 -0
- /package/dist/resources/{deployment → workload/deployment}/index.js +0 -0
- /package/src/{kinds → gvks}/apps.ts +0 -0
- /package/src/{kinds → gvks}/batch.ts +0 -0
- /package/src/{kinds → gvks}/default.ts +0 -0
- /package/src/{kinds → gvks}/gateway.ts +0 -0
- /package/src/{kinds → gvks}/index.ts +0 -0
- /package/src/{kinds → gvks}/metrics.ts +0 -0
- /package/src/{kinds → gvks}/networking.ts +0 -0
- /package/src/{kinds → gvks}/rbac.ts +0 -0
- /package/src/{kinds → gvks}/storage.ts +0 -0
- /package/src/resources/{config/config-keys-of.ts → annotations.ts} +0 -0
- /package/src/resources/{http-route → network/http-route}/index.ts +0 -0
- /package/src/resources/{service → network/service}/index.ts +0 -0
- /package/src/resources/{deployment → workload/deployment}/index.ts +0 -0
- /package/src/{runner/exporter/meta.ts → util/merge.ts} +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { K8sResource, ResourceRef, TemplateOrigin } from "@k8ts/instruments"
|
|
2
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { doddle, seq } from "doddle"
|
|
4
|
+
import { merge, omit } from "lodash"
|
|
5
|
+
import { Pvc } from "../../.."
|
|
6
|
+
import { apps } from "../../../gvks/apps"
|
|
7
|
+
import { K8tsResourceError } from "../../errors"
|
|
8
|
+
import { Service } from "../../network"
|
|
9
|
+
import type { Pod_Scope } from "../pod/container/scope"
|
|
10
|
+
import { Pod } from "../pod/pod"
|
|
11
|
+
import { createSelectionMetadata } from "../util"
|
|
12
|
+
import type { Workload_Ref } from "../workload-ref"
|
|
13
|
+
import type { StatefulSet_Props } from "./props"
|
|
14
|
+
import { StatefulSet_Scope } from "./scope"
|
|
15
|
+
export class StatefulSet<
|
|
16
|
+
Name extends string = string,
|
|
17
|
+
SvcName extends string = string,
|
|
18
|
+
Ports extends string = string,
|
|
19
|
+
SvcPorts extends NoInfer<Ports> = Ports
|
|
20
|
+
>
|
|
21
|
+
extends K8sResource<Name, StatefulSet_Props<Ports, SvcPorts, SvcName>>
|
|
22
|
+
implements Workload_Ref<Ports>
|
|
23
|
+
{
|
|
24
|
+
private readonly _template = new TemplateOrigin(`${this.ident.name}_template`, {
|
|
25
|
+
owner: this
|
|
26
|
+
})
|
|
27
|
+
readonly Service = new Service(
|
|
28
|
+
this.props.$service.name,
|
|
29
|
+
{
|
|
30
|
+
...this.props.$service,
|
|
31
|
+
$backend: this,
|
|
32
|
+
$frontend: {
|
|
33
|
+
type: "Headless"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
metadata: {
|
|
38
|
+
"^k8ts.org/auto-created-by": this.__entity_id__
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
get kind() {
|
|
43
|
+
return apps.v1.StatefulSet._
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
protected __needs__(): Record<string, ResourceRef> {
|
|
47
|
+
return {
|
|
48
|
+
service: this.Service
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
get selectorLabels() {
|
|
53
|
+
return createSelectionMetadata(this)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private _podTemplate = doddle(() => {
|
|
57
|
+
const self = this
|
|
58
|
+
const wrappedContainers = (podScope: Pod_Scope) => {
|
|
59
|
+
return this.props.$template.containers$(new StatefulSet_Scope(podScope, self._template))
|
|
60
|
+
}
|
|
61
|
+
const resource = new Pod(
|
|
62
|
+
`${self.ident.name}`,
|
|
63
|
+
{
|
|
64
|
+
...self.props.$template,
|
|
65
|
+
containers$: wrappedContainers
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
origins: {
|
|
69
|
+
own: self._template,
|
|
70
|
+
subscope: self["__origin__"]
|
|
71
|
+
},
|
|
72
|
+
metadata: this.selectorLabels
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
return resource
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
protected __kids__(): Iterable<ResourceRef> {
|
|
80
|
+
this._podTemplate.pull()
|
|
81
|
+
return [...this.PvcTemplates, this.PodTemplate]
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
protected async __body__(): Promise<K8S.KubeStatefulSetProps> {
|
|
85
|
+
const self = this
|
|
86
|
+
const template = await self.PodTemplate["__manifest__"]()
|
|
87
|
+
const noKindFields = omit(template, ["kind", "apiVersion"])
|
|
88
|
+
const spec = {
|
|
89
|
+
replicas: self.props.$replicas,
|
|
90
|
+
selector: {
|
|
91
|
+
matchLabels: this.selectorLabels.labels
|
|
92
|
+
},
|
|
93
|
+
serviceName: self.Service.ident.name,
|
|
94
|
+
template: noKindFields,
|
|
95
|
+
volumeClaimTemplates: await Promise.all(
|
|
96
|
+
seq(self.PvcTemplates).map(pvc => pvc["__manifest__"]())
|
|
97
|
+
),
|
|
98
|
+
updateStrategy: self._updateStrategy
|
|
99
|
+
} satisfies K8S.StatefulSetSpec
|
|
100
|
+
const spec2 = merge(spec, self.props.$$manifest)
|
|
101
|
+
return {
|
|
102
|
+
spec: spec2
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
private get _updateStrategy() {
|
|
107
|
+
const strategy = this.props.$updateStrategy
|
|
108
|
+
if (!strategy) {
|
|
109
|
+
return undefined
|
|
110
|
+
}
|
|
111
|
+
if (strategy.type === "OnDelete") {
|
|
112
|
+
return { type: "OnDelete" }
|
|
113
|
+
}
|
|
114
|
+
if (strategy.type === "RollingUpdate") {
|
|
115
|
+
return {
|
|
116
|
+
type: "RollingUpdate",
|
|
117
|
+
rollingUpdate: omit(strategy, "type")
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
throw new K8tsResourceError(`Invalid update strategy type: ${strategy}`)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
get PodTemplate() {
|
|
124
|
+
return this._podTemplate.pull()
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
get PvcTemplates() {
|
|
128
|
+
this._podTemplate.pull()
|
|
129
|
+
return seq(this._template.resources)
|
|
130
|
+
.filter(x => x.is(Pvc))
|
|
131
|
+
.toIterable()
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
get ports() {
|
|
135
|
+
return this.PodTemplate.ports
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -1,66 +1,102 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { OriginVertex, type ExporterOrigin, type ResourceVertex } from "@k8ts/instruments"
|
|
2
|
+
import { Metadata, type Metadata_Input } from "@k8ts/metadata"
|
|
3
3
|
import { aseq } from "doddle"
|
|
4
|
-
import
|
|
4
|
+
import EventEmitter from "eventemitter3"
|
|
5
5
|
import { cloneDeep } from "lodash"
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
6
|
+
import path from "path"
|
|
7
|
+
import { version } from "../../version"
|
|
8
|
+
import { Engine_ResourceLoader, type AssemblerRscLoaderEvents } from "./loader"
|
|
9
|
+
import { Engine_Manifester, NodeManifest, type ManifesterEventsTable } from "./manifester"
|
|
10
|
+
import { Engine_Saver, type ManifestSaverEventsTable } from "./saver"
|
|
11
|
+
import { Engine_Serializer_Yaml, type SerializerEventsTable } from "./serializer"
|
|
11
12
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
export const assemblerEventNames = (() => {
|
|
14
|
+
const rec: Record<keyof AssemblerEventsTable, true> = {
|
|
15
|
+
purge: true,
|
|
16
|
+
stage: true,
|
|
17
|
+
load: true,
|
|
18
|
+
manifest: true,
|
|
19
|
+
serialize: true,
|
|
20
|
+
save: true
|
|
15
21
|
}
|
|
22
|
+
return Object.keys(rec) as (keyof AssemblerEventsTable)[]
|
|
23
|
+
})()
|
|
24
|
+
export class Assembler {
|
|
25
|
+
private _emitter: EventEmitter<AssemblerEventsTable> = new EventEmitter()
|
|
26
|
+
constructor(private readonly _options: AssemblerOptions) {}
|
|
16
27
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
on<Name extends keyof AssemblerEventsTable>(
|
|
29
|
+
event: Name,
|
|
30
|
+
listener: (payload: AssemblerEventsTable[Name]) => void
|
|
31
|
+
) {
|
|
32
|
+
this._emitter.on(event, listener as any)
|
|
33
|
+
return this
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
onAny(
|
|
37
|
+
handler: <Name extends keyof AssemblerEventsTable>(
|
|
38
|
+
name: Name,
|
|
20
39
|
payload: AssemblerEventsTable[Name]
|
|
21
|
-
) =>
|
|
22
|
-
|
|
40
|
+
) => void
|
|
41
|
+
) {
|
|
42
|
+
for (const eventName of assemblerEventNames) {
|
|
43
|
+
this._emitter.on(eventName, (payload: unknown) => {
|
|
44
|
+
handler(eventName, payload as any)
|
|
45
|
+
})
|
|
23
46
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
cwd: this._options.cwd
|
|
47
|
+
return this
|
|
48
|
+
}
|
|
49
|
+
private _attachProductionAnnotations(resource: ResourceVertex) {
|
|
50
|
+
const loc = resource.trace.format({
|
|
51
|
+
cwd: this._options.displayCwd || this._options.cwd
|
|
52
|
+
})
|
|
53
|
+
resource.metadata!.add(`build.k8ts.org/`, {
|
|
54
|
+
"^constructed-at": loc,
|
|
55
|
+
"^produced-by": `k8ts@${version}`
|
|
56
|
+
})
|
|
57
|
+
}
|
|
58
|
+
async assemble(inFiles: Iterable<ExporterOrigin>) {
|
|
59
|
+
const emitter = this._emitter
|
|
60
|
+
const loader = new Engine_ResourceLoader({
|
|
61
|
+
emitter
|
|
62
|
+
})
|
|
63
|
+
emitter.on("load", ({ resource }) => {
|
|
64
|
+
this._attachProductionAnnotations(resource)
|
|
29
65
|
})
|
|
30
|
-
generator
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
66
|
+
const generator = new Engine_Manifester({
|
|
67
|
+
cwd: this._options.cwd,
|
|
68
|
+
emitter
|
|
69
|
+
})
|
|
70
|
+
const serializer = new Engine_Serializer_Yaml({ emitter })
|
|
71
|
+
const saver = new Engine_Saver({
|
|
72
|
+
outdir: path.resolve(this._options.cwd ?? ".", this._options.outdir),
|
|
73
|
+
emitter
|
|
35
74
|
})
|
|
36
|
-
saver.onAny(_emit)
|
|
37
75
|
const reports = aseq(inFiles)
|
|
38
|
-
.map(x => x.
|
|
76
|
+
.map(x => x.__vertex__)
|
|
39
77
|
.before(async () => {
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
.each(async file => {
|
|
43
|
-
await _emit("received-file", { file: file })
|
|
78
|
+
emitter.emit("stage", { stage: "gathering" })
|
|
44
79
|
})
|
|
80
|
+
|
|
45
81
|
.after(async () => {
|
|
46
|
-
|
|
82
|
+
emitter.emit("stage", { stage: "loading" })
|
|
47
83
|
})
|
|
48
84
|
.collect()
|
|
49
85
|
.map(async file => {
|
|
50
86
|
const loaded = await loader.load(file)
|
|
51
|
-
loaded.forEach(r => r.
|
|
87
|
+
loaded.forEach(r => r.metadata!.add(this._options.metadata))
|
|
52
88
|
return {
|
|
53
89
|
file: file,
|
|
54
|
-
resources: loaded.filter(x => !x.
|
|
90
|
+
resources: loaded.filter(x => !x.noEmit)
|
|
55
91
|
}
|
|
56
92
|
})
|
|
57
93
|
.after(async () => {
|
|
58
|
-
|
|
94
|
+
emitter.emit("stage", { stage: "manifesting" })
|
|
59
95
|
})
|
|
60
96
|
.collect()
|
|
61
97
|
.map(async ({ file, resources }) => {
|
|
62
98
|
const manifests = await aseq(resources)
|
|
63
|
-
.filter(x => !x.
|
|
99
|
+
.filter(x => !x.noEmit)
|
|
64
100
|
.map(async resource => {
|
|
65
101
|
return await generator.generate(resource)
|
|
66
102
|
})
|
|
@@ -72,17 +108,11 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
72
108
|
resources: manifests
|
|
73
109
|
} satisfies FileNodes
|
|
74
110
|
})
|
|
111
|
+
|
|
75
112
|
.after(async () => {
|
|
76
|
-
|
|
77
|
-
})
|
|
78
|
-
.chunk(1000000)
|
|
79
|
-
.concatMap(async x => {
|
|
80
|
-
validator.validate(x)
|
|
81
|
-
return x
|
|
82
|
-
})
|
|
83
|
-
.after(async () => {
|
|
84
|
-
await _emit("stage", { stage: "serializing" })
|
|
113
|
+
emitter.emit("stage", { stage: "serializing" })
|
|
85
114
|
})
|
|
115
|
+
.collect()
|
|
86
116
|
.map(async ({ file, resources }) => {
|
|
87
117
|
const artifacts = await aseq(resources)
|
|
88
118
|
.map(async obj => {
|
|
@@ -100,7 +130,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
100
130
|
}
|
|
101
131
|
})
|
|
102
132
|
.after(async () => {
|
|
103
|
-
|
|
133
|
+
emitter.emit("stage", { stage: "saving" })
|
|
104
134
|
})
|
|
105
135
|
.after(async () => {
|
|
106
136
|
await saver.prepareOnce()
|
|
@@ -120,7 +150,7 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
120
150
|
}
|
|
121
151
|
})
|
|
122
152
|
.after(async () => {
|
|
123
|
-
|
|
153
|
+
emitter.emit("stage", { stage: "done" })
|
|
124
154
|
})
|
|
125
155
|
.collect()
|
|
126
156
|
.toArray()
|
|
@@ -132,14 +162,14 @@ export class Assembler extends Emittery<AssemblerEventsTable> {
|
|
|
132
162
|
}
|
|
133
163
|
}
|
|
134
164
|
export interface FileNodes {
|
|
135
|
-
file:
|
|
165
|
+
file: OriginVertex
|
|
136
166
|
resources: NodeManifest[]
|
|
137
167
|
}
|
|
138
168
|
export interface Artifact extends NodeManifest {
|
|
139
169
|
yaml: string
|
|
140
170
|
}
|
|
141
171
|
export interface AssembledFile {
|
|
142
|
-
file:
|
|
172
|
+
file: OriginVertex
|
|
143
173
|
path: string
|
|
144
174
|
filename: string
|
|
145
175
|
bytes: number
|
|
@@ -150,10 +180,11 @@ export interface AssembledResult {
|
|
|
150
180
|
options: AssemblerOptions
|
|
151
181
|
}
|
|
152
182
|
export interface AssemblerOptions {
|
|
183
|
+
displayCwd?: string
|
|
153
184
|
cwd?: string
|
|
154
185
|
printOptions?: boolean
|
|
155
186
|
outdir: string
|
|
156
|
-
|
|
187
|
+
metadata?: Omit<Metadata_Input, "name" | "namespace"> | Metadata
|
|
157
188
|
}
|
|
158
189
|
export type AssemblyStage =
|
|
159
190
|
| "loading"
|
|
@@ -169,9 +200,7 @@ export interface AssemblerEventsTable
|
|
|
169
200
|
extends ManifestSaverEventsTable,
|
|
170
201
|
SerializerEventsTable,
|
|
171
202
|
ManifesterEventsTable,
|
|
172
|
-
|
|
173
|
-
ValidatorEventsTable {
|
|
174
|
-
["received-file"]: { file: OriginNode }
|
|
203
|
+
AssemblerRscLoaderEvents {
|
|
175
204
|
["stage"]: { stage: AssemblyStage }
|
|
176
205
|
}
|
|
177
206
|
export type AnyAssemblerEvent = {
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
export class
|
|
5
|
-
constructor(private readonly _options:
|
|
6
|
-
super()
|
|
7
|
-
}
|
|
1
|
+
import { OriginVertex, ResourceVertex, type K8sResource, type Vertex } from "@k8ts/instruments"
|
|
2
|
+
import type EventEmitter from "eventemitter3"
|
|
3
|
+
import { K8tsEngineError } from "../error"
|
|
4
|
+
export class Engine_ResourceLoader {
|
|
5
|
+
constructor(private readonly _options: AssemblerRscLoaderOptions) {}
|
|
8
6
|
|
|
9
|
-
private _checkNames(resources:
|
|
10
|
-
let names = new Map<string,
|
|
7
|
+
private _checkNames(resources: ResourceVertex[]) {
|
|
8
|
+
let names = new Map<string, ResourceVertex>()
|
|
11
9
|
const nameRegexp = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/
|
|
12
10
|
for (const resource of resources) {
|
|
13
|
-
const name = [resource.kind.
|
|
11
|
+
const name = [resource.kind.value, resource.namespace, resource.name]
|
|
14
12
|
.filter(Boolean)
|
|
15
13
|
.join("/")
|
|
16
14
|
const existing = names.get(name)
|
|
17
15
|
if (existing) {
|
|
18
|
-
throw new
|
|
16
|
+
throw new K8tsEngineError(
|
|
19
17
|
`Duplicate resource designation ${name}. Existing: ${existing.format("source")}, new: ${resource.format("source")}`
|
|
20
18
|
)
|
|
21
19
|
}
|
|
22
20
|
if (!nameRegexp.test(resource.name)) {
|
|
23
|
-
throw new
|
|
21
|
+
throw new K8tsEngineError(
|
|
24
22
|
`Invalid resource name ${resource.name}. Must match ${nameRegexp}`
|
|
25
23
|
)
|
|
26
24
|
}
|
|
@@ -28,13 +26,16 @@ export class Assembler_RscLoader extends Emittery<Assembler_RscLoaderEvents> {
|
|
|
28
26
|
}
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
async load(input:
|
|
29
|
+
async load(input: OriginVertex) {
|
|
30
|
+
if (input.noEmit) {
|
|
31
|
+
return []
|
|
32
|
+
}
|
|
32
33
|
// TODO: Handle ORIGINS that are referenced but not passed to the runner
|
|
33
|
-
let resources = [] as
|
|
34
|
+
let resources = [] as ResourceVertex[]
|
|
34
35
|
|
|
35
|
-
const addResource = async (res:
|
|
36
|
-
if (!(res instanceof
|
|
37
|
-
throw new
|
|
36
|
+
const addResource = async (res: Vertex) => {
|
|
37
|
+
if (!(res instanceof ResourceVertex)) {
|
|
38
|
+
throw new K8tsEngineError(`Expected ResourceNode, got ${res.constructor.name}`)
|
|
38
39
|
}
|
|
39
40
|
if (resources.some(r => r.equals(res))) {
|
|
40
41
|
return
|
|
@@ -42,29 +43,29 @@ export class Assembler_RscLoader extends Emittery<Assembler_RscLoaderEvents> {
|
|
|
42
43
|
if (!res.isRoot) {
|
|
43
44
|
return
|
|
44
45
|
}
|
|
46
|
+
if (res.hasInheritedNoEmit) {
|
|
47
|
+
return
|
|
48
|
+
}
|
|
45
49
|
const origin = res.origin
|
|
46
|
-
|
|
47
50
|
if (!origin.isChildOf(input)) {
|
|
48
51
|
return
|
|
49
52
|
}
|
|
50
53
|
const event = {
|
|
51
|
-
isExported: res.
|
|
54
|
+
isExported: res.metadata!.has(`#k8ts.org/exported`),
|
|
52
55
|
resource: res
|
|
53
56
|
} as const
|
|
54
57
|
|
|
55
|
-
|
|
56
|
-
const resourceOriginMetas = res.origin.inheritedMeta
|
|
58
|
+
this._options.emitter?.emit("load", event)
|
|
57
59
|
|
|
58
|
-
res.meta!.add(resourceOriginMetas)
|
|
59
60
|
origin.entity["__emit__"]("resource/loaded", {
|
|
60
61
|
origin: origin.entity,
|
|
61
|
-
resource: res.entity as
|
|
62
|
+
resource: res.entity as K8sResource
|
|
62
63
|
})
|
|
63
64
|
resources.push(res)
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
for (const resource of input.resources) {
|
|
67
|
-
await addResource(resource.
|
|
68
|
+
await addResource(resource.__vertex__)
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
// Some resources might appear as dependencies to sub-resources that
|
|
@@ -79,13 +80,15 @@ export class Assembler_RscLoader extends Emittery<Assembler_RscLoaderEvents> {
|
|
|
79
80
|
return [...resources]
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
|
-
export interface
|
|
83
|
+
export interface AssemblerRscLoadedEvent {
|
|
83
84
|
isExported: boolean
|
|
84
|
-
resource:
|
|
85
|
+
resource: ResourceVertex
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
export interface
|
|
88
|
-
load:
|
|
88
|
+
export interface AssemblerRscLoaderEvents {
|
|
89
|
+
load: AssemblerRscLoadedEvent
|
|
89
90
|
}
|
|
90
91
|
|
|
91
|
-
export interface
|
|
92
|
+
export interface AssemblerRscLoaderOptions {
|
|
93
|
+
emitter?: EventEmitter<any>
|
|
94
|
+
}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
K8sResource,
|
|
3
|
+
K8tsManifest,
|
|
4
|
+
ManifestSourceEmbedder,
|
|
5
|
+
ResourceVertex
|
|
6
|
+
} from "@k8ts/instruments"
|
|
7
|
+
import type EventEmitter from "eventemitter3"
|
|
3
8
|
import { cloneDeep, cloneDeepWith, isEmpty, unset } from "lodash"
|
|
4
|
-
import { version } from "../../version"
|
|
5
9
|
export interface ManifesterOptions {
|
|
6
10
|
cwd?: string
|
|
11
|
+
emitter?: EventEmitter<any>
|
|
7
12
|
}
|
|
8
13
|
|
|
9
|
-
export class
|
|
10
|
-
constructor(private readonly _options: ManifesterOptions) {
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
private _cleanSpecificEmptyObjects(manifest: Manifest) {
|
|
14
|
+
export class Engine_Manifester {
|
|
15
|
+
constructor(private readonly _options: ManifesterOptions) {}
|
|
16
|
+
private _cleanSpecificEmptyObjects(manifest: K8tsManifest) {
|
|
14
17
|
const clone = cloneDeepWith(manifest, (value, key) => {
|
|
15
18
|
if (key !== "metadata") {
|
|
16
19
|
return
|
|
@@ -25,7 +28,7 @@ export class Manifester extends Emittery<ManifesterEventsTable> {
|
|
|
25
28
|
})
|
|
26
29
|
return clone
|
|
27
30
|
}
|
|
28
|
-
private _cleanNullishValues(manifest:
|
|
31
|
+
private _cleanNullishValues(manifest: K8tsManifest) {
|
|
29
32
|
const _cleanKeys = (obj: any) => {
|
|
30
33
|
if (typeof obj !== "object") {
|
|
31
34
|
return obj
|
|
@@ -42,7 +45,7 @@ export class Manifester extends Emittery<ManifesterEventsTable> {
|
|
|
42
45
|
return cloneDeepWith(clone, _cleanKeys)
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
private async _generate(resource:
|
|
48
|
+
private async _generate(resource: K8sResource): Promise<K8tsManifest> {
|
|
46
49
|
const manifest = await resource["__manifest__"]()
|
|
47
50
|
|
|
48
51
|
const noNullish = this._cleanNullishValues(manifest)
|
|
@@ -50,26 +53,11 @@ export class Manifester extends Emittery<ManifesterEventsTable> {
|
|
|
50
53
|
return noEmpty
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
resource.meta!.add(`build.k8ts.org/`, {
|
|
58
|
-
"^constructed-at": loc,
|
|
59
|
-
"^produced-by": `k8ts@${version}`
|
|
60
|
-
})
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async generate(res: Rsc_Node): Promise<NodeManifest> {
|
|
64
|
-
this._attachProductionAnnotations(res)
|
|
65
|
-
await this.emit("manifest", { resource: res })
|
|
66
|
-
const manifest = await this._generate(res.entity as Rsc_Top)
|
|
56
|
+
async generate(res: ResourceVertex): Promise<NodeManifest> {
|
|
57
|
+
this._options.emitter?.emit("manifest", { resource: res })
|
|
58
|
+
const manifest = await this._generate(res.entity as K8sResource)
|
|
67
59
|
ManifestSourceEmbedder.add(manifest, res.entity)
|
|
68
|
-
|
|
69
|
-
origin: res.origin.entity,
|
|
70
|
-
manifest,
|
|
71
|
-
resource: res.entity as Rsc_Top
|
|
72
|
-
})
|
|
60
|
+
|
|
73
61
|
return {
|
|
74
62
|
node: res,
|
|
75
63
|
manifest: manifest
|
|
@@ -78,11 +66,11 @@ export class Manifester extends Emittery<ManifesterEventsTable> {
|
|
|
78
66
|
}
|
|
79
67
|
|
|
80
68
|
export interface NodeManifest {
|
|
81
|
-
node:
|
|
82
|
-
manifest:
|
|
69
|
+
node: ResourceVertex
|
|
70
|
+
manifest: K8tsManifest
|
|
83
71
|
}
|
|
84
72
|
export interface ManifesterManifestEvent {
|
|
85
|
-
resource:
|
|
73
|
+
resource: ResourceVertex
|
|
86
74
|
}
|
|
87
75
|
|
|
88
76
|
export interface ManifesterEventsTable {
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { OriginVertex } from "@k8ts/instruments"
|
|
2
|
+
import type EventEmitter from "eventemitter3"
|
|
3
3
|
import { glob, mkdir, rm, writeFile } from "fs/promises"
|
|
4
4
|
import { join, resolve } from "path"
|
|
5
|
-
export class
|
|
5
|
+
export class Engine_Saver {
|
|
6
6
|
private _encoder = new TextEncoder()
|
|
7
|
-
constructor(private readonly _options: ManifestSaverOptions) {
|
|
8
|
-
super()
|
|
9
|
-
}
|
|
7
|
+
constructor(private readonly _options: ManifestSaverOptions) {}
|
|
10
8
|
|
|
11
9
|
_splat(manifests: string[]) {
|
|
12
10
|
return manifests.join("\n---\n")
|
|
13
11
|
}
|
|
14
12
|
|
|
15
13
|
async prepareOnce() {
|
|
16
|
-
|
|
14
|
+
this._options.emitter?.emit("purge", {
|
|
17
15
|
outdir: this._options.outdir
|
|
18
16
|
})
|
|
19
17
|
await mkdir(this._options.outdir, { recursive: true })
|
|
@@ -28,7 +26,7 @@ export class ManifestSaver extends Emittery<ManifestSaverEventsTable> {
|
|
|
28
26
|
}
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
async save(origin:
|
|
29
|
+
async save(origin: OriginVertex, manifests: string[]) {
|
|
32
30
|
const content = this._splat(manifests)
|
|
33
31
|
const filename = `${origin.name}`
|
|
34
32
|
const encoded = this._encoder.encode(content)
|
|
@@ -40,7 +38,7 @@ export class ManifestSaver extends Emittery<ManifestSaverEventsTable> {
|
|
|
40
38
|
bytes: encoded.byteLength
|
|
41
39
|
}
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
this._options.emitter?.emit("save", e)
|
|
44
42
|
await mkdir(this._options.outdir, { recursive: true })
|
|
45
43
|
await writeFile(join(this._options.outdir, filename), encoded)
|
|
46
44
|
return e
|
|
@@ -62,4 +60,5 @@ export interface ManifestSaverEventsTable {
|
|
|
62
60
|
|
|
63
61
|
export interface ManifestSaverOptions {
|
|
64
62
|
outdir: string
|
|
63
|
+
emitter?: EventEmitter<any>
|
|
65
64
|
}
|