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
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { K8sResource, type Resource_Props_Top } from "@k8ts/instruments"
|
|
2
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { merge } from "lodash"
|
|
4
|
+
import { v1 } from "../../gvks/default"
|
|
5
|
+
export interface NamespaceProps extends Resource_Props_Top<K8S.NamespaceSpec> {}
|
|
4
6
|
|
|
5
|
-
export class Namespace<Name extends string = string> extends
|
|
6
|
-
constructor(name: Name, props:
|
|
7
|
+
export class Namespace<Name extends string = string> extends K8sResource<Name, NamespaceProps> {
|
|
8
|
+
constructor(name: Name, props: NamespaceProps = {}) {
|
|
7
9
|
super(name, props)
|
|
8
10
|
}
|
|
9
|
-
declare name: Name
|
|
10
11
|
get kind() {
|
|
11
12
|
return v1.Namespace._
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
protected
|
|
15
|
+
protected __body__(): K8S.KubeNamespaceProps {
|
|
16
|
+
const spec = {} satisfies K8S.NamespaceSpec
|
|
17
|
+
const spec2 = merge(spec, this.props.$$manifest)
|
|
15
18
|
return {
|
|
16
|
-
spec:
|
|
19
|
+
spec: spec2
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { K8sResource, type ResourceRef, type Resource_Props_Top } from "@k8ts/instruments"
|
|
2
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { merge } from "lodash"
|
|
4
|
+
import { gateway } from "../../../gvks/gateway"
|
|
5
|
+
import type { Service_PortRef } from "../service/service-port"
|
|
6
|
+
|
|
7
|
+
export interface HttpRoute_Props<Ports extends string>
|
|
8
|
+
extends Resource_Props_Top<K8S.HttpRouteSpec> {
|
|
9
|
+
$gateway: ResourceRef<gateway.v1.Gateway._>
|
|
10
|
+
$hostname: string
|
|
11
|
+
$backend: Service_PortRef<Ports>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export class HttpRoute<Name extends string, Ports extends string> extends K8sResource<
|
|
15
|
+
Name,
|
|
16
|
+
HttpRoute_Props<Ports>
|
|
17
|
+
> {
|
|
18
|
+
get kind() {
|
|
19
|
+
return gateway.v1.HttpRoute._
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
private _getBackendRef() {
|
|
23
|
+
const backendRef: K8S.HttpRouteSpecRulesBackendRefs = {
|
|
24
|
+
kind: "Service",
|
|
25
|
+
namespace: this.props.$backend.service.ident.namespace,
|
|
26
|
+
name: this.props.$backend.service.ident.name,
|
|
27
|
+
port: this.props.$backend.number()
|
|
28
|
+
}
|
|
29
|
+
return backendRef
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
protected __body__(): K8S.HttpRouteProps {
|
|
33
|
+
const self = this
|
|
34
|
+
const backendRef = this._getBackendRef()
|
|
35
|
+
const spec = {
|
|
36
|
+
parentRefs: [
|
|
37
|
+
{
|
|
38
|
+
kind: "Gateway",
|
|
39
|
+
name: self.props.$gateway.ident.name,
|
|
40
|
+
namespace: self.props.$gateway.ident.namespace
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
hostnames: [self.props.$hostname],
|
|
44
|
+
rules: [
|
|
45
|
+
{
|
|
46
|
+
backendRefs: [backendRef]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
} satisfies K8S.HttpRouteSpec
|
|
50
|
+
const spec2 = merge(spec, self.props.$$manifest)
|
|
51
|
+
return {
|
|
52
|
+
spec: spec2
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected __needs__() {
|
|
57
|
+
return {
|
|
58
|
+
gateway: this.props.$gateway,
|
|
59
|
+
service: this.props.$backend.service
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Service, type Service_Ref } from "./service"
|
|
2
|
+
|
|
3
|
+
export interface Service_PortRef_Props<Port extends string> {
|
|
4
|
+
service: Service_Ref<Port>
|
|
5
|
+
name: Port
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class Service_PortRef<Port extends string> {
|
|
9
|
+
constructor(readonly props: Service_PortRef_Props<Port>) {}
|
|
10
|
+
get service() {
|
|
11
|
+
return this.props.service
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
number() {
|
|
15
|
+
return this.props.service.cast(Service).ports.get(this.props.name).frontend
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import {
|
|
2
|
+
K8sResource,
|
|
3
|
+
ResourceRef,
|
|
4
|
+
type Ip4_Input_String,
|
|
5
|
+
type PortMap,
|
|
6
|
+
type PortMapping_Input,
|
|
7
|
+
type Resource_Props_Top
|
|
8
|
+
} from "@k8ts/instruments"
|
|
9
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
10
|
+
import { seq } from "doddle"
|
|
11
|
+
import { merge } from "lodash"
|
|
12
|
+
import { v1 } from "../../../gvks/index"
|
|
13
|
+
import { K8tsResourceError } from "../../errors"
|
|
14
|
+
import type { Workload_Ref } from "../../workload/workload-ref"
|
|
15
|
+
import { Service_PortRef } from "./service-port"
|
|
16
|
+
import { toServicePorts } from "./utils"
|
|
17
|
+
|
|
18
|
+
/** Short for ClusterIp with ClusterIp: None */
|
|
19
|
+
export interface Service_Frontend_Headless {
|
|
20
|
+
type: "Headless"
|
|
21
|
+
}
|
|
22
|
+
export interface Sevice_Frontend_ClusterIp {
|
|
23
|
+
type: "ClusterIP"
|
|
24
|
+
clusterIp?: Ip4_Input_String | "None"
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface Service_Frontend_LoadBalancer {
|
|
28
|
+
type: "LoadBalancer"
|
|
29
|
+
loadBalancerIP?: Ip4_Input_String
|
|
30
|
+
loadBalancerSourceRanges?: string[]
|
|
31
|
+
loadBalancerClass?: string
|
|
32
|
+
allocateLoadBalancerNodePorts?: boolean
|
|
33
|
+
clusterIp?: Ip4_Input_String
|
|
34
|
+
}
|
|
35
|
+
export type Service_Frontend =
|
|
36
|
+
| Sevice_Frontend_ClusterIp
|
|
37
|
+
| Service_Frontend_LoadBalancer
|
|
38
|
+
| Service_Frontend_Headless
|
|
39
|
+
export interface Service_Props<DeployPorts extends string, ExposedPorts extends DeployPorts>
|
|
40
|
+
extends Resource_Props_Top<K8S.ServiceSpec> {
|
|
41
|
+
$ports: PortMapping_Input<ExposedPorts>
|
|
42
|
+
$backend: Workload_Ref<DeployPorts>
|
|
43
|
+
$frontend: Service_Frontend
|
|
44
|
+
}
|
|
45
|
+
export interface Service_Ref<PortsExposed extends string> extends ResourceRef<v1.Service._> {
|
|
46
|
+
ports: PortMap<PortsExposed>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class Service<
|
|
50
|
+
Name extends string = string,
|
|
51
|
+
PortsExposed extends string = string
|
|
52
|
+
> extends K8sResource<Name, Service_Props<string, PortsExposed>> {
|
|
53
|
+
__PORTS__!: PortsExposed
|
|
54
|
+
get kind() {
|
|
55
|
+
return v1.Service._
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private get _backend() {
|
|
59
|
+
return this.props.$backend
|
|
60
|
+
}
|
|
61
|
+
get ports() {
|
|
62
|
+
const srcPorts = this._backend.ports
|
|
63
|
+
const knownPorts = seq(Object.entries(this.props.$ports))
|
|
64
|
+
.filter(([, v]) => v !== undefined)
|
|
65
|
+
.map(([k]) => k)
|
|
66
|
+
.toArray()
|
|
67
|
+
.pull() as PortsExposed[]
|
|
68
|
+
const svcPorts = srcPorts.pick(...knownPorts).map(this.props.$ports as any)
|
|
69
|
+
return svcPorts
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
protected override __needs__() {
|
|
73
|
+
return {
|
|
74
|
+
backend: this._backend
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
portRef(name: PortsExposed) {
|
|
79
|
+
return new Service_PortRef({
|
|
80
|
+
service: this,
|
|
81
|
+
name: name
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
get hostname() {
|
|
86
|
+
return `${this.ident.name}.${this.ident.namespace}.svc.cluster.local`
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private _getProtoPort(port: PortsExposed, protocol: "http" | "https") {
|
|
90
|
+
const portNumber = this.props.$ports[port]
|
|
91
|
+
if (portNumber === 80 && protocol === "http") {
|
|
92
|
+
return ""
|
|
93
|
+
}
|
|
94
|
+
if (portNumber === 443 && protocol === "https") {
|
|
95
|
+
return ""
|
|
96
|
+
}
|
|
97
|
+
if (portNumber === undefined) {
|
|
98
|
+
throw new K8tsResourceError(`Port ${port} is not defined in service ${this.ident.name}`)
|
|
99
|
+
}
|
|
100
|
+
return `:${portNumber}`
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private _frontend() {
|
|
104
|
+
if (this.props.$frontend.type === "Headless") {
|
|
105
|
+
return {
|
|
106
|
+
type: "ClusterIP",
|
|
107
|
+
clusterIp: "None"
|
|
108
|
+
} satisfies K8S.ServiceSpec
|
|
109
|
+
}
|
|
110
|
+
return this.props.$frontend satisfies K8S.ServiceSpec
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
protected __body__(): K8S.KubeServiceProps {
|
|
114
|
+
const self = this
|
|
115
|
+
const svcPorts = self.ports
|
|
116
|
+
const spec = {
|
|
117
|
+
...self._frontend(),
|
|
118
|
+
|
|
119
|
+
ports: toServicePorts(svcPorts),
|
|
120
|
+
selector: {
|
|
121
|
+
app: self.props.$backend.ident.name
|
|
122
|
+
}
|
|
123
|
+
} satisfies K8S.ServiceSpec
|
|
124
|
+
const spec2 = merge(spec, self.props.$$manifest)
|
|
125
|
+
const body = {
|
|
126
|
+
spec: spec2
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return body
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
address(protocol: "http" | "https", port: PortsExposed) {
|
|
133
|
+
return `${protocol}://${this.hostname}${this._getProtoPort(port, protocol)}`
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PortMap, PortMap_Item } from "@k8ts/instruments"
|
|
2
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { seq } from "doddle"
|
|
4
|
+
|
|
5
|
+
export function toServicePort(entry: PortMap_Item): K8S.ServicePort {
|
|
6
|
+
return {
|
|
7
|
+
port: entry.frontend,
|
|
8
|
+
targetPort: K8S.IntOrString.fromString(entry.name),
|
|
9
|
+
protocol: entry.protocol,
|
|
10
|
+
name: entry.name
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function toServicePorts(ports: PortMap<any>) {
|
|
15
|
+
return seq
|
|
16
|
+
.fromObject(ports.values)
|
|
17
|
+
.map(([, entry]) => toServicePort(entry))
|
|
18
|
+
.toArray()
|
|
19
|
+
.pull()
|
|
20
|
+
}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type PvAccessMode_Explicit = "ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany"
|
|
2
|
+
export type PvAccessMode = PvAccessMode_Explicit | "RWX" | "ROX" | "RWO"
|
|
3
|
+
export type PvAccessMode_Many = PvAccessMode | PvAccessMode[]
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
case "ReadOnlyMany":
|
|
15
|
-
return "ReadOnlyMany"
|
|
16
|
-
case "RWO":
|
|
17
|
-
case "ReadWriteOnce":
|
|
18
|
-
return "ReadWriteOnce"
|
|
19
|
-
}
|
|
5
|
+
function parseOne(mode: PvAccessMode): PvAccessMode_Explicit {
|
|
6
|
+
switch (mode) {
|
|
7
|
+
case "RWX":
|
|
8
|
+
case "ReadWriteMany":
|
|
9
|
+
return "ReadWriteMany"
|
|
10
|
+
case "ROX":
|
|
11
|
+
case "ReadOnlyMany":
|
|
12
|
+
return "ReadOnlyMany"
|
|
13
|
+
case "RWO":
|
|
14
|
+
case "ReadWriteOnce":
|
|
15
|
+
return "ReadWriteOnce"
|
|
20
16
|
}
|
|
17
|
+
}
|
|
21
18
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
19
|
+
export function parsePvAccessMode(modes: PvAccessMode_Many): PvAccessMode_Explicit[] {
|
|
20
|
+
if (Array.isArray(modes)) {
|
|
21
|
+
return modes.map(parseOne)
|
|
22
|
+
} else {
|
|
23
|
+
return [parseOne(modes)]
|
|
28
24
|
}
|
|
29
25
|
}
|
|
@@ -1,31 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import
|
|
9
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
K8sResource,
|
|
3
|
+
Reqs,
|
|
4
|
+
Units,
|
|
5
|
+
type ResourceRef,
|
|
6
|
+
type Resource_Props_Top
|
|
7
|
+
} from "@k8ts/instruments"
|
|
8
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
9
|
+
import { merge } from "lodash"
|
|
10
|
+
import { v1 } from "../../../gvks/default"
|
|
11
|
+
import { storage } from "../../../gvks/storage"
|
|
12
|
+
import { parsePvAccessMode, type PvAccessMode_Many } from "../access-mode"
|
|
13
|
+
import type { Pv_Ref } from "../volume"
|
|
14
|
+
import type { PvVolumeMode } from "../volume-mode"
|
|
10
15
|
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
const pvc_ResourcesSpec = ResourcesSpec.make({
|
|
14
|
-
storage: Unit.Data
|
|
16
|
+
const pvcReqs = new Reqs({
|
|
17
|
+
storage: Units.Data
|
|
15
18
|
})
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
$accessModes:
|
|
19
|
+
export interface Pvc_Props<Mode extends PvVolumeMode>
|
|
20
|
+
extends Resource_Props_Top<K8S.KubePersistentVolumeClaimProps> {
|
|
21
|
+
$accessModes: PvAccessMode_Many
|
|
19
22
|
$mode?: Mode
|
|
20
|
-
$storageClass?:
|
|
21
|
-
$
|
|
23
|
+
$storageClass?: ResourceRef<storage.v1.StorageClass._>
|
|
24
|
+
$volume?: Pv_Ref<Mode>
|
|
25
|
+
$resources: typeof pvcReqs.__INPUT__
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
export class Pvc<Mode extends
|
|
28
|
+
export class Pvc<Mode extends PvVolumeMode, Name extends string = string> extends K8sResource<
|
|
25
29
|
Name,
|
|
26
30
|
Pvc_Props<Mode>
|
|
27
31
|
> {
|
|
28
|
-
declare name: Name
|
|
29
32
|
get kind() {
|
|
30
33
|
return v1.PersistentVolumeClaim._
|
|
31
34
|
}
|
|
@@ -33,34 +36,29 @@ export class Pvc<Mode extends Pv_VolumeMode, Name extends string = string> exten
|
|
|
33
36
|
protected __needs__() {
|
|
34
37
|
const self = this
|
|
35
38
|
return {
|
|
36
|
-
bind: self.
|
|
39
|
+
bind: self.props.$volume,
|
|
37
40
|
storageClass: self.props.$storageClass
|
|
38
41
|
}
|
|
39
42
|
}
|
|
40
|
-
protected
|
|
43
|
+
protected __body__(): K8S.KubePersistentVolumeClaimProps {
|
|
41
44
|
const self = this
|
|
42
|
-
const { $
|
|
43
|
-
const nAccessModes =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
const { $resources, $accessModes, $mode, $storageClass, $volume } = self.props
|
|
46
|
+
const nAccessModes = parsePvAccessMode($accessModes)
|
|
47
|
+
|
|
48
|
+
const spec = {
|
|
49
|
+
accessModes: nAccessModes,
|
|
50
|
+
volumeName: self.props.$volume?.ident.name,
|
|
51
|
+
volumeMode: $mode,
|
|
52
|
+
resources: pvcReqs
|
|
53
|
+
.parse({
|
|
54
|
+
storage: $resources.storage
|
|
55
|
+
})
|
|
56
|
+
.toObject(),
|
|
57
|
+
storageClassName: self.props.$storageClass?.ident.name ?? "standard"
|
|
58
|
+
} satisfies K8S.PersistentVolumeClaimSpec
|
|
59
|
+
const spec2 = merge(spec, self.props.$$manifest)
|
|
49
60
|
return {
|
|
50
|
-
spec:
|
|
51
|
-
accessModes: nAccessModes,
|
|
52
|
-
volumeName: self.props.$bind?.name,
|
|
53
|
-
volumeMode: $mode,
|
|
54
|
-
resources: pvc_ResourcesSpec
|
|
55
|
-
.parse({
|
|
56
|
-
storage: $storage
|
|
57
|
-
})
|
|
58
|
-
.toObject(),
|
|
59
|
-
storageClassName: self.props.$storageClass?.name ?? "standard"
|
|
60
|
-
}
|
|
61
|
+
spec: spec2
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
get bound() {
|
|
64
|
-
return this.props.$bind as Pv<Mode> | undefined
|
|
65
|
-
}
|
|
66
64
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { K8tsResourceError } from "../../errors"
|
|
2
2
|
import type { Pv_Backend } from "./pv"
|
|
3
3
|
export function parseBackend(backend?: Pv_Backend) {
|
|
4
4
|
switch (backend?.kind) {
|
|
@@ -9,7 +9,7 @@ export function parseBackend(backend?: Pv_Backend) {
|
|
|
9
9
|
return {
|
|
10
10
|
hostPath: {
|
|
11
11
|
path: backend.path,
|
|
12
|
-
type: backend.
|
|
12
|
+
type: backend.type
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
case "Local":
|
|
@@ -26,7 +26,7 @@ export function parseBackend(backend?: Pv_Backend) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
default:
|
|
29
|
-
throw new
|
|
29
|
+
throw new K8tsResourceError(`Unknown backend kind!`, {
|
|
30
30
|
backend
|
|
31
31
|
})
|
|
32
32
|
}
|
|
@@ -1,50 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import
|
|
1
|
+
import {
|
|
2
|
+
K8sResource,
|
|
3
|
+
ResourceRef,
|
|
4
|
+
toCdkQuantityRecord,
|
|
5
|
+
Units,
|
|
6
|
+
type Resource_Props_Top
|
|
7
|
+
} from "@k8ts/instruments"
|
|
8
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
9
|
+
import { merge } from "lodash"
|
|
10
|
+
import { v1 } from "../../../gvks/default"
|
|
11
|
+
import { storage } from "../../../gvks/storage"
|
|
12
|
+
import { K8tsResourceError } from "../../errors"
|
|
13
|
+
import type { HostPath_Type } from "../../hostpath"
|
|
14
|
+
import { parsePvAccessMode, type PvAccessMode_Many } from "../access-mode"
|
|
15
|
+
import type { PvVolumeMode } from "../volume-mode"
|
|
9
16
|
import { parseBackend } from "./parse-backend"
|
|
10
17
|
|
|
11
18
|
const StorageClassKind = storage.v1.StorageClass._
|
|
12
19
|
|
|
13
20
|
export interface Pv_Backend_HostPath {
|
|
14
21
|
kind: "HostPath"
|
|
15
|
-
|
|
22
|
+
type: HostPath_Type
|
|
16
23
|
path: string
|
|
17
24
|
}
|
|
18
25
|
export interface Pv_Backend_Local {
|
|
19
26
|
kind: "Local"
|
|
20
27
|
path: string
|
|
21
28
|
}
|
|
22
|
-
export interface
|
|
29
|
+
export interface Pv_Backend_NFS {
|
|
23
30
|
kind: "NFS"
|
|
24
31
|
server: string
|
|
25
32
|
path: string
|
|
26
33
|
}
|
|
27
34
|
|
|
28
|
-
export type Pv_Backend = Pv_Backend_HostPath | Pv_Backend_Local |
|
|
29
|
-
export interface
|
|
30
|
-
|
|
31
|
-
$
|
|
35
|
+
export type Pv_Backend = Pv_Backend_HostPath | Pv_Backend_Local | Pv_Backend_NFS
|
|
36
|
+
export interface Pv_Props<Mode extends PvVolumeMode = PvVolumeMode>
|
|
37
|
+
extends Resource_Props_Top<K8S.PersistentVolumeSpec> {
|
|
38
|
+
$accessModes: PvAccessMode_Many
|
|
39
|
+
$storageClass?: ResourceRef<storage.v1.StorageClass._>
|
|
32
40
|
$mode?: Mode
|
|
33
|
-
reclaimPolicy?:
|
|
34
|
-
$capacity:
|
|
41
|
+
$reclaimPolicy?: Pv_ReclaimMode
|
|
42
|
+
$capacity: {
|
|
43
|
+
storage: Units.Data
|
|
44
|
+
}
|
|
35
45
|
$backend?: Pv_Backend
|
|
36
|
-
mountOptions?: string[]
|
|
37
|
-
nodeAffinity?: CDK.VolumeNodeAffinity
|
|
38
|
-
}
|
|
39
|
-
export type Reclaim = "Retain" | "Delete" | "Recycle"
|
|
40
|
-
export type Pv_Ref<Mode extends Pv_VolumeMode = Pv_VolumeMode> = Rsc_Ref<v1.PersistentVolume._> & {
|
|
41
|
-
__MODE__: Mode
|
|
42
46
|
}
|
|
47
|
+
export type Pv_ReclaimMode = "Retain" | "Delete" | "Recycle"
|
|
48
|
+
export type Pv_Ref<Mode extends PvVolumeMode = PvVolumeMode> =
|
|
49
|
+
ResourceRef<v1.PersistentVolume._> & {
|
|
50
|
+
__MODE__: Mode
|
|
51
|
+
}
|
|
43
52
|
|
|
44
53
|
export class Pv<
|
|
45
|
-
Mode extends
|
|
54
|
+
Mode extends PvVolumeMode = "Filesystem",
|
|
46
55
|
Name extends string = string
|
|
47
|
-
> extends
|
|
56
|
+
> extends K8sResource<Name, Pv_Props<Mode>> {
|
|
48
57
|
__MODE__!: Mode
|
|
49
58
|
get kind() {
|
|
50
59
|
return v1.PersistentVolume._
|
|
@@ -55,41 +64,36 @@ export class Pv<
|
|
|
55
64
|
storageClass: this.props.$storageClass
|
|
56
65
|
}
|
|
57
66
|
}
|
|
58
|
-
protected
|
|
67
|
+
protected __body__(): K8S.KubePersistentVolumeProps {
|
|
59
68
|
const self = this
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
throw new MakeError(
|
|
65
|
-
`While manifesting ${self.node.format("source")}, PV with Local backend must have nodeAffinity.`
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
+
const accessModes = parsePvAccessMode(self.props.$accessModes)
|
|
70
|
+
// Make sure it parses correctly
|
|
71
|
+
Units.Data.parse(self.props.$capacity.storage)
|
|
72
|
+
|
|
69
73
|
if (!self.props.$backend && !self.props.$storageClass) {
|
|
70
|
-
throw new
|
|
71
|
-
`While manifesting ${self.
|
|
74
|
+
throw new K8tsResourceError(
|
|
75
|
+
`While manifesting ${self.__vertex__.format("source")}, PV that doesn't have a $backend must have a $storageClass.`
|
|
72
76
|
)
|
|
73
77
|
}
|
|
74
|
-
let
|
|
78
|
+
let spec: K8S.PersistentVolumeSpec = {
|
|
75
79
|
accessModes,
|
|
76
|
-
storageClassName:
|
|
77
|
-
capacity:
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
persistentVolumeReclaimPolicy: pvProps.reclaimPolicy ?? "Retain",
|
|
85
|
-
nodeAffinity: pvProps.nodeAffinity
|
|
80
|
+
storageClassName: self.props.$storageClass?.ident.name ?? "standard",
|
|
81
|
+
capacity: toCdkQuantityRecord(self.props.$capacity),
|
|
82
|
+
volumeMode: self.props.$mode ?? "Filesystem",
|
|
83
|
+
persistentVolumeReclaimPolicy: self.props.$reclaimPolicy ?? "Retain"
|
|
84
|
+
}
|
|
85
|
+
spec = {
|
|
86
|
+
...spec,
|
|
87
|
+
...parseBackend(self.props.$backend)
|
|
86
88
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
spec = merge(spec, self.props.$$manifest)
|
|
90
|
+
if (!spec.nodeAffinity) {
|
|
91
|
+
throw new K8tsResourceError(
|
|
92
|
+
`While manifesting ${self.__vertex__.format("source")}, PV with Local backend must have nodeAffinity.`
|
|
93
|
+
)
|
|
90
94
|
}
|
|
91
95
|
return {
|
|
92
|
-
spec
|
|
96
|
+
spec
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type PvVolumeMode = "Block" | "Filesystem"
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import type {
|
|
5
|
-
import
|
|
1
|
+
import { K8sResource, type Resource_Props_Top, type ResourceRef } from "@k8ts/instruments"
|
|
2
|
+
import { K8S } from "@k8ts/sample-interfaces"
|
|
3
|
+
import { merge } from "lodash"
|
|
4
|
+
import type { v1 } from "../../gvks"
|
|
5
|
+
import { rbac } from "../../gvks/rbac"
|
|
6
6
|
|
|
7
|
-
export interface ClusterRoleBoding_Props
|
|
8
|
-
|
|
9
|
-
$
|
|
7
|
+
export interface ClusterRoleBoding_Props
|
|
8
|
+
extends Resource_Props_Top<K8S.KubeClusterRoleBindingProps> {
|
|
9
|
+
$role: ResourceRef<rbac.v1.ClusterRole._>
|
|
10
|
+
$subjects: ResourceRef<v1.ServiceAccount._>[]
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
export class ClusterRoleBinding<Name extends string = string> extends
|
|
13
|
+
export class ClusterRoleBinding<Name extends string = string> extends K8sResource<
|
|
13
14
|
Name,
|
|
14
15
|
ClusterRoleBoding_Props
|
|
15
16
|
> {
|
|
@@ -23,18 +24,19 @@ export class ClusterRoleBinding<Name extends string = string> extends Rsc_Top<
|
|
|
23
24
|
subjects: this.props.$subjects
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
protected
|
|
27
|
-
|
|
27
|
+
protected __body__(): K8S.KubeClusterRoleBindingProps {
|
|
28
|
+
const body = {
|
|
28
29
|
roleRef: {
|
|
29
|
-
apiGroup: this.props.$role.kind.parent!.parent!.
|
|
30
|
-
kind: this.props.$role.kind.
|
|
31
|
-
name: this.props.$role.name
|
|
30
|
+
apiGroup: this.props.$role.kind.parent!.parent!.url,
|
|
31
|
+
kind: this.props.$role.kind.value,
|
|
32
|
+
name: this.props.$role.ident.name
|
|
32
33
|
},
|
|
33
34
|
subjects: this.props.$subjects.map(sa => ({
|
|
34
|
-
kind: sa.kind.
|
|
35
|
-
name: sa.name,
|
|
36
|
-
namespace: sa.namespace!
|
|
35
|
+
kind: sa.kind.value,
|
|
36
|
+
name: sa.ident.name,
|
|
37
|
+
namespace: sa.ident.namespace!
|
|
37
38
|
}))
|
|
38
39
|
}
|
|
40
|
+
return merge(body, this.props.$$manifest)
|
|
39
41
|
}
|
|
40
42
|
}
|